[모두를 위한 딥러닝] 03. Linear Regression 과 Cost 함수를 Minimize 하는 방법

최지수·2021년 5월 11일
0
post-thumbnail

들어가기 전에 앞서 전에 배운 걸 다시 Remind 해봐요

가설 함수와 비용 함수

모든 데이터를 대변하는 적절한 함수를 가설함수Hypothesis Function,

그리고 가장 적은 오차의 가설함수를 도출하기 위해 사용되는 함수를 비용함수Cost Function이라고 하였고, 이는 가설함수Hypothesis Function(예측값)와 데이터오차 값의 제곱을 평균한 수식이라 배웠어용 (평균 제곱 오차Mean Squared Error(MSE)라고도 불립니당).

우리는, 비용함수Cost Function값이 최소화, 즉, 오차를 최소화가 되는 Wb를 찾아야 합니당.

우선 쉽게 만들어 봐요

가설 함수의 b를 제거해서 단순화

편리하게 연산하기 위해 기존의 가설함수Hypothesis Function에서 b생략하였습니당.

그냥 뺀다고 걱정하진 마세요

나중에 이 b 값이 W매트릭스 안에 포함이 된다고 합니당.

저도 아직까지 무슨 이야긴지 모르겠어용 ㅎㅎ, 나중에 알려준다고 하니까 안심하고 빼도록 하겠슴돠.

가설함수Hypothesis Functionb가 생략됨과 동시에 비용함수Cost Function에도 생략이 되었습니당.

자 그럼 본론으로, 비용 함수(Cost Function)이 어떻게 생겼는지 보죠

비용 함수 연산

주어진 데이터를 기반으로 W 값을 0~4까지 값을 주고 계산했을 시 우측과 같은 결과가 나옵니당. 그럼 아래와 같은 그래프가 구성됩니당.

그래프 결과물(위 데이터 기반으로만 점을 찍었을 때(좌), 전체 그래프(우)

본분을 잊지 맙시다

우리의 목표는 비용함수Cost Function최소값을 찾는 겁니당. 그래프 상에서 보면 어느 지점이 최소값인지 알 수 있습니당.

비용 함수 최소값 위치

우리는 수학을 매우 잘해서 바로 찾을 수 있지만 컴퓨터는 아직 스스로 찾을 능력이 못됩니당 ㅠ

그러니 우리는 컴퓨터에게 방법, 즉 알고리즘을 줘야 합니당!

알고리즘경사하강법Gradient Descent Algorithm이라고 합니당.

Gradient Descent Algorithm

말 그대로 경사를 하강하면서 최저점을 찾는 알고리즘입니당.

똑똑하신 분들은 듣자마자 감을 잡으셨을지도 모르겠지만 전 아녔습니당...헤헤

어떤 특징이 있는지 알아보죠!

경사하강법Gradient Descent Algorithm
1. 비용함수Cost Function 최소화하는 함수
2. 많은 최소화 문제에 사용
3. 주어진 비용함수Cost Function에서 최소 오차 값을 구하기 위한 cost(W,b)Wb 찾음
4. W 여러개 일때도 사용 가능(ex. W1, W2, ...)

매커니즘은 아래와 같습니당.

경사하강법Gradient Descent Algorithm 매커니즘
1. 임의의 지점에서 시작
2. Wb를 조금씩 바꿔 cost(W, b)값을 감소(매번 경사를 선택)
3. 1~2 반복
4. cost(W, b)가 최소가 되는 지점(극소점)에 수렴될 때까지 반복

매커니즘을 그래프 상에 표시하면 아래와 같습니당.

경사하강법 매커니즘 그래프

여기서 재밌는 것은, 어느 지점에서 시작하던 간에 이 매커니즘을 이용하면 극소점을 향해 가게 됩니당

어떻게 진행하는지 보죠

그래프 기울기 값

그래프의 기울기는 가운데 선(극소점 위치)를 기준으로 양수, 음수가 결정됩니당. 그리고 가까울 수록 기울기의 절대값은 작아집니다.

따라서, 어느 지점에 있던 간에 현재 WW의 기울기만큼 값을 빼는 것을 반복하면 극소점에 가까워지게 됩니당(그것도 가까울 수록 천천히...!)

그럼 기울기를 구해봅시다!

다행히 저는 수학을 열심히 해서(ㅎ) 비용함수Cost Function기울기 함수는 미분을 통해 구할 수 있다는 것을 알고 있었습니당!

흠흠; 미분을 통해 기울기 함수를 구하고 경사하강법Gradient Descent Algorithm을 적용한 W는 수식은 아래의 과정을 거쳐 구해집니당.

아! 우리는 W기울기를 원하기 때문에, W를 기준으로 미분을 수행합니당!

경사하강법을 적용한 W
1번에서 2를 나눈 이유는 수식을 간략화하기 위해서입니당.

그리고 2번에서 해당 함수를 미분하면 표시된 결과가 나옵니당.

그리고 마지막 3번에서 미분 함수와 Learning Rate를 곱한 값을 빼주면 경사하강법Gradient Descent Algorithm이 적용된 W의 수식을 보실 수 있습니당.

Learning Rate

  • 학습 수치라고도 하며, 경사를 얼만큼 이동할지를 나타내는 수치
  • 매우 작은 값(0.01, 0.0001)이 사용됨
  • 값이 클 경우 극소점을 못 찾을 수도 있고, 값이 작을 경우 찾는데 매우 오래 걸림

이걸 간단하게 아래처럼 표현이 가능합니당!

경사하강법이 적용된 W의 수식

오목(Convex)해서 다행이에요

마지막으로, 평균오차제곱Mean Squared Error오목한 함수Convex Function이기 때문에 경사하강법Gradient Descent Algorithm최소화 하기위한 방법으로 적합한 방식이라고 할 수 있슴돠.

좌측 3D 그래프는 평균오차제곱Mean Squared Error의 그래프인데용.

경사하강법Gradient Descent Algorithm은 어느 지점이든 극소점을 향해 갑니당.

좌측 그래프에 이 방법을 수행했을 땐 극소점을 향해 가게 되지만,

우측 그래프의 경우엔 시작지점에 따라 극소점이 달라요. 즉, 전체적으로 가장 낮은 지점을 못 찾는 경우가 있어 정확도가 떨어질 수 밖에 없어용.

그러니, 이후에 비용함수Cost Function가 우측 그래프와 같다면, 다른 방법을 찾아봐야 한다고 결론을 맺겠습니당 후후

후기

이미 알고 있었다고 생각한 내용이었는데 글을 쓰면서 정리하는 과정에서 몰랐던 부분과 '왜 그랬지?' 하는게 해소되는 기분이네요 ㅎㅎ

근데 아직 강의를 들으며 글 쓰는건 속도가 더디네요 ㅠ 20분짜리 영상에 몇시간을 소모한건지...으...

그래도 오늘 모니터 암 충동 구매했어요! 히히히힣ㅎ히히히 책상이 넓어질 걸 생각하면 벌써 마음이 도키도키하네요. 나중에 블로그에도 후기를 쓸 생각하니 지식의 창고가 더 늘어나는 기분이에용!

내일은 운동 끝나는대로 바로 실습에 들어가야겠네용!

profile
#행복 #도전 #지속성

0개의 댓글