1-1, 1-2 Intro & Model and Cost function 본문

ML & DL/Coursera-ML

1-1, 1-2 Intro & Model and Cost function

eremo2002 2019. 1. 3. 19:02

머신러닝을 아래 3가지 요소를 정의해야 한다.

 

Task: 내가 풀고자 하는 task 무엇인가?

Experience: 내가 가지고 있는 data 무엇이고 data 해당 task 설명하고 있는지, 충분한 data 있는지

Performance measure: 머신러닝의 성능지표를 어떤 기준으로 두고 평가할 것인지

 

머신러닝의 학습 알고리즘은 크게 supervised learning unspervised learning 두가지로 나눌 있다.

( 외의 강화학습, 추천시스템 등이 있음.)

 

 

Supervised Learning: 정확한 답이 있는 dataset 주고 학습시키는 방법



     - Classification: 이산적인 결과값을 예측할 있는 함수(모델) 찾아 새로운 데이터에 대해서도 올바르게 분류하는

(종양 크기에 따라 암인지 아닌지 구분, 여기선 '종양 크기'라는 하나의 feature 사용했지만 실제론 무한히 많은 

 feature들을 고려해야 수도 있음)



- Regression(회귀): 연속적인 결과값을 예측하는 것(평수에 따른 집 값 prediciton)

 

 

 

Unsupervised Learning: dataset 주어지지만 data label 가지고 있는 것도 아니고, 어떤 의미를 가진 data인지도 알려주지 

 않는다. 그냥 dataset 자체만


Clusetring: dataset 자체만 주고서 기계적으로 데이터 내에서 의미있는 구조를 찾아 비슷하거나 관련있는 유형으로

분류하는 것 (고객 유형에 따라 속한 시작을 분류하는 Market segmentation)



Cocktail party problem algorithm

 

 

 

 

 

 

 

 

 

 

Model Representation

 

 


평방크기에 따라 값을 예측하는 예제를 생각해보자.

트레이닝 데이터셋으로 그래프와 같은 데이터가 주어졌을 , 새로운 데이터로 크기가 1250 값의 가격은 얼마로 예측할 있을까?

가장 간단한 방법은 그래프에서 데이터들의 분포를 나타낼 있는 직선을 하나 그어서 대략적으로 예측하는 것이다.

 

 

 

 


이러한 직선은 일차함수 y=ax + b 나타낼 있다. 우리가 데이터를 대표할 있는 함수(모델) 찾을 있다면 앞으로

받게 새로운 데이터에 대해서도 가격을 예측할 있을 것이다. 예시처럼 x 하나인 직선함수를 사용하는 모형을

선형회귀라고 한다. 선형회귀는 하나의 x값으로 모든 가격을 예측한다. (X 하나만 사용하기 때문에 단일변량 선형회귀라고도 )


실제로는 우리가 풀어야 하는 문제가 매우 복잡하고 다양한 feature들을 고려해야하기 때문에 선형회귀를 통해 가격을 예측하는

것은 쉽지 않을 것이다. 선형회귀에서 시작하여 머신러닝의 알고리즘을 이해할 있어야 데이터의 특성을 반영하는 

결과적으로 prediction 있는 복잡한 모델을 설계할 있을 것이다.

 

 

 

 

 

 

Cost function 정의

Cost function 사용하면 주어진 data 가장 대표할 있는 선형함수를 찾아낼 있다.

 

 


 

위에서 우리가 h(x) 일차함수로 놓으면 𝜃 x 표현할 있다. 그러면 𝜃 값에 따라 선형함수의 모양이나 위치가 조금 바뀔 것이다.

그러면 데이터의 분포를 나타낼 있는 h(x) 찾기 위해 이를 반영하는 𝜃 값을 찾는 것이 중요하다.

최적의 𝜃값을 어떻게 찾아야 할까?

 

 

 

 

 

 


어떤 training dataset 나타내는 선형함수를 하나 만들었다. 모델을 통해 다음에 들어올 데이터에 대해서도 예측할 있을 것이다.

최적의 𝜃값을 어떻게 찾아야 할까?

우리가 만든 h(x) 실제 y 사이의 차이가 크다면 모델은 예측을 하지 하는 모델이다.

반대로 h(x) y 간의 차이가 작다면 모델은 데이터를 나타내고 예측을 있는 모델이 있다.

, h(x) y 사이의 차이가 작아지도록 하는 𝜃 찾는 것이 목표이다.

 

 

 

 

 


실제로 우리가 세운 가설 h(x) y값의 차이의 제곱합을 구한다. 그리고 값을 m으로 나눠주면 평균을 구할 있다.

앞에 1/2 곱해준 것은 나중에 gradient descent에서 계산의 편의성을 위해 곱한다.

어찌됐든 결과적으로 오차를 최소화하고자 하는 우리의 목표에는 변함이 없다.

식이 선형회귀에서 사용하는 cost function이며 Squared error function, Mean squared error라고도 부른다.

Cost function 사용해서 우리가 세운 가설의 정확도가 얼마나 되는지 판단할 있다.

 

 

 

 


다시 정리하면, 앞에서 세운 cost function 함수 J라고 놓자

우리는 J 최소화 있는 𝜃값을 찾아내는 것이 목적이다. 이것이 선형회귀의 cost function, 비용함수, 목적함수이다.

 

 

 

 

 

 

 


앞서 배운 내용을 정리하면 이와 같다.

 

 

 

 

 


우리가 세운 가설 h(x) 간소화해보자.  θ0 0 모델을 생각하면 J(θ1) 최소화하는 것이 우리의 목표이다.

 

 

 

 

 

 

θ0 0 가설 h(x) 비용함수 J 비교해보자


만약 (1, 1) (2, 2) (3, 3) train data 주어졌을

θ1 1 h(x) 이와 같이 그릴 있다. 또한 h(x) y 차이를 계산했을 cost값이 0임을 계산할 있다.

 

따라서 오른쪽의 비용함수 J(θ1) 그려보면 θ 1 J값은 0 된다.

여기서 우리는 θ 값을 1 설정해놓고 오차를 계산하여 cost function값을 구했다.

만약 θ값이 0.5라면 비용함수의 값이 어떻게 달라질까?

 

 

 

 

 

 

 

 

 


 

θ 0.5 원점을 지나며 기울기가 0.5 직선이 우리의 가설 h(x) 된다.

주어진 데이터와 가설 사이의 차이를 계산해서 오차제곱의 총합을 구해보면 0.58이라는 값이 나온다.

따라서 오른쪽 비용함수에서 θ 0.5 경우 비용함수 J 값은 0.58 된다.

 

 

 

 

 

 

 

 

 


 

만약 θ 0이라면?

오차의 합이 것이고 이때 비용함수 J 값은 2.3정도가 된다.

 

 

 

 

 

 

 

 


 

이렇게 θ 값을 바꿔가며 비용함수의 값을 구해보면 곡선형태의 비용함수를 구할 있다.

비용함수가 의미하는 것은 θ 1 cost 가장 낮기 때문에 경우에 주어진 데이터를 가장 나타낼 있게 된다.

비용함수 J 값을 최소화하는 것이 우리 알고리즘의 목표이며 예시에선 θ 1 최선의 결과값을 얻을 있다.

 

 

 

 

 

 

 

 

이제 θ0까지 고려해서 2개의 파라미터를 사용하는 h(x) 비용함수 J 비교한다.


 

 

 

 

 

θ0 50이고 θ1 0.06 가설 h(x) 대한 비용함수를 시각화해보자


 

비용함수가 이렇게 평면의 위치에서 그래프까지의 높이는 비용함수 J 값이된다. 그리고 평면의 위치 좌표값은 

파라미터들의 값을 나타낸다.

이를 비용함수의 그래프를 등고선 그래프 개념으로 다시 생각해보자.

 

 

 

 

 

 


왼쪽과 같은 가설 h(x) 세우고 가설에 대한 비용함수 J 값은 오른쪽의 빨간 점의 위치가 된다.

타원의 크기가 가장 작은 어두운 파란색 부분의 등고선 가운데에 있는 위치가 비용함수가 가장 작은 값을 가지는 h(x) 

나타낼 것이다. 따라서 가설은 직관적으로 봐도 좋은 가설이 아니며 비용함수가 이유를 보여주고 있다.

 

(비용함수 등고선 그래프에서 같은 위의 점들은 θ 값은 각기 다르지만 모두 같은 J값을 가진다.)

 

 

 

 

 


 

다른 가설 h(x) 세웠다. 가설에 대한 비용함수 값이 오른쪽의 빨간점에 대응된다고 하자.

아까보단 비용함수의 값이 작아졌다. 하지만 여전히 최소값은 아니다. 그러므로 가설 역시 데이터를 예측할 있는 좋은 가설은 아니다.

 

 

 

 

 

 

 

 


오른쪽 비용함수 그래프에서 빨간 지점의 위치에 해당하는 파라미터 값을 가지는 가설을 세웠더니 왼쪽과 같은 h(x) 나왔다.

가설 역시 좋은 가설이 아니다.

 

 

 

 

 

 

 


이번엔 바로 비용함수의 최소값 지점으로 가보자

그리고 그에 해당되는 파라미터 값을 가지는 가설 h(x) 만들었더니 데이터의 특성을 반영하는 모델이 만들어졌다.

, 비용함수 J 최소값에 가까울수록 좋은 가설이 된다.

 

 

우리는 비용함수에서 일일이 점을 찍어가며 해당 파라미터 값을 가지는 가설을 세웠다.

(여기선 비용함수의 정보를 눈에 이미 알고 있지만 실제론 그렇지 않다.)

만약 우리가 어떤 데이터셋에 해당 비용함수 정보를 알고 있다면 곧바로 최소값으로 이동해서 그에 해당되는 가설을 세우면 된다.

하지만 어디가 최소값인지 모르기 때문에 일일이 이동해가며 가설을 세워본 것이다.

어떻게 해야되는 지는 알지만 그다지 효율적인 방법은 아니다. 또한 파라미터가 많아질수록 이는 어려운 문제가 되며 시각화는 매우 어려울 것이다.

어찌됐건 우리가 해야하는 가장 중요한 것은 비용함수의 최소값을 찾아서 이에 대응되는 파라미터 값을 가지고 좋은 가설을 만드는 것이다.

따라서 자동적으로 파라미터와 비용함수의 최소값을 찾을 있는 알고리즘을 사용한다면 쉽게 문제를 해결할 있다.

 

 

 

 

 

 

Comments