#noindex 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를 받는다. (feedback) 그래서 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 기본이 되는 게 [[동적계획법,dynamic_programming]]과 [[마르코프_결정과정,Markov_decision_process,MDP]]? CHK // 오승상 https://www.youtube.com/watch?v=HXIbrL-glpU RL은: 모든 정보를 알 수 없고 sample로 주어진 data에 대해서만 정보를 갖고 있기 때문에 그걸 가지고 [[정책,policy]]을 평가하고 update하는 방식. (즉 정답이 없다?) reinforcement learning 방법에는 Monte Carlo Sarsa Q-learning deep reinforcement learning (DRL; RL에 [[심층학습,deep_learning]] 기법을 활용한 것) 방법에는 DQN REINFORCE A3C policy gradient DRL 방법에는 DDPG TRPO PPO distributed reinforcement learning 방법에는 C51 QR-DQN IQN ---- prerequisites (용어) return https://developers.google.com/machine-learning/glossary?hl=ko#return reward https://developers.google.com/machine-learning/glossary?hl=ko#reward 추가.. [[Date(2022-03-16T19:52:00)]] 용어들 action policy action for each state. '''강화학습'''에선 total reward를 최대화하기 위해 policy를 계속 개선시켜나간다. policy evaluation policy improvement reward 보상 total reward - 이것을 maximize([[최대화,maximization]])하는 방식으로 action을 취하는 policy를 구해나가는 것이 목적 ...(?) - policy는 고정되어 있지 않음, 더 좋은 policy로 update하는 방향으로... reward_signal 보상신호? [[신호,signal]] http://www.scholarpedia.org/article/Reward_signals punishment 처벌 ---- 결과의 법칙에 의한 학습? { 손다이크(Thorndike)는 동물의 지능에 대한 실험을 함. 고양이 실험, 문제상자(puzzle box). 관련: 행동주의심리학(behaviorism) 결과의 법칙 (시행착오 학습) * 좋은 결과를 안겨준 행동은 반복한다 * 나쁜 결과를 안겨준 행동은 중단한다 왜 '''강화학습'''이 필요한가? * 아무도 정답을 가르쳐 주지 않는다. * 정답을 알기까지는 상당한 수업료를 지불해야 한다. * 내 스스로 시행착오를 겪으면서 학습해야 한다. 가치(value)를 최대화하는 방법에 대해서. * 가장 좋은 전략은 적당한 시행착오를 포함하면서도 학습한 가치에 기반해서 의사결정을 하는 것이다. 적당한 기준을 결정하는 것을 정책(policy)이라고 한다. 정책에는 근시안적인 것과 원시안적인 것이 있고, 장기적으로는 원시안적인 정책이 가치를 최대화한다. 바둑을 이기는 방법 * [[지도학습,supervised_learning]]에 의한 방법 * 고수들의 기보를 학습한다. 즉 최적의 수를 패턴에 의해 예측한다. * 세상에 존재하는 모든 기보를 입수 * '''강화학습'''에 의한 방법 * 기보에 없는 수를 두어 보고, 그 결과에 따라, 그 수의 가치를 업데이트한다. * 시뮬레이터 속에서 무수히 많은 대국을 경험한다. * AlphaGo는 두 가지 방법을 혼용해서 인간의 경지를 넘어섬. ## https://youtu.be/wqazOnZ9ut8 (데이터과학원 온라인 강의: 인공지능처럼 생각하기-인공지능과 고양이: 결과의 법칙) 참조함. 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).[* Overcoming catastrophic forgetting in neural networks, James Kirkpatrick et al., 2017] 고정된 숫자의 뉴런이 아니라 새로운 일을 배울 때마다 인공 뉴런을 추가하는 방법도 제안됨.[* Progressive Neural Networks, A. Rusu et al., 2016] //내용 참고 from: 브레인 이미테이션 ---- 관련: 시행착오 = Q-learning = [[Zeta:Q-러닝]] [[WpKo:Q_러닝]] [[WpEn:Q-learning]] https://developers.google.com/machine-learning/glossary?hl=ko#q-learning = See also = [[지도학습,supervised_learning]]#이수찬 ---- Bmks ko: Machine learning 스터디 (20) Reinforcement Learning - README http://sanghyukchun.github.io/76/ Fundamental of Reinforcement Learning Woong won, Lee https://dnddnjs.gitbook.io/rl/ ---- Twins: https://developers.google.com/machine-learning/glossary?hl=ko#reinforcement-learning-rl [[WpKo:강화_학습]] [[WpEn:Reinforcement_learning]] Zeta:강화학습_RL http://www.scholarpedia.org/article/Reinforcement_learning Up: [[기계학습,machine_learning]]