티스토리 뷰

OPTIMIZATION

neural network를 공부하는 데, 가장 먼저 설명들었던 부분이다. (연구실에서 정말 많이 들었던 말! 이번 기회에 정리하고 넘어가자)


문제를 풀기위해서는 parameter들을 적절한 값으로 update를 해줘야하고 그 값을 결정하는 데  optimize과정이 필요하다. 

예를 들어, loss function의 값을 minimize하는 과정 등을 optimization 이라고 할 수 있다.

loss function이 0에 가까울수록 실제 data와 가깝게 분류나 예측 등의 문제를 해결한 것이다. 

때문에 loss function의 값을 최소로 하는 최적의 값을 찾는 과정, 이를 optimization이라 하는 것이다.


 출처: http://sanghyukchun.github.io/63/ 블로그를 제 수준에 맞게 해석하여 작성한 것입니다.


f(x)가 최댓값 혹은 최솟값과 같은 optimum 상태를 갖게 하는 point를 찾는 것이, 바로 optimization problem을 해결하는 방법인데,

위의 식으로 간단히 생각해보면 min f(x) 값을 갖게 하는 g(x)값이 무엇인지, 즉 c 값을 찾는 것이 optimize하는 과정이라고 할 수 있겠다.


주로 미분을 통해서 기울기가 0이 되는 극 point를 찾는 방식으로 optimization을 진행하는데, 항상 극값을 찾을 수 있는 것은 아니다.

-미분 자체가 되지 않는 함수인 경우

-미분값 0이 극점이 아닌 경우 ex. saddle point

출처: 위키피디아<- saddle point 출처: 위키피디아


매우 특수한 일부 경우에 대해서 완전한 optimum을 찾는 방법이 알려져 있다. 그 경우가 바로 convex optimization이다.



convex function

convex function은 convex set을 domain으로 하고있는 함수이다. 

convex set이란 한 set에 존재하는 그 어떤 점을 잡아도 그 점들 사이에 있는 모든 점들 역시 그 set에 포함되는 경우의 data set을 말한다.

non-convex setnon-convex setnon-convex set     convex set     출처: 위키피디아



convex function은 앞서 말했듯이, convex set을 domain으로 하고 다음 성질을 만족하는 function이다.


f(λx1+(1λx2)λf(x1)+(1λ)f(x2)) for x1,x2X,λ[0,1]





convex function에서는 optimal 값 으로, 단 하나의 optimal한 값이 나타난다.

주의할 점!! optimal한 값이 하나이지, optimal point가 하나만은 아니다.



f(λx1+(1λx2) <λf(x1)+(1λ)f(x2)) for x1,x2X,λ[0,1]


이 조건에서는 optimal point가 단 하나로 나타난다. 이러한 함수를 strictly convex function이라 한다. 

이 조건에서 optimization algorithm을 design할 수 있다.







공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함