본문 바로가기
COURSERA/Supervised Machine Learning

[Courasera] [1week] Introduction to Machine Learning : 머신러닝 특화과정

by 호상 🐧 2022. 12. 20.

본 게시물은 Courasera Andrew Ng 교수님의 머신러닝 특화 과정

Supervised Machine Learning : Regression and Classification

1week 을 summary 한 것입니다.

 


Ⅰ : Introduction to Machine Learning

 

머신러닝은 컴퓨터가 명시적으로 프로그래밍 되지 않고 학습할 수 있는 능력을 제공하는 연구 분야로 정의 할 수 있습니다.. 이에 따라 머신러닝의 목적은 기계가 어떠한 일들을 스스로 배움으로써 해결하는 것입니다.

 

 

머신러닝은 다양한 학습알고리즘이 있는데, 주요 알고리즘으로 지도학습, 비지도 학습이 있습니다. 감독된 학습은 출력 매핑에 대한 입력을 학습하는 알고리즘을 의미합니다. 주어진 입력 x에 대한 정답 y가 제공되며, 입력 x와 원하는 출력 레이블 y의 대해 학습 알고리즘은 입력에 대한 합리적인 출력을 예측합니다. 지도 학습은 회귀(Regression)와 분류(Classification)가 있습니다.

 

비지도 학습은 데이터가 입력 x만 제공되고 출력 레이블 y는 제공되지 않습니다. 알고리즘은 데이터에서 구조를 찾아야 합니다. 비지도 학습에는 클러스터링, 이상 탐지 및 차원 축소가 있습니다.

 

 분류는 샘플이 속한 클래스를 예측하는 것입니다. 그래프와 같이 클래스나 카테고리를 통해 학습 알고리즘은 악성 종양과 양성 종양을 구분하는 경계를 찾아 입력 값으로 클래스를 예측합니다.

 

 

회귀 문제는 Housing price prediction 그래프와 같이, 연속적인 값에 대한 적합한 선이나 곡선을 통해 input 값의 대한 답을 예측하는 것입니다.

 

선형회귀모델은 집의 가격을 예측하기 위해서 학습 데이터셋을 주면 Learning 알고리즘이 함수 f를 만들어 낼 것입니다. 여기에 집의 크기(x)를 넣어주면 집값이 얼마인지 예측할 수 있습니다.

 

f는 가설 함수(hypothesis function)라고 부르는데 선형 회귀에서 feature 1개인 선형 모델에서 ff=wx + b 로 나타낼 수있습니다.

 

선형 회귀를 구현하기 위해 첫 번째 핵심 단계는 비용 함수를 정의하는 것입니다F(x)에서 w b 값에 따라 위와 같이 그래프 모양이 바뀝니다.

 

모델을 개선하기 위해 실제값과 함수에 대한 값의 오차가 작아지기 위해 w b를 조정해 줄 필요가 있습니다. 실제값과 예측값의 차이인 오차는 (f(x) – y)로 나타낼 수 있습니다. 이때 오차는 음수가 나올 수도 있기 때문에  제곱을 합니다. 오차는 샘플 1 ~ 샘플 m까지 총 m개가 있으므로 모두 더해주고 m으로 나눠주면 됩니다.

 

그래서 비용함수는 모델의 비용을 나타냅니다. 비용이 낮을수록 모델의 정확도가 높다는 것을 뜻합니다. 따라서 아래 그래프와 같이 비용함수가 최소가 되는 parameter를 찾아야 한다는 것입니다.

 

비용 함수의 최소를 찾기 위해서 경사 하강법을 이용합니다Gradient Descent 는 한 점에서 시작해서 매 순간마다 최솟값으로 내려갈 수 있는 길을 찾아서 가다 보면 다음과 같은 길로 최솟값에 도달할 수 있습니다.

 

그라디언트 알고리즘은 알파 (학습률)과 비용함수의 미분 계수를 이용하여 wb update 해줍니다. 알파는 러닝레이트로 경사를 얼마나 크게 내려가는지를 조종하는 변수입니다.

 

비용함수의 미분계수를 사용하는 이유는, 미분계수를 0으로 만들어주는 값은 최솟값을 갖게 되기 때문입니다. 목적은 비용을 최소화 하는 것이기 때문에 그래프와 같이 미분계수는 양수이므로 w를 작아지는 방향으로 업데이트 해줘야 합니다. 만약 미분계수가 음수라면 알파 앞에 붙은 마이너스와 상쇄되어 커지는 방향으로 업데이트 됩니다.

 

만약 알파가 너무 작다면, 업데이트되는 미분계수 비율이 작아지기 때문에 gradient descent가 매우 느려질 것이고, 알파가 너무 크다면, 최솟값에 도달하지 못하거나 오히려 발산할 수 있다.

 

알파 값을 계속 바꿔줄 필요는 없는데, w값이 업데이트 될수록 기울기도 줄어들게 되므로 업데이트되는 양도 점점 줄어든듭니다. 따라서 위 그래프처럼 자연스럽게 최솟값에 도달하게 됩니다.

 

그래서 선형 회귀 에서는 gradient descent 알고리즘이 위과 같이 사용하게 됩니다.

 


느낀점 🙋‍♂️

기존에 공부 했던 내용을 복습하는 느낌으로 강의를 수강한 것 같다. 다만 개념들의 정의나 수식을 이해하려 시간을 들여보니 전에 공부한 것은 그냥 "아 그렇구나" 하고 넘어 갔다는 것을 많이 깨닫게 되었다. cost function의 의미, gradiant 의 의미 등 개념을 확립하는 계기가 된 것 같다.

댓글