신경망학습은 데이터로부터 매개변수의 값을 정하는 방법
손실함수는 신경망이 학습할 수 있도록 해주는 지표로 손실함수의 결과값을 가장 작게 만드는 가중치 매개변수를 찾는게 중요함
- 훈련 데이터 : 훈련 데이터만 사용하여 학습하면서 최적의 매개변수 탐색
- 시험 데이터 : 앞서 훈련한 모델의 실력 평가
- 훈련, 시험 데이터 분리 이유 : 범용적으로 사용할 수 있는 모델 구현을 위해
- 오버피팅 : 한 데이터 셋에만 지나치게 최적화된 상태
> 신경망 특징
데이터를 보고 학습 가능 = 가중치 매개면수 값을 데이터를 보고 자동 결정한다
사람의 개입을 최소화하고 수집한 데이터로부터 답과 패턴을 찾으려는 시도
신경망은 기존 기계학습보다 사람의 개입을 더 배제할 수 있게함
> 미니배치 학습 (mini-batch)
모든 훈련 데이터를 대상으로 손실 함수의 합을 구하려면 많은 시간이 걸리고 현실적이지 않아 훈련 데이터 중 일부(미니배치)만 골라 학습 수행, 미니배치의 손실 함수 계측을 통해 전체 훈련 데이터의 근사치로 이용
> 경사 하강법
신경망에서 학습할 때 최적의 매개변수를 찾아야하는데 최적의 매개변수란 손실 함수가 최소값이 될 때
기울기를 잘 이용해 함수의 최소값을 찾으려는 것이 경사 하강법
학습 알고리즘 구현
> 확률적 경사 하강법
데이터를 미니배치로 무작위 선정하여 경사 하강법으로 매개변수를 갱신하는 방법
- 전제 : 학습
가중치와 편향을 훈련 데이터에 적응하도록 조정
- 1단계 : 미니배치
훈련 데이터 중 일부를 무작위로 가져와 손실 함수 값을 줄임
- 2단계 : 기울기 산출
미니배치의 손실 함수값을 줄이기 위해 각 가중치 매개변수의 기울기 측정
기울기는 손실 함수의 값을 가장 작게 하는 방향 제시
- 3단계 : 매개변수 갱신
가중치 매개변수를 기울기 방향으로 아주 조금 갱신
- 4단계 : 반복
1~3단계를 반복
오차역전파법
가중치 매개변수의 기울기를 효율적으로 계산하는 방법
기울기를 계산하는 방법은 수식으로도 가능하지만 너무 어려움
결과값부터 미분을 이용해 거꾸로 거슬러 올라옴
SGD 단점의 개선책 - 모멘텀
다양한 형태의 손실함수에 대한 값이 적용되어지면서 그래프도 다양한 형태로 나타남
> AdaGrad
신경망 학습에서는 학습률 값이 중요
학습률이 너무 작으면 학습 시간이 길어지고 너무 크면 발산하여 학습이 제대로 이뤄지지 않음
AdaGrad는 각각의 매개변수에 맞춤형 값을 만들어주는 방식
- 학습률 감소
학습률을 정하는 효과적 기술
처음엔 크게 학습하다가 학습률을 점차 줄여가면서 조금씩 작게 학습시키는 방법
학습률을 서서히 낮추는 가장 간단한 방법은 매개변수 전체의 학습률 값을 일괄적으로 낮추는것
Adam
모멘텀 + adagrad : 속도방향성 + 학습률
'ML&DL > study' 카테고리의 다른 글
머신러닝 알고리즘 8. 순환신경망 (RNN) (0) | 2021.06.18 |
---|---|
머신러닝 알고리즘 8. 합성곱 신경망 (CNN) (0) | 2021.06.18 |
머신러닝 알고리즘 7-1. 신경망(딥러닝) (0) | 2021.06.16 |
머신러닝 알고리즘 6. 퍼셉트론 (0) | 2021.06.16 |
머신러닝 알고리즘 5. 선형 회귀 분석 (0) | 2021.06.15 |