하이퍼 파라미터 설정
1. 초기값 : 가중치(W), 바이어스(b)
- 가중치의 초기값을 0으로 default를 주고 시작하면 올바른 학습을 기대하기 어렵다.
- 오차역전파에서 가중치의 값이 똑같이 갱신되기 때문
- np.random.randn()을 사용하여 무작위로 가중치를 설정하는 것을 볼 수 있다.
2. epoch (에폭)
- 신경망에서 전체 데이터에 대해서 순전파와 역전파가 끝난 상태
- 1 epoch = 전체 데이터셋을 1회 학습
- epoch 횟수가 지나치면 과적합(Overfitting)이 발생할 수 있다.
3. step (스탭)
- 1 step = 가중치와 바이어스를 1회 업데이트 한 것
4. batch size (배치 크기)
- 1 step에 사용한 데이터의 수
- 몇 개의 데이터 단위로 매개변수를 업데이트 하는지
5. iteration (이터레이션)
- 1 epoch을 끝내기 위한 배치의 수
- 1 epoch내에서 이루어지는 매개변수의 업데이트 횟수
- batch size * iteration = data의 개수 ==> 이걸 한 번 학습하면 1 epoch
6. optimizer
https://truman.tistory.com/164
7. learning rate (학습률)
- learning rate는 일반적으로 0.01 정도로 잡는다.
- 너무 크게 잡으면 최솟점을 찾지 못하고 overshooting 된다.
- 너무 작게 잡으면 지역 최솟점에 빠지고 학습이 오래걸린다.
학습 과정
1. 데이터(x)를 입력한다.
2. 초기값으로 연산하며 신경망을 지나간다. (순전파)
3. 연산을 통한 예측값(y)이 나온다.
4. 손실 함수를 통해 예측값과 실제값을 비교한다.
5. 지정한 optimizer로 예측값과 실제값의 차이를 줄여나간다. (역전파)
- 이 과정에서 가중치가 업데이트 된다.
6. 설정한 epoch 혹은 step 수 만큼 학습을 진행한다.
반응형
'인공지능 > 딥러닝' 카테고리의 다른 글
CNN(Convolution Neural Network)의 기본 (0) | 2020.05.10 |
---|---|
딥러닝의 종류와 개념 (0) | 2020.05.05 |
손실 함수(Loss Function)와 최적화(Optimizer) (0) | 2020.04.27 |
신경망의 출력층 (0) | 2020.04.21 |
활성화 함수 (0) | 2020.04.20 |