TIL/머신러닝

11.22 오전 머신러닝 최적화 ,경사하강법

monawa 2022. 11. 22.
728x90

4-1. 최적화와 모형 학습

 

모형학습

  • 머신러닝 모형이라고 하는 것은 Loss 함수를 정의하고 그 Loss함수를 최적화하게끔 하는 것이다
  • 결국에 이 Loss오차를 measure하고 어떻게 이차이를 정의하는가 실제하고 모형이 출력해 주는 출력 결과물 2개의 차이를 최소화하는 최적의 모형을 찾아주는 과정
  • 환경에서 축적된 경험을 가지고 데이터화해서 그 데이터를 가지고 함수를 만든다. Loss를 최소화해 주는 가장 좋은 어떠한 모형, 패턴을 찾는 것

머신러닝에서 러닝은 최적화다

큰틀에서 보자면 이와같은 최적화를 찾아가는 일련의 과정이다!

 

이러한 복잡할떄는 어떻게 최적화 할수있을까?

이 다음에 배울 최적화와 경사하강법은 복잡하고 기존의 방법으로 해결하기 어려웠던 그런 최적화 문제를 어떤 방식으로 해결하는가에 대해서 배우는 시간이 될 것이다


 

4-2. 경사하강법 개요

기본아이디어는  함수(산)에서 함수가 어떻게 생겼는지는 몰라도 현재의 함수값은 알수있다

우리가 할수있는 전략은 내가 딛고있는 땅 주변을 더듬더듬 가파르게 낮아지는곳으로 나아가는것

그러면 어느순간부터 평평한 면이 나온다  

이러한 방식으로 복잡한 함수에서 가장 낮은 영역을 찾아준다고 보장할수는 없지만 

내가 처음 가지고있던 함수의 값보다는 낮은 꽤 쓸만한 결과물을 얻을수 있다 

이것이 Iterative Algorithm-based(반복 알고리즘)


앞이 보이지 않는 안개가 낀 산을 내려올 때는 모든 방향으로 산을 더듬어가며 산의 높이가 가장 낮아지는 방향으로 한 발씩 반복해서 내딛어가는것


경사하강법은 gradient(기울기) 를 해서 함숫값이 빠르게 작아지는 방향을 찾고 그거로 그방향으로 계속 내려가는방법

gradient 방향이 함숫값을 가장빠르게 올려주는 방향 반대로 가면 가장 빠르게 줄어들게 된다

그러므로 우리는 gradient를 이용해 함숫값을 줄여서 gradient Descnt(경사하강법 )라고 부릅니다 

 

함수의 어떤 지점에서 기울기를 미분을 통해 구한다.

이 기울기에 일정한 비율(learning rate)을 곱해 파라미터에서 빼준 뒤,

그 지점에서 다시 기울기를 구해 빼주는 것을 반복한다.

 

계산 자체는 함수 W에 대한 미분을 해서, Loss 함수를 W에 대한 미분을 해서 그러면 Gradient를 구할 수 있고 기울기 벡터를 구할 수 있고 그것이 결국에는 어떤 방향으로서의 영향을 주는 것이고 그것만큼 그 방향으로 Step Size만큼 이동시켜 주면그리고 이걸 계속해서 반복하다 보면 그래도 꽤 쓸 만한 그런 함숫값이 나온다는 내용


gradient descent는 함수의 최소값을 찾는 문제에 활용되며

 

미분계수가 0인 지점을 찾는방식을 사요하지않고 이같은 방법을 쓰는이유는

  • 우리가 실제 보게되는 함수는 형태가 복잡하여 미분계수를 계산하기 힘들고 
  • 실제 미분계수를 계산하는 과정을 컴퓨터로 구현하는 것에 비해 gradient descent는 컴퓨터로 비교적 쉽게 구현할 수 있기 때문이다.
  • 데이터 양이 매우 큰 경우 gradient descent와 같은 iterative한 방법을 통해 해를 구하면 계산량 측면에서 더 효율적으로 해를 구할 수 있다.

 


 

 

 

이러한 굴곡이 많은 그런 데이터 형태에서는 여러 군데 중에서 가장 작은 가장 좋은 값을 갖는 것을 전역적인 최적해(Global Optimum)라고 부릅니다.

한계점은 경사하강법은 국소적인 최솟값(local minima)을 찾을 수 있지만, 이것이 전역 최솟값(global minimum)이라는 보장은 없다는 것입니다 

이는 어느 지점에서 시작했느냐에 따라 최적화의 결과가 완전히 다를 수 있다는 말이기도 하다. 언덕에서 공을 굴렸는데 맨 아래로 내려가지 않고 중간에 파인 부분에서 멈춰버리는 상황을 생각해보면 된다.

 

 

경사 하강법에서는 학습시 스텝의 크기 (step size)가 중요하다.

학습률이 너무 작을 경우 학습률이 너무 클 경우 
 학습 시간이 오래걸림
(알고리즘이 수렴하기 위해 반복해야 하는 값이 많으므로)
학습 시간은 적음
(알고리즘이 수렴하기 위해 반복해야 하는 값이 적음으로)
지역 최소값(local minimum)에 수렴할 수 있다.
전역 최소값(global minimum)에 도달하지 못함

최소값에서 멀어질 수 있다
(스텝이 너무 커서 전역 최소값(global minimum)을 가로질러 반대편으로 건너뛰어감으로 수렴하지 못함)

 

 

 

참고자료 

 

 

실습으로 배우는 머신러닝

 

www.kmooc.kr

 

 

경사 하강법(Gradient Descent)

경사 하강법(Gradient Descent)   경사 하강법(Gradient Descent)은 머신러닝 및 딥러닝 알고리즘...

blog.naver.com

 

 

경사하강법

경사하강법(영어: Gradient descent)은 함수가 최솟값을 가지도록 하는 매개변수를 찾아내기 위한 알고리즘이다. 산을 내려가기 위해서는 가장 기울기가 가파른 방향으로 계속해서 내려가면 된다는

librewiki.net

 

 

De novo

과학, 기술을 생각하기

taran0sh.wordpress.com

 

 

경사하강법 (Gradient descent)

경사하강법 (Gradient descent) StartBioinformaticsAndMe 경사하강법 (Gradient descent): 함수 기울기(경사)를 낮은 쪽으로 계속 이동시켜서 극값에 이를 때까지 반복시키는 것: 제시된 함수의 기울기로 최소값

bioinformaticsandme.tistory.com

 

728x90

댓글