강화학습,reinforcement_learning

강화학습,reinforcement_learning (rev. 1.15)

AKA RL

// KU오승상 https://youtu.be/dkm0RrmnH4s?t=1481
지도학습,supervised_learning은 labeled training data가 있었고,
비지도학습,unsupervised_learning은 unlabeled training data가 있었다.
강화학습환경,environment상호작용,interaction을 해서 학습,learning한다.
(It learns by interacting with the environment, rather than from a sample data set.)
상태,state에서, action을 택하며, action이 얼마나 좋은지에 대한 reward를 받는다. 그래서 training하는 동안, total reward를 최대화하기 위한 policy를 adapt한다.
(It chooses an action at each state, and receives a reward indicating how good an action is. Therefore, during training, it adapts its policy in order to maximize the total reward.)
사용되는 곳: robotics, game playing, autonomous cars.

scalar rewards and punishments; expected reward를 최대화하는 action sequence를 선택하도록 배움. not much information in the reward, which is often delayed



prerequisites (용어)



결과의 법칙에 의한 학습?
{
손다이크(Thorndike)는 동물의 지능에 대한 실험을 함. 고양이 실험, 문제상자(puzzle box).
관련: 행동주의심리학(behaviorism)

결과의 법칙 (시행착오 학습)
  • 좋은 결과를 안겨준 행동은 반복한다
  • 나쁜 결과를 안겨준 행동은 중단한다

강화학습이 필요한가?
  • 아무도 정답을 가르쳐 주지 않는다.
  • 정답을 알기까지는 상당한 수업료를 지불해야 한다.
  • 내 스스로 시행착오를 겪으면서 학습해야 한다.
    가치(value)를 최대화하는 방법에 대해서.
  • 가장 좋은 전략은 적당한 시행착오를 포함하면서도 학습한 가치에 기반해서 의사결정을 하는 것이다.
    적당한 기준을 결정하는 것을 정책(policy)이라고 한다.
    정책에는 근시안적인 것과 원시안적인 것이 있고, 장기적으로는 원시안적인 정책이 가치를 최대화한다.

바둑을 이기는 방법
  • 지도학습,supervised_learning에 의한 방법
    • 고수들의 기보를 학습한다. 즉 최적의 수를 패턴에 의해 예측한다.
    • 세상에 존재하는 모든 기보를 입수
  • 강화학습에 의한 방법
    • 기보에 없는 수를 두어 보고, 그 결과에 따라, 그 수의 가치를 업데이트한다.
    • 시뮬레이터 속에서 무수히 많은 대국을 경험한다.
  • AlphaGo는 두 가지 방법을 혼용해서 인간의 경지를 넘어섬.

Ref: KU 데이터과학원
}


(Skinner 쥐 box를 생각) WpKo:스키너_상자 WpEn:Operant_conditioning_chamber
에이전트(agent) 행동과 학습의 주체
박스 환경(environment) 에이전트가 처한 환경
먹이 보상(reward)
쥐의 생각 방침(policy) 에이전트가 스스로 수정할 수 있음

자율주행차의 경우,
agent
충돌 마이너스 보상 혹은 penalty

시행착오 끝에 방침을 찾는 방식도 있지만, 시행착오를 줄이는 '스승'을 사용하는 방법이 있다. 스승을 Q라 부른다. Deep neural net으로 만든 스승 Q를 DQN(deep Q network)라 한다.

보상은 받으려고 하고, 처벌은 최소화하려고 하고.
value는 최대화?

문제 : 실제 결과가 레버 누르면 먹이 나오듯 바로바로 나오지 않는 경우, etc.

NN(신경망,neural_network)은 덮어쓰기식으로 학습하는 것에는 뛰어나다. 다만 새로운 지식이 들어와서 과거 지식을 덮어쓰면 곤란하다(ex. 자동차 운전을 배우면 자전거 타기를 잊어버린다던지). 기존 연결을 보호하는 뇌의 방법이 있고(생략) 구현된 방법이 EWC(elastic weight conditioning).[1] 고정된 숫자의 뉴런이 아니라 새로운 일을 배울 때마다 인공 뉴런을 추가하는 방법도 제안됨.[2]
//내용 참고 from: 브레인 이미테이션


관련: 시행착오

----
  • [1] Overcoming catastrophic forgetting in neural networks, James Kirkpatrick et al., 2017
  • [2] Progressive Neural Networks, A. Rusu et al., 2016