최적화 - Regularization

MostlyFor·2023년 1월 6일
0

머신러닝 & 딥러닝

목록 보기
2/13

Regularization

generalization gap 을 줄이기 위해 사용

1.Early stopping

2.Parameter norm penalty

파라미터들이 너무 커지지 않게 파라미터들의 제곱을 더해서 패널티로 부여

3. Data Augmentation

데이터를 늘려서 deep learning의 이점을 극대화 할 수 있음.

4. Noise Robustness

노이즈를 train data, weight에 주게 되면 성능이 올라가는데 이유는 아직 밝혀지지 않음

5. Label Smoothing

개와 고양이를 분류하는 문제에서 개와 고양이의 사진을 섞고 레이블도 섞은 값을 주어서 학습시키면 차원에서 결정 평면이 좀 더 부드러워 져서 성능이 올라감

6. Dropout

신경망을 학습할 때 쓰이는 방법으로 신경망이 값을 도출할 때 다른 노드가 비슷한 역할을 하게 되는 Co-adaptation이 일어날 수 있다. 이렇게 되면 train data의 일부 특성에 대해 overfitting 문제가 발생할 수 있다.
각각의 노드가 독립적으로 역할을 하게 하기 위해 학습할 때 일부 노드들이 없는 상태로 하는 것을 dropout이라고 한다.

DropOut
https://www.youtube.com/watch?v=EnCKWmj9WVA

7. Batch Normalization

Batch normalization compute the empricial mean and variance independently for each dimension and normalize.

이는 신경망에서 각 노드별로 batch size만큼의 입력값을 평균과 분산을 구해 normalize해주고 다시 새로운 정규분포 모양을 만들어서 활성화함수를 통과시키는 방법이다. 모델의 일반화 효과가 증가되어 overfitting을 막아줄 수 있다. 자세한 동작은 아래와 같다.

총 데이터가 1000개고 mini-batch를 10개 라고 하고 신경망을 학습시키는 상황을 생각해보자.

1번 과정
xix_i : i번 째 데이터에서의 해당 노드 이전 노드들의 출력값 벡터
Xi=Wxi+bX_i = Wx_i + b : 해당 노드의 i번 째 데이터에서 들어오는 입력값
μB,σB\mu_B, \sigma_B : batch-size 10개에 해당하는 XiX_i에 대한 평균과 분산

2번 과정
위에서 구한 평균과 분산으로 입력값들 정규화
이러면 정규분포처럼 근사됨

3번 과정
0을 중심으로 모인 값들을 퍼트려 주는 역할.
만약 적절한 곳에 퍼트리지 않고 0으로만 모인다면 활성화 함수가 시그모이드 함수일 때, x=0에서는 선형함수와 비슷하므로 비선형효과를 내기 힘듦. 따라서 적절한 곳에 뿌려줘야 하는데 이를 위한 감마와 베타를 신경망 가중치와 함께 학습시킴

4번 과정
BN을 이용한 출력

Batch Normalization은 어떤 역할을 하는 걸까?
https://www.youtube.com/watch?v=m61OSJfxL0U

강의출처
https://www.boostcourse.org/ai111/lecture/1162943?isDesc=false

0개의 댓글