Reinforcement Learning 3

강화학습과 지도학습은 어떻게 다를까?

1. 강화학습과 지도학습 강화학습은 머신러닝의 한 종류이지만 지도학습, 비지도학습과 학습 방식이 조금 다르다. 책에서 분류한 바와 같이 지도학습, 비지도학습, 강화학습에는 겹치는 부분이 있긴 하지만 엄연히 차이점이 존재한다. 이 글에서는 그 중에서도 지도학습과 강화학습의 차이점을 나만의 방식으로 풀어보려 한다. 2. 각각의 관점으로 본 강화학습 위 이미지는 InstructGPT에 사용된 Reinforcement Learning with Human Feedback(이하 RLHF)를 설명하기 위해 만든 PPT 페이지이다. 이미지의 상황은 Model이 Prompt를 Input으로 받고 Answer(Completion)을 Output으로 내는데, Output이 가지는 Reward를 최대화하는 쪽으로 학습하는 강..

Banilla Policy Gradient를 Pytorch로 구현해 보자

지난 글에서 강화학습의 기본 알고리즘 중 하나인 Multi Armed Bandit을 Pytorch로 구현해 보았다. 이번 시간에는 Policy Gradient를 Pytorch로 구현해볼 예정이다. 밴딧 알고리즘에서 갑자기 Policy + Gradient 라는 새로운 개념이 어려울 수 있지만, 코드를 보면서 천천히 따라가보자. Banilla Policy Gradient 코드 # vanilla policy gradient는 앞의 두 bandit 문제에서 고려한 것을 포함해 총 3가지를 고려해야 함 # 1. 액션 의존성 :MAB에서 사용된 것처럼 각각의 액션이 보상을 가져다 줄 확률은 다름 # 2. 상태 의존성 :MAB와 달리, CB에서 각 액션을 취할 때의 보상은 그 액션을 취할 당시의 상태와 관계가 있음 ..

Multi-Armed Bandit을 Pytorch로 구현해 보자

ChatGPT와 강화학습 ChatGPT는 기존의 GPT-3를 고품질의 데이터로 fine-tune 시킨 뒤, RLHF(Reinforcement Learning from Human Feedback)를 시킨 것이다. ChatGPT가 정확히 어떤 방식으로 학습 시켰는지에 대한 논문은 나와 있지 않으나 거의 유사한 방식으로 학습시켰다고 알려진 InstructGPT의 데이터셋 및 학습 방법에 대한 논문은 있기에, 이를 바탕으로 설명하고자 한다. GPT-3와 InstructGPT가 생성하는 답변의 차이는 다음 예시를 보면 직관적으로 이해할 수 있다. GPT-3가 생성시킨 Output을 보면 Input과 유사한 느낌은 있지만, 사용자가 원하는 Output은 아니다. 반면에 InstructGPT가 생성한 Output을 ..