오늘 끝나면
강화학습 입문
- ✓강화학습 입문의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 강화학습이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
보상으로 배운다 — 시행착오의 지능 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
Physical AI · 12
강화학습
입문
정답을 알려주지 않는다. 보상만 준다.
상태에서 행동을 하고 보상과 다음 상태를 받는 과정을 무수히 돌며 시행착오로 배운다.
좋은 보상을 부른 행동을 강화한다. 게임과 로봇 제어가 쓰는 학습 방식이다.
보상으로 배우는 지능
앞서 본 학습은 대부분 정답표를 베끼는 일이었다. 이건 고양이 같은 라벨이 붙은 데이터로 맞히는 법을 배운다.
강화학습(RL, reinforcement learning)은 다르다. 정답 라벨이 없다.
대신 행동마다 잘했는지 못했는지 보상(reward)이라는 숫자만 돌아온다. 좋으면 +, 나쁘면 −다.
개를 훈련시킬 때 정답을 말로 알려주지 않고 간식으로 가르치는 것과 같다.
앉으면 간식을 주고 짖으면 주지 않으면, 강아지가 보상을 늘리는 쪽으로 행동을 바꾼다.
RL 에이전트도 보상 총합을 키우는 쪽으로 스스로 행동을 조정한다.
그래서 라벨을 다 붙이지 못하는 문제에 강하다.
바둑 한 수의 정답은 아무도 모른다. 하지만 이겼는지 졌는지라는 보상은 알 수 있고, 거기가 바로 RL이 먹히는 자리다.
정답 라벨을 보고 베낀다
보상 점수만 보고 스스로 찾는다
라벨이 없어도 된다. 잘했는지 점수만 줄 수 있으면 학습한다.
상태 → 행동 → 보상 → 다음 상태
RL은 한 장의 그림으로 요약된다. 에이전트와 환경이 끝없이 주고받는 루프다.
상태(state)는 지금 처한 상황이다. 로봇 위치, 화면, 센서값 같은 것이다.
에이전트는 그 상태를 보고 행동(action)을 하나 고른다. 왼쪽, 오른쪽, 전진 가운데 하나다.
그러면 환경이 보상(reward)과 다음 상태를 돌려준다.
이 네 박자가 한 스텝(step)이다.
시작부터 끝, 그러니까 목표 도달이나 게임오버까지 스텝을 쭉 이으면 한 에피소드(episode)가 된다.
에이전트의 목표는 한 행동의 보상이 아니라 에피소드 전체 보상 합을 최대로 하는 것이다.
그래서 당장 손해여도 나중에 큰 보상이 오면 그 길을 택해야 한다.
미래 보상을 얼마나 챙길지는 할인율 γ(감마)가 정한다. 1에 가까울수록 멀리 본다.
상태를 보고 행동을 고른 뒤 보상과 다음 상태를 받는 과정을 반복한다. 이 한 바퀴가 한 스텝이다.
탐험과 활용, 헤맬까 굳힐까
RL의 핵심 딜레마가 여기 있다. 탐험(exploration)과 활용(exploitation)의 줄다리기다.
활용은 지금까지 배운 것 중 제일 좋은 행동을 그냥 쓰는 것이다. 안전하지만 더 나은 길을 영영 못 찾는다.
탐험은 일부러 안 해본 행동을 해보는 것이다. 손해 볼 수 있지만 숨은 보상을 발견한다.
늘 가던 식당만 가면 실패는 없지만 더 맛있는 집을 못 만나고, 가끔 새 집을 찔러봐야 더 나은 곳을 찾는다.
둘을 섞는 흔한 방법이 ε-greedy다. ε 확률로 랜덤하게 고르고 나머지는 최선을 쓴다.
보통 처음엔 ε를 크게 둬서 마구 헤매며 탐험하다가, 학습이 쌓이면 ε를 줄여 굳은 정책을 활용한다.
탐험 없이는 배우지 못하고 활용 없이는 써먹지 못한다. 비율을 맞추는 것이 튜닝의 절반이다.
더 나은 길을 영영 못 찾을 수 있다
숨은 보상을 발견할 수 있다
학습이 진행되면 ε는 줄어든다
시행착오로 정책을 학습한다
오른쪽 격자에서 에이전트가 직접 헤매며 배운다.
왼쪽 위에서 출발해 오른쪽 아래 보상 +1 칸을 찾아야 하고, 가운데 함정 −1은 피해야 한다.
처음엔 ε가 커서 랜덤하게 헤맨다. 보상이 어디 있는지 모른다.
한 번 보상에 닿으면 그 경로의 칸이 진해지고 화살표가 생긴다.
이게 학습된 정책(policy)이다. 각 칸에서 어디로 갈지를 적은 지도다.
내부에선 칸과 행동마다 가치를 Q값으로 쌓아 갱신한다. 이게 Q-러닝이다.
에피소드가 쌓일수록 ε가 줄고 경로가 굳는다.
누가 정답을 알려주지 않았는데도 보상 신호만으로 최단 경로를 찾아낸다.
ε 클 땐 랜덤으로 헤맨다(탐험). 학습이 쌓이면 칸이 진해지고 화살표가 보상 쪽으로 굳는다(활용). 정답 라벨 없이 보상 신호만으로 길을 찾는다.
게임에서 로봇 제어까지
RL은 보상이라는 점수만 정의되면 어디든 붙는다. 그래서 쓰임새가 넓다.
게임에서 먼저 유명해졌다. 알파고는 바둑을, Atari와 스타크래프트는 화면 픽셀만 보고 사람을 넘었다.
보상은 단순하다. 이기면 +, 지면 −다. 나머지는 수억 판을 스스로 두며 배운다.
로봇 제어가 진짜 무대다.
네발 로봇이 넘어지지 않고 걷거나 로봇 팔이 물건을 집는 동작은 정답을 일일이 짤 수 없다.
“앞으로 가면 +, 넘어지면 −” 식으로 보상을 주고 시뮬레이션에서 수만 번 굴려 걸음을 익힌다.
단, 보상을 잘못 짜면 엉뚱한 걸 배운다. 점수만 따려고 꼼수를 부리는 보상 해킹이 흔하다.
그리고 현실 로봇은 실패 비용이 커서 시뮬레이션에서 먼저 배운다.
Q. 강화학습은 정답 라벨 없이 무엇으로 배우나?
보상 신호로 배운다.상태에서 행동을 해보고 돌아온 보상(+/−)을 보며 보상 합을 키우는 쪽으로 행동을 조정한다.
좋은 보상을 부른 행동은 강화되고 나쁜 행동은 줄어든다. 정답을 베끼는 게 아니라 시행착오로 찾아간다.
그 과정에서 안 해본 행동을 시도하는 탐험과 아는 최선을 쓰는 활용을 섞어 점점 좋은 정책으로 수렴한다.
게임은 보상이 명확해 먼저 정복됐다. 로봇은 보상 설계와 현실 격차가 관건이다.