Kim Seon Deok
pytorch chapter3 본문
딥러닝이란?
신경망이 발전한 모델
2개 이상의 hidden layer를 지니고 있는 다층 신경망
Graphical Representation Learning
딥러닝의 발전
과적합과 Gradient Vanishing을 완화시킬 수 있는 알고리즘이 효과를 보임
Graphics processing unit을 신경망의 연산에 사용할 수 있게 되면서 학습 속도를 높일 수 있게 됌
Dropout
신경망의 학습과정 중 Layer의 노드를 랜덤하게 Drop함으로써 Generalization효과를 가져오게 하는 테크닉
Weight Matrix에 랜덤하게 일부 column에 0을 집어넣어 연산
>> Dropout을 적용하지 않은 신경망보다 Test error가 낮다
Activation 함수
ReLU함수(Rectified Linear Unit)
입력값이 0 이상이면 이 값을 그대로 출력하고 0 이하이면 0으로 출력하는 함수
sigmoid함수보다 좋은 점
미분할 때 입력값이 0 이상인 부분은 기울기가 1, 입력값이 0 이하인 부분은 기울기가 0이 된다.
>>>Back Propagation과정 중 곱해지는 Activation 미분값이 0 또는 1이 되므로 아예 없애거나 완전히 살림
Layer가 깊어져도 Gradient Vanishing이 일어나는 것을 완화시키며 Layer를 깊게 쌓아 복잡한 모형을 만들 수 있음
학습 시작부터 높은 성능을 유지하며 학습이 진행됄수록 점점 성능이 높아진다.
Internal Covatiance Shift : 각 Layer마다 Input분포가 달라짐에 따라 학습 속도가 느려지는 현상
Batch Normalization : Internal Covariance Shift를 방지하기 위한 기법. Layer의 Input분포를 정규화해 학습속도를 빠르게 하겠다는 것
h : Input분포
Beta : 분포를 shift시킴
Gamma : 분포를 Scaling시킴
>>>BN을 적용했을 때 Test Loss는 감소하며, Test Accuracy값이 높아진 것을 확인했으며 이를통해 MLP 모델의 성능이 향상됐다고 판단할 수 있다.
Initialization
신경망은 처음에 Weight를 랜덤하게 초기화하고 Loss가 최소화되는 부분을 찾아간다.
신경망을 어떻게 초기화하느냐에 따라 학습속도가 달라질 수 있다.
LeCun Initialization
LeCun Normal Initialization
LeCun Uniform Initialization
Xavier Initialization
Xavier Normal Initialization
Xavier Uniform Initialization
He Initialization
He Normal Initialization
He Uniform Initialization
Optimizer
Stochastic Gradient Descent(SGD) : Batch 단위로 Propagation 하는 과정 >> Optimizer
1. Momentum : 미분을 통한 Gradient방향으로 가되, 일종의 관성을 추가하는 개념
Batch 단위로 Back Propagation하기 때문에 일직선으로 찾아가지 않는다.
최적의 장소로 더빠르게 수렴 + 최적 해가 아닌 지역 해(Local Minimum)를 지나칠 수도 있다
2. Nesterov Accelerated Gradient(NAG) : Momentum으로 이동한 후 Gradient를 구해 이동하는 방식
3. Adaptive Gradient(Adagrad) : 가보지 않은 곳은 많이 움지깅고 가본 곳은 조금씩 움직이자
4. RMSprop : Adagrad의 단점을 보완. Gt가 무한히 커지지 않도록 지수평균을 계산하여 이용
5. Adaptive Delta(Adadelta) : Adagrad의 단점을 보완. Gradient의 양이 너무 적어지면 움직임이 멈추는데(Bad local optimum.학습이 일어나지 않음), 이를 방지
6. Adaptive Moment Estimation(Adam) : RMSProp + Momentum 현재 가장 많이 사용하는 딥러닝 모델
7. Rectified Adam optimizer(RAdam) : Adaptive Learning Rate Term의 분산을 교정(Recify)하는 optimizer
'AI > Pytorch' 카테고리의 다른 글
pytorch chapter2-2인공신경망 (0) | 2021.11.20 |
---|---|
chapter2 pytorch2. Ai Background-2 (0) | 2021.11.20 |
chapter2 pytorch2. Ai Background-1 (0) | 2021.11.18 |
chapter1 pytorch 기초 (0) | 2021.11.11 |