code

강화 학습으로 신경망 훈련

codestyles 2020. 12. 2. 21:22
반응형

강화 학습으로 신경망 훈련


피드 포워드 신경망의 기본 사항과 역 전파 알고리즘을 사용하여 훈련하는 방법을 알고 있지만 강화 학습을 통해 ANN 온라인 훈련에 사용할 수있는 알고리즘을 찾고 있습니다.

예를 들어, 카트 폴 스윙 업 문제는 ANN으로 해결하고 싶은 문제입니다. 이 경우 진자를 제어하기 위해 무엇을해야할지 모르겠지만 이상적인 위치에 얼마나 가까이 있는지 알뿐입니다. 나는 ANN이 보상과 처벌을 기반으로 학습하도록해야합니다. 따라서지도 학습은 선택 사항이 아닙니다.

또 다른 상황은 피드백이 지연되고 보상이 아닌 목표와 반 목표로 제한되는 뱀 게임 과 같은 것입니다.

언덕 오르기 또는 유전 알고리즘과 같은 첫 번째 상황에 대한 알고리즘을 생각할 수 있지만 둘 다 느릴 것이라고 생각합니다. 두 번째 시나리오에서도 적용 가능할 수 있지만 엄청나게 느리고 온라인 학습에 도움이되지 않습니다.

제 질문은 간단합니다. 강화 학습으로 인공 신경망을 훈련하는 간단한 알고리즘이 있습니까? 저는 주로 실시간 보상 상황에 관심이 있지만 목표 기반 상황에 대한 알고리즘을 사용할 수 있다면 더 좋습니다.


주제에 대한 몇 가지 연구 논문이 있습니다.

그리고 일부 코드 :

이들은 주제에 대한 상위 Google 검색 결과 중 일부에 불과합니다. 처음 몇 개의 논문은 개인적으로 읽지 않았지만 꽤 괜찮은 것 같습니다. Google 학술 검색에서 빠른 검색을하면 강화 학습 기능이있는 신경망에 대한 더 많은 정보를 찾을 수있을 것입니다.


보상으로 이어지는 출력이 r네트워크 r시간 으로 역 전파 되면 보상에 비례하여 네트워크를 강화합니다. 이것은 부정적인 보상에 직접 적용되지는 않지만, 다른 효과를내는 두 가지 해결책을 생각할 수 있습니다.

1) rmin-rmax 범위에 일련의 보상이있는 0-(rmax-rmin)경우 모두 음수가 아니도록 크기를 조정하십시오 . 보상이 클수록 생성되는 강화가 더 강해집니다.

2) 부정적인 보상 의 경우 부정적인 보상으로 이어지는 것과 다른 -r한 무작위 출력 r시간을 역 전파합니다 . 이것은 바람직한 산출물을 강화할뿐만 아니라 나쁜 산출물을 확산 시키거나 피할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/10722064/training-a-neural-network-with-reinforcement-learning

반응형