인공지능/공부

인공지능 Initialization, Regularization, Transfer Learning

이게될까 2023. 12. 16. 22:52
728x90
728x90

Initialization

왼쪽은 minimun을 찾는데 오래 걸리고 오른쪽은 금방이다.

빠르게, 그리고 global minimun을 찾기 위해 Initialization은 중요하다. 위 사진만 봐도 금방 끝날 학습은 바로 보인다.

vanishing Gradient

이전에도 나온 적 있는 그림이다. backpropagation을 하면서 gradient가 소실되는 것이다.

sigmoid와 tanh의 미분 그래프

vanishing gradient의 원인인 sigmoid와 tanh의 미분 브래프 이다. sigmoid는 미분하면 최대가 0.3이고, tanh는 1이고, 둘 다 양끝은 0이기 때문에 반복하다 보면 기울기 소실이 발생하는 것이다.

ReLU와 Leaky ReLU의 미분 그래프

그리하여 나온 것이 ReLU이다. 그래도 여기서도 0이하의 값들이 소실되는 문제가 발생한다.(dying ReLU)

Exploding gradient

기울기 폭주는 너무 큰 기울기 값이 들어갔을 때 발생한다. 이것은 학습이 불안정해 지도록 만들기 때문에 피해야 한다. 그래서 우리는 Gradient Clipping을 사용하여 임계값(THD)를 설정하여 THD를 넘지 못하도록 만든다. 그리하여 학습은 약간 느릴 수 있어도 안정적인 효과를 가져올 수 있게 된다.

초기에 너무 큰 값을 weight에 주게 되면 ReLU나 Leaky ReLU에선 Exploding gradient가 발생하고, sigmoid나 tanh에서는 vanishing gradient가 발생한다.

weight를 0으로 두면

모든 weight를 0으로 두면 input 빼고 모든 값들이 0이 되기 때문에 학습이 정상적으로 이루어 지지 않는다.

weight를 모두 같은 상수로 초기화

모두 같은 상수로 초기화 하면 결국 두개 다 동시에 같은 방향으로 학습하게 되고, 단일 노드랑 차이가 없게 된다.

Xavier Initialization

Xavier Initialization은 입력의 분산과 출력의 분산을 일치하게 맞춰준다. 그리하여 gradient가 네트위크를 통해 전파될 때 안정성을 유지하게 된다. Sigmoid에선 효과적이고 ReLU에선 효과적이지 않다. ReLU에서는 0 이하는 소실되기 때문.
이 방식에서는 네트워크가 깊어질수록 효과적으로 gradient 소실을 방지할 수 있다.

He Initialization

He는 Xavier와는 다르게 ReLU도 사용할 수 있다. He는 분산의 두배를 사용하여 음수 입력을 인한 정보 손실을 보안하기 위함이다. 즉 Xavier는 절반이 사라지면서 분산에 대한 정보가 많이 사라지지만 He는 절반이 사라지더라도 분산에 대한 정보가 많이 남아있게 된다.

728x90

Regularization

standardization과 normalization

이것도 결국 Gradient 소실을 막기 위한 것이다.

initialization은 파라미터의 값을 바꾼 것이라면 Regularization은 input 데이터를 바꾸는 것이다.

학습에 의한, 네트워크 레이어에 의한, 파라미터 업데이트에 의한 분산의 변화는 학습의 불안정성을 야기한다.

Batch Normalization

이건 input의 각각 minibatch마다 정규화를 시켜준다. 이 것은 학습 속도, gradient의 소실 및 폭증, 파라미터 초기화에 긍정적인 영향을 준다.

계산 과정

계산 과정이 이렇구나 정도만 알고 넘어가면 된다.

BN parameter

activation funcation의 사용 이유는 비선형성 추가이다. 좌우와 넓이를 파라미터를 통해 조절 할 수 있다. 그래서 ReLU에서도 사용이 가능하다. 위의 정규화 와는 살짝 다르고 이동 하는 것도 학습을 통해 구한다. 그리고 sample마다 각각 존재한다. 즉 정규화 후 이동하는 파라미터 2개를 데이터 마다 학습하는 것이다.

BN의 backpropagation

지금은 이런 것이 있다 하고 넘어가자. BN도 결국 backpropagation의 영향을 받는다. 그리고 beta가 있어서 bias가 필요 없어진다.

beta가 bias의 역할을 해준다.

Transfer Learning

이미 학습된 모델을 가져와서 파라미터도 그대로 사용하는 것이다. data가 부족할 때 빠른 학습, 높은 성과를 보인다. 높은 성능의 GPU가 필요하지 않고 저장과 로딩만 하면 된다.

728x90