반응형
Setting up your Machine Learning Application |
1. Train / Dev / Test sets
Key-Point dev set과 test set는 엄밀히 다르다. dev set은 학습 과정에서 모델을 선택하기 위해 사용되므로, dev set에 overfitting된다. 따라서 test set과 dev set은 구분해서 명칭하자.
|
2. Bias / Variance
3. Basic Recipe for Machine Learning
1. Mini-batch gradient descent
- 트레이닝 셋이 만약 (n_x, 1,000,000) 이라면, backpropagation을 한번 하기 위해 너무 많은 시간이 걸림
- 빠르게 학습하기 위해, 학습 데이터를 적당한 크기로 나눔
- (n_x, 1,000)으로 나누면 전체 학습 데이터에 대해 1000번 gradient descent를 수행할 수 있음
- n_x는 입력 특징의 차원수
- 1 epoch 는 모든 학습 데이터에 대해 backpropagation을 완료한 경우를 말함
2. understanding mini-batch gradient decent
- 전체 학습 데이터로 backpropagation을 수행하면 자연스럽게 cost가 감소하지만, mini-batch로 할 경우 cost의 전체적인 경향은 감소하나, 노이즈같이 왔다갔다하는 모습을 보임
- mini-batch size = m(학습 데이터의 수) : batch gradient descent
- mini-batch size = 1 : stochastic gradient descent
- 미니 배치 사이즈의 결정
- 학습 데이터가 작다면( m <= 2000) : batch gradient descent를 사용
- 이왕이면, 2^n의 크기로 할당하는 것이 속도 측면에서 유리함
- cpu/gpu의 메모리에 적합하게 맞춰라
3. Exponentially weighted averages
- Moving average에 대해 설명함
- 평균의 양을 1/(1-베타)로 근사해서 계산하는데, 이유는 모르겠음
4. Understanding exponentially weighted averages
- 가중치 평균의 방법은 결국 지수적으로 가중치를 주어 평균내는 것과 같은 효과를 갖는다.
- 메모리도 많이 사용하지 않고, 간단해서 좋음
- 아래에서 0.9^10 = 0.35 = 1/e라는데 이건 무슨 의미인지 모르겠음
- 결국 10일동안의 가중치 평균을 나타낸다는 의미 같은데,..
5. bias coreection in exponentially weight averages
- 이 방법을 사용할 경우, 초기에는 매우 작은 값을 갖게됨.
- 이러한 문제를 해결? 보정하기 위한 방법을 설명함
6. Gradient descent with momentum
- 위에서 설명한 내용을 Gradient descent에 적용하는 방법에 대해 설명
- 구현 방법에 대해 설명
- 학습율(알파)를 베타에 포함되어 있다고 생각하면, 더 간단하게 식을 표현할 수 있다고 설명하는 것 같음
7. RMSprop
- 개념은 모멘텀과 유사한 것 같음
- 이건 좀 더 자세히 읽어보자..
8. Adam(Adaptive Moment Estimation) optimization algorithm : [논문]
- 여러 최적화 방법 및 gradient descent 방법이 제안되었는데, 다방면에 잘되는 것을 찾기는 어려웠다.
- 하지만 adam 과 rmsprop는 많은 연구에서 좋은 결과를 보였기 때문에, 이 방법을 추천한다.
- adam은 모멘텀과 rmsprop을 기본적으로 취한다.
- 베타1은 일반적으로 0.9, 베타2는 0.999를 추천(adam 논문 저자)
- 입실론의 선택은 별로 중요하지 않음. 논문의 저자는 10^-8을 추천
- 학습율의 선택이 중요함
9. learning rate decay
- 학습율을 학습이 진행됨에 따라 조금씩 줄이는 것이 학습 속도에 도움을 줌
- 이것을 learning rate decay라고 부른다.
- 작은 미니배치로 학습을 진행하면, 전체적으로 최소값을 향하는 경향이 있다. 하지만, 정확하게 일치하지 않음
- 알파를 고정된 값으로 사용하면 방황하다가 수렴을 못할 수 있다.
Programming Assignment |
1. Initialization
신경망의 가중치(W) 초기화 방법에 따른 모델 성능 비교
|
2. Regularization
|
3. Gradient Checking
|
반응형
'Algorithm > Deep Learning' 카테고리의 다른 글
ImageNet Classification with Deep Convolutional Neural Networks (0) | 2016.06.07 |
---|---|
Convolutional Neural Networks (CNNs / ConvNets) (0) | 2016.05.20 |
Convolutional Neural networks(CNN) Practical (0) | 2015.05.15 |
Deep Learning 한글 강좌 (0) | 2015.05.04 |
DEEP LEARNING - An MIT Press book in preparation (0) | 2014.11.13 |