AI 공부 도전기

[Edwith] '부스트캠프 AI Tech 3기 Pre-Course' - '인공지능 본격 탐구: 딥러닝 기초' 정리

 

다른 파트 정리를 보고 싶다면 아래 링크를 확인하세요

1) 인공지능(AI) 맛보기 : https://aigong.tistory.com/334

2) 꼭 알아야 하는 파이썬 기초 지식 : https://aigong.tistory.com/344

3) 핵심만 담은 AI를 위한 수학 지식 : https://aigong.tistory.com/345

4) 인공지능 본격 탐구: 딥러닝 기초 : https://aigong.tistory.com/346

 

     

 

 

개인적인 호기심때문에 본 강좌를 수강하게 되었습니다. 해당 코스의 boostcourse를 보며 제가 중요하다고 판단된 내용 중 일부만 간단히 정리하는 공간으로 마련하였습니다. 이 내용으로 공부를 하신다기보다 그냥 이런게 있구나 정도로만 판단하시면 좋겠고 모든 저작권은 Edwith / boostcourse / boostcamp 그리고 강연해주신 분들(최성준, 임성빈, 최성철)께 있습니다.

 

https://www.boostcourse.org/onlyboostcampaitech3

 

[부스트캠프 AI Tech 3기] Pre-Course

부스트코스 무료 강의

www.boostcourse.org

 

 

인공지능 본격 탐구: 딥러닝 기초

 

 

1) 뉴럴 네트워크 - MLP (Multi-Layer Perceptron)

 

생물학적 뉴런을 모방하는 방향으로 초기 발전이 이뤄짐.

그러나 꼭 그렇다고 하여 잘 되는 이유가 모방했기 때문이라고 단정하기에는 어려움이 있음.

가령 예를 들어 날고 싶다는 욕망과 함께 비행기가 발전되어온 과정을 살펴봤을 때 꼭 비행기가 새를 모방이 되었기 때문에 계속 발전되어왔기보다 다른 방식으로 변형이 이뤄지는 틀을 제공했다의 측면이 맞을 듯

즉, 시작은 모방일지라도 지금은 다른 것 같다.

Clément Ader's Avion III (1897) -> Write Brothers (1903) -> F-22 Raptor

 

선형회귀 : 가장 간단한 Linear Neural Networks 

 

 

미분을 통해 loss의 최소화를 구하는 모델의 최적화를 진행. Backpropagation

W와 b에 대해 반복적으로 update하여 최적의 w와 b를 구함. 단, update stepsize는 작게 설정해야 함.

 

표현력을 극대화하기 위해 nonlinearity가 있는 activation function이 필요

ReLU, Sigmoid, Tanh

모델마다 필요한 activation이 다 다름.

 

 

여러 layer를 쌓아 모델을 구성

  

2) Optimization

 

편미분 값을 토대로 Loss를 최적화 시키는 방법 Gradient Descent

 

 

최적화의 중요한 개념

 

Generalization : 보지 않은 데이터에 대해 얼마나 잘 행동하는지를 확인하는 것
Under-fitting vs overfitting : 과소적합 vs 과적합


Cross validation


Bias-variance tradeoff

 

Variance : 입력을 넣었을 때 출력이 얼마나 일관적인지를 가르키는 것

큰 Variance - overfitting될 가능성이 높음.

 

Bias : 평균적으로 봤을 때 True target에 가까울 때를 이야기함.

큰 Bias는 mean으로부터 많이 벗어남

 

Bias와 Variance를 동시에 줄일 수 있는 것은 어렵다. 


Bootstrapping

 

일부의 데이터만 램덤으로 모델링 예측 값 측정 / metric에서도 마찬가지


Bagging and boosting



Bagging (Bootstrapping aggreagating)

학습 데이터를 여러 개 만들어 다수의 모델의 독립적 결과를 평균을 내는 방식

Ensemble의 한 종류

 

Boosting

weak learner 모델들을 sequential하게 만들어 하나의 강한 모델을 구성함.

 

Gradient Descent Methods

Stochastic gradient descent: 랜덤한 단일 샘플에 대한 gradient를 업데이트

Mini-batch gradient descent: 데이터의 부분 집합에 대한 gradient를 업데이트

Batch gradient descent: 전체 데이터로부터 gradient를 업데이트

 

 

large batch: sharp minimizer

small batch: flat minimizer

batch size를 작게 쓰는 것이 일반적으로 성능이 더 좋다고 알려져 있음

일반적으로 flat minimum이 선호

test시 오차가 적음.

sharp에서는 조금만 움직여도 오차가 큼.

 

 

Gradient Descent Methods

 

1) Stochastic Gradient descent

2) Momentum

3) Nesterov Accelerate

 

 

4) Adagrad

 

많이 변화한 것은 적게 변화, 적게 변화한 것은 많이 변화하도록 하여 local minimum으로부터 빠져나오도록 함

G가 너무 커지면 분모가 너무 커져 학습이 진행되지 않음.

 

 

5) Adadelta

 

많이 활용하지 않음.

 

6) RMSprop

 

제프리 힌턴이 강의에서 잘 되는 방안을 제시했고 실제로도 잘 되었음.

 

7) Adam

 

 

 

이전의 momentum 정보를 섞고, gradient EMA를 업데이트하여 정보를 조종

 

다른 optimization 방안 github

https://github.com/LiyuanLucasLiu/RAdam

 

GitHub - LiyuanLucasLiu/RAdam: On the Variance of the Adaptive Learning Rate and Beyond

On the Variance of the Adaptive Learning Rate and Beyond - GitHub - LiyuanLucasLiu/RAdam: On the Variance of the Adaptive Learning Rate and Beyond

github.com

https://github.com/clovaai/AdamP

 

GitHub - clovaai/AdamP: AdamP: Slowing Down the Slowdown for Momentum Optimizers on Scale-invariant Weights (ICLR 2021)

AdamP: Slowing Down the Slowdown for Momentum Optimizers on Scale-invariant Weights (ICLR 2021) - GitHub - clovaai/AdamP: AdamP: Slowing Down the Slowdown for Momentum Optimizers on Scale-invariant...

github.com

 

 

Regularization

1) Early stopping

valiation error가 가장 낮아지는 순간에 중지

 

2) Parameter norm penalty

 

NN 함수 속 부드러운 함수가 되어지도록 하기 위해 penalty를 사용

 

3) Data augmentation

 

데이터가 많을 때 잘 되기 때문에 데이터 증강을 위한 방안을 고려해야 함.

Label preserving augmentation

회전, 크기 증강/축소, 뒤집기

 

4) Noise robustness

 

입력 데이터에 노이즈를 입력 또는 weight에 넣음.

 

5) Label smoothing

 

데이터 2개를 뽑아 섞는 것

 decision boundary를 부드럽게 해줌.

 

Label 또는 이미지를 섞어 버림.

성능이 향상됨.

 

6) Dropout

 

 neural network를 섞는 효과 

 

7) Batch normalization

 

 적용하고자 하는 통계적 정규화를 시키는 것.

batch norm을 사용함으로써 일반적으로는 성능이 향상됨

 

3) CNN-Convolution은 무엇인가

 

filter마다 다양한 결과를 얻어낼 수 있음

CNN은 conv layer, pooling layer, fully connected layer로 구성됨

 

parameter 수가 늘어날수록 generalization이 하락함.

 

stride, padding

 3x3x128 filter가 64개 존재 -> parameter 개수를 세는 방법

 

파라미터의 숫자를 줄이기 위한 기법

 

4) Sequential Models - RNN

 

주어지는 입력이 sequence input

대다수의 데이터는 sequential data

 

과거의 한정적 데이터만 보는 것 Autoregressive model

Markov model (first-order autoregressive model)

 

generative model에서 활용

그러나 과거의 정보를 완전히 포함하고 있지 못하다는 단점이 존재

이를 해결하기 위해 hidden state에 요약된 과거의 정보를 포함하는 Latent autoregressive model이 제안

 

 

RNN

short-term dependences 너무 먼 과거의 정보를 기억하고 있지 못하다는 단점이 존재

long-term dependences 

 

 

Previous cell state에서 내용을 잊지않도록 과거의 정보를 요약하여 저장

 

 

Forget Gate: 0~1 값을 가지는 $f_t$, 버릴 것을 정함

Input gate: cell state 중에 어떤 정보를 올릴 지를 결정

 

 

2개의 gate만을 활용

hidden state가 곧 output

 

현실은 transformer

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading