SlideShare a Scribd company logo
1 of 36
학습 관련 기술 정리
이번에 다룰 주제
• 가중치 매개변수의 최적값을 탐색하는 최적화 방법
• 가중치 매개변수 초깃값 설정 방법
• 하이퍼파라미터 설정 방법
• 오버피팅의 대응책인 가중치 감소
• 드롭아웃 등의 정규화 방법
1.1 매개변수 갱신
이번 장에선 최적의 매개변수 값을 찾는 방법 4가지를 소개한다.
1. SGD (확률적 경사 하강법)
2. 모멘텀 (Momentum)
3. AdaGrad
4. Adam
모든 문제에서 항상 뛰어난 기법이라는 것은 (아직까진) 없으므로, 알아두기만 하자.
(많은 연구에서 SGD를 사용하고, 요즘에는 Adam에 만족해 하며 쓰고 있다고 함)
1.1.1. SGD
신경망 학습의 목적은 손실 함수의 값을 최대한 낮추는 매개변수를 찾는 것이다.
즉, 최적의 매개변수를 찾는 것을 의미하는데 이러한 문제를 푸는 것을
“최적화(optimization)”라고 한다.
우리는 앞서, 매개변수의 기울기(미분)를 구해서,
기울어진 방향으로 매개변수 값을 갱신 하는 일을 반복하여 최적의 값에 다가갔다.
이것을 확률적 경사 하강법 (SGD)이라고 한다.
1.1 매개변수 갱신
지금 서 있는 장소에서 가장 크게 기울어진 방향으로 가자는 것이 SGD의 전략.
이 일을 반복하면 가장 깊은 곳으로 갈 수도 있고 아닐 수도 있다.
1.1.1. SGD
1.1 매개변수 갱신
SGD의 단점을 알아보기 위해 다음 함수의 최솟값을 구하는 문제를 생각해보자.
**SGD 단점
위의 함수의 기울기는 Y축 방향이 크고, X축 방향은 작다는 것이 특징이다.
1.1 매개변수 갱신
SGD의 단점은 비등항성함수(anisotropy), 방향에 따라 성질(기울기)이 달라지는 함수)에서는 탐색 경
로가 비효율적이라는 것이다.
또한 SGD가 지그재그로 탐색하는 근본 원인은 기울어진 방향이 본래의 최솟값과 다른 방향으로 가리
켜서라는 점도 생각해볼 필요가 있다.
** SGD 단점
바로 다음에 배울 모멘텀, AdaGrad, Adam은 SGD의 이러한 단점을 개선시켜준다.
1.1 매개변수 갱신
1.1.2. 모멘텀
모멘텀(Momentum)은 ‘운동량’을 뜻하는 단어로, 물리와 관계가 있다.
수식에서 v라는 변수가 새로 나오는데, 이는 물리에서 말하는 속도에 해당된다.
모멘텀의 기울기 방향으로 힘을 받아 물체가 가속된다는 물리법칙을 나타낸다.
1.1 매개변수 갱신
1.1.2. 모멘텀
그림에서 보듯 모멘텀의 갱신 경로는 공이 그릇 바닥을 구르듯 움직인다.
SGD랑 비교해보면 ‘지그재그 정도’가 덜한 것을 알 수 있는데,
이는 x축의 힘은 아주 작지만 방향은 변하지 않아서
한 방향으로 일정하게 가속하기 때문이다.
1.1 매개변수 갱신
1.1.3. AdaGrad
신경망 학습에서는 학습률(Learning rate) 값이 중요하다. 이 값이 작으면 학습 시간이
너무 길어지고, 반대로 너무 크면 발산하여 학습이 제대로 이뤄지지 않는다.
이 학습률을 정하는 효과적 기술로 학습률 감소(Learning rate decay)가 있다.
이는 학습을 진행하면서 학습률을 점차 줄여가는 방법인데, 실제 신경망 학습에 자주 쓰인다.
AdaGrad는 학습률 값을 각각의 매개변수에 맞춤형으로 만들어 준다.
1.1 매개변수 갱신
1.1.3. AdaGrad
위의 수식을 보면 h라는 변수가 등장하는데, 기존 기울기 값을 제곱하여 더해준다.
그리고 각각의 매개변수를 갱신할 때 1/h**1/2을 곱해 학습률을 조정한다.
매개변수의 원소중에 많이 움직인 (크게 갱신된) 원소는 학습이 낮아진다.
즉, 학습률 감소가 매개변수의 원소마다 다르게 적용된다.
1.1 매개변수 갱신
1.1.3. AdaGrad
아래 그림을 보면 최소값을 향해 효율적으로 움직이는 것을 볼 수 있다.
Y축 방향은 기울기가 커서 처음에는 크게 움직이지만,
그 큰 움직임에 비례해 갱신 정도도 큰 폭으로 작아지도록 조정된다.
그래서 y축 방향으로 갱신 강도가 빠르게
약해지고, 지그재그 움직임이 줄어든다.
1.1 매개변수 갱신
1.1.4. Adam
모멘토 : 공이 그릇 바닥을 구르는 듯한 움직임
AdaGrad : 매개변수의 원소마다 적응적으로 갱신 정도를 조정
Adam은 2015년 제안된 새로운 방법인데 모멘토와 AdaGrad 기법의 이점을 융합한 것이다.
더하여, 하이퍼파라미터의 ‘편향 보정’이 진행된다는 것도 Adam의 특징이다.
그릇 바닥을 구르는 듯
한 움직임
적응적으로 갱신 정도
조정
하이퍼파라미터의
편향 보정+ +
1.1 매개변수 갱신
1.1.4. Adam
위의 그림을 보면 갱신과정이 모멘텀 처럼 그릇 바닥을 구르듯 움직이고, AdaGrad 처럼 좌우 흔들림이 적다.
1.1 매개변수 갱신
** 4가지 방법 비교
하이퍼 파라미터인 학습률, 신경망의 구조 (층, 깊이 등)에 따라 결과가 달라진다.
다만 일반적으로 SGD보다 다른 세 기법이 빠르게 학습하고, 최종 정확도도 높게 나타난다.
1.1 매개변수 갱신
신경망 학습에서 특히 중요한 것이 가중치의 초기값이다.
실제로 가중치의 초기값을 무엇으로 설정하느냐에 따라 신경망 학습의 성패를 가르는 경우가 있다.
1.2 가중치의 초기값
1.2.1 초기값을 0으로 하면?
오버피팅을 억제해 범용 성능을 높이는 가중치 감소(Weight decay) 기법을 소개한다.
가중치 감소는 가중치 매개변수의 값이 작아지도록 학습하는 방법으로, 가중치 값을 작게 하여오
버피팅이 일어나지 않게 하는 것이다.
지금까지 가중치의 초기값은 0.01 * np.random.randn(10,100)을 사용했다.
W = np.random.randn(10,100) * 0.01
정규 분포에서 생성되는 값을 0.01배 한 작은 값(표준편차가 0.01인 정규분포)
1.2 가중치의 초기값
1.2.1 초기값을 0으로 하면?
가중치의 초기값을 0 ( 가중치를 균일한 값) 으로 하면 안된다,
 오차역전파법에서 모든 가중치의 값이 똑같이 갱신되기 때문에
 가중치를 여러 개 갖는 의미가 사라진다.
= 초기값은 무작위로 설정해야 한다 !!
1.2 가중치의 초기값
1.2.2 은닉층의 활성화값 분포
활성화 함수로 시그모이드 함수를 사용하는 5층 신경망에 무작위로 생성한 입력 데이터를 흘리며
각 층의 활성화값 분포를 히스토그램으로 그려보자.
가중치는 표준편차가 1인 정규분포를 이용했다.
W = np.random.randn(10,100) * 1
[각 층의 활성화값 분포]
시그모이드 함수는 출력이 0 또는 1에 가까워 질수록 그 미분이 0에 다가간다.
그래서 0과 1에 데이터가 치우쳐 분포하게 되면 역전파의 기울기 값이 점점 작아지다 사라진다.
 기울기의 소실(Gradient Vanishing)
1.2 가중치의 초기값
2.2.2 은닉층의 활성화값 분포
가중치의 편차를 0.01로 바꿔서 같은 실험을 반복해보자.
W = np.random.randn(10,100) * 0.01
[각 층의 활성화값 분포]
이번에는 0.5 부근에 데이터가 집중되었다. 기울기 소실 문제는 일어나지 않지만, 활성화 값들이
치우쳤다는 것은 표현력 관점에서 큰 문제가 있다.
 다수의 뉴런이 거의 같은 값을 출력하고 있으니 여러 개인 의미가 없다.
 표현력을 제한한다는 관점에서 문제
1.2 가중치의 초기값
1.2.2 은닉충의 활성화값 분포
각 층의 활성화 값은 적당히 골고루 분포되어야 한다. 층과 층 사이에 적당하게 다양한 데이터가
흐르게 해야 신경망 학습이 효율적으로 이뤄지기 때문.
반대로 치우친 데이터가 흐르면 기울기 소실이나 표현력 제한 문제에 빠지게 되서 학습이 잘 이뤄
지지 않는 경우가 생긴다.
Sigmoid 함수를 사용할 땐, Xavier 초깃값을 사용한다.
Xavier 초깃값은 일반적인 딥러닝 프레임워크들이 표준적으로 사용하고 있다.
“ 앞 계층의 노드가 n개라면, 표준편차가 1/(n**1/2)인 분포를 사용하면 된다.“
1.2 가중치의 초기값
1.2.2 은닉충의 활성화값 분포
Xavier 초기값을 따라서 가중치의 초기값을 정해보자.
W = np.random.randn(node_num, node_num) / np.sqrt(node_num)
이 결과를 보면 층이 깊어지면서 형태가 다소 일그러지지만, 앞에서 본 방식보다는 확실히 넓게 분
포됨을 알 수 있다.
1.2 가중치의 초기값
1.2 가중치의 초기값
1.2.3 Relu를 사용할 때의 가중치 초기값
1.2.3 ReLU를 사용할 때의 가중치 초기값
**Std = 0.01일때의 각층의 활성화 함수 값들이 아주 작은 값이다.
 신경망에 아주 작은 데이터가 흐른다.
 역전파 때 가중치의 기울기 역시 작아진다.
 학습이 거의 이뤄지지 않는다.
**Xavier 초기값은 층이 깊어질 수록 치우침이 커진다.
활성화 값들의 치우침이 커지면 기울기소실 발생
**He초기값은 모든 층에서 균일하게 분포되었다.
1.2 가중치의 초기값
1.3.1 배치 정규화 알고리즘
앞에서 가중치의 초기값을 적절히 설정하면 각 층의 활성화값 분포가 적당히 퍼지면서 학습이 원활
히 수행됐다.
그렇다면, 각 층이 활성화값을 적당히 퍼뜨리도록 ‘강제’해보면 어떨까?  배치 정규화
**배치 정규화가 주목받는 이유
1. 학습을 빨리 진행할 수 있다. (학습속도 개선)
2. 초깃값에 크게 의존하지 않는다. (골치 아픈 초깃값 선택 장애여 안녕 !!)
3. 오버피팅을 억제한다. (드롭아웃 등의 필요성 감소)
배치 정규화란 ?
각 층의 활성화 값이 적당히 분포되도록 조정하는 것 !!
1.3 배치 정규화 (Batch Normalization)
1.3.1 배치 정규화 알고리즘
아래의 그림과 같이 데이터 분포를 정규화하는 ‘배치 정규화 계층’을 신경망에 삽입한다.
배치 정규화는 학습 시 미니배치를 단위로 정규화한다. 데이터 분포가 평균이 0, 분산이 1이 되도록
정규화 해준다.
1.3 배치 정규화 (Batch Normalization)
1.3.1 배치 정규화 알고리즘
배치 정규화의 수식은 아래와 같다.
위 수식은,
1. 미니배치 B={x1, x2, … , xm} 이라는 m개의 데이터 집합에 대한 평균 u와 분산 σ을 구한다.
2. 입력 데이터를 평균이 0, 분산이 1이되게(적절히 분포하게) 정규화 한다.
3. ε (epsilon) 기호는 작은 값(10e-7과 같은)으로, 0으로 나누는 사태를 예방하는 역할을 한다.
입력데이터 {x1,x2,..xm}을 평균 0, 분산 1인 데이터로 변환하는 일을 한다.
(주로 활성화 함수 앞,뒤에 삽입함으로써 데이터 분포를 덜 치우치게 한다.)
1.3 배치 정규화 (Batch Normalization)
1.3.1 배치 정규화 알고리즘
[ 배치 정규화의 계산 그래프 ]
1.3 배치 정규화 (Batch Normalization)
1.4.1 오버피팅
기계학습에서 오버피팅이 문제가 되는 일이 자주 발생 한다.
*오버피팅 : 신경망이 훈련 데이터만 지나치게 적응되어 그외의 데이터에는 제대로 적응하지 못
하는 상태
( 기계학습은 범용 성능을 지향한다)
** 오버피팅이 일어나는 경우
- 매개변수가 많고 표현력이 높은 모델
- 훈련 데이터가 적음
1.4 바른 학습을 위해
1.4.2 가중치 감소
오버피팅 억제용으로 예로부터 많이 이용해온 방법 중 가중치 감소라는 것이 있다.
가중치 감소 :
큰 가중치에 대해서는 그에 상응하는 큰 페널티를 부과하여 오버피팅을 억제하는 방법이다.
(가중치 매개변수의 값이 커서 발생하는 오버피팅 방지)
1.4 바른 학습을 위해
1.4.3 드롭아웃(Dropout)
가중치 감소는 간단히 구현할 수 있고, 어느 정도 지나친 학습을 억제할 수 있다.
그러나, 신경망 모델이 복잡해지면 가중치 감소만으로는 대응하기 어려워진다.
이럴때, 드롭아웃이라는 기법을 이용한다.
드롭아웃은 뉴런을 임의로 삭제하면서 학습하는 방법이다. (훈련 때 은닉충의 뉴런을 무작위로
삭제)
훈련 때는 데이터를 흘릴 때마다 삭제할 뉴런을 무작위로 선택하고, 시험 때는 모든 뉴런에 신호
를 전달한다.
1.4 바른 학습을 위해
1.4.3 드롭아웃(Dropout)
가중치 감소는 간단히 구현할 수 있고, 어느 정도 지나친 학습을 억제할 수 있다.
그러나, 신경망 모델이 복잡해지면 가중치 감소만으로는 대응하기 어려워진다.
이럴때, 드롭아웃이라는 기법을 이용한다.
드롭아웃은 뉴런을 임의로 삭제하면서 학습하는 방법이다. (훈련 때 은닉충의 뉴런을 무작위로
삭제)
훈련 때는 데이터를 흘릴 때마다 삭제할 뉴런을 무작위로 선택하고, 시험 때는 모든 뉴런에 신호
를 전달한다.
1.4 바른 학습을 위해
1.4.3 드롭아웃(Dropout)
그림과 같이 드롭아웃을 적용하니 훈련데이터와 시험데이터에 대한 정확도 차이가 줄었다.
또한, 훈련 데이터에 대한 정확도가 100%에 도달하지 않게 되었다.
이처럼 드롭아웃을 이용하면 표현력을 높이면서 오버피팅을 억제할 수 있다.
1.4 바른 학습을 위해
1.5.1 검증 데이터
하이퍼파라미터란, 예를 들어 각 층의 뉴런 수, 배치 크기, 매개변수 갱신 시의 학습률과 가중치 감소 등이 있다.
이러한 하이퍼파라미터를 적절히 설정하지 않으면 모델의 성능이 크게 떨어지기도 한다.
하이퍼파라미터 값은 매우 중요하지만 그 값을 결정하기까지는 일반적으로 많은 시행착오를 겪는다.
이번 절에선 하이퍼파라미터 값을 최대한 효율적으로 탐색하는 방법을 설명한다.
1.5 적절한 하이퍼파라미터 값 찾기
1.5.1 검증 데이터
지금까지의 데이터는 훈련데이터, 시험데이터로 나눠서 훈련 데이터로는 모델을 학습시키고, 시
험 데이터로는 모델의 범용성을 평가했다.
앞으로 하이퍼 파라미터를 다양한 값으로 설정하고 검증할 텐데,
여기서 주의할 점은 하이퍼파라미터의 성능을 평가할 때는 시험 데이터를 사용해서는 안된다는
것이다.
Why?
시험 데이터를 사용하여 하이퍼파라미터를 조정하면 하이퍼파라미터 값이 시험 데이터에 오버
피팅 되서 범용성이 떨어지는 모델이 될 수 있다.
그래서 하이퍼파라미터 전용 확인 데이터가 필요하다. (= 검증 데이터)
-훈련 데이터 : 매개변수 학습
-검증 데이터 : 하이퍼파라미터 성능 평가
-시험 데이터 : 신경망의 범용 성능 평가
(책에선 훈련데이터의 20% 가량을 검증 데이터로 분리)
1.5 적절한 하이퍼파라미터 값 찾기
1.5.2 하이퍼파라미터 최적화
하이퍼파라미터를 최적화할 때의 핵심은 하이퍼파라미터의 ‘최적 값’이 존재하는 범위를 조금씩 줄여간다는 것.
** 하이퍼파라미터 최적화 단계
- 0 단계 : 하이퍼파라미터 값의 범위를 설정한다.
- 1 단계 : 설정된 범위에서 하이퍼파라미터의 값을 무작위로 추출
- 2 단계 : 1단계에서 샘플링한 하이퍼파라미터 값을 사용하여 학습하고, 검증 데이터로 정확도를 평가한다.
- 3 단계 : 1단계와 2단계를 특정 횟수 (100회 등) 반복하여,
그 정확도의 결과를 보고 하이퍼파라미터의 범위를 좁힌다.
1.5 적절한 하이퍼파라미터 값 찾기

More Related Content

What's hot

[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련Haesun Park
 
Rl from scratch part5
Rl from scratch part5Rl from scratch part5
Rl from scratch part5Shinwoo Park
 
Boosting_suman
Boosting_sumanBoosting_suman
Boosting_sumansuman_lim
 
2.supervised learning
2.supervised learning2.supervised learning
2.supervised learningHaesun Park
 
딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해Hee Won Park
 
3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)Haesun Park
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류Haesun Park
 
Reinforcement learning
Reinforcement learningReinforcement learning
Reinforcement learningTae Young Lee
 
13.앙상블학습
13.앙상블학습13.앙상블학습
13.앙상블학습Minchul Jung
 
3.unsupervised learing
3.unsupervised learing3.unsupervised learing
3.unsupervised learingHaesun Park
 
2.supervised learning(epoch#2)-2
2.supervised learning(epoch#2)-22.supervised learning(epoch#2)-2
2.supervised learning(epoch#2)-2Haesun Park
 
Reinforcement learning v0.5
Reinforcement learning v0.5Reinforcement learning v0.5
Reinforcement learning v0.5SANG WON PARK
 
Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2KyeongUkJang
 
4.convolutional neural networks
4.convolutional neural networks4.convolutional neural networks
4.convolutional neural networksHaesun Park
 
Machine learning boosting 20180424
Machine learning boosting 20180424Machine learning boosting 20180424
Machine learning boosting 20180424Changwook Jun
 
2.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-32.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-3Haesun Park
 
Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리SANG WON PARK
 
Rl from scratch part6
Rl from scratch part6Rl from scratch part6
Rl from scratch part6Shinwoo Park
 
4.representing data and engineering features(epoch#2)
4.representing data and engineering features(epoch#2)4.representing data and engineering features(epoch#2)
4.representing data and engineering features(epoch#2)Haesun Park
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝Haesun Park
 

What's hot (20)

[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
 
Rl from scratch part5
Rl from scratch part5Rl from scratch part5
Rl from scratch part5
 
Boosting_suman
Boosting_sumanBoosting_suman
Boosting_suman
 
2.supervised learning
2.supervised learning2.supervised learning
2.supervised learning
 
딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해
 
3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
 
Reinforcement learning
Reinforcement learningReinforcement learning
Reinforcement learning
 
13.앙상블학습
13.앙상블학습13.앙상블학습
13.앙상블학습
 
3.unsupervised learing
3.unsupervised learing3.unsupervised learing
3.unsupervised learing
 
2.supervised learning(epoch#2)-2
2.supervised learning(epoch#2)-22.supervised learning(epoch#2)-2
2.supervised learning(epoch#2)-2
 
Reinforcement learning v0.5
Reinforcement learning v0.5Reinforcement learning v0.5
Reinforcement learning v0.5
 
Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2
 
4.convolutional neural networks
4.convolutional neural networks4.convolutional neural networks
4.convolutional neural networks
 
Machine learning boosting 20180424
Machine learning boosting 20180424Machine learning boosting 20180424
Machine learning boosting 20180424
 
2.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-32.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-3
 
Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리
 
Rl from scratch part6
Rl from scratch part6Rl from scratch part6
Rl from scratch part6
 
4.representing data and engineering features(epoch#2)
4.representing data and engineering features(epoch#2)4.representing data and engineering features(epoch#2)
4.representing data and engineering features(epoch#2)
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
 

Similar to Learning method

Deep Learning from scratch 4장 : neural network learning
Deep Learning from scratch 4장 : neural network learningDeep Learning from scratch 4장 : neural network learning
Deep Learning from scratch 4장 : neural network learningJinSooKim80
 
Chapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsChapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsKyeongUkJang
 
Rl from scratch part7
Rl from scratch part7Rl from scratch part7
Rl from scratch part7Shinwoo Park
 
코드와 실습으로 이해하는 인공지능
코드와 실습으로 이해하는 인공지능코드와 실습으로 이해하는 인공지능
코드와 실습으로 이해하는 인공지능도형 임
 
Ml for 정형데이터
Ml for 정형데이터Ml for 정형데이터
Ml for 정형데이터JEEHYUN PAIK
 
알고리즘 스터디(정렬) Seungdols
알고리즘 스터디(정렬) Seungdols알고리즘 스터디(정렬) Seungdols
알고리즘 스터디(정렬) Seungdolsseungdols
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usageTae Young Lee
 
Computational Complexity
Computational ComplexityComputational Complexity
Computational Complexityskku_npc
 
5.model evaluation and improvement(epoch#2) 2
5.model evaluation and improvement(epoch#2) 25.model evaluation and improvement(epoch#2) 2
5.model evaluation and improvement(epoch#2) 2Haesun Park
 
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic용진 조
 
220825 지승현 ERM-based regularization.pptx
220825 지승현 ERM-based regularization.pptx220825 지승현 ERM-based regularization.pptx
220825 지승현 ERM-based regularization.pptxssuser23ed0c
 
Deep Learning from scratch 5장 : backpropagation
 Deep Learning from scratch 5장 : backpropagation Deep Learning from scratch 5장 : backpropagation
Deep Learning from scratch 5장 : backpropagationJinSooKim80
 
2.supervised learning(epoch#2)-1
2.supervised learning(epoch#2)-12.supervised learning(epoch#2)-1
2.supervised learning(epoch#2)-1Haesun Park
 
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기JungHyun Hong
 
220825 지승현 ERM-based regularization.pdf
220825 지승현 ERM-based regularization.pdf220825 지승현 ERM-based regularization.pdf
220825 지승현 ERM-based regularization.pdfssuser23ed0c
 
Mlp logical input pattern classfication report doc
Mlp logical input pattern classfication report docMlp logical input pattern classfication report doc
Mlp logical input pattern classfication report doc우진 신
 

Similar to Learning method (20)

DL from scratch(6)
DL from scratch(6)DL from scratch(6)
DL from scratch(6)
 
Deep Learning from scratch 4장 : neural network learning
Deep Learning from scratch 4장 : neural network learningDeep Learning from scratch 4장 : neural network learning
Deep Learning from scratch 4장 : neural network learning
 
DL from scratch(4~5)
DL from scratch(4~5)DL from scratch(4~5)
DL from scratch(4~5)
 
Chapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsChapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep models
 
Rl from scratch part7
Rl from scratch part7Rl from scratch part7
Rl from scratch part7
 
코드와 실습으로 이해하는 인공지능
코드와 실습으로 이해하는 인공지능코드와 실습으로 이해하는 인공지능
코드와 실습으로 이해하는 인공지능
 
Ml for 정형데이터
Ml for 정형데이터Ml for 정형데이터
Ml for 정형데이터
 
알고리즘 스터디(정렬) Seungdols
알고리즘 스터디(정렬) Seungdols알고리즘 스터디(정렬) Seungdols
알고리즘 스터디(정렬) Seungdols
 
07. PCA
07. PCA07. PCA
07. PCA
 
PaLM Paper Review
PaLM Paper ReviewPaLM Paper Review
PaLM Paper Review
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usage
 
Computational Complexity
Computational ComplexityComputational Complexity
Computational Complexity
 
5.model evaluation and improvement(epoch#2) 2
5.model evaluation and improvement(epoch#2) 25.model evaluation and improvement(epoch#2) 2
5.model evaluation and improvement(epoch#2) 2
 
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
 
220825 지승현 ERM-based regularization.pptx
220825 지승현 ERM-based regularization.pptx220825 지승현 ERM-based regularization.pptx
220825 지승현 ERM-based regularization.pptx
 
Deep Learning from scratch 5장 : backpropagation
 Deep Learning from scratch 5장 : backpropagation Deep Learning from scratch 5장 : backpropagation
Deep Learning from scratch 5장 : backpropagation
 
2.supervised learning(epoch#2)-1
2.supervised learning(epoch#2)-12.supervised learning(epoch#2)-1
2.supervised learning(epoch#2)-1
 
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
 
220825 지승현 ERM-based regularization.pdf
220825 지승현 ERM-based regularization.pdf220825 지승현 ERM-based regularization.pdf
220825 지승현 ERM-based regularization.pdf
 
Mlp logical input pattern classfication report doc
Mlp logical input pattern classfication report docMlp logical input pattern classfication report doc
Mlp logical input pattern classfication report doc
 

More from chs71

Credit default risk
Credit default riskCredit default risk
Credit default riskchs71
 
Tensorflow
TensorflowTensorflow
Tensorflowchs71
 
Pandas
PandasPandas
Pandaschs71
 
Seoul square[mock project]
Seoul square[mock project]Seoul square[mock project]
Seoul square[mock project]chs71
 
Vip detection sensor
Vip detection sensorVip detection sensor
Vip detection sensorchs71
 
Share house
Share houseShare house
Share housechs71
 
Logistic regression1
Logistic regression1Logistic regression1
Logistic regression1chs71
 
Class imbalance problem1
Class imbalance problem1Class imbalance problem1
Class imbalance problem1chs71
 
Credit default risk
Credit default riskCredit default risk
Credit default riskchs71
 
Maximum likelihood estimation
Maximum likelihood estimationMaximum likelihood estimation
Maximum likelihood estimationchs71
 

More from chs71 (11)

Credit default risk
Credit default riskCredit default risk
Credit default risk
 
Tensorflow
TensorflowTensorflow
Tensorflow
 
Pandas
PandasPandas
Pandas
 
Seoul square[mock project]
Seoul square[mock project]Seoul square[mock project]
Seoul square[mock project]
 
CNN
CNNCNN
CNN
 
Vip detection sensor
Vip detection sensorVip detection sensor
Vip detection sensor
 
Share house
Share houseShare house
Share house
 
Logistic regression1
Logistic regression1Logistic regression1
Logistic regression1
 
Class imbalance problem1
Class imbalance problem1Class imbalance problem1
Class imbalance problem1
 
Credit default risk
Credit default riskCredit default risk
Credit default risk
 
Maximum likelihood estimation
Maximum likelihood estimationMaximum likelihood estimation
Maximum likelihood estimation
 

Learning method

  • 2. 이번에 다룰 주제 • 가중치 매개변수의 최적값을 탐색하는 최적화 방법 • 가중치 매개변수 초깃값 설정 방법 • 하이퍼파라미터 설정 방법 • 오버피팅의 대응책인 가중치 감소 • 드롭아웃 등의 정규화 방법
  • 3. 1.1 매개변수 갱신 이번 장에선 최적의 매개변수 값을 찾는 방법 4가지를 소개한다. 1. SGD (확률적 경사 하강법) 2. 모멘텀 (Momentum) 3. AdaGrad 4. Adam 모든 문제에서 항상 뛰어난 기법이라는 것은 (아직까진) 없으므로, 알아두기만 하자. (많은 연구에서 SGD를 사용하고, 요즘에는 Adam에 만족해 하며 쓰고 있다고 함)
  • 4. 1.1.1. SGD 신경망 학습의 목적은 손실 함수의 값을 최대한 낮추는 매개변수를 찾는 것이다. 즉, 최적의 매개변수를 찾는 것을 의미하는데 이러한 문제를 푸는 것을 “최적화(optimization)”라고 한다. 우리는 앞서, 매개변수의 기울기(미분)를 구해서, 기울어진 방향으로 매개변수 값을 갱신 하는 일을 반복하여 최적의 값에 다가갔다. 이것을 확률적 경사 하강법 (SGD)이라고 한다. 1.1 매개변수 갱신
  • 5. 지금 서 있는 장소에서 가장 크게 기울어진 방향으로 가자는 것이 SGD의 전략. 이 일을 반복하면 가장 깊은 곳으로 갈 수도 있고 아닐 수도 있다. 1.1.1. SGD 1.1 매개변수 갱신
  • 6. SGD의 단점을 알아보기 위해 다음 함수의 최솟값을 구하는 문제를 생각해보자. **SGD 단점 위의 함수의 기울기는 Y축 방향이 크고, X축 방향은 작다는 것이 특징이다. 1.1 매개변수 갱신
  • 7. SGD의 단점은 비등항성함수(anisotropy), 방향에 따라 성질(기울기)이 달라지는 함수)에서는 탐색 경 로가 비효율적이라는 것이다. 또한 SGD가 지그재그로 탐색하는 근본 원인은 기울어진 방향이 본래의 최솟값과 다른 방향으로 가리 켜서라는 점도 생각해볼 필요가 있다. ** SGD 단점 바로 다음에 배울 모멘텀, AdaGrad, Adam은 SGD의 이러한 단점을 개선시켜준다. 1.1 매개변수 갱신
  • 8. 1.1.2. 모멘텀 모멘텀(Momentum)은 ‘운동량’을 뜻하는 단어로, 물리와 관계가 있다. 수식에서 v라는 변수가 새로 나오는데, 이는 물리에서 말하는 속도에 해당된다. 모멘텀의 기울기 방향으로 힘을 받아 물체가 가속된다는 물리법칙을 나타낸다. 1.1 매개변수 갱신
  • 9. 1.1.2. 모멘텀 그림에서 보듯 모멘텀의 갱신 경로는 공이 그릇 바닥을 구르듯 움직인다. SGD랑 비교해보면 ‘지그재그 정도’가 덜한 것을 알 수 있는데, 이는 x축의 힘은 아주 작지만 방향은 변하지 않아서 한 방향으로 일정하게 가속하기 때문이다. 1.1 매개변수 갱신
  • 10. 1.1.3. AdaGrad 신경망 학습에서는 학습률(Learning rate) 값이 중요하다. 이 값이 작으면 학습 시간이 너무 길어지고, 반대로 너무 크면 발산하여 학습이 제대로 이뤄지지 않는다. 이 학습률을 정하는 효과적 기술로 학습률 감소(Learning rate decay)가 있다. 이는 학습을 진행하면서 학습률을 점차 줄여가는 방법인데, 실제 신경망 학습에 자주 쓰인다. AdaGrad는 학습률 값을 각각의 매개변수에 맞춤형으로 만들어 준다. 1.1 매개변수 갱신
  • 11. 1.1.3. AdaGrad 위의 수식을 보면 h라는 변수가 등장하는데, 기존 기울기 값을 제곱하여 더해준다. 그리고 각각의 매개변수를 갱신할 때 1/h**1/2을 곱해 학습률을 조정한다. 매개변수의 원소중에 많이 움직인 (크게 갱신된) 원소는 학습이 낮아진다. 즉, 학습률 감소가 매개변수의 원소마다 다르게 적용된다. 1.1 매개변수 갱신
  • 12. 1.1.3. AdaGrad 아래 그림을 보면 최소값을 향해 효율적으로 움직이는 것을 볼 수 있다. Y축 방향은 기울기가 커서 처음에는 크게 움직이지만, 그 큰 움직임에 비례해 갱신 정도도 큰 폭으로 작아지도록 조정된다. 그래서 y축 방향으로 갱신 강도가 빠르게 약해지고, 지그재그 움직임이 줄어든다. 1.1 매개변수 갱신
  • 13. 1.1.4. Adam 모멘토 : 공이 그릇 바닥을 구르는 듯한 움직임 AdaGrad : 매개변수의 원소마다 적응적으로 갱신 정도를 조정 Adam은 2015년 제안된 새로운 방법인데 모멘토와 AdaGrad 기법의 이점을 융합한 것이다. 더하여, 하이퍼파라미터의 ‘편향 보정’이 진행된다는 것도 Adam의 특징이다. 그릇 바닥을 구르는 듯 한 움직임 적응적으로 갱신 정도 조정 하이퍼파라미터의 편향 보정+ + 1.1 매개변수 갱신
  • 14. 1.1.4. Adam 위의 그림을 보면 갱신과정이 모멘텀 처럼 그릇 바닥을 구르듯 움직이고, AdaGrad 처럼 좌우 흔들림이 적다. 1.1 매개변수 갱신
  • 15. ** 4가지 방법 비교 하이퍼 파라미터인 학습률, 신경망의 구조 (층, 깊이 등)에 따라 결과가 달라진다. 다만 일반적으로 SGD보다 다른 세 기법이 빠르게 학습하고, 최종 정확도도 높게 나타난다. 1.1 매개변수 갱신
  • 16. 신경망 학습에서 특히 중요한 것이 가중치의 초기값이다. 실제로 가중치의 초기값을 무엇으로 설정하느냐에 따라 신경망 학습의 성패를 가르는 경우가 있다. 1.2 가중치의 초기값
  • 17. 1.2.1 초기값을 0으로 하면? 오버피팅을 억제해 범용 성능을 높이는 가중치 감소(Weight decay) 기법을 소개한다. 가중치 감소는 가중치 매개변수의 값이 작아지도록 학습하는 방법으로, 가중치 값을 작게 하여오 버피팅이 일어나지 않게 하는 것이다. 지금까지 가중치의 초기값은 0.01 * np.random.randn(10,100)을 사용했다. W = np.random.randn(10,100) * 0.01 정규 분포에서 생성되는 값을 0.01배 한 작은 값(표준편차가 0.01인 정규분포) 1.2 가중치의 초기값
  • 18. 1.2.1 초기값을 0으로 하면? 가중치의 초기값을 0 ( 가중치를 균일한 값) 으로 하면 안된다,  오차역전파법에서 모든 가중치의 값이 똑같이 갱신되기 때문에  가중치를 여러 개 갖는 의미가 사라진다. = 초기값은 무작위로 설정해야 한다 !! 1.2 가중치의 초기값
  • 19. 1.2.2 은닉층의 활성화값 분포 활성화 함수로 시그모이드 함수를 사용하는 5층 신경망에 무작위로 생성한 입력 데이터를 흘리며 각 층의 활성화값 분포를 히스토그램으로 그려보자. 가중치는 표준편차가 1인 정규분포를 이용했다. W = np.random.randn(10,100) * 1 [각 층의 활성화값 분포] 시그모이드 함수는 출력이 0 또는 1에 가까워 질수록 그 미분이 0에 다가간다. 그래서 0과 1에 데이터가 치우쳐 분포하게 되면 역전파의 기울기 값이 점점 작아지다 사라진다.  기울기의 소실(Gradient Vanishing) 1.2 가중치의 초기값
  • 20. 2.2.2 은닉층의 활성화값 분포 가중치의 편차를 0.01로 바꿔서 같은 실험을 반복해보자. W = np.random.randn(10,100) * 0.01 [각 층의 활성화값 분포] 이번에는 0.5 부근에 데이터가 집중되었다. 기울기 소실 문제는 일어나지 않지만, 활성화 값들이 치우쳤다는 것은 표현력 관점에서 큰 문제가 있다.  다수의 뉴런이 거의 같은 값을 출력하고 있으니 여러 개인 의미가 없다.  표현력을 제한한다는 관점에서 문제 1.2 가중치의 초기값
  • 21. 1.2.2 은닉충의 활성화값 분포 각 층의 활성화 값은 적당히 골고루 분포되어야 한다. 층과 층 사이에 적당하게 다양한 데이터가 흐르게 해야 신경망 학습이 효율적으로 이뤄지기 때문. 반대로 치우친 데이터가 흐르면 기울기 소실이나 표현력 제한 문제에 빠지게 되서 학습이 잘 이뤄 지지 않는 경우가 생긴다. Sigmoid 함수를 사용할 땐, Xavier 초깃값을 사용한다. Xavier 초깃값은 일반적인 딥러닝 프레임워크들이 표준적으로 사용하고 있다. “ 앞 계층의 노드가 n개라면, 표준편차가 1/(n**1/2)인 분포를 사용하면 된다.“ 1.2 가중치의 초기값
  • 22. 1.2.2 은닉충의 활성화값 분포 Xavier 초기값을 따라서 가중치의 초기값을 정해보자. W = np.random.randn(node_num, node_num) / np.sqrt(node_num) 이 결과를 보면 층이 깊어지면서 형태가 다소 일그러지지만, 앞에서 본 방식보다는 확실히 넓게 분 포됨을 알 수 있다. 1.2 가중치의 초기값
  • 23. 1.2 가중치의 초기값 1.2.3 Relu를 사용할 때의 가중치 초기값
  • 24. 1.2.3 ReLU를 사용할 때의 가중치 초기값 **Std = 0.01일때의 각층의 활성화 함수 값들이 아주 작은 값이다.  신경망에 아주 작은 데이터가 흐른다.  역전파 때 가중치의 기울기 역시 작아진다.  학습이 거의 이뤄지지 않는다. **Xavier 초기값은 층이 깊어질 수록 치우침이 커진다. 활성화 값들의 치우침이 커지면 기울기소실 발생 **He초기값은 모든 층에서 균일하게 분포되었다. 1.2 가중치의 초기값
  • 25. 1.3.1 배치 정규화 알고리즘 앞에서 가중치의 초기값을 적절히 설정하면 각 층의 활성화값 분포가 적당히 퍼지면서 학습이 원활 히 수행됐다. 그렇다면, 각 층이 활성화값을 적당히 퍼뜨리도록 ‘강제’해보면 어떨까?  배치 정규화 **배치 정규화가 주목받는 이유 1. 학습을 빨리 진행할 수 있다. (학습속도 개선) 2. 초깃값에 크게 의존하지 않는다. (골치 아픈 초깃값 선택 장애여 안녕 !!) 3. 오버피팅을 억제한다. (드롭아웃 등의 필요성 감소) 배치 정규화란 ? 각 층의 활성화 값이 적당히 분포되도록 조정하는 것 !! 1.3 배치 정규화 (Batch Normalization)
  • 26. 1.3.1 배치 정규화 알고리즘 아래의 그림과 같이 데이터 분포를 정규화하는 ‘배치 정규화 계층’을 신경망에 삽입한다. 배치 정규화는 학습 시 미니배치를 단위로 정규화한다. 데이터 분포가 평균이 0, 분산이 1이 되도록 정규화 해준다. 1.3 배치 정규화 (Batch Normalization)
  • 27. 1.3.1 배치 정규화 알고리즘 배치 정규화의 수식은 아래와 같다. 위 수식은, 1. 미니배치 B={x1, x2, … , xm} 이라는 m개의 데이터 집합에 대한 평균 u와 분산 σ을 구한다. 2. 입력 데이터를 평균이 0, 분산이 1이되게(적절히 분포하게) 정규화 한다. 3. ε (epsilon) 기호는 작은 값(10e-7과 같은)으로, 0으로 나누는 사태를 예방하는 역할을 한다. 입력데이터 {x1,x2,..xm}을 평균 0, 분산 1인 데이터로 변환하는 일을 한다. (주로 활성화 함수 앞,뒤에 삽입함으로써 데이터 분포를 덜 치우치게 한다.) 1.3 배치 정규화 (Batch Normalization)
  • 28. 1.3.1 배치 정규화 알고리즘 [ 배치 정규화의 계산 그래프 ] 1.3 배치 정규화 (Batch Normalization)
  • 29. 1.4.1 오버피팅 기계학습에서 오버피팅이 문제가 되는 일이 자주 발생 한다. *오버피팅 : 신경망이 훈련 데이터만 지나치게 적응되어 그외의 데이터에는 제대로 적응하지 못 하는 상태 ( 기계학습은 범용 성능을 지향한다) ** 오버피팅이 일어나는 경우 - 매개변수가 많고 표현력이 높은 모델 - 훈련 데이터가 적음 1.4 바른 학습을 위해
  • 30. 1.4.2 가중치 감소 오버피팅 억제용으로 예로부터 많이 이용해온 방법 중 가중치 감소라는 것이 있다. 가중치 감소 : 큰 가중치에 대해서는 그에 상응하는 큰 페널티를 부과하여 오버피팅을 억제하는 방법이다. (가중치 매개변수의 값이 커서 발생하는 오버피팅 방지) 1.4 바른 학습을 위해
  • 31. 1.4.3 드롭아웃(Dropout) 가중치 감소는 간단히 구현할 수 있고, 어느 정도 지나친 학습을 억제할 수 있다. 그러나, 신경망 모델이 복잡해지면 가중치 감소만으로는 대응하기 어려워진다. 이럴때, 드롭아웃이라는 기법을 이용한다. 드롭아웃은 뉴런을 임의로 삭제하면서 학습하는 방법이다. (훈련 때 은닉충의 뉴런을 무작위로 삭제) 훈련 때는 데이터를 흘릴 때마다 삭제할 뉴런을 무작위로 선택하고, 시험 때는 모든 뉴런에 신호 를 전달한다. 1.4 바른 학습을 위해
  • 32. 1.4.3 드롭아웃(Dropout) 가중치 감소는 간단히 구현할 수 있고, 어느 정도 지나친 학습을 억제할 수 있다. 그러나, 신경망 모델이 복잡해지면 가중치 감소만으로는 대응하기 어려워진다. 이럴때, 드롭아웃이라는 기법을 이용한다. 드롭아웃은 뉴런을 임의로 삭제하면서 학습하는 방법이다. (훈련 때 은닉충의 뉴런을 무작위로 삭제) 훈련 때는 데이터를 흘릴 때마다 삭제할 뉴런을 무작위로 선택하고, 시험 때는 모든 뉴런에 신호 를 전달한다. 1.4 바른 학습을 위해
  • 33. 1.4.3 드롭아웃(Dropout) 그림과 같이 드롭아웃을 적용하니 훈련데이터와 시험데이터에 대한 정확도 차이가 줄었다. 또한, 훈련 데이터에 대한 정확도가 100%에 도달하지 않게 되었다. 이처럼 드롭아웃을 이용하면 표현력을 높이면서 오버피팅을 억제할 수 있다. 1.4 바른 학습을 위해
  • 34. 1.5.1 검증 데이터 하이퍼파라미터란, 예를 들어 각 층의 뉴런 수, 배치 크기, 매개변수 갱신 시의 학습률과 가중치 감소 등이 있다. 이러한 하이퍼파라미터를 적절히 설정하지 않으면 모델의 성능이 크게 떨어지기도 한다. 하이퍼파라미터 값은 매우 중요하지만 그 값을 결정하기까지는 일반적으로 많은 시행착오를 겪는다. 이번 절에선 하이퍼파라미터 값을 최대한 효율적으로 탐색하는 방법을 설명한다. 1.5 적절한 하이퍼파라미터 값 찾기
  • 35. 1.5.1 검증 데이터 지금까지의 데이터는 훈련데이터, 시험데이터로 나눠서 훈련 데이터로는 모델을 학습시키고, 시 험 데이터로는 모델의 범용성을 평가했다. 앞으로 하이퍼 파라미터를 다양한 값으로 설정하고 검증할 텐데, 여기서 주의할 점은 하이퍼파라미터의 성능을 평가할 때는 시험 데이터를 사용해서는 안된다는 것이다. Why? 시험 데이터를 사용하여 하이퍼파라미터를 조정하면 하이퍼파라미터 값이 시험 데이터에 오버 피팅 되서 범용성이 떨어지는 모델이 될 수 있다. 그래서 하이퍼파라미터 전용 확인 데이터가 필요하다. (= 검증 데이터) -훈련 데이터 : 매개변수 학습 -검증 데이터 : 하이퍼파라미터 성능 평가 -시험 데이터 : 신경망의 범용 성능 평가 (책에선 훈련데이터의 20% 가량을 검증 데이터로 분리) 1.5 적절한 하이퍼파라미터 값 찾기
  • 36. 1.5.2 하이퍼파라미터 최적화 하이퍼파라미터를 최적화할 때의 핵심은 하이퍼파라미터의 ‘최적 값’이 존재하는 범위를 조금씩 줄여간다는 것. ** 하이퍼파라미터 최적화 단계 - 0 단계 : 하이퍼파라미터 값의 범위를 설정한다. - 1 단계 : 설정된 범위에서 하이퍼파라미터의 값을 무작위로 추출 - 2 단계 : 1단계에서 샘플링한 하이퍼파라미터 값을 사용하여 학습하고, 검증 데이터로 정확도를 평가한다. - 3 단계 : 1단계와 2단계를 특정 횟수 (100회 등) 반복하여, 그 정확도의 결과를 보고 하이퍼파라미터의 범위를 좁힌다. 1.5 적절한 하이퍼파라미터 값 찾기