자주 하는 실수와 요약
자주 하는 실수
| 실수 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 반복해서 곱할 때의 배율이 대각선 칸 가운데 가장 큰 값이라고 봄 | 1 | 되풀이 곱의 배율은 가장 큰 고윳값이다. 칸끼리 주고받으면 대각선 칸보다 커진다. 샤프니스도 헤시안의 대각선 칸이 아니라 가장 큰 고윳값이다 |
| 파워 이터레이션이 늘 가장 큰 양의 고윳값을 찾는다고 봄 | 2 | 크기가 가장 큰 고윳값을 찾는다. 음의 고윳값이 더 크면 H + cI 로 옮겨 찾는다 |
| 샤프니스는 헤시안이 있으니 매 스텝 재면 된다고 봄 | 3 | 곱 하나가 그래디언트 몇 번 값이라 자주 재면 학습이 몇 배 느려진다. 띄엄띄엄, 앞 방향에서 이어 잰다 |
| 샤프니스는 학습할수록 커져 끝없이 오른다고 봄 | 4 | 2/η 에 닿으면 손실이 튀면서 샤프니스가 내려앉아 선 근처에 머문다 |
| 샤프니스가 2/η 를 넘으면 손실이 2차 함수처럼 끝없이 불어난다고 봄 | 5 | 2차 어림은 샤프니스가 그대로라고 놓는다. 실제로는 튀는 동안 샤프니스가 낮은 곳으로 옮겨 가 손실이 돌아온다 |
| 워밍업의 위험한 스텝을 처음 샤프니스와 학습률만으로 계산함 | 6 | 샤프니스도 혼자 차오른다. 워밍업이 너무 짧으면 샤프니스가 내려오는 2/η 를 따라오지 못해 터진다 |
| 손실의 바닥이 낮으면 언제나 더 좋은 답이라고 봄 | 7 | 파라미터가 Δ만큼 어긋날 수 있으면 날카로운 바닥은 손해가 커진다. Δ가 클수록 평평한 바닥이 낫다 |
| 샤프니스가 가장 작은 바닥이 가장 좋은 함수라고 봄 | 8 | ReLU 신경망은 함수를 그대로 두고 샤프니스만 마음대로 바꿀 수 있다. 샤프니스는 파라미터를 적는 방식에 따라 바뀐다 |
| 같은 에포크로 미니배치 크기별 샤프니스를 견줌 | 9 | 큰 미니배치는 스텝 수가 적어 아직 덜 날카로워졌을 뿐이다. 손실이 비슷한 곳끼리 견준다 |
| 지금 자리의 손실만으로 고름 | 10 | 둘레의 가장 나쁜 손실로 고르면 평평한 쪽이 이긴다. SAM 의 생각이다 |
| SAM 의 2차 어림을 반지름에 상관없이 믿음 | 11 | 반지름이 바닥의 폭에 가까우면 2차 어림이 크게 틀린다. 바닥에서는 그래디언트 방향이 정해지지 않는다 |
| 같은 스텝 수로 SAM 과 경사하강의 학습 손실을 비교해 좋고 나쁨을 가름 | 12 | SAM 은 스텝마다 그래디언트를 두 번 구하고, 학습 손실을 내주고 평평함을 산다. 처음 보는 데이터로 판단한다 |
요약
이 장에서 한 일을 정리해 보자. 학습률의 상한 2/L의 L은 「어디서나의 곡률 상한」이었고, 신경망에는 그런 상한이 없다. 대신 지금 자리의 헤시안이 가진 가장 큰 고윳값, 곧 샤프니스를 잴 수 있다. 헤시안 전체는 파라미터 수의 제곱만큼 칸이 있어 만들 수 없지만, 펄머터(1994)의 헤시안-벡터 곱은 그래디언트 몇 번 값으로 Hv를 정확히 준다. 이 곱으로 파워 이터레이션을 하면 작은 신경망(파라미터 1185개)에서 여덟 번 만에 샤프니스 10.07을 1% 안으로 찾는다. 그 신경망의 고윳값은 거의 모두 0 근처에 몰리고, 1보다 큰 것은 셋뿐이었다.
학습률을 고정하고 학습하면 샤프니스는 줄지 않고 오르는데, 2/η보다 작은 동안에는 손실이 스텝마다 준다. 샤프니스가 2/η에 닿으면 그릇에서처럼 터지는 대신 그 선에 붙어 머물고, 손실은 짧게는 오르내리며 길게는 내려간다. 코언과 동료들(2021)이 안정성의 가장자리라 부른 모습이다. 붙어 있는 동안 샤프니스가 2/η를 넘으면 손실이 튀고, 튀는 동안 파라미터가 샤프니스가 낮은 곳으로 옮겨 가 다시 내려온다. 처음 샤프니스가 이미 2/η보다 크면 손실이 치솟았다 내려오는 투석기 국면이 생기고, 학습률 워밍업은 샤프니스가 내려오는 2/η 선을 따라올 시간을 준다.
경사하강은 샤프니스가 2/η보다 큰 바닥에 머물 수 없으므로 학습률이 바닥을 고른다. 좁고 깊은 골짜기와 넓고 얕은 골짜기가 함께 있으면, 학습률을 좁은 골짜기의 2/곡률보다 키우는 순간 그 바닥에는 멈추지 못하고, 더 키우면 넓은 골짜기로 넘어간다. 둘레가 넓고 완만한 바닥을 평평한 극소라 한다. 호흐라이터와 슈미트후버(1997)는 평평한 극소를 적은 비트로 적을 수 있는 단순한 신경망으로 보았고, 케스카르와 동료들(2017)은 큰 미니배치가 날카로운 바닥으로 간다고 보고했다. 딘과 동료들(2017)은 ReLU 신경망이 함수를 그대로 두고 샤프니스만 바꿀 수 있음을 보여 샤프니스 하나로 일반화를 설명하는 데 반론을 냈다.
SAM(포레 외, 2021)은 둘레 반지름 ρ 안의 가장 큰 손실을 줄인다. 그래디언트 쪽으로 ρ만큼 올라가 본 자리의 그래디언트로 걸으면, 2차 어림에서 ½ρ²·(샤프니스)가 목표에 들어가 샤프니스를 깎는 쪽으로 흐른다. 극소가 이어진 골짜기에서 경사하강은 처음 닿은 바닥에 서지만 SAM은 골짜기를 따라 평평한 쪽으로 간다. 대가는 스텝마다 두 번의 그래디언트 계산과 조금 높은 학습 손실이다.
막힌 곳
이 장은 샤프니스가 왜 저절로 차오르는지를 설명하지 않았다. 학습률 여섯 가지 모두에서 샤프니스는 오르기만 했고, 코언과 동료들도 이것을 관찰로 보고하며 이론을 요청했다. 손실이 내려가는 길이 왜 하필 점점 더 휜 쪽으로 나 있을까?
평평한 바닥이 처음 보는 데이터에 더 잘 맞는가라는 물음도 남았다. 호흐라이터와 슈미트후버, 케스카르와 동료들, 포레와 동료들은 그렇다는 쪽의 증거를 냈고, 딘과 동료들은 샤프니스가 파라미터를 적는 방식에 따라 바뀐다는 반례를 냈다. 경사하강이 여러 바닥 가운데 무엇을 고르는지와 그 고름이 처음 보는 데이터에서의 성능으로 어떻게 이어지는지는 이 장의 도구만으로는 판정할 수 없다.
그리고 이 장의 모든 계산은 학습률 하나를 모든 방향에 똑같이 쓰는 경사하강이었다. 파라미터마다 스텝을 다르게 늘이고 줄이는 옵티마이저라면 「2/η」 선은 어디에 그어야 할까? 가장 크게 휜 방향의 곡률을 스텝마다 따로 나누어 준다면, 샤프니스라는 벼랑은 사라질까, 다른 모습으로 남을까?