Kim Seon Deok

pytorch chapter3 본문

AI/Pytorch

pytorch chapter3

seondeok 2021. 11. 22. 23:03

딥러닝이란?

신경망이 발전한 모델

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
Comments