Proto Type(v01)

 

V00에서 negative reward 받을수 있도록 수정

내가 마지막 state action q_values 기억하고 있다가, 상대가 승리하게 되면 negative_reward 주도록 로직 추가

10000 training 결과 7171 건의 state 대한 training진행 (v00 유사)

 

결과 아래와 같이 x 입장에서 o 좌상과 중앙을 상태에서 일부 칸의 경우 두면 안된다는게 학습이 ..

다만 학습이 충분치 않아서 해당 state일때 모든 경우의 수가 학습되지 않을 경우 아래예제 처럼 막아야 할곳을 막지 못하는 상황이 생김

(===> 학습이 충분히 되면 아래 상황에서는 우하를 제외하고는 모두 negative reward 받게 될것이므로 max 함수에 의해서 우하를 선택하게 으로 예상)

=============

= o = x =   =

=============

=   = o =   =

=============

=   =   =   =

=============

RUN >> player:2

RUN >> trained index: 1101 qv: [-9.984     -9.999872  -0.8333312 -0.8       -9.92       0.        -0.83328          -0.8333312  0.       ]

RUN >> action:5 qvalue: 0.0

RUN >> action:5 reward: 0

=============

= o = x =   =

=============

=   = o = x =

=============

=   =   =   =

=============

 

얼토 당토 않게 아래와 같은 상황도 발생

첫번째 상황에서 x 아래 중간칸에 두어서 o 3칸을 만드는걸 막아야 하지만…

Learning과정에서 해당 state일때 좌하를 두어서 이겼던 적이 있었는지 좌하 칸에 qvalue 0.06666667로 가장 높아 좌하칸에 두는 경우가 발생

역시 어설픈 learning 결과로 충분한 learning횟수가 중요하다고 생각됨

 

=============

= x = o =   =

=============

=   = o =   =

=============

=   =   =   =

=============

RUN >> player:2

RUN >> trained index: 5639 qv: [-9.6        -9.6         0.          0.          0.          0.          0.06666667  0.          0.        ]

RUN >> action:6 qvalue: 0.0666666666667

RUN >> action:6 reward: 0

=============

= x = o =   =

=============

=   = o =   =

=============

= x =   =   =

=============

 

 

 

마찬가지로 10000번으로는 택도 없음, 사람 근처에도 못감

우리 옆집에 중학생 꼬마가 잘둘 같다




의문점......

v00와 v01모두 learning의 횟수가 충분치 못하다고 생각이 드는데... 

둘다 충분히 learning을 한다면 negative reward가 있는 경우, 없는 경우 승부를 보게 하면 어떻게 될까??



2017년 1월 26일 추가

총 60000번의 학습...... 여전히 답답하다-_-

사람이 학습시키면 답답한 케이스에 대해서 집중적으로 학습시키면서 그렇게 하면 진다는걸 학습시킬텐데 인공지능 둘이 계속 붙이니

유치원생 둘이서 시합시켜두는 느낌?

'Development > MachineLearning' 카테고리의 다른 글

Tic Tac Toe 인공지능 구현  (0) 2017.02.01
Tic Tac Toe 인공지능 구현 v00  (0) 2017.01.24

+ Recent posts