본문 바로가기
Deep Learning/딥러닝 기초

[모두를 위한 머신러닝/딥러닝] ML

by 룰루셩 2020. 7. 9.

[모두를 위한 머신러닝/딥러닝] ML 

홍콩과기대 김성훈 교수님의 '모두를 위한 머신러닝/딥러닝'


머신러닝 (ch1~7)

머신러닝이란?

- Field of study that gives computers the ability to learn without being explicitly programmed

개발자가 직접 어떻게 할지 정하는 것이 아니라 프로그램 자체가 데이터를 학습해서 뭔가를 배우게 하는 게 어떨까 하는 생각에서 시작

- supervised learning을 주로 설명 (label이 주어진 데이터로 학습)

 

Cost function

- loss function

- 실제값과 예측값 사이의 거리를 나타낸 함수

- 이 Cost function을 가장 작게 만드는 값을 구하는 것이 학습의 목표

- cost function을 가장 작게 만들어주는 값을 찾아가는 과정이 Gradient descent

 

Linear Regression

- $cost(W,b)= {1 \over m}{\sum_{i=1}^m (H(x^{(i)})-y^{(i)})^2}$

- 여기서 $H(x)$를 $H(x)=Wx$라고 하면

$cost(W,b)= {1 \over m}{\sum_{i=1}^2m (Wx^{(i)}-y^{(i)})^2}$ 로 cost  function을 정의할 수 있음

(여기서 분모가 $2m$인 이유는 계산의 편의성을 위해서)

- cost function은 아래로 볼록한 함수 모양

- Gradient descent

$W:=W-{\alpha}{d \over dW}cost(W)$

  - $\alpha$는 learning rate이고 이는 얼마나 줄여줄지를 결정

  - ${d \over dW}cost(W)$는 어떤 점의 기울기

    기울기가 +여도 앞의 부호가 -이기 때문에 $W$가 작은 쪽으로 이동하고 

    기울기가 -일 때도 앞의 - 부호가 있어서 +가 되니까 $W$가 더 큰 값으로 이동하니까 cost는 더 작은 쪽으로 이동

※multivariable linear regression일 때는 행렬로 만들어서 하면 됨

 

Logistic Regression (Binary classification)

- Regression은 어떤 숫자를 예측하는 것이지만 binary classification을 하고 싶을 때가 있음

- 먼저 y를 0과 1로 코딩 (ex. 성공:1, 실패:0)

- 우리가 그대로 이걸 regression으로 적용해서 0.5보다 크면 1이고 작으면 0으로 하자고 할 수 있지만

  만약 $W$ 값으로 엄청 큰 수가 들어왔을 때 0과 1 사이의 값보다 훨씬 큰 수가 들어와서 기준이 달라질 수 있어서 다른 방법이 필요

- 그래서 logistic function(sigmoid function)을 이용

- Logistic Hypothesis

$H(X)={1 \over {1+e^{W^TX}}}$

하지만 이것을 cost function에 바로 사용은 못함. local minimum이 생길 수 있음 (logistic 함수가 linear하지 않기 때문)

- logistic을 위한 새로운 cost function 

logistic regression cost function

 

Multinomial classification

- a, b, c 세개로 분류해야 한다고 하면

- Softmax

: binary classification처럼 sigmoid 함수를 이용하면 예측값이 0과 1 사이 값으로 나오지 않음 

 우리가 원하는 y의 모양은 a,b,c 각각일 확률(0~1 사이로 표현, 각 확률 더해서 1)

→각 확률 중 가장 높은 것을 1로 만들고 나머지를 0으로 만들기 (One-hot encoding)

- Cross-Entropy cost function 

cross entropy cost function

 

Learning rate

보통 0.01로 시작해서 훈련시켜보고 조정한다. 

Overshooting

- Learning rate가 너무 커서 튕기고 학습이 잘 이루어지지 않는 것

Small learning rate

- 오랜 시간이 걸리고 local minimum에서 훈련을 멈출 수 있다. 

 

 

 

'Deep Learning > 딥러닝 기초' 카테고리의 다른 글

[패캠] Autoencoders  (0) 2021.12.14
[패캠] Dimension Reduction  (1) 2021.11.03
[Hands-on-ml-2] 모델 평가  (0) 2020.07.30
[hands-on-ml-2] 범주형 데이터 다루기  (0) 2020.07.25

댓글