위키득계정 ↗
기술

셰이크 셰이크 정규화

셰이크 셰이크 정규화기술
영문명
Shake-Shake regularization
적용 구조
여러 병렬 잔차 가지
순방향
무작위 계수의 아핀 결합
역방향
새 계수로 기울기 흐름 조절
셰이크 셰이크 정규화는 여러 잔차 가지를 가진 신경망에서 가지 출력을 무작위 계수로 결합하고 역방향에도 다른 계수를 사용하는 학습 방법이다. 가지들 사이의 결합을 흔들어 과적합을 줄이는 것을 목표로 한다.

두 잔차 가지의 결합

두 가지 F₁,F₂와 항등 연결이 있다면 x+αF₁(x)+(1−α)F₂(x)처럼 계산한다. 학습 중 α를 무작위로 정한다. α가 0이나 1일 때만 한 가지를 선택하는 것이 아니라 그 사이의 값으로 두 가지를 섞을 수 있다.

순방향과 다른 역방향

대표적인 Shake-Shake 방식은 역전파에 사용할 계수를 순방향과 독립적으로 새로 뽑는다. 순방향 α를 그대로 미분하는 계산과 다르므로 일반 자동미분만으로 같은 동작이 나오는 것은 아니다. 학습 시 기울기 흐름을 의도적으로 변형한 규칙이라는 점을 구별한다.

스칼라 예제로 비교하기

x=1이고 두 가지 출력이 2와 6이라고 하자. 순방향 α=0.25이면 출력은 1+0.25×2+0.75×6=6이다. 역방향 계수를 β=0.8로 새로 정하고 상류 기울기가 1이라면 두 가지 출력에 전달할 계수는 0.8과 0.2다. 순방향 식의 정확한 미분 계수 0.25와 0.75를 쓰는 것과 차이가 있다.

평가 단계와 적용 범위

평가할 때는 대표적으로 두 가지를 0.5씩 결합해 무작위성을 제거한다. 계수를 표본마다 정할지 미니배치가 공유할지에 따라 학습 동작이 달라진다. 모든 구조에 그대로 넣어 같은 효과를 기대할 수는 없으며 무작위 가지 생략인 확률적 깊이와도 연산을 구별한다.

관련 문서

확률적 깊이 / 잔차 연결 / 과적합 / 역전파 / 드롭아웃 / 신경망