머신러닝 강의를 듣나보면 linear regression, classification 이런 단어들이 나옵니다.
classification은 분류인 것 같은데 regression은 뭘까? 라고 의문이 듭니다.
저는 이 regression이라는 말을 들었을 때 이게 도대체 무슨소리인가 싶었는데 애를 찾아보면 위키백과에서
- 회귀
회귀 분석은 관찰된 연속형 변수들에 대해 두 변수 사이의 모형을 구한뒤 적합도를 측정해 내는 분석 방법이다.
- 선형 회귀
선형 회귀 종속 변수 y가 한개 이상의 독립 변수 x와의 선형 상관 관계를 모델링하는 회귀분석
라고 나옵니다. 쉽게 말하면 그래프입니다. 실생활을 예로 들어보면
- 아들키 -> 아빠키
예를 들면 아들의 키가 큽니다. 그러면 아빠도 클 것 이다 라고 예상할 수 있습니다.
아빠키(y) | 아들키(x) |
180 | 190 |
173 | 186 |
165 | 176 |
160 | 168 |
157 | 164 |
얘를 그래프로 그리면
이렇게 점이 찍힙니다.
얘를 선을 그어보면
여기 라인을 보면 H(x) = Wx + b 와 같은 일차함수 형태로 나타낼 수 있습니다.
그런데 데이터가 많아지면서, 저런 라인을 아래와 같이 여러개를 그을 수 있겠죠?
그러면 어떤 라인을 쓰는 것이 가장 효율적인가? 라는 말이
어떤 라인을 쓰는 것이 머신러닝의 정확도가 높은가? 라는 말과 같다고 생각할 수 있습니다.
이 가설이 이 라인에서 얼마나 떨어져 있는가? 에 대한 값을 알아봅니다.
아까 봤던 저 위에 애들의 점을 확대해보겠습니다.
여기 보시면 저 점들이, 라인이랑 조금조금씩 떨어져 있습니다.
그래서 얘들이 얼마나 떨어져있는지 주황색 선으로 나타내 봤습니다.
그래서 여기서 드는 생각이, 저 주황색 선을 다 더한 값이 가장 작은 선을 구하면, 최적의 머신러닝 모델을 만들 수 있지 않을까? 라고 생각했습니다.
그러면 저 선을 식으로 나타내서 처리해줘야 하는데, 식으로 표현해보면 H(x) - y 를 다 더하면 될 것 같은데, 이렇게 그대로 하면 음수가 나올 수도 있으니, 제곱을 해 줍니다.
만약에 얘가 N개라면 아래와 같이 식이 나눠지게 됩니다.
자 그러면 얘를 좀 더 수학적으로 나타내봅니다.
자, 그러면 위에 보이는애가 cost함수입니다.
그럼 얘를 최소화하면 될 것 같은데, 어떻게 최소화하지? 라는 의문이 드실 수 있습니다.
그런데 쟤를 보다보면 예전에 봤던 애와 비슷하게 생겼습니다.
우리가 학교다닐 때 봤던 수학 공식과 비슷하게 생겼는데
이런 애를 그래프로 그리면 아래와 같이 생겼는데
얘를 최소화하는 부분을 찾는 것 입니다.
그렇다면, 어떻게 해야할까... 하고 보니, 경사도가 가장 작은 구간을 찾으면 됩니다.
이 경사도가 가장 작은 부분을 찾는 방법을 경사하강법(gradient descent algorithm) 이라고 합니다.
'인프런 - 강의 > 나도 만들어본다 AI 앱 (tensorflow+android)' 카테고리의 다른 글
6 - 그러면 deep러닝은 뭔가요? (0) | 2020.03.03 |
---|---|
5 - Linear Regression 구현 (0) | 2020.03.03 |
3 - AI란 무엇인가? (0) | 2020.03.03 |
2 - 개발환경 세팅하기 (0) | 2020.03.03 |
1 - 개요 (0) | 2020.03.02 |