머신러닝 모델은 Loss 를 최적화하는 관점에서 크게 두 가지로 나뉨
실제와 모형이 예측한 결과가 많이 차이날 경우 -> Loss가 클 것. 예측 실패
그렇지 않으면 -> 모형이 잘 예측한 것
Loss를 최적화, 최소화해주는 B(베타)를 찾는 것 => Optimization(최적화)
사람은 컴퓨터에게 학습하는 방식, 러닝하는 방식을 알려줘야 한다.
러닝하는 방식의 핵심은 실제와 예측된 값의 차이를 구해놓고 그 차이가 최소가 되는 일련의 규칙을 적용해줘야 한다.
그래야 가장 좋은 모델을 구할 수 있기 때문
여기에서 규칙 또는 일관된 룰과 관련된 것이 Optimization, 최적화
최적화는 머신러닝에서만 사용되는 것은 아님
공학, 과학 등 다양한 분야에서 활용되고 있음
목표하는 바를 잘 달성하기 위해 조절 변수들을 어떻게 조정할 것인지 -> 공학/과학 분야에서도 마주하는 문제
특히 전자/기계/화학공학 -> 과학적인 분석 후 결과를 기반으로 우리가 조절할 수 있는 팩터들을 잘 조정해 원하는 결과물을 만들어냄
-> 내가 원하는 것, 원하는 것을 가장 잘 해주는 결과, 이것을 얻는 일련의 과정을 최적화라는 큰 학문의 줄기로서 정리되어 있음
머신러닝에서도 이 개념을 가져옴
데이터를 설명하는 가장 좋은 모델을 학습시키는 데에 활용
머신러닝에서 러닝=최적화
아닌 경우도 있고, 성급한 일반화가 될 수 있지만 대략적인 큰 틀을 보자면 이와 같은 최적의 모델을 찾는 일련의 과정
일반화되고 굉장히 복잡한 함수들이 있는 상황에서의 Optimization 활용 방법
-> 경사하강법
Gradient Descent (경사하강법)
경사를 구하고 함숫값을 가장 빠르게 줄일 수 있는 방향으로 계속 내려간다
복잡한 함수들이 있는 상황은 눈을 감고 산을 내려가는 것과 같음 -> 어쨌든 내려가야 하니까(Loss를 minimize 해줘야하니까) 일단 한 발자국씩 내려가보자(가지고 있는 정보들로 함수를 만들어보자)
계속해서 Gradient Descent를 하다보면 조금씩 해가 계산되면서 낮은 지점으로 계속 수렴해갈 것 -> 복잡한 형태의 데이터이므로 극소점도 여러 개가 있을 수 있음. 미분해서 0이 되는, 기울기가 0인 지점도 여러 곳
-> 그 여러 군데 중에서 가장 작은, 가장 좋은 값을 갖는 것을 전역적인 최적해라고 부름
Global Optimum
전체로 봤을 때 가장 작은 지점
일부 연구 결과에 따르면 머신러닝, 딥러닝 모델에서 지역적인 최소해만 잘 구하더라도 꽤 성능 좋은 모델을 일관되게 구할 수 있음
활발하게 연구되는 분야, 미지의 영역이어서 계속 풀어나가야 하는 분야지만 현재까지는 그런 상태에 있음
Gradient Descent를 이용해 초기 해부터 계속 MSE가 줄어드는 방향으로 업데이트를 해주다 보면 가장 작은 지점에 도달하게 될 것
그 상태에서 구항 회귀식을 보면 우리의 데이터를 꽤 잘 설명하는 w와 b를 얻을 수 있음(기본 모델이 y wx+b일 때. w와 b는 Variable)