짱민영
'AI' 카테고리의 글 목록

AI

AI

[AI][C#][오델로 AI] 3. Q-Learning으로 오델로 AI를 만들자!

글에서 쓰이는 모든 코드는 제가 쓴 것이 아닙니다. 동계캠프를 진행하는 동안의 수업 자료입니다. 러시아 장기에서 머리가 깨질뻔하게 했던 큐러닝... 큐함수가 뭔지... 엡실론이 뭔지 ㅠ_ㅠ 정말 어려웠지만, 4x4 오델로를 만들며 이해가 조금은 더 돼서 좋았던 녀석이다. 내가 이해한 Q-Learning은 상태-> 행동에 기반한 보상이 주어지는 알고리즘이다. DP는 상태에 따른 보상의 가치 함수였다면, Q함수는 상태에 따른 행동에 따른 보상을 가진 함수이다. Q-Learning AI는 이런 기능으로 세분화해 개발했다. 가치함수 초기화 학습 엡실론 그리디 정책에 의한 첫번째 행동 선택 최적의 다음 상태와 보상 구하기 가치 함수 업데이트 에피소드 반복 학습 이렇게 개발했다. 물론 내가 아닌 선생님이... 지금..

AI

[AI][C#][오델로 AI] 2. DP로 오델로 AI를 만들자!

글에서 쓰이는 모든 코드는 제가 쓴 것이 아닙니다. 동계캠프를 진행하는 동안의 수업 자료입니다. 엄밀히 말하면 DP는 학습을 하지 않으므로, DP로 만드는 것은 AI보다는 프로그램에 가까울 테지만... 아무튼 AI 카테고리에 올리고 싶으니까 편의상 AI라고 말할 것이다. ㅎ_ㅎ 보드의 상태를 가치 함수의 키값으로 쓰고, 갱신을 위해 전 값과 오차를 구하하고, 적은 오차값을 구하기 위해 같은 패턴을 반복해나가는 게 다이나믹 프로그래밍인 이유라고 생각한다. DP AI는 이런 기능으로 세분화해 개발했다. 가치함수 초기화 그리디 정책에 의한 학습 행동에 대한 최적의 기댓값 구하기 오차 구하기 학습을 토대로 다음 행동 반환 이 정도인데, 여기서 말하는 학습이란 AI가 강화 학습을 하는 게 아닌, 상태에서의 최적의..

AI

[AI][C#][오델로 AI] 1. 오델로 AI의 구조를 짜보자!

동계 캠프에서 4일간 20시간 동안 AI를 배우면서, AI에 전체적인 개념에 대해서 알 수 있었다. AI로 러시아 장기, 4x4 오델로를 만들어보며 정말 뿌듯했지만, 반대로 정말 어려웠던 20시간이었기도 하다. 유니티와 C++ 게임 개발의 영역에만 있다가 AI라는 새로운 영역에 발을 디딘 것에 의의를 둔다! 잊어버리지 않기 위해 4x4 오델로 AI 만들기를 DP, Sarsa, QLearning AI를 통해 다시 한 번 복습해볼 것이다! 물론... DP는 AI가 아니긴 하지만... 일단 편의상 묶자 ㅎ_ㅎ 상태 우선, 오델로 보드 한 칸에서의 상태는 3가지가 있다. 흑돌 혹은 백돌 상태, 그 외 빈 상태! 상태를 표현해주기 위해 우리는 흑돌을 1, 백돌을 2, 빈 상태를 0으로 놓았다. 이렇게 2차원 배열..