본문 바로가기
머신러닝/딥러닝

딥러닝 하이퍼파라미터(학습률,미니배치,반복학습)

by ADELA_J 2023. 7. 25.

<최적화 함수>

https://cs231n.github.io/neural-networks-3/#add

- 가중치 갱신 : 오차 함수를 각 가중치로 미분한 값을 바탕으로 갱신해야 할 방향과 어느정도로 갱신할지 결정

▶ 학습속도, epoch, 가중치 갱신량 등을 근거로 어떻게 반영할지 결정

- 최적화함수 = 하이퍼파라미터

 

<학습률, learning rate>

- 각 층의 가중치를 한 번에 어느정도 변경할지 결정하는 하이퍼파라미터

- 손실함수에 대해 적합한 학습 속도를 설정할 필요가 있음. 

출처 : https://analyticsindiamag.com/how-to-use-learning-rate-annealing-with-neural-networks/

가장 높은 정밀도가 나오는 학습속도를 예상하며 코드를 변경해봄.

▶ 학습률 learning rate 를 변경해봄. 

◀ funcA() lr : 0.01 일때 ▲ funcB() lr : 0.1 일때 ▶funcC() lr : 1.0 일때

<미니배치 학습>

- 배치크기 (batch size): 한번에 전달하는 데이터 수, 이것도 하이퍼 파라미터

- 편향된 데이터가 많을 때는 배치 크기를 크게, 유사한 데이터가 많을 때는 작게 등 잘 조정해야함.

- 온라인학습(확률적 경사하강법) : 배치크기를 1로 하는 방식

- 배치 학습(경사 하강법) : 배치크기를 전체 데이터 수로 지정하는 방식, 기울기 값이 가장 작은거

- 미니배치 학습: 이들의 중간이 되는 방식

▼ 여기서는 미니배치 학습으로 시도해보기 (데이터마다 방식은 다를 수 있음)

◀ funcA() batch_size:16 일때 ▲ funcB() batch_size:32일때 ▶funcC() batch_size:64일때

<반복학습>

- 정확도를 높이기 위해서 동일한 훈련 데이터를 사용해 여러번 학습시키는 것

- epoch 수임. 이것도 하이퍼파라미터

- 높인다고 정확도가 계속 오르는건 아님. 적절한 반복학습이 중요함. 

◀ funcA() epochs=5 일때 ▲ funcB() epochs=10일때 ▶funcC() epochs=60일때