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

week9

by tryotto 2019. 8. 14.

1. Anomaly Detection 개론

       - 새로운 데이터가 anomalous한가?

1) 원래 주어졌던 Dataset을 이용해서, feature의 확률분포 p(x)를 모델링

2) p(x_test)<ε 이면 anomalous 하다고 판단

        -> anomalous할 경우, 해당 제품을 다시 한 번 test 해봐야함 (ex. aircraft예시)

 


2. Density estimation

      - p(x) 구하는 방법 (Dataset을 통해 끌어낸 확률분포 모델)

- p(x) = p(x1 ;  μ , δ**2 ) * p(x2 ;  μ , δ**2 ) * p(x3 ;  μ , δ**2 ) * ...... 

-> 독립일때에 성립 가능함



3. Anomaly detection Algorithm 적용 순서

      1) Anomaly가 발생할 수 있을것 같은 features들을 (직접) 몇 개 선택한다

      2) 선택한 그 features에 대한 μ, δ**2 값을 구한다

      3) 2번에서 구한 값을 이용해서, Density estimation (=p(x) ) 을 구한다

      4) p(x_test)<ε 이면 anomalous 하다고 판단한다



4. Anomaly detection Algoritm 의 성능을 평가할 수 있는 알고리즘

      - 의의 : 이와 같은 알고리즘을 알게 된다면, 어떤 feaures들을 사용할 것인지, 어떤 ε값을

    사용할 것인지 등에 대한 더 빠르고 정확한 판단이 가능하다


      - 방법 : 

1) labeled 된 데이터를 갖고 실험을 한다고 생각한다 

(보통, 비지도학습의 경우 labeled 되지 않은 데이터를 활용해야 한다. 그러나 성능 평가를 위해서

   labeled 된 데이터를 사용한다고 가정하자)


2) Trainning set 설정 : 모든 원소들이 다 non anomalous (=normal example) 이라고 가정

       -> 이 Set을 이용해서, P(x) 함수를 구한다


  3) Cross validation set 설정 :  anomalous/non anomalous 한 data들 모두 들어있다고 가정

4) Test set 설정 : anomalous/non anomalous 한 data들 모두 들어있다고 가정

-> 이떄, Trainning set 60%, CV set 20%, Test set 20% 로 설정한다!!


  5) 처음 시작할 때 있었던 anomalous data를 CV set, Test set 각각에게 절반씩 나눠준다



       - 이 알고리즘의 효율성을 evaluation 하는 방법?

- 위의 방법과 같이 P(x) 값을 0or1 로 산출할때, 대부분의 경우 y=0 이 산출 됨

    why? 대부분의 data는 non-anomalous 하기 때문 -> skewed 한 구조를 갖고 있다

            

             - 따라서, 일반적인 classification 알고리즘을 이용해서 이 Anomaly Detection Algorithm 성능을 

   평가하면 안 된다. 

-> 다른 여러가지 방식의 evaluation metrics를 이용해서 평가 해야 됨



5. ε 값도 Cross Validation 을 이용해서 구할 수 있다



6. Anomaly Detection  vs.  Supervised Learning

       - Positive example (y=1) , Negative example (y=0) 의 갯수 :

1) Anomaly Detection : (y=1, anomaly)가 매우 적고, (y=0)가 매우 많다

2) Supervised Learning : (y=0), (y=1) 둘 다 매우 많다


       - Anomaly 의 종류가 많은가, 적은가 :

1) Anomaly Detection : 종류가 매우 많다 

-> 애초에 (y=1) 데이터가 많지 않기 떄문에, 새로운 Anomaly를 예측하는게 불가능

-> 종류가 많기 때문에, 새로운 Anomaly가 계속해서 생겨나는게 많다

2) Supervised Learning : 종류 자체는 평범하다

-> (y=1) 데이터가 충분한 양이 있기 때문에, Anomaly 에 대한 예측이 충분히

    가능하고, 문제가 없다



7. Choosing What features to Use

        - 좌편향 Bell Shape 인 경우 : log 연산을 해준다


        - anomaly detection 할때, anomalous 할 경우엔 p(x) 값이 작을수록 좋고 normal할 경우엔 p(x)값이 클 수록 좋다

          그러나, 실제론 anomalous 경우와 normal한 경우 모두 비슷한 곳에 모여있는 경우가 많음

-> 따라서, 이러한 경우에 대한 처리가 따로 필요하다

-> anomalous 하나 p(x) 값이 큰 편인 경우, 따로 뽑아서 새로운 feature을 만들어낸다



8. Content based Recommendation - 영화 평점 예측기

      - 목표 : 새로운 feature를 도입해서, 사용자의 평점을 예측하겠다

-> 새로운 feature과 연결될 수 있는 가중치의 값을 학습을 통해 구해야 한다


      - 가중치 Θ 의 값을 구하는 방법 :

-> Linear Regression 하는 방식과 똑같이, minimum 값을 구해낸다

-> minimum 값을 구하는 방법? : Gradient Desecent 방식을 이용해서 계속 Θ값을 

      업데이트 하며, 기울기(=Cost Function의 미분값)가 

      0이 되는 순간, 그떄의 Θ값을 사용한다


9. Collaborative Filtering

      - Θ를 알고 있을떄, x 를 자동으로 구하는 방법? : 

-> 마찬가지, Linear Regression 방식과 유사하게 식을 세워서 계산한다 (minimize 해줌)


      - 정의 : Θ값과 x값을 "동시에" 구하자!!

How?  1) Θ, x값 모두 임의의 값으로 initialize 해준다

         2) Θ -> x -> Θ -> x .... 이런 순서로 각각 minimize하면서 optimize 해준다

  by. Gradient Descent


** 이때, 1번/2번 과정을 동시에 수행할 수 있는 식도 있다

** bias unit마저도 자체 알고리즘이 스스로 결정 가능하다



10. Low Rank Matrix Factorization

      - 의의 : predict 된 영화 평점들을 하나의 행렬로 표현하면 안될까?

-> 그럴 경우, Θ^T 벡터와 x 벡터와의 곱을 predict 함수라고 하고 구할 수 있게 됨.


      - 왜 "Low Rank Matrix .... "인가? : Linear Algebra에 나오는 개념. 몰라도 됨


      - 비슷한 type의 영화를 찾는 방법 : ||x^(i) - x^(j)|| 값이 작다면, 영화 i와 j 는 비슷한 영화다

-> 여서기 x 값이란, 영화의 특성들의 변수다. 위에서 언급한 x 값들.

      


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

week 11  (0) 2019.08.14
week10  (0) 2019.08.14
week8 (2)  (0) 2019.08.14
week8  (0) 2019.08.14
week7  (0) 2019.08.14