Kim Seon Deok
딥러닝 학습방법론 본문
데이터셋 구성
Training Set : 실제 학습에 사용되는 데이터
Validation Set : 학습 중간 중간에 사용되는 평가 데이터
Test Set : 학습과정에서는 절대 사용하지 않는 데이터. 학습 도중 네트워크가 볼 수 없는 데이터, 실제 사용되는 상황에서 마주하는 데이터
Weight Initalization
-딥러닝 학습의 목표는 weight의 값을 찾는 것-weight의 가장 초깃값을 생각해 보았을때 그 시작이 어떠한 값이라 했을 때 반드시 좋은 weight에 도달할 수 있는 것은 아니다. >> 시작 값이 좋아야 학습도 잘 된다.-특정 분포를 정해두고 해당 분포에서 sampling한 값들ㅇ르 weight의 초깃값으로 설정-좋은 분포를 설정하는 것이 좋은 시작값을 갖는다. >> 보통은 정규분포를 사용. 평균은 0, 표준편차의 값을 변경
-sampling을 하기 때문에 기본적으로 딥러닝 학습에는 random성이 존재
-같은 상황에서도 다른 결과가 나옴
모든 값을 0으로 설정한다면?
같은 layer에 같은 연산이 반복되며 진행되는 구조이다. >> 이후의 층에 전달되는 영향이 계속 같게 되므로 변동성이 너무 낮아진다.
Xavier Initialize
표준편차가 1/√n인 정규분포로 초기화(n : 앞층 노드수)
activation function이 sigmoid일 때 사용n = √2/(n in + n out)
He Initialize
표준편차가 2/√n인 정규분포로 초기화(n : 앞층 노드수)
activation function이 ReLU일 때 사용
overfitting
-딥러닝 모델이 겪는 일반적이지만 중요한 문제점
-모델이 학습(Train)데이터에 '지나치게' 집중하면서 실제로 테스트(Test) 데이터에서 결과가 더 안좋게 나오는 현상
-Train 데이터로 학습하고 Test데이터에서 성능이 좋은 것을 Generalize(일반화)가 잘 되었다고 얘기함.
overfitting 극복방법
1.Early Stopping
-최적 포인트에서 학습과정을 미리(Early) 멈추는(Stopping) 기법 >> 학습 도중 성능이 더 안좋아질 수 있기 때문에 학습은 하되, 매 시점마다 accuracy 측정
2.Dropout
-네트워크의 일부를 생략>> perceptron 자체를 죽이지 않으면서 weight를 죽임 >> perceptron으로 오는 신호를 꺼버림
- 특정 weight 전체를 지우는 게 아니라 학습이 되는 weight들을 중간중간 바꿔가면서 일부는 더 학습되고 일부는 덜 학습되는 방식 >> 모든 데이터가 과하게 학습되는 것을 방지!! + 서로 다른 구조의 네트워크들이 서로 협력해 문제를 푸는 것처럼 행동
-학습 중 Forward 과정에서 일부 perceptron을 특정 확률(p)로 사용 / 미사용 함 >대체로 p : 0.5
-평가과정에서는 Dropout을 사용하지 않고도 모든 perceptron을 사용
-기대효과
- overfitting 방지
-정해진 데이터셋으로 한번 학습하는 과정으로 동일한 네트워크를 이용해 여러 네트워크를 이용한 최적 네트워크 탐 색 과정의 효과를 얻을 수 있음
- 연산 시간이 줄어듦
3.Weight Decay(가중치 감쇠) & 4.Weight Restriction(가중치 제한)
overfitting된 weight들은 보통 그 크기가 매우 크다 >> 그 weight들의 값을 너무 키우지 않는 방법으로 overfitting 방지
5.학습 데이터 양 증가 >> Data Augmentation
-데이터가 늘어나는 효과
-데이터의 특징 학습에 도움
-데이터가 작아 늘어나는 Overffiting의 위험을 줄여줌
'AI > Deep Learning' 카테고리의 다른 글
3. 딥러닝 학습 방법론 (0) | 2022.01.21 |
---|---|
1. Back propagation (0) | 2022.01.21 |
딥러닝 기초이론 학습의 과정-2 : Loss and Gradient (0) | 2021.11.23 |
1. 딥러닝 학습 기초 (0) | 2021.11.22 |
LSTM (0) | 2021.11.20 |