-
CS : Deep Learning (2/2)Computer Science/ML, DL 2021. 4. 10. 17:35728x90
** 순서는 무의미합니다.
이전 글 : kxmjhwn.tistory.com/263
deep-learning
머신 러닝의 한 분야
이름에서 알 수 있듯, 딥, 즉 여러 개의 층(layer)에서 점진적으로 학습하는 것
overfitting1.
학습 데이터에 너무 최적화를 해서, 오히려 실제 데이터와 차이가 많이 발생
딥 러닝은 학습 데이터가 많을 수록 더 정교한 모델을 만들 수 있지만, 학습 데이터에 많은 noise가 있다면 overfitting이 발생한다.
2.
overfitting 방지 방법- validation set을 활용하여 검증 과정에서 overfitting을 파악한다.
- 데이터의 양을 늘린다.
- 모델의 복잡도를 줄인다.
- regularization을 적용하여, 복잡한 모델을 간단하게 한다. 사용되지 않는 특성을 제거하는 등
- drop out을 통해, 신경망의 일부를 사용하지 않는다.
fine tuning
1.
기존에 학습되어 있는 모델을 기반으로 새로운 목적에 맞게 변형하는 것
기존의 weight를 활용하여 학습을 업데이트 하는 것
2.
fine tuning을 번역하자면 '미세 조정'이다.
즉, pre-trained model에 새로운 dataset을 넣어 model의 전체 parameter를 업데이트하는 것이다.
3.
이러한 업데이트 과정에서, parameter들을 완전히 바꿔버리기 때문에 over fitting 등의 문제가 생길 수 있다.
때문에, 말 그대로 '미세'하게 parameter를 조정하는 작업을 해주어야 한다.
seed value
딥 러닝에는 '난수' 개념이 많이 활용되는데, 컴퓨터에 '시작 숫자'를 입력하고 난수를 생성하면, 컴퓨터는 '시작 숫자'를 기준으로 알고리즘을 적용해 난수를 생성한다. 이 때 '시작 숫자'를 seed라고 한다.
loss
f1 : 4 = 2a + b
f2 : 6 = a + 4b
위의 두 식이 있을 때, 컴퓨터는 a와 b에 모든 수를 대입해보고 결과를 비교하는 방식으로 답을 찾아간다.
이 때, 대입 결과와 실제 정답 간의 차이를 loss라고 한다.
gradient
텐서 연산의 변화율
텐서를 input으로 받는 함수에 '변화율' 개념을 확장시킨 것
weight (가중치)
new_weight(갱신 가중치) = weight(가중치) - learning rate(학습율) * gradient(변화율)
신경망의 전형적인 학습 과정
- 학습 가능한 매개변수(또는 가중치(weight))를 가지는 신경망을 정의한다.
- 데이터 셋(data set)의 입력을 반복한다.
- 입력을 신경망에서 처리한다. (foreward)
- 손실(loss)을 계산한다.
- 변화도(gradient)를 신경망의 매개변수들에 역으로 전파한다. (backward)
- 신경망의 가중치를 갱신한다.
mAP (mean Average Precision)
multiple object detection 알고리즘에 대한 성능을 1개의 scalar value로 표현한 것
Train, Test, Validation Dataset
** 참고 블로그 URL : kevinthegrey.tistory.com/136
0. Train dataset : Validation datset : Test dataset = 6 : 2 : 2
1. Train dataset
- 모델을 학습하기 위한 dataset
- 모델을 학습하는 데에는 오직, 유일하게, Train dataset만 사용된다.
2. Test dataset
- 학습에 전혀 관여하지 않고, 오직 '최종 모델의 성능'을 평가하는데에 사용된다.
3. Validation dataset
- 학습 과정에 '사용'되지는 않고 '관여'하며, 학습이 된 여러 모델 중 가장 좋은 하나의 모델을 고르기 위한 dataset이다.
- 만약 validation dataset을 사용하지 않는다면, accuracy를 예측할 수 없고, overfitting 또한 방지할 수 없다.
- 위 그림은 여러 가지의 epoch에 대한 loss를 보인다.
- epoch을 늘려가며 학습을 한다고 할 때, training dataset에 대해서는 loss가 점점 줄어들고, 학습에 '사용'되지는 않는 validation dataset의 loss는 점점 늘어나는 것을 볼 수 있다.
- 이 때, 두 그래프의 교차점 이후의 부분에 대해서는, 모델이 과적합(overfitting)되고 있다고 판단할 수 있다.
- 따라서, epoch이 100쯤 될 경우가 가장 최적의 epoch이고, 이때 학습된 모델이 loss 값이 최저라고 할 수 있다.
4. validation dataset은 학습에 '사용'되지 않는데, 이를 test dataset으로 사용하면 되지 않는가 ?
- validation dataset은 데이터에 편향적으로 weight를 선택하는 경향이 있다고 한다. (bias)
- 때문에, 학습에 조금도 '사용', '관여'되지 않은 새로운 dataset을 test dataset으로 해야 한다.
728x90'Computer Science > ML, DL' 카테고리의 다른 글
CS : BERT (2/2) (0) 2021.04.09 CS : YOLO v5 (0) 2021.04.09 CS : BERT (1/2) (0) 2021.04.07 CS : Deep Learning (1/2) (0) 2021.04.06