맺음: 남은 물음

이어서 읽을 방향

일반화란 무엇인가

이 책은 「옵티마이저가 손실이 같은 여러 최소점 가운데 어느 것을 고르나」까지만 갔다. 가장 작은 노름의 해, 평평한 최소점, 일찍 멈춘 자리처럼 옵티마이저가 고르는 최소점이 처음 보는 데이터에서도 잘 맞는 경우가 많다는 것을 보았지만, 그것이 왜 「잘 맞는다」로 이어지는지, 학습한 것이 처음 보는 데이터에 통한다는 말이 무엇을 뜻하는지는 묻지 않았다. 일반화가 무엇이냐는 물음은 시리즈의 다른 책에 맡긴다. 데이터를 짧게 줄여 적을 수 있는 규칙을 찾는 일로 학습을 다시 보는 관점에서 출발할 물음이다.

특잇값 분해에서 스펙트럼으로

립시츠 연속을 다룰 때 행렬을 「돌리기, 축마다 늘이기, 다시 돌리기」로 쪼개는 특잇값 분해를 세웠다. 행렬이 스스로 고른 축으로 다시 적으면 하는 일이 축마다의 배율로 보인다는 생각이다. 같은 생각을 그림과 소리에 쓰면, 그림이 스스로 고른 축 대신 모든 그림에 함께 쓰는 무늬(사인과 코사인)의 축으로 다시 적는 푸리에 변환이 된다. 특잇값이 행렬의 세기가 어느 축에 몰렸는지를 보여 주었듯, 스펙트럼은 그림의 세기가 어느 굵기의 무늬에 몰렸는지를 보여 준다.

축약 사상에서 벨만 방정식으로

축약 사상은 립시츠 상수가 1보다 작은 함수였다. 공간을 자기 안으로 보내는 축약 사상은 고정점을 꼭 하나 가지고, 어디서 출발하든 되풀이하면 그 점에 모이며, 오차는 스텝마다 립시츠 상수 배 아래로 준다. 강화학습에서 상태의 가치를 구하는 식이 바로 이 꼴이다. 상태 s 의 가치 V(s)는 지금 받는 보상에, 다음 상태의 가치를 할인율 γ만큼 줄여 더한 것의 평균이다.

V(s)  =  r(s)  +  γ∑s′P(s′∣s) V(s′)\textcolor{#1e694b}{V}(\textcolor{#874b0f}{s}) \;=\; \textcolor{#962d1e}{r}(\textcolor{#874b0f}{s}) \;+\; \textcolor{#008787}{\gamma} \sum_{\textcolor{#874b0f}{s'}} \textcolor{#c2408a}{P}(\textcolor{#874b0f}{s'} \mid \textcolor{#874b0f}{s})\, \textcolor{#1e694b}{V}(\textcolor{#874b0f}{s'})
s, s′지금 상태와 다음 상태V(s)상태의 가치: 거기서부터 받을 할인된 보상의 합의 평균r(s)그 상태에서 받는 보상γ할인율: 한 스텝 뒤의 보상을 지금 얼마로 치나 (0≤γ<1)P(s′∣s)지금 상태 다음에 그 상태로 갈 확률\begin{array}{ll} \textcolor{#874b0f}{s},\ \textcolor{#874b0f}{s'} & \text{지금 상태와 다음 상태} \\ \textcolor{#1e694b}{V}(\textcolor{#874b0f}{s}) & \text{상태의 가치: 거기서부터 받을 할인된 보상의 합의 평균} \\ \textcolor{#962d1e}{r}(\textcolor{#874b0f}{s}) & \text{그 상태에서 받는 보상} \\ \textcolor{#008787}{\gamma} & \text{할인율: 한 스텝 뒤의 보상을 지금 얼마로 치나 } (0 \le \textcolor{#008787}{\gamma} < 1) \\ \textcolor{#c2408a}{P}(\textcolor{#874b0f}{s'} \mid \textcolor{#874b0f}{s}) & \text{지금 상태 다음에 그 상태로 갈 확률} \end{array}

오른쪽을 가치 표 하나를 새 가치 표로 보내는 연산으로 보면, 두 가치 표의 가장 큰 칸 차이(최대 노름)가 이 연산을 한 번 지날 때마다 γ배 아래로 준다. γ < 1 이면 축약 사상이다. 상태가 집과 회사 둘뿐인 작은 예(집에서 보상 1, 회사에서 보상 2, 집에서는 반반, 회사에서는 0.8의 확률로 회사에 머문다, γ = 0.9)에서 가치를 모두 0으로 두고 이 연산을 되풀이하면, 참값 (집 16.16, 회사 17.53)과의 가장 큰 차이가 15.53, 13.91, 12.50, …으로 스텝마다 0.9배 아래로 준다. 처음 표를 (100, −50)으로 잡고 함께 되풀이해도 두 표의 차이가 스텝마다 0.9배 아래로 준다. 오차를 1/1000로 줄이는 데는 축약 사상의 보장대로 66스텝이면 된다. 같은 식에서 다음 상태의 가치를 지금의 어림으로 채우고 한 스텝만 가 보는 것이 강화학습의 시간차 학습이고, 그 위에 Q-러닝과 비평가를 둔 정책 그래디언트가 선다.

어느 쪽으로 가든 처음 할 일은 이 책에서와 같다. 숫자 하나짜리 그릇을 골라 손으로 한 스텝을 계산해 보고, 손으로 얻은 값을 코드로 다시 확인하는 것. 두 값이 맞으면 그다음은 차원을 키울 차례다.