1. data inefficiency
사람은 가설수립 -> 실험 및 검증 -> 가설 수정 단계로 똥인지 된장인지 한번만 찍어먹어 보면 학습이 되는데, 현 DNN 구조는 백만번 찍어먹어 봐야 겨우 학습이 되고, 그래놓고도 또 epsilon 이나 softmax에 의해 확률적으로 계속 똥 찍어먹으려고 함.
2. reward shaping
보상은 일반적으로 사람이 정해줘야 함. 근데 단순히 '게임 승리' 라는 보상으로 코딩해주면 너무 가끔 보상이 들어오게 됨. 현 강화학습은 이러한 문제에 대해 효과적으로 학습할 수 없는데, 이걸 sparse reward 환경이라고 부름. 그래서 뱀게임을 예로 들면, 매 스텝마다 먹이에 가까운 정도에 따라 보상을 추가 제공하거나, 먹이를 먹을때마다 추가보상, 꼬라박을때 보상을 크게 깎는 등등의 방법을 활용해서 최종 Score만을 보상으로 주지 않고 매 step 보상을 제공하도록 코딩을 하는게 일반적임. 그런데 여기서 문제는 '그러한 보상 설정이 적절한가?' 임. 강화학습에서 이 reward shaping을 어떻게 하는가에 따라 진짜 결과가 하늘과 땅처럼 달라지는데, 현재 이걸 자동화 할 수단이 없음.
물론 이러한 sparse reward 환경을 극복하기 위한 다양한 시도와 논문이 있지만, 전부 일장일단이 있는 상황임.
개인적으로 이러한 reward shaping을 일종의 '보상 가설'이라 가정하고 다양한 reward 가설을 자가 생성, attention 알고리즘을 활용해 어떤 가설이 어떤 상황에서 가장 유용한지 학습하는, 일종의 가설검증을 스스로 시행하는 강화학습 에이전트을 만들 수 없을까 실험중임.
3. gamma (감가율)
강화학습의 보상 알고리즘은 눈앞의 보상만을 생각하지 않도록, 미래에 획득한 보상에 감가율을 곱해서 학습하게 됨. 근데 이게 좀 많이 멍청한 알고리즘이라고 생각함. 너가 자동차를 전봇대에다가 꼴아박았다고 치자. 너는 어느 순간에 잘못한걸까? 술을 처먹고 운전대를 잡은 순간에 '가장' 잘못했다고 보는게 맞을거임. 근데 현 강화학습 에이전트는 자동차를 꼴아박기 직전 순간을 가장 잘못했다고 판단해서 그라디언트를 가장 크게 잡아버림. 물론, 비슷한 종류의 시행을 많이 하면 확률통계적으로 과거의 잘못도 조금씩 학습되어나가겠지만, 너무 심하게 비효율적임.
4. transfer learning
현재 강화학습에서의 효과적인 전이학습 수단으로 보편화된게 없음. 다양한 방법들로 논문이 많이 나오고 있기는 한데, '연구실에서 오 이런 방법도 해볼만한가?' 수준이고 일선의 엔지니어링 분야에서 적용할만한 수단은 전무함. 얼마전에 딥마인드가 내놓은 보편능력 에이전트가 강화학습에서의 전이 학습 베이스가 될 수 있지 않을까 기대중임.
2번은 DQN 아니냐 - dc App
예상 Reward를 Q함수를 대체한 NN로 예측하는건데, 학습 목표 라벨로 주어지는 Reward를 사람이 디테일하게 잘 설계해서 정해줘야 함.
하긴 아직 사람이 정해주는게 많지 곧 발표될 큰 신경망들에서 뭔가 발전이 있지 않을까 - dc App
이런건 어디서 보고 아는거임? 공유좀
각잡고 공부해야지 뭐..