Biotechnology

03-1. Regression의 기초 본문

생명공학 전공지식/Machine Learning

03-1. Regression의 기초

로얄블루 2018. 6. 19. 21:15

안녕하세요,


로얄블루입니다. 





오늘도 이어서 'Machine Learning' 에 대해


Andrew Ng 교수님의 Coursera 수업의 내용을 


가공하여 포스팅하도록 하겠습니다. 



03-1. Regression의 기초



저번 포스팅으로



Machine Learning의 분류에 대해서 간략하게 살펴봤습니다.



보러가기 :  http://biotech-lab.tistory.com/entry/02-Machine-Learning%EC%9D%98-%EB%B6%84%EB%A5%98?category=739602






오늘은 



Regression(회귀)에 대한 알고리즘에 대해 소개해보고자 합니다.



Regression model



Supervised Learning (지도학습)에 속하면서,



연속적인 Output으로 결과를 예측하는 것을 말합니다.






Regression model은 



학습(Training)하고자 하는 Data set을 통해



Predictive Model (예측 모델)을 만들어내고,



이 모델을 사용하여



새로운 Data가 왔을 때, 



결과를 예측을 하는 것을 기본 토대로 하고 있습니다. 





다들 추세선이라고 들어보셨습니까?





이과 혹은 공과 계열의 대학생이라면 



매주 실험하면서 엑셀을 통해 추세선을 지겹도록 만들어봤을 것입니다.  



혹은 경제나 경영 계열의 대학생이라면



분명히 추세선이 익숙하리라고 생각합니다. 





추세선은 



경제 용어로, 어느 기간 동안 같은 방향으로 움직이는 '추세'를 



차트에 일정한 직선 혹은 곡선을 통해 나타내는 선이라고 할 수 있습니다. 






Regression 



바로 이 추세선을 만드는 작업을 의미한다고 봐도 과언이 아닙니다. 



의미에 대해서 어느 정도 감을 잡았으리라 생각하고, 

 


이제 알고리즘에 대해 살펴보겠습니다. 






우선 가볍게,



Linear Regression (선형 회귀)에 대한 개념부터 시작하겠습니다.



Linear Regression (선형 회귀)란, 



우리가 학창시절 비교적 쉽게 다루었던 1차 함수를 말합니다. 




바로 



이런 꼴의 모양의 함수를 



Predictive model (예측함수)로 만들어내는 것이라 보면 됩니다. 





개념을 이해하셨으면,


이제 알고리즘을 차근차근 살펴보겠습니다.




첫 단계, 하고자 하는 가설과 모르는 부분을 알아보자!





Linear Regression(선형회귀)이 목표로 내세운 가설(Hypothesis)은 



input data을 집어넣어 



1차 함수을 통해 결과를 예측한다는 것입니다. 




여기서 는 input data의 값이며,



는 우리가 알고 싶어하는 output (예측 값)입니다.  



따라서 모르는 수치(parameter)는 



기울기와 



절편입니다. 




이 그림과 비교하자면


우리는 기울기 m과 y 절편 b를 구하는 것이라 할 수 있습니다.





두번째 단계, 모델의 최적화란 무엇인가?





Cost function (비용함수)란, 



최적화를 위해 사용되는 복잡한 조건을 수식화한 것입니다. 



우리가 만드는 예측모델에서



Cost (비용)인 은,



실제로 알고 있는 결과(Y)와  



모델이 예측한 예측값과의 차이를 의미합니다.






결국, 



결과와 예측값이 차이가 적을수록 



모델을 신뢰할 수 있으므로



우리의 목표는 



Cost를 최소화하는 것입니다.






Cost function (비용 함수)을 설명하자면,



차이를 정확하게 반영하기 위해, 



차이의 절대값들을 모두 더한 후에, data의 수의 2배로 나누어줍니다. 



통계를 배우신 분이라면, 


모 표준편차의 제곱의 절반을 구하고 있다는 것을 알고 계실겁니다. 


왜 2로 나누었을까요?


이는 뒤에 나오는 Gradient (미분식)을 쉽게 만들기 위해서입니다.


즉, 제곱을 미분하면 지수의 2가 내려오기 때문에, 


이를 상쇄하기 위해, 2로 나눈 것이지요.






세번째 단계, Cost(비용)을 어떻게 낮출 것인가?



우리는 앞서 두 단계를 통해,



최적화를 하기 위해서는 비용을 낮춰야한다는 것을 알았습니다. 



그렇다면 어떻게 Cost (비용)을 낮출 수 있을까요?



간단히 생각해보자면,



우리는 다음 세 과정을 통해 비용을 낮출 수 있습니다.




1. 특정값의 와 로 학습을 시작한다.


2.  와 이 바뀌어질수록 이 감소하는 것을 확인한다.


3. 이 최소일 때의 와 을 선택한다. 




  


국부적 낮은 지점 (local minimum)으로 빠르게 내려가려면


기울기(gradient)가 가장 급한곳으로 가야한다는 것을 


직감적으로 알 수 있습니다. 





아주 간단한 아이디어입니다. 


산에서 가장 빠르게 내려가는 방법은


가장 급한곳으로 내려가는 방법을 선택한 것과 동일한 원리입니다.




이 방법을


Gradient descent algorithm 이라 부릅니다. 


번역하자면, 기울기 하강 알고리즘을 뜻합니다. 





연역법의 꼴로 보자면


n 단계의 에서 


Cost function의 기울기Slope parameter()를 곱한 값을 빼면,


n+1 단계의 새로운 얻을 수 있습니다.  





이 식에서 새로 등장한


Slope parameter()은 


배우는 속도 혹은 산을 내려오는 속도를 의미합니다.





첫째, 가 너무 작으면, 


Gradient descent가 작아져 느려질 수 있습니다. 


즉, 배우는 속도가 느리다고 할 수 있습니다.




둘째, 가 너무 크면, 


Gradient descent가 overshot을 유발할 수 있습니다. 


또한, 원래는 수렴해야하는 상황인데 발산할 수 있습니다. 






우리는 이제 


Linear Regression 함수를 


Gradient descent algorithm에 대입을 해야합니다.





필요한 수식은 다음과 같습니다. 






대입을 해, 정리를 하면 다음과 같습니다. 





새로운 와 는 과거의 와 으로부터 얻어지고 


이 과정을 수렴할 때까지 반복합니다.


이 때, 우리는 수렴의 기준을 정하는 Threshold 값을 설정해주어야 합니다.





이런 과정을 거쳐서 얻어진 Regression model


엑셀에서 버튼 한 번에 해결되는 


'선형' 추세선의 그래프를 얻었다고 보시면 됩니다. 엑셀만세

 


출처 : http://jaykim361.tistory.com/540




오늘은 사실 아주 간단한 


2개의 변수만 있는 1차 함수를 만들어본 것이라는거 알고있죠?




다음은 선형그래프여도 여러 개의 변수가 있는


Multiple Regression model에 대해서 


알아보려고 합니다.





다들 즐거운 일만 가득하길 바라면서, 


이상으로 오늘의 포스팅을 마치도록 하겠습니다. 




출처 :  


https://www.coursera.org/learn/machine-learning


https://coggle.it/diagram/Wcez0SY9AQABcRGj/t/machine-learning-coursera


'Machine Learning' in Stanford University, Prof. Andrew Ng 

Comments