카테고리 없음

DeepMl-03 Optimization

Overflow42 2021. 10. 7. 23:00

Optimization

Optimization - 최적화

딥러닝은 데이터가 클수록 더 나은 결과값을 도출하는 데 반해 훈련 속도는 느려질 수밖에 없다

이럴 경우 효율성을 높이기 위한 optimization 알고리즘을 잘 선택해야 한다

 

1.Optimization Random search

말그대로 무작위로 파라미터를 찾는 방법입니다

가장 먼저 생각해볼 수 있는 방법이지만 정말 비효율적이고 성능이 좋지 않은 알고리즘입니다

 

2.Optimization Follow the slope(경사하강법)

산에서 한발자국 한발자국 경사를 느끼며 내려가다 보면 나의 구체적인 현재 위치를 몰라도 언젠간 내려갈 수 있듯이

파라미터의 기울기를 이용하는 방법

gradient의 반대 방향으로 일정 크기만큼 이동해내는 것을 반복하여 Loss function  의 값을 최소화하는 파라미터 를 찾습니다.

 

2-1. numerical gradient

 

임의의 가중치 W를 다수 설정하여 하나의 가중치 집합을 만들고 이 가중치에 미세한 h를 더해서 loss를 계산합니다

끔찍하게 느리니 하지말라고합니다...

 

2-2. Analytic gradient

W의 모든 요소를 순환하는 대신 gradient를 나타내는 식을 먼저 찾고 수식으로 나타내서 한번에 gradient dW를 계산합니다.

numerical gradient보다 훨씬 효율적입니다