레플리
글 수 13

신경망을 이용한 보급품 찾기

조회 수 795 추천 수 0 2017.07.17 04:38:49


  안녕하십니까? 얼마전에 가입한 사지방컴입니다. 사지방 '현역' 개발자로써 활동하고 있습니다. 본 카테고리가 정보'공유'라고 되어 있길레 '공유'하기 위하여 글 올려봅니다.

 

(프로그램 다운로드 링크 N드라이브)

http://naver.me/FGr3cLos

 

개요

 

  본 인공지능 프로그램은 인공지능 객체(Agent)가 모기를 피하며 보급품을 찾아 떠나는 내용의 프로그램입니다.

 

환경

 

  파랑색 캡슐은 모기인 빨강색 캡슐을 피하여 보급품인 분홍색 상자를 찾아 먹어야 합니다. 보급품을 취식하면 보상값 1을 받고 모기한테 물리면 보상값 -1을 받는 환경입니다. 아무 보상도 받지 않다면 보상망에 의하여 보상값이 부여됩니다.

 

상태

 

  전방좌우로 최대 16개의 레이저를 발사합니다. 측정된 거리의 역수에다 피격된 물체의 가중치를 곱한 값들의 배열로 정의된 상태가 입력됩니다. 모기는 -1, 보급품은 1, 다른 객체는 0.5, 빈 공간은 0.25로 했습니다.

 

행동

  

  행동은 총 4가지입니다. 위,아래,왼쪽,오른쪽으로 가는 행동(Action)입니다.

 

 

학습방법

 

  살아있을 때에는 현 정책망과 보상망을 학습하지 않고 행동을 취합니다. 그리고 경험 메모리에 상황을 저장합니다. 벽에 충돌하거나 모기한테 물리면 사망하게 됩니다. 사망하게 되면 살아 생전에 경험했던 것을 되세기며 신경망을 학습시켜 새로운 정책을 만들어내게 됩니다.

 

  보상값을 받았다면 정책망에서는 오차신호가되고 보상망에서는 목표값이됩니다.

 

 

  정책망 오차 신호 = (1 - 출력값2) * 보상값

 

  보상망 오차 신호 = (1 - 출력값2) * (보상값 - 출력값)

 

개발환경

 

  구름IDE를 이용하였으며 언어는 C#으로 라이브러리 없이 순수 깡코딩하여 개발하였습니다. 사용한 게임엔진은 유니티 5.6입니다. 개발기간은 혼자서 한달 걸렸습니다. 물론 이것만 만드는데 한달입니다. 여기에 사용한 기반기술들 및 코딩스킬 그리고 저만의 경험은 제외하고서 입니다.

 

 

 

 맺음말

 

  앞으로도 다른 인공지능 프로그램으로 자주 찾아뵙겠습니다. 이상 현역으로 복무하고 있는 사지방컴이었습니다.

 

  

 

 

 

엮인글 :

깊은바다

2017.07.17 23:15:36
*.68.247.188

와우~ 멋지네요 ㅎㅎ

신경망 강화학습인 것 같은데 아래 표시되는 숫자는 학습률인가요?

좋은 프로그램 잘 보았습니다~

사지방컴

2017.07.18 03:46:27
*.194.42.202

맨 아래에 표시되는 것은 State로 입력되는 배열값들입니다.

LegenDUST

2017.07.19 01:12:46
*.221.204.58

...이거... 1. 지속적으로 물려 라고는 되어있는데 그냥 모기에 닿으면 죽어버리네요.

2. 아직 학습 시간이 길지 않아서인지 계속 벽에 닥돌해요.

3. 그와 별개로 모기들은 알아서 움직이나보네요.

 

...! 스코어가 100점에서 떨어질려고 하지를 않네요.

사지방컴

2017.07.19 04:15:23
*.194.42.202

엌 ㅎㄷㄷ  여기서 뵙게됩니다.

 

1. 아 제가 중의적으로 서술했습니다. 물려서 지속적으로 죽으면으로 수정하겠습니다.

 

2. 스코어가 100점에서 하락하지 않는 이유는 아무일도 일어나지 않으면 스코어 또한 변화가 없게됩니다.

 

3. 모기들은 아예 인공지능이 아닌 A* 알고리즘으로 작동합니다. 유니티 굳

도꼬마리

2018.07.03 13:48:26
*.120.16.1

위의 링크로 들어가 지질 않아요..

사지방컴

2018.07.16 22:26:19
*.145.249.61

아 이분 여기 회원이셨구나

List of Articles
제목 글쓴이 날짜 조회 수
신경망의 동작과정을 3차원으로 시각화한 영상 file 깊은바다 2019-12-24 790
아 오랜만에 글 올려봅니다. 신경망 라이브러리 업데이트했습니다. [1] 사지방컴 2019-03-08 389
인공신경망 라이브러리 버전관리 file [2] 사지방컴 2018-08-16 464
직접 C#으로 제작한 인공신경망 라이브러리 [2] 사지방컴 2018-05-04 3119
신경망을 이용한 보급품 찾기 [6] 사지방컴 2017-07-17 795
신경망 퍼셉트론과 XOR 문제 해결 방법 깊은바다 2017-04-29 2885
퍼셉트론에 대한 설명과 C++ 코드 깊은바다 2017-03-23 1055
오류 역전파 알고리즘 개요 및 C++ 코드 file 깊은바다 2017-03-07 2369
파이썬 코드로 뉴럴 네트워크를 만들어보자 깊은바다 2017-02-28 862
뉴럴네트워크 코드 짜는 법 배우기 [1] 깊은바다 2017-02-28 895
인공신경망을 이용한 마우스 제스쳐 인식 file 깊은바다 2016-03-25 675
신경망을 이용한 사용자의 행동 학습 file 깊은바다 2016-03-25 629
신경망을 통한 학습의 구현 file 깊은바다 2016-03-25 1229