본문 바로가기
기계학습/코세라 - 기계학습 (Andrew Ng)

week2

by tryotto 2019. 8. 14.

1. multivariate features

      - 공식 : h(x) = Θ^T * x

      - cost function에 적용 : (h(x)-y)^2 의 sum값의 최솟값을 만드는 매개변수를 구해야 함

-> cost function을 통한 매개변수 획득

      - gradient 를 통해 할 수 있는 것 = 손실함수의 최적값 (최적의 매개변수) 을 구하는 것

- 방법 : 매 턴마다 미분한 값을 써서, 매개변수 값을 바꿔준다

- 미분하는 방식 : 변수가 들어있을때에는, h(x(i))의 미분 (대충) 이런식이기 때문에,

           합성함수 미분 하듯이, 속미분한 값을 밖에 곱해줘야 함 (편미분)

               ** 노트 참조


 

2. Gradient Descent를 더 간단하게 할 수 있는 방법

      - Feature Scaling (1) : 각각의 변수들의 정의역 범위들을 0~1로 통일시켜줌

ex) x1 : 0~2000 ,   x2 : 0~5

-> x1 : (0~2000)/2000 = 0~1

    x2 : (0~5)/5 = 0~1

-> 각각의 size대로 정의역을 나눠주면 scale이 일치하게 됨


      - Feature Scaling (2) : 최대한, 정의역의 범위를  -1 <= x <= 1 의 영역 근처에 올 수 있게

          설정해준다

** 범위가 너무 커서도, 작아서도 안 된다

  

      - Feature Scaling (3) - 정규화 : 각각의 정의역들을 표준 정규분포화를 시켜준다

- 단, (x-뮤)/V 가 아니라, V(분산) 을 S (scale의 범위 길이) 로 계산해준다!



3. Gradient Descent를 좀 더 현명하게 쓰기

       - 디버깅 : Gradient Descent가 제대로 돌아가고 있는지 확실하게 하기 위함

       - 학습률(learning rate)를 선정하는 방법


       - 디버깅 : 반복횟수가 계속 늘어남에따라, 손실함수의 값이 반드시 계속 감소해야한다!

- convergence : 계속해서 손실함수값이 일정하게 유지되는 구간이 생길때

      - 손실함수를 그만 돌려야 함

      - convergence 를 자동으로 알려주는 방법 : 

          손실함수 값이 어떤 특정한 값(아주 작은 수)보다 작을 경우, convergence상태임

             - 만약에 손실함수 값이 계속해서 증가하는 꼴이 등장한다면?

        -> learning rate를 낮춰야 한다! (learning rate가 작을수록 정확함. 단, 시간은 오래걸림)


4. Multivariant에 대한 Features와 Polynomial Regression

        - Features : 어떤 변수가 주어졌을 때, 무작정 그 변수를 받아들이는게 아니라,

           직관을 이용해서, 새로운 변수를 설정한다면, 식이 더 간단해질 수 있음

        - Polynomial Regression : 내가 생각하기에 딱 맞는 다항함수를 떠올리기.

-> 내가 원하는대로 설정이 가능. 변수들의 꼴만 정해준다면, 가중치들은 

    머신러닝을 통해 알아서 학습이 됨.



'기계학습 > 코세라 - 기계학습 (Andrew Ng)' 카테고리의 다른 글

week4  (0) 2019.08.14
week3  (0) 2019.08.14
week1 (2)  (0) 2019.08.14
week1 (1)  (0) 2019.08.14
week8 : Clustering Algorithm  (0) 2019.08.03