이 페이지는 Fast campus 김기현 강사님의 처음부터 시작하는 딥러닝 유치원 Online을 수강하며 정리한 내용입니다.
part10. Deep learning
- Deep Neural Networks
- Linear function을 많이 쌓는다고 해서, 비선형 함수를 모사 할 수 있지 않다.
- Non Linear function을 쌓아야만 Non Linear함수를 모사 할 수 있다. (activation function을 Non Linear로 대체해서 모사 할 수 있다.)
- activation function : sigmoid, TanH, ReLu, leaky ReLu
- Non Linear function, : 이미지 텍스트, 음성 등
- Deep Neural 은 깊이와 너비에 따라 Capacitry가 달라지며, 깊을수록 많은 파라메터를 필요로 하고, 더욱 대상함수를 모사를 잘 하게 된다.
- 학습은 Gradient descent를 통해서 진행
- Back-propagation
- chain rule을 통해서(라이프니치 방식), 직접 미분하지 않고 앞단의 결과를 재활용 할수 있다.
- chain rule을 사용하지 않으면, 실제 함수를 전개해서 미분해서 각 함수를 C++로 구현해야함.
- 앞단의 결과를 이용 뒤로 되먹임하는것은 뒤로 이동하는것처럼 보이기때문에 back propagation이라고함.
- 수식 back-propagation
- Gradient vanishing
- 1보다 작은 수를 여러번 곱하면 결국 0에 수렴한다.
- sigmoid는 미분하면, 최대값 0.3, TanH는 최대값 1 이둘을 이용한 DNN은 깊이가 깊어 질수록 0에 수렴하게되어, 입력값에 가까운 값일수록 0에 가까워짐으로써 학습 속도가 굉장히 느려지게 된다.
- ReLu
- Gradient Vanishing을 방지 하기위해서, max(0,x) 함수로 미분값이 0보다 작으면 0, 0보다 크면 1이 나오는 값을 갖게하여, 학습속도 감소를 막을수 있다.
- 0이하 값에서는 ReLu의 값은 0이기때문에, 0이하 값에 대해 표현을 위해서, max(alpha, x*x) 0≤ alpha ≤1 인값을 주어 방지 하며 이를 Leaky ReLu라고 함
- ReLu vs Leaky ReLu의 선택은 hyper parameter에 해당하며 모델에 따라 다르다.
part 11.Stochasitc gradient Descent
-
stochastic gradient decent (SGD)
- N개가 수십만과 같이 많은 parameter에 의한 computing power에 무리가 갈수 있을때, 빠르게 검토를 위해서 K sample을 하게됨
- 1, 2... N/k 차 는 앞서 샘플링 한 대상에 대해서 gradient를 구하지 않음

- 1 Epoch : k sample 숫자, 한번 random sampling하는 크기
- 1 iteration : 1 epoch으로 N개의 모수(minibatch)를 반복하는 횟수 N/k
- for epoch_index in range~~~
- shuffling
- for iteration_index in range ~~~
- 1epoch 당 파라미터 업데이터 횟수는 늘어난다.(back propagation의 시간이 늘어난다.)
- batch size가 작아 질수록 local minima를 탈출할 가능성도 높아질수 있다.
- GPU를 사용한 병렬 연산을 통해서, 큰 batch size를 가져가면 시간이 줄어 들수 있다. 2의 배수로 batch 사이즈를 선택(memory size고려)
-
intuition SGD

-
minibatch의 크기에 따른 특징
- batch size가 커지면, 한번에 계산해야할 양이 늘어난다, 반복 횟수가 줄어 들어 빠르게 수렴할수 있다. 하지만 한번 계산하는 시간이 늘어날수 있다. gradient decentd의 원래기울기와 상당히 비슷한 값을 갖는다.
- batch size가 작아지면, 한번에 계산해야할 양이 줄어들지만 반복횟수가 늘어난다. local minima를 벗어날수 있을수도 있지만, gradient가 변동이 심해져서 수렴이 어려울수도 있다.

12. 딥러닝 학습을 쉽게 하는 방법?
-
Hyper parameter란
- Network Depth & Width : capacity
- Learning Rate : 작은 값은 수렴시간이 오래걸리고, 클수록 발산할 가능성이 높아짐
- activation function : ReLu vs Leaky ReLu etc.
- Initialization 방법 : weight parameter의 초기화 방법
- Epoch, minibatch 크기 :
- Hyper parameter는 경험을 통해서, 직관적으로 접근하는것이 좋다.
-
효율적인 연구진행방법
- baseline을 설정하고, 이해하기쉬운 모델부터 바로 확인할수 있도록 구현한다.

-
Momentum, Adaptive LR & Adam optimizer
- 학습초기에는 큰 LR을 후반에는 작은 LR로 변경 최적화
- Momentum + Adaptive LR = Adam optimizer
- 최신 optimizer추세는 Adam과 SGD를 선호
Part13. 딥러닝 모델의 실험 과정
-
실험과정 소개
- 정성평가, 정량 평가 : 정량평가를 먼저 머신작업후, 정성평가로 사람이 재평가하게 한다
-
Overfitting
- 학습의 목표는 training error를 최소화하는 것이 아닌(bias 와 noise까지 학습하면 안됨), unseen data에 대해서 prediction을 높이는 것이다.

- Early stopping : Validation loss가 일정기간 동안 개선이 없을때 학습종료함
- 6:2:2의 비율로 train/ validation / test set을 임의 분활, train 학습, validation, hyperparameter를 학습, test set은 결과로 모델(알고리즘)을 결정
Part14.딥러닝 입문 (분류)
-
Deep binary classification
- Logistic regression 은 Linear regression에서 마지막에 sigmoid 함수를 넣고, Binary cross entropy loss로 학습을 시키는 것과 동일했다.
- DNN이라고해서 다름은 없고, depth만 깊어진것으로 마지막에 동일하게 sigmoid와 BCELoss를 사용하면 됨 즉, 기존 DNN regression를 재사용 할 수 있다.
-
Precision & Recall
- binary classification 은 0과 1사이의 값으로 인해서 하나의 결정에 대한 확률문제로 접근할 수 있다. 이에 Ture vs False에 대한 판변 기준 값 Threshold를 어떻게 설정하냐에 따라서 결과의 중요도가 달라질수 있다. ex) 원자력 발전소의 누출 감지 시스템, True : 누출, False: 정상⇒ 누출은 꼭 판별해야하므로 False쪽으로 기준값이 많이 치우쳐 하나의 누출이라도 검출할 확률을 높여야 한다.


AUROC 는 두 클래스의 분포간의 분리정도를 나타내는 지표로써, False positive rate 대비 True positive rate이 1에 빠르게 수렴할수록 Threshold에 따른 구분이 명확함을 나타낸다.
-
Classification
- Regression vs Classification | regression은 real value로서 수치의 값에 해당한다. (예, 급여), Classification은 유한한 한정적인 명목적 분류대상이다. (예, 단어, 기호, 계층 등)
- 다항의 분류를 위해서 Softmax 함수로 sigmoid를 대체하며, BCEloss를 CE Loss로 변경합니다.
-
Softmax & Cross Entropy Loss
- Softmax & Cross Entropy Loss vs Log Softmax & NLL Loss을 사용할수 있다. Softmax와 Log Softmax는 sigmoid에 해당하는 함수이며, CE NLL은 Loss 계산을 위함이다.
- one-hot vector를 마지막에 넣어서 분류의 선택을 하게한다.
-
Confusion Matrix
- 분류에서는 전체의 정확도보다도 각 분류 항목별 정확도를 봐야한다.
Part15. 딥러닝의 성능개선을 위한 Regularizations
- Regularization이란
- overfitting이란, Training error가 generalization error에 비해 현격히 낮아지는 현상이다. overfitting의 단점은 Bias와 Noise까지 학습함으로 인해서 수식의 일반화를 저해하게 된다. 이에 Regularizaation을 통하여 학습역량을 감소 시킴으로써 과 학습을 미연에 방지시킨다. 단점으로 학습하는데까지 시간이 오래걸린다.
- 데이터를 통한 방법은 Data agumentation 으로 Noise injection 이 있다.
- Loss 함수를 통한 방법으로는 Weight Decay 방법이 있다.
- Neural Network Layer를 통해서는 Dropout 과 Batch Normalization이 있다.
- 학습 또는 추론 방식을 통해서는 Early Stopping 또는 Bagging & Ensemble이 있다.
- Weight Decay
- Data argumentation
- Dropout
- Batch normalization