Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Coursera Machine Learning (by Andrew Ng)_강의정리

5,579 views

Published on

단순히 공식으로 설명하지 않고, 실제 코드 및 샘플데이터를 이용하여 수식의 결과가 어떻게 적용되는지 자세하게 설명하고 있다.
처음 week1 ~ week4 까지는 김성훈 교수님의 "모두를 위한 딥러닝"에서 한번 이해했던 내용이라 좀 쉽게 진행했고, 나머지는 기초가 부족한 상황이라 다른 자료를 꽤 많이 참고하면서 학습해야 했다.
여러 도서나 강의를 이용하여 머신러닝을 학습하려고 했었는데, 이 강의만큼 나에게 맞는것은 없었던거 같다. 특히 Octave code를 이용한 실습자료는 나중에도 언제든 활용가능할 것 같다.

Week1
Linear Regression with One Variable
Linear Algebra - review
Week2
Linear Regression with Multiple Variables
Octave[incomplete]
Week3
Logistic Regression
Regularization
Week4
Neural Networks - Representation
Week5
Neural Networks - Learning
Week6
Advice for applying machine learning techniques
Machine Learning System Design
Week7
Support Vector Machines
Week8
Unsupervised Learning(Clustering)
Dimensionality Reduction
Week9
Anomaly Detection
Recommender Systems
Week10
Large Scale Machine Learning
Week11
Application Example - Photo OCR

Published in: Software

Coursera Machine Learning (by Andrew Ng)_강의정리

  1. 1. Machine Learning by Andrew Ng 1 2017.08 freepsw 강의 내용 중에 이해가 안되는 내용을 추가로 설명하고, 나중에 참고할 공식/설명을 쉽게 찾을 용도로 정리
  2. 2. Week1. Model Regression Notation 2 Cost Function
  3. 3. Week1. Parameter Learning • Learning_rate를 고정하면 • local minimum에 가까워 질수록 기울기가 완만해지고, • 실제 이동하는 거리도 작아지게 된다. • 따라서 learning_rate를 고정해도 local minimum을 잘 찾을 수 있다. 3
  4. 4. 4 Week1. Parameter Learning
  5. 5. Week 2 Multivariable Linear Regression Model 5
  6. 6. Week2. Multiple Feature 사용할 변수에 대한 정의(설명) 사용되는 변수 설명 Multiple feature 함수 6
  7. 7. Week2. Gradient Descent for Multiple Variables 다중 변수인 경우 Xj의 각 변수의 값을 반영한다. 단일 변수인 경우 gradient descent 다중 변수인 경우 변수의 갯수만큼 반복 7
  8. 8. Week2. GD in practice : Feature Scaling 각 변수의 값을 일반화하여 gradient descent로 빠르게 최저값을 찾도록 한다. • X1과 X2 값의 차이가 너무 큼. • 결국 θ1, θ2는 변수(X1, X2)에 따라서 좁고 긴 등고선 형태 를 가지게 된다. • 이는 gradient descent의 경로가 복잡해지는 결과 • 0 < X1 < 1, 0 < X2 < 1로 값을 조정함. • 위와 같이 각 변수값의 비율이 일정해지면, gradient descent의 최적값을 찾기가 쉬워짐. 8
  9. 9. Week2. GD in practice : Feature Scaling 또 다른 방법으로 평균값을 고려하여 아래와 같이 normalization할 수 있다. 계산 공식 예시 • S : 표준편차 또는 (max – min) • 𝝁 : 평균값 • Price의 범위가 100 ~ 2,000 이고, • 평균값이 1,000인 경우 normalization 계산 9
  10. 10. Week2. Features and Polynomial Regression 기존 feature를 그대로 사용하지 않고, 변형하여 최적화된 feature를 사용 • 위 예제는 frontage와 depth라는 2개의 feature를 area라는 하나의 feature로 생성하고, • 이에 따라 parameter도 1개만 사용한 모델을 만듬. 10
  11. 11. Week2. Features and Polynomial Regression : Choice of features 어떤 feature를 선택할 것인지 판단하는 것이 중요하다 • 위 예제는 첫번째 모델은 size가 커질수록 price가 줄어드는 모델이 된다. 따라서 적합하지 않음. • 두번째 모델은 root square를 이용하여 완만하게 증가하는 모델이므로 사용하기에 적합한다. • 그럼 매번 모델을 만들때 어떻게 feature를 선택할지 결정해야 하는가? à 자동으로 선택해 주는 방법이 있음. (나중에 설명) 왜 size가 커지면 price가 낮아질까? 11
  12. 12. Week 2 Computing Parameters Analytically 12
  13. 13. Week2. Normal Equation 한번의 계산으로 Weight( 𝞱)값을 찾을 수 있음 • Normal Equation은 Feature scaling이 필요없고, learning rate도 지정할 필요가 없어서 • 계산이 빠르고 쉽게 원하는 값을 찾을 수 있다. 13
  14. 14. Week2. Normal Equation 정교한 알고리즘 또는 feature가 많은 경우는 gradient descent 사용 • 정확히 feature가 몇개 이상일때 gradient descent를 쓸지는 정해진 것은 없으며, • 어떤 알고리즘이냐에 따라서 Normal Equation이 효과적일 수 있음. 역행렬을 계산하는 시간이 오래 걸림 14
  15. 15. Week2. Normal Equation 역행렬 문제 선형대수에서 역행렬을 구할 수 없는 경우, 어떻게 해결해야 하나? 역행렬이 없는 경우 해결 방법 • 1) 특이 행렬이 존재할 때 • 2) 서로 의존관계가 있는 feature가 존재하는 경우 • 3) 데이터 수 보다 feature수가 많은 경우 • 일단 역행렬이 없는 경우는 거의 없으며, • 1) 역행렬이 존재하지 않더라도 octave 같은 경우는 내부 계산을 통하여 정확한 역행렬을 계산해 준다. • 2) 의존관계가 있는 경우, 중복되는 feature를 제거한다. • 3) 불필요한 feature를 삭제하거나, normalization을 실 행한다. 15
  16. 16. Week 3-1 Classification and Representation 16
  17. 17. Week3. Logistic Regression Model 0 또는 1으로 구분 될수 있도록 비선형 함수(sigmoid)를 추가 • Θ 값을 학습을 통해서 도출 (최적화 함수를 통해) 17
  18. 18. Week3. Cost Function Parameter(가중치)를 어떻게 결정? • 기존 regression 함수의 cost function으로는 convex 하지 않아서, local minimum이 많이 발생함. (지수함수의 특징) • 이를 convex하게 바꾸기 위하여 log함수를 한번 더 적용하면 우측과 같이 convex해 지고, • 마이너스(-)를 적용하여 0~1사이에서 아래쪽으로 값이 줄어드는 convex 형태를 가지게 됨 • 결국 정답이 1인 경우 z값이 1이면 cost가 0에 가까워 지고, z값이 0이면 cost가 무한으로 증가함. 18
  19. 19. Week3. Simplified Cost Function and Gradient Descent Cost function을 단순화하면 아래와 같은 수식이 도출 가능 19
  20. 20. Week3. Simplified Cost Function and Gradient Descent Gradient Descent는 아래와 같은 수식이 도출됨 • 결국 Θ j를 구하는 공식은 기존 linear regression과 동일하다 • 달라진 것은 ho(x)함수만 변경된 것이다. 20
  21. 21. Week3. Advanced Optimization Cost를 최소화하기 위한 다른 알고리즘 고려 • 아래 3개의 알고리즘은 learning rate가 필요하지 않고, 빠르지만 좀 더 복잡하다. • 이번 강의에서 자세하게 다루지는 않음. 21
  22. 22. Week 3-2 Multiclass Classfication 22
  23. 23. Week3. Multiclass Classification: One-vs-all 여러개의 결과를 예측하는 방법 (정답인 경우와 나머지, one vs all) • X값이 주어졌을때 결과 값(y)가 1인 확률이 위에서는 세모 모양일 확률이 된다 (세모로 분류) 23
  24. 24. Week 3-3 Solving the Problem of Overfitting 24
  25. 25. Week3. The Problem of Overfitting Overfitting이 예시 • Overfitting이 발생하면, 학습데이터에 대한 정확도는 높지만, 실제 데이터에 적용하면 정확도가 낮아진다. • 학습데이터보다 너무 많은 feature를 사용하는 경우에 발생 25
  26. 26. Week3. The Problem of Overfitting Overfitting 해결방법 • Feature수를 줄이거나, • Feature는 그대로 두고, 데이터를 regularization하는 방법이 있음 26
  27. 27. Week3. Cost Function 특정 feature에 penalty(임의의 상수)를 곱하면, cost를 줄이기 위해 feature의 weight가 작아짐 • Θ3, Θ4에 1,000을 곱하면 실제 Θ3, Θ4의 weigh는 상대적으로 작아지게 된다. (penalty를 준다고 표현) • 왜냐하면 전체 cost가 작아지도록 학습하게 되면, Θ3, Θ4가 작아져야 cost가 줄어들게 되기 때문. 27
  28. 28. Week3. Cost Function + Regularization Feature가 너무 많은 경우, 모든 feature에 regularization을 적용한다 람다값이 너무 크면 Θ값이 거의 0이 되기 때문에 underfitting 이 발생하게 됨 i=1에서 시작하는 이유는 i=0인 Θ0는 bias로 처리하는 것 같다. 28
  29. 29. Week3. Regularized Linear Regression (최적화 방안) 1) Cost함수에 regularization을 적용하는 방법 • Gradient가 Θ를 업데이트 하는 과정에서 Θ를 조금씩 줄여가게 된다. 기존 Θj의 값을 축소시키는 역할 29
  30. 30. Week3. Regularized Linear Regression (최적화 방안) 2) Normal Equation에 Regularization 적용 • 기존 Normal Equation에서 람다값과 행렬을 곱한 값을 더해주게 된다. • 이 행렬은 입력값인 X의 행렬(m * n)에서 n에 해당하는 대각행렬을 의미한다. (첫번째는 0인 이유는 회기식에서 상수로 생각됨..) Normal Equation 적용방식 Normal Equation 공식 30
  31. 31. Week3. Regularized Linear Regression (최적화 방안) 최종 정리 Bias인 Θ0는 regularization 대상에서 제외함 31
  32. 32. Week 4-1 Neural Networks Motivations 32
  33. 33. Week4. Motivations of non-linear hypotheses 33 Feature가 많을 경우, 2차/3차 함수를 생성하여 feature를 늘리는 것이 좋은 방법은 아니다. • 위 예시에서 feature(n)이 100개 인 경우, 3개의 변수를 곱한 삼차요소들의 개수는 조합공식을 이용하면 161,700 개가 된다. • 2개 변수를 곱한 2차 요소들의 개수는 FACT(100)/(2*FACT(98)) = 4,950개이다.
  34. 34. 34 Week4. 순열과 조합 http://blog.naver.com/tjdtn4821 • 우변 : 원소가 n개인 집합의 부분집합 개수 {1,2,3,...,n} • 1이라는 원소가 포함되는지에 따라 2개로 나뉨. • 2라는 원소가 포함되는지에 따라 2개로 나뉨. • ..n이라는 원소가 포함되는지에 따라 2개로 나뉨. • 결국 전체 2가 n승되는 것과 동일한 결과 1) a=1, b=x인 경우의 공식 nC0+nC1+nC2+...+nCn=2^n 이항 정리 2) x = -1인 경우의 공식 nC1+nC3+nC5+...=nC2+nC4+nC6+...=2^(n-1)
  35. 35. 35 Week4. Motivations of non-linear hypotheses • 위 예시에서 2,500개의 feature를 2차 feature(xi * xj)로 생성하면 약 3.1백만개가 됨. • (2500 * 2500) / 2 : 여기서 2로 나누는 이유는 순서만 다르고 동일한 결과가 나오는 쌍이 있기 때문. • (예를 들면 x1 * x2 와 x2 * x1) 50 * 50 pixel의 경우 생성가능한 feature가 약 300만개 (흑백인 경우)
  36. 36. Week 4-2 Neural Networks 36
  37. 37. 37 Week4. Model Representation 1 hidden layer의 노드를 “activation units”라고 함. • 각 activation node는 아래와 같이 계산된다. • Θ의 차원은 (activation node) * (input node +1)가 된다. • 즉 공식으로 보면 𝑺𝒋1𝟏 * (𝑺𝒋 + 1) • 위의 예제에서는 activation node = 3, input node=4 이므로, (3 * 4) • X0는 bias이므로 X0가 필요할 때만 +1을 해준다.
  38. 38. 38 Week4. Model Representation 1 Neural network의 아래 함수를 벡터로 표현해 보자. • 새로운 변수인 𝒁 𝒌 (𝒋) 정의 : g함수 내부의 모든 파라미터를 포함 하는 변수 • 위 함수를 Z를 이용하면 아래와 같이 정의 가능 • 예를 들면,, layer j=2이고, node=k개 인 Z변수는 아래와 같이 표현 • X와 𝒁 (𝒋) 는 아래와 같이 표현할 수 있고 • X = 𝒂 (𝟏) 이라고 가정하면, 아래와 같은 수식이 된다. • Θ (𝒋9𝟏) 의 차원은 (activation node) * (input node +1) = 𝑺𝒋 * (n+1) • 또한, layer j에 대한 activation node의 vector를 아래와 같이 계산 • g함수는 𝒁 (𝒋) 벡터값에 element-wise 연산을 적용 (동일 위치의 원소에 대한 연산 수행)
  39. 39. Week 4-3 Applications 39
  40. 40. 40 Week4. Examples and Intuitions Non-linear 함수가 어떻게 NN에서 활용되는가? AND 연산에 non-linear 함수 적용 Sigmoid 함수 적용시 결과값(y) • Θ (weight)에 적용하는 값에 따라 AND, OR, NOT 등 의 분류가 가능해짐. • OR 연산의 경우 Θ10= -10, Θ11= 20, Θ12= 20
  41. 41. 41 Week4. Examples and Intuitions XOR 연산을 NN으로 구현하기 Input layer Hidden layer Output layer 행렬을 이용하여 표현XOR을 3번의 non-linear 함수로 연결하여 구현 • Layer1에서의 Θ 값 • AND와 Not AND Not • Layer2에서의 Θ 값 • Layer1의 결과값을 OR로 처리
  42. 42. 42 Week4. Multiclass Classification One-vs-all, one-hot-encoding과 같이 정답만 1로 설정 • 위의 경우 4개의 유형 중 1개만 정답인 경우, 행렬로 표현하는 방식
  43. 43. Week 5-1 Cost Function and Backpropagation 43
  44. 44. 44 Week5-1. Cost Function Neural Network (classification) 정리 • Binary 분류는 정답(Y)가 0 또는 1 • 따라서 마지막 Layer(𝑺 𝑳 ) 의 neuron은 1개 (K=1) 전체 Layer 개수 각 Layer의 Neuron 개수 • 분류 개수(K)가 3개 이상인 경우에 사용 • 2개인 경우는 Binary 분류로 처리 가능 K = output unit의 개수 (최종 분류될 정답의 개수)
  45. 45. 45 Week5-1. Cost Function Neural Network (classification)의 Cost Function • 1) 대괄호”[“ 중첩된 Sum함수를 사용하여, K개의 output node를 더하는 부분 추가 • 2) regularization 부분에서는 각 layer의 Θ 를 제곱한 값을 모두 더해준다.
  46. 46. 46 Week5-1. Backpropagation Algorithm Cost function의 결과를 최소화 하기 위한 알고리즘 • Layer l의 j번째 node의 Loss(Error) • 4번째 layer의 j node의 Loss는 4 번째 Layer의 j번째 activation함수 의 값 – 정답(1)과 같다. Forward Propagation Back Propagation • 1) Forward Propagation 실행 • 2) Loss 계산 • - 예측한 activation함수 값(𝒂 𝑳 )에서 정답(𝒚 𝒕 )를 뺀 값 • 3) 각 Layer별 Node의 Loss 계산 • - 델타값 ( 𝛅)은 현재 layer의 세타(Θ)행렬과 다음 레이어의 델타 값을 곱하여 계산 • - activation 함수(𝒁 𝒍 )의 미분공식은 • 4) Layer별 Loss계산 • - 최종 Loss를 기준으로 back 방향으로 이동하면서 각 layer 의 Loss를 계산한다. • - 목적은 이 Loss를 최소화하는 것 설명이 너무 어렵다. 이 부분은 ”모두를 위한 딥러닝” 을 먼저 참고하자
  47. 47. 47 Week5-1. Backpropagation Algorithm 좀 더 직관적으로 각 Node가 최종 cost(i)에 미치는 영향( 𝛅𝒋 (𝒍) )을 계산하는 방법 • Z = 1 + 𝑿 𝟏 (𝒊) + 𝑿 𝟐 (𝒊) à 선형 함수 (i = 1, 첫번째 layer) • a = sigmoid(Z) à 비선형 함수 • 𝒁 𝟏 (𝟑) (3번째 layer의 1번째 Node의 값) = 1* 𝜽 𝟏𝟎 (𝟐) + 𝒂 𝟏 (𝟐) ∗ 𝜽 𝟏𝟏 (𝟐) + 𝒂 𝟐 (𝟐) ∗ 𝜽 𝟏𝟐 (𝟐) • 나중에 𝜽 을 최소화 하기 위한 Back propagration을 수행한다. • 𝛅𝒋 𝒍 (𝒅𝒆𝒍𝒕𝒂) = l번째 레이어의 j번째 node의 cost • 명확하게 표현하면 • Z𝒋 (𝒍) node가 𝑿 𝒊 의 전체 cost(Error)에 미치는 영향(gradient)을 의미한다. • 최종적으로 Z𝒋 (𝒍) 가 cost(i)에 얼마나 영향을 주는지 파악하고, 이에 따라 가중치 (Θ)를 조정하기 위한 목적으로 활용 Back Propagation
  48. 48. Week 5-2 Backpropagation in Practice 48
  49. 49. 49 Week5-2. Gradient Checking Gradient를 계산하는 방식 • 일반적으로 2-side difference가 1-side difference보다 많이 사용된다. • 위의 gradient checking code는 계산에 많은 시간/자원이 소요되어 느리다. • 반면에 back propagation 알고리즘은 더 빠르게 계산이 가능하다. ( 𝛅𝒋 (𝒍) 를 이용한 계산) • 따라서 numerical gradient는 back propagation에 대한 검증용으로만 사용 하는 것이 효과적이다.
  50. 50. 50 Week5-2. Random Initialization Θ 의 초기값에 따라서 학습결과 차이가 발생함 • 모든 Θ 와 cost값이 동일하게 되므로, Neural Network에서는 적용할 수 없 다. • 𝛜(epsilon,엡실론) • 모든 Θ값이 [- 𝛜, 𝛜] 사이에서 생성되도록 초기화 Θ 초기값을 0으로 적용하면? Random 초기화
  51. 51. 51 Week5-2. Putting It Together Backpropagation 과정 전체 정리 • Input unit의 크기 : x의 차원 • Output unit의 크기 : 정답의 개수 (분류개수) • hidden layer의 크기를 결정한다. • Weight 랜덤 초기화 Network architecture 결정 Training a Neural Network
  52. 52. Week 6-1 Evaluating a Learning Algorithm 52
  53. 53. 53 Week6-1. Deciding What to Try Next 모델의 테스트결과가 좋지 않은 경우, 이를 진단하여 어떤 시도를 할 것인지 결정 • 예측결과를 높이기 위해서 위처럼 다양한 시도를 할 수 있으나, • 모두 다 시도하기에는 너무 많은 시간이 소요된다. • 이 중에서 예측력을 높이기 위해 중요한 방법을 찾아낼 필요가 있다. Machine learning diagnostic • 구현하는데 시간이 소요되지만, • 성능향상에 필요한 가이드를 제공해 주기때문에 • 전체적인 시간을 단축할 수 있다.
  54. 54. 54 Week6-1. Evaluating a Hypothesis 학습 데이터로 Θ(파라미터)를 계산한 후, Test 데이터로 예측오류를 계산한다.
  55. 55. Week 6-2 Bias vs. Variance 55
  56. 56. 56 Week6-2. Diagnosing Bias vs. Variance bias와 variance는 서로 trade off관계. 이 2개의 합이 최소가 되도록 모델링 해야 함 Bias Variance • Bias : 상수로 주어져서 변화될 가능성이 없는 값 • High Bias 란? : Bias가 variance보다 결과값에 미치는 영향이 큼 • à 학습을 해도 예측결과가 많이 달라지지 않음. • à 따라서 정답을 완벽히 예측하기 어려움. • Low Bias 란? : Variance가 커서 bias에 영향을 적게 받음 • à Variance의 변화에 따라서 bias가 예측결과에 미치는 영향이 적음 • Variance : feature로 모델에서 x의 개수, • High Variance 란? : variance가 많아서 정답에 딱 맞게 최적화된 상황 • à 너무 정답에 맞게 최적화되어 overfitting이 발생할 가능성 높음 http://www.4four.us/article/2010/11/bias-variance-tradeoff
  57. 57. 57 Week6-2. Regularization and Bias/Variance 𝜆 값도 bias처럼 상수로 처리되어, 𝜆가 크면 high bias가 발생, 𝜆가 작으면 high variance가 발생하게 됨 • 여러개의 𝜆 값을 차례로 대입하면서 • Cross validation에 대한 cost를 계산한다. • 그 중 가장 낮은 cost를 선택 Regularization(𝜆, 람다)가 예측에 미치는 영향 𝜆 값을 어떻게 선택할까? • 𝝀 가 크면 cost에 penalty가 크기 때문에, • Θ 값의 변화가 거의 없게 된다. (거의 0) • 𝝀 가 0면, Θ값이 정답에 최적화 된다.
  58. 58. 58 Week6-2. Learning Curves High bias는 학습데이터의 양과 상관없다. • 학습시에는 데이터가 적으면 error가 적겠지만, 이렇게 학습된 모델을 validation 데이터에 적용하면 error가 높게 나온다. • 우측 그림에서 보듯이 High bias는 학습데이터의 양과 상관없이 일정한 수준의 error로 수렴된다. • 즉, High bias인 경우에는 다른 관점으로 모델을 개선해야 함. High bias는 학습데이터의 양과 상관없다 High variance는 학습데이터를 많이 확보하면 도움이 된다.
  59. 59. 59 Week6-2. Deciding What to Do Next Revisited 아래의 문제상황에서 필요한 action을 제시
  60. 60. Week 6-3 Building a Spam Classifier 60
  61. 61. 61 Week6-3. Prioritizing What to Work On Spam 메일을 예측하기 위해 필요한 작업들 Feature를 vector로 표현 예측을 높이기 위해서 필요한 작업은? • 가능한 많은 email 데이터 수집 • email routing header를 분석하여 email 라우팅 정보기반의 Feature 개발 • email body의 내용에서 feature 선택 (유사한 단어, 대소문자 구분여부, 특수문자 사용 등) • Misspelling(의도적)문자를 탐지할 수 있는 알고리즘
  62. 62. 62 Week6-3. Error Analysis 직접 오분류된 email을 검사하여 오류유형을 분석 (validation data 활용) • 100개의 오분류된 email을 분류한 결과 • ”Steal Password”유형이 가장 많았음. • 따라서 이를 탐지하는데 많은 시간을 투자하는 것이 효과 적 • 2번째 유형인 spam을 잘 분류하기 위해 feature를 추가하 는 것은 쉽지 않다. • 위의 결과를 보면 의도적인 misspelling은 많이 발생하지 않았고, spam 문자부호가 32회 사용되었다. • 따라서 문자부호 기반의 feature를 추가하는 것이 효과적 이다. 일단 빠르게 구현(기능중심)하고, 이를 보완하는 것이 효과적이다
  63. 63. Week 6-4 Handling Skewed Data 63
  64. 64. 64 Week6-4. Error Metrics for Skewed Classes 한쪽의 데이터가 극단적으로 적을때(skewed class), 오류 메트릭스 활용방법 • 암환자를 분류하는 문제가 있을때, • Error율이 1%라면 정확도가 높다고 할 수 있을까? • 만약 환자 데이터 중 0.5%만 암이 있는 환자였다 면?? • à 오히려 1% 오류는 예측을 하지 않는 것보다 나쁜 결과임. • à 모든 환자가 암이 없다고 예측하면 0.5%의 error율이 나오기 때문… • 이렇게 Skewed class를 다루기 위해서 Precision 과 Recall이라는 개념을 활용한다. Skewed class http://www.popit.kr/%EC%9A%A9%EC%96%B4-%EC%A0%95%EB%A6%AC-%EC%9E%85%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-accuracy-precision-recall/ 오류 매트릭스를 활용한 Precision/recall • Precision : 암으로 예측한 환자 중 실제 암환자인 비율 • Recall : 실제 암환자 중에 우리가 암이라고 예측한 비율 • Skewed class인 경우 무조건 정상(y=0)라고 예측하는 모델은 recall =0 가 될 것이다. • 따라서 Skewed class인 경우에도 recall과 precision을 활용하면 학습된 모델이 잘 되었는지 평가가 가능하다.
  65. 65. 65 Week6-4. Trading Off Precision and Recall Y=1인 확률의 임계값에 따라 precision과 recall은 반비례한다. Y=1(암 진단) Precision/recall의 최적값을 찾을수 있을까? • 예측함수의 결과값(확률)이 어느 정도 이상이면 Y=1(암)으로 결정해 야 할까? • 너무 낮은 경우 • 많은 사람들에게 암이라고 진단 (lower precision) • 실제 암환자를 찾을 확률 높음 (higher recall) • 너무 높은 경우 • 암일 확률이 높은 사람에게만 암 진단(Higher precision) • 실제 암환자에게 정상판정 가능성 (lower recall) • 2개의 값(presion, recall)을 비교해서는 어떤 알고리즘이 최적인지 판단하기 어렵다. • F Score를 이용하여, 하나의 값으로 알고리즘의 적정도를 확인해보자. • 첫번째 Average 방법은 무조건 0 또는 1로만 예측하는 경우에 가장 높은 점수가 나올 수 있어서 적용할 수 없다. • 두번째 F Score는 2개의 값이 모두 높을 수록 점수가 높게 나오고, 하나라도 0이면 F Score도 0이 되므로 잘못된 예측에 낮은 점수를 줄수 있다.
  66. 66. Week 7-1 Large Margin Classification (SVM) 66 https://www.quora.com/Support-Vector-Machines-Why-is-theta-perpendicular-to-the-decision- boundary https://math.stackexchange.com/questions/2286035/decision-boundary-and-weight-vector-in- svm/2286211
  67. 67. 67 Week7. SVM 이해 데이터를 분류하는 최적(margin을 최대화) 선을 찾는 것 정확한 예측을 위한 확률을 기반으로 분류 Linear Regression SVM Margin을 이용하여 초평면(hyper plane)을 생성해 분류 • Margin을 최대화하는 decision boundary를 제공함. • 장점 • 학습 데이터에 over fitting 방지 • 비선형 데이터 분류도 가능 (Kernel method활용) • 단점 • 학습 데이터의 margin이 적을 때 문제 발생가능 • Support vector(margin) 근처의 데이터만 고려함. • 고차원 데이터에서 효율적 (비선형 à 고차원 변환) Soft-margin SVM Hard-margin SVM • 𝑯 𝜽(𝒙)가 정답의 확률을 의미함. • 이 확률을 input값으로 Loss를 계산하고, • Loss를 최소화하면서 분류를 진행함. • 즉, 학습 데이터에서 loss를 최소화 하는 관점으로 접근 • è 학습에 최적화되어 Test 데이터를 잘 분류하지 못하는 경우가 있음. Margin을 이용한 분류
  68. 68. 68 Week7. SVM – Decision Boundary는 어떻게 결정하는가? 가중치 벡터(W)에 직교하면서, margin이 최대가 되는 선형을 찾는다 • 𝑾 𝑻 𝑿 + 𝒃 = 𝟎 의 수식을 따르는 선형을 Decision Boundary 라고함 • 또한 가중치 벡터 W는 Decision Boundary와 직교(90 도)해야 한다. http://www.cs.colostate.edu/~asa/pdfs/howto.pdf Decision Boundary • W : 가중치 벡터 • X : 입력값 • b : 원점(origin)에서 이동한 거리 • 현재는 margin 없이 분류함 (SVM이 아님, Decision boundary 이해를 위한 그림 Decision Boundary가 되려면? 왜 W 와 Decision Boundary는 직교해야 하나? • 계산상의 편의를 위해서, b=0(원점을 지남)로 가정하면 • 𝑾 𝑻 𝑿 = 𝟎 à Decision Boundary 로 정의할 수 있고, • 2개 벡터 내적의 결과가 0이 되는 각도는 90 이므로 직교한다고 표현함. 왜 벡터 내적의 합이 0 이면 90도가 되는가? • 2개 벡터(W, X)의 내적은 P가 된다. • 이때 내적의 값이 가장 커지는 각도는 0도가 되고, • 내적의 값이 0이 되는 각도는 90도가 된다. • 즉, WX=0일 때, 벡터 X의 모든 점들은 벡터 W에 직교한다는 의미가 됨. http://mrw0119.tistory.com/12 0 1 2 3 1 2 3 4 5 W X P O 90도 à WX = 0 0도 à WX = 최대
  69. 69. 69 Week7. SVM – Margin을 최대로 하는 Decision Boundary? Margin이 커지면 학습 데이터에 최적화 되지 않고, 실제 데이터의 분류정확도 향상 Margin이 없는 경우 Decision Boundary Margin을 활용한 Decision Boundary https://www.cise.ufl.edu/class/cis4930sp11dtm/notes/intro_svm_new.pdf • 직관적으로 봤을 때, • 분류하는 선이 향후 데이터가 추가되었을때 제대로 분류하지 못할 가능성이 커보임 • Decision boundary와 평행하고, 가중치 벡터(W)와 직교하며, • Decision boundary와 가장 가까운 좌표와의 거리가 최대가 되는(margin) • 3개의 벡터 (support vector)를 기준으로 • Decision boundary 결정 • 𝑾 𝑻 𝑿 + 𝒃 = 𝟏 (b=0으로 가정했을때, 𝑾 𝑻 𝑿 > 𝟏 경우 Class2로 분류) • 𝑾 𝑻 𝑿 + 𝒃 = −𝟏 (b=0으로 가정했을때, 𝑾 𝑻 𝑿 < −𝟏 경우 Class1로 분류) Margin은 어떻게 계산할까? Support Vector maxmize margin
  70. 70. 70 Week7. SVM – Margin은 어떻게 계산할까? Margin이 커지면 학습 데이터에 최적화 되지 않고, 실제 데이터의 분류정확도 향상 Margin 계산방식 직선의 방정식을 이용한 margin 계산 https://www.cise.ufl.edu/class/cis4930sp11dtm/notes/intro_svm_new.pdf • 각 클래스에서 decision boundary와 가장 가까운 point를 𝑿 𝟐 𝑪𝒍𝒂𝒔𝒔 𝟐 , 𝑿 𝟏 𝑪𝒍𝒂𝒔𝒔𝟏 이라고 가정하면, (b=0로 가정) • 𝑾 𝑻 𝑿 𝟏 = −𝟏 , 𝑾 𝑻 𝑿 𝟐 = 𝟏 • 𝒎 = 𝑾 𝑻 𝑿 𝟐 9 𝑾 𝑻 𝑿 𝟏 è 이를 직선( 𝑾 𝑻 𝐗 = 𝟎) 과 𝑿 𝟏 , 𝑿 𝟐 간 거리로 분리 • = | 𝟏 | 𝑾 + |9𝟏| 𝑾 • = |𝟐| 𝑾 • 위 공식을 이용하여 왼쪽의 방정식을 대입해 보면, (b=0로 가정) • 𝑾 𝑻 𝑿 𝟏 = 𝟏 : 𝑾 𝑻 𝑿 + 𝒃 = 𝟏 인 직선에서 𝑿 𝟏 포인트를 지나는 선 • 𝑾 𝑻 𝑿 𝟐 = −𝟏 : 𝑾 𝑻 𝑿 + 𝒃 = −𝟏 인 직선에서 𝑿 𝟐 포인트를 지나는 선 • 𝑾 𝑻 𝑿 = 𝟎 와 𝑿 𝟏 과의 거리는 è m 𝑾 𝑻 𝑿 𝟏m 𝑾 𝟐 = m 𝑾 𝑻 𝑿 𝟏m 𝑾 = |9𝟏| 𝑾 • 𝑾 𝑻 𝑿 = 𝟎 와 𝑿 𝟏 과의 거리는 è m 𝑾 𝑻 𝑿 𝟐m 𝑾 𝟐 = m 𝑾 𝑻 𝑿 𝟐m 𝑾 = | 𝟏 | 𝑾 An Idiot’s guide to Support vector machineshttp://mathbang.net/453 직선 𝑃𝐻 계산하기 • 직선 PH와 점 P 사이의 거리를 구하는 공식 • 직선 (3x + 4y -3 =0)과 점(2,3)의 거리 è 𝑿 𝟏 𝑿 𝟐 거리의 개념으로 절대값을 사용하고, 2개의 거리를 더함
  71. 71. 71 Week7. SVM – Margin은 어떻게 최대화 하는가? 먼저 SVM은 어떻게 모델을 최적화 하는지 이해해 보자 • Hinge loss란 margin을 최대화 하는 분류모델(SVM)에서 사용하는 loss function • 공식 : • t = 의도한 결과 (예를 들면, +1, -1) • Y = 분류 결과 (𝒚 = 𝑾𝑿 + 𝒃), 𝒙 = 분류할 𝒊𝒏𝒑𝒖𝒕 𝒑𝒐𝒊𝒏𝒕 • 여기서 기존 loss와 다른점이 y가 예측된 class label의 확률이 아니라, wx +b의 결과값이라는 것이다. (Logistic regression은 y에 sigmoid함수의 결 과인 확률값을 입력함) • 만약 t와 y가 동일한 sign(y가 분류한 값이 정답인라는 의미)을 가지면, • |y| > 0, hinge loss = 0가 된다 SVM Cost Function Hinge loss 란? https://wikidocs.net/4280 • 정답의 유형(0 or 1)에 따라서 Cost가 증가하는 방향이 다르고, • Logistic Regression의 Log기반의 cost함수(cross-entropy)와 다르게, hinge loss 함수를 사용함. • • Hinge loss : • 정답은 1인 경우 • 파란 선 : hinge loss • 녹색 선 : zero-one loss • t = 1 일때, • Y > 1 (예측이 맞음) à loss = 0 • Y < 1 (예측이 틀림) à loss 증가 Sign은 동일한데, y가 소수점으로 나면? Max (0, 1 – 1*0.5) = 0.5 ??? è margin 영역에 포함 된다고 판단하고, 페 널티(0.5)를 부여 è -이면 maring에서 떨어졌다고 판단하 여 패널티 부여 안함
  72. 72. 72 Week7. SVM – Margin은 어떻게 최대화 하는가? 먼저 SVM은 어떻게 모델을 최적화 하는지 이해해 보자 Logistic Regression 과 비교한 SVM 최적화 왜 SVM에서는 최적화 함수를 CA + B로 변환했을까? • 첫번째로, cost 최적화에 영향이 없는 상수인 m을 제거하고, • 두번째로, 새로운 cost 함수(hinge loss)를 이용하였으며, • 세번쨰로, 새로운 매개변수인 C를 이용하여 A함수를 최적화하는 방식을 사용한다. • C는 𝟏 𝝀 의 관계로 정의하고, regularization 단계에서 𝝀를 제거하였다. • 결국 A + 𝝀B(logistic regression) = CA + B(SVM)은 동일한 결과를 제공한다. • C가 아주 큰 값이라고 가정해 보자. (C = 100,000) è 엄격한 분류 • SVM에서 CA + B à 최소화 하려면 A가 0이되어야 한다. • A가 0이 되기 위해서는 hinge loss의 값이 0이 되어야 하며, • 즉 아래와 같은 조건이 필요하다 • AC = 0으로 정의하면, 최적화 공식이 아래와 같이 단순해 진다. • 이제부터 SVM Decision Boundary를 찾기 위해서는 • Θ가 최소가 되는 선형을 찾으면 되도록 공식을 단순화 함. Θ 만 최적화에 영향을 줌 A C가 크다고 가정한 이유는. C = | } 로 가정한 경우, 𝝀 의 값이 적다는 의미임. 즉, regularization에 영향이 적어서, 모 델의 overfitting이 높아짐. à 결국 Training data에 대하여 오분 류가 없도록 분류하게 됨.
  73. 73. 73 Week7. SVM – [참고] 파라미터 C가 SVM모델에 미치는 영향 C는 regularization 파라미터 𝝀와 연관되어, 모델학습시 overfitting을 조정함 C값이 decision boundary에 미치는 영향은? 그럼 어떤 C값을 선택해야 할까? • C가 크면 상대적으로 Cost(Θ 𝑻 x(𝒊) )의 값이 작아져야 전체 cost가 최소화됨. • 또한 C = 𝟏 𝝀 이 관계에서 𝝀 가 작아진다는 의미임. • 즉, 𝝀가 작으면 back propagation 과정에서 가중치 Θ가 미치는 영향이 커지고, 학습데이터에 최적화 à overfitting 확률이 높아짐. • 결국 모든 데이터가 오류없이 분류되도록 Decision boundary 생성됨 • 결국 실제 데이터 or Test Data를 얼마나 잘 예측하느냐가 중요함. • 이 관점에서 보면 왼쪽의 decision boundary에서 어떤 데이터가 앞으로 입력되는지에 따라 C값이 평가됨. • 이 경우에는 large C 로 학습한 모델이 뛰 어남. • 이 경우에는 low C로 학습한 모델이 더 좋 음. Cross validation을 통해 결정 https://stats.stackexchange.com/questions/31066/what-is-the-influence-of-c-in-svms-with-linear-kernel
  74. 74. 74 Week7. SVM – Margin은 어떻게 최대화 할까? (벡터 내적 이해) Vector 내적을 이용하여 margin을 최대화(cost 최소화) 하는 ||Θ||를 계산 • P는 V를 90도로 U에 투영한 선을 나타낸다. • 이를 공식으로 표현하면, 𝑼 𝑻 𝑽 = P∙||U|| • 이때 90도 이상인 P는 음수를 가지게 된다. • 결국 벡터의 내적은 2개 벡터간의 각도에 따라서 양수/음수가 결정된다. Vector 내적의 이해 SVM의 cost 함수에서 Θ 를 계산하는 용도로 활용 • 공식을 변형하여 ||Θ|| (Θ 의 거리, Θ1 𝟐 + Θ2 𝟐)를 활용 • Θ 값을 U로 정의하면, 위와 같은 그래프가 그려지고 • V를 90도로 투영하면 P가 계산될 수 있다. • 그리고 Θ 𝑻 x(𝒊) = P(𝒊) ||Θ|| 로 대체가능하게 된다.
  75. 75. 75 Week7. SVM – Decision Boundary를 선택하는 과정은? Θ가 최소가 되는 선형을 선택 • [왼쪽 그래프] • 녹색 Decision boundaryrk가 주어졌을때, 직교하는 Θ에, X(𝟏) 이 투영된 거리인 P가 너무 작다. • P가 작다는 의미는, ||Θ||가 아주 크다는 의미이므로 Cost Function의 값이 커 지는 문제가 발생한다 (cost function = 𝟏 𝟐 ||Θ|| 𝟐 ) • [오른쪽 그래프] • Θ의 선이 X축의 수령으로 주어졌을 때, X(𝟏) 이 투영된 거리인 P가 크가. • P가 크다는 의미는, ||Θ||가 작아진다는 의미이므로 Cost 가 줄어들게 된다. (최적) Θ0가 0이라는 의미는 Θ의 직선이 (0,0)을 지남을 의미 P가
  76. 76. 76 Week7. SVM – 연습문제 풀이 (Decision Boundary를 직관적으로 계산) 3개의 point를 2개의 class로 분류해 보자. • Weight vector는 어떻게 찾을 수 있을까? • 2 class간에 가까운 좌표 (1,1) 과 (2,3) 사이에 존재 함 • 즉 (1, 2)값을 가지게 됨 è 즉, 기 울기 2/1을 가지는 선형임. • 𝜽 = (1, 2) Weight Vector를 찾아보자 • Class 1 : (2,3) 1개 • Class 2 : (1,1), (2,0) 2개 https://nlp.stanford.edu/IR-book/html/htmledition/support-vector-machines-the-linearly-separable-case-1.html (2,3) (1,1) (2,0) (2,3) (1,1) (2,0) (2) (1) 𝜽 직관적(geometrically)으로 계산한 decision boundary는? 𝒙 𝟏 𝒙 𝟐 (2,3) (1,1) (2,0) (1.5) 𝜽 𝟗𝟎 𝒐 • Decision boundary의 조건은 𝜽 에 직교해야 한다. • 또한 각 support vector (2,3) (1,1)의 중간에 위치해야 한다. • 따라서 decision boundary는 2 좌표의 중간지점인 (1.5, 2)를 지나야 함 • 1 + (2-1)/2 = 1.5 • 1 + (3-1)/2 = 2 • 이렇게 도출된 W와 좌표(1.5, 2)를 기반으로 계산해 보면 • 𝒙 𝟏 + 𝟐𝒙 𝟐 + 𝒃 = 𝟎 가 도출되고, • 여기서 b는 𝜽(1,2)와 X(1.5, 2)를 대입하면 계산가능함. • 𝟏. 𝟓 + 𝟐 ∗ 𝟐 + 𝒃 = 𝟎 è 𝒃 = −𝟓. 𝟓 • 최종 Decision Boundary • 𝒙 𝟏 + 𝟐𝒙 𝟐 − 𝟓. 𝟓 = 𝟎
  77. 77. 77 Week7. SVM –연습문제 풀이 (Decision Boundary를 대수학으로 계산) 3개의 point를 2개의 class로 분류해 보자. • Weight vector는 어떻게 찾을 수 있을까? • 2 class간에 가까운 좌표 (1,1) 과 (2,3) 사이에 존재 함 • 즉 (1, 2)값을 가지게 됨 è 즉, 기 울기 2/1을 가지는 선형임. • 𝜽 = (1, 2) Weight Vector를 찾아보자 • Class 1 : (2,3) 1개 • Class 2 : (1,1), (2,0) 2개 https://nlp.stanford.edu/IR-book/html/htmledition/support-vector-machines-the-linearly-separable-case-1.html (2,3) (1,1) (2,0) (2,3) (1,1) (2,0) (2) (1) 𝜽 대수학(algebraically)으로 계산한 decision boundary는? • Cost 를 최소화 하려면, 𝜽 를 작게 해야 함. • (θT xi ) = pi * ||θ|| = θ1xi 1 + θ2xi 2 • 이미 𝜽 = 𝒂, 𝟐𝒂 를 알고 있으므로, • 𝒙 𝟏 + 𝟐𝒙 𝟐 + 𝒃 = 𝟎 • 𝒂 + 𝟐𝒂 = −𝟏 è Class 2 (1,1) 대입 • 𝟐𝒂 + 𝟔𝒂 = 𝟏 è Class 1 (2,3) 대입 • 𝒂 = 𝟐 𝟓 , 𝒃 = − 𝟏𝟏 𝟓 • 따라서 최적의 decision boundary는 • 𝜽 = 𝟐 𝟓 , 𝟒 𝟓 𝒂𝒏𝒅 𝒃 = − 𝟏𝟏 𝟓 를 가짐 • 이를 대입해 보면 • 𝒙 𝟏 + 𝟐𝒙 𝟐 − 𝟓. 𝟓 = 𝟎 • Margin 은 𝟐 𝑾 이므로, • 𝟐 𝟒 𝟐𝟓 1 𝟏𝟔 𝟐𝟓 = 𝟐 𝟓 𝟓 𝟐 = 𝟓 (2,3) (1,1) (2,0) (1.5) 𝜽 𝒙 𝟏 𝒙 𝟐 𝟗𝟎 𝒐
  78. 78. Week 7-2 Kernel 78
  79. 79. Week7-2. Kernels 선형분류가 어려운 저차원 데이터를 고차원 공간으로 매핑하는 함수 http://gentlej90.tistory.com/43 Kernel function for SVMs & Data binarization pdf 저차원 고차원 고차원 변환을 위한 계산비용 증가 • 왼쪽의 예시와 같이 2차원(L) à 3차원(H)으로 변환한 후에 SVM과 같은 분류 모델로 학습(계산)하는 것은 성능상의 문제가 없다. • 하지만, 만약 차원이 아주 큰 고차원으로 변환한다면, 고차원 데이터(벡터)를 SVM으로 연산(내적)하는 것은 너무 많은 연산비용이 소모되어 사용이 어렵다. 커널 함수 커널 트릭 (Kernel Trick) 활용 • 수학적으로 고차원 데이터인 𝒂^, 𝒃^를 내적하는 것과, • 내적한 결과를 고차원으로 보내는 것은 동일하다. • 결국 K 𝒙𝒊,, 𝒚𝒊, = 𝝓(𝒙𝒊,) ˆ 𝝓(𝒚𝒊,) 와 동일하다. • 따라서 알고리즘의 수식 중 𝝓(𝒙𝒊,) ˆ 𝝓(𝒚𝒊,) 이 있는 것 은 모두 K 𝒙𝒊,, 𝒚𝒊, 로 대체 가능 79
  80. 80. Week7-2. Kernels 선형분류가 어려운 저차원 데이터를 고차원 공간으로 매핑하는 함수 Kernel함수의 예시 • 선형으로 풀수 없는 문제를 커널함수를 이용해서 고차원의 데이터로 변환하여 계산함. Kernel함수의 종류 문제에 따라 최적의 커널함수를 직접 학습& 테스트하여 찾아야함. 80
  81. 81. Week7-2. Kernels – 좀 더 자세히 이해해 보자. 비선형 decision boundary를 찾기 위해서 커널을 어떻게 이용할까? 비선형 Decision boundary를 찾자 • 위 학습 데이터를 잘 분류할 복잡한 다항 feature를 생각해 보자. • 𝒉 𝜽 𝒙 (아래의 전제를 가짐) • Return 1 : 전체 벡터(𝜽 에 의해 weighted된)의 합이 >= 0 • Return 0 : else • 위 공식을 다르게 표현하면 • 기존 X를 다양한 고차원 X항으로 표현한 새로운 feature f에 의해 곱해진 𝜽의 합을 취하는 decision boundary를 계산한다. • 𝒉 𝜽 𝒙 = 𝜽 𝟎 + 𝜽 𝟏 𝒇 𝟏 + 𝜽 𝟐 𝒇 𝟐 + 𝜽 𝟑 𝒇 𝟑 • 𝒇 𝟏 = 𝒙 𝟏 • 𝒇 𝟐 = 𝒙 𝟏 𝒙 𝟐, 𝒇 𝟑 = 𝒙 𝟐 … Kernel 함수를 정의하자 왜 이런 전제 를 가질까? 고차원 다항식보다 좋은 feature f 가 있을까? à 고차원 다항식은 계산시간이 오래걸림 • 3개의 feature를 정의하고(𝒙 𝟎 = 𝟎는 무시)이를 2개 차원으로 표시하자. (𝒙 𝟏, 𝒙 𝟐) • 그리고 2차원 공간에 3개의 임의 점을 선택한다. (𝒍 𝟏 , 𝒍 𝟐 , 𝒍 𝟑 ) à landmark • 새로운 X가 주어졌을 때, X와 𝒍 𝟏 간의 유사도(simility)를 𝒇 𝟏으로 정의 • 𝒇 𝟏 = • 𝒙 − 𝒍 𝟏 = euclidean 거리 • 𝝈 = 표준편차 • 𝝈 𝟐 = 분산 • 나머지 f 도 아래와 같이 정의해 보자 • 𝒇 𝟐 = 𝒔𝒊𝒎𝒊𝒍𝒊𝒕𝒚 𝒙, 𝒍 𝟐 = 𝐞𝐱𝐩(− 𝒙9𝒍 𝟐 𝟐 𝟐𝝈 𝟐 ) • 𝒇 𝟑 = 𝒔𝒊𝒎𝒊𝒍𝒊𝒕𝒚 𝒙, 𝒍 𝟑 = 𝐞𝐱𝐩(− 𝒙9𝒍 𝟑 𝟐 𝟐𝝈 𝟐 ) 𝒙 Kernel Gausian Kernel 𝒇 𝟏 = 𝑲 𝒙, 𝒍 𝟑 𝒇 𝟎는 항상 1로 설정, 𝜽 𝟎 값을 그대로 반영 81
  82. 82. Week7-2. Kernels – 좀 더 자세히 이해해 보자. 정의한 커널이 무슨 일을 할까? X가 landmark(𝒍)의 거리에 따른 결과값 계산 커널함수와 𝒇 𝟏의 관계를 그래프로 시각화 해보자 𝒇 𝟏 ≈ 𝐞𝐱𝐩(− 𝒙 − 𝒍 𝟏 𝟐 𝟐𝝈 𝟐 ) ≈ 𝐞𝐱𝐩(− 𝟎 𝟐𝝈 𝟐) ≈ 𝟏 거리 0 거리가 아주 가까운 경우 𝒙 ≈ 𝒍 𝟏 거리가 아주 먼 경우 𝒙 ≈ 𝒍 𝟏 𝒇 𝟏 ≈ 𝐞𝐱𝐩(− 𝒙 − 𝒍 𝟏 𝟐 𝟐𝝈 𝟐 ) ≈ 𝐞𝐱𝐩(− 𝑩𝒊𝒈 𝑵𝒖𝒎𝒃𝒆𝒓 𝟐𝝈 𝟐 ) ≈ 𝟎 𝒙 • 아래와 같은 값을 가질 경우 • X = 𝟑, 𝟓 𝒂𝒏𝒅 𝒇 𝟏 = 𝟏 • 만약 X가 (3,5) 포인트로 이동하면 à 𝒇 𝟏 = 𝟏이 된다. • 만약 X가 (3,5) 포인트에서 멀어지면 à 𝒇 𝟏 = 𝟎에 가깝게 된다 • 따라서 X가 𝒍 (landmark)과 얼마나 근접한지 계산할 수 있게된다. 𝒙(3,5) 𝒙(5,1) • X = 𝟑, 𝟓 −> 𝒇 𝟏 = 𝟏 • X = 𝟓, 𝟏 −> 𝒇 𝟏 = 𝟎. 𝟏. . • 그런데 여기서 𝝈 𝟐 은 어떤 역할을 하게 되는걸까? 82
  83. 83. Week7-2. Kernels – 𝝈 𝟐 은 어떤 역할을 하게 되나? 𝑮𝒂𝒖𝒔𝒊𝒂𝒏 𝑲𝒆𝒓𝒏𝒆𝒍의 파라미터로 landmark 주변의 기울기를 정의한다. 𝝈 𝟐 의 변화에 따른 기울기 시각화 예를 들어서 어떻게 정답을 예측하는지 보자 • 예시를 위해, 이미 알고리즘을 실행한 결과로 아래의 값을 가진다고 가정 • 𝜽 𝟎 = −𝟎. 𝟓 • 𝜽 𝟏 = 𝟏 • 𝜽 𝟐 = 𝟏 • 𝜽 𝟑 = 𝟎 • 아래와 같이 3개의 샘플이 존재 할때, 새로운 X는 어떤 값을 예측할까? • 𝜽 𝟎+𝜽 𝟏 𝒇 𝟏 + 𝜽 𝟐 𝒇 𝟐 + 𝜽 𝟑 𝒇 𝟑 ≥ 𝟎 • = −𝟎. 𝟓 + 𝟏 ∗ 𝟏 + 𝟏 ∗ 𝟎 + 𝟎 ∗ 𝟎 = 𝟎. 𝟓 ≥ 𝟎 è 1을 예측 • 왜 𝒇 𝟏 = 𝟏, 𝒇 𝟐&𝒇 𝟑 = 𝟎 일까? • à X와 가장 가까운 𝒇 𝟏은 왼쪽 그림과 같이 1 • à 𝒇 𝟐&𝒇 𝟑는 거리가 멀기 때문에 0 𝝈 𝟐 = 𝟎. 𝟓 𝝈 𝟐 = 𝟏 𝝈 𝟐 = 𝟑 • 𝝈 𝟐 이 0과 가까워 지면, 기울기(경사)가 커지면서 폭이 좁아진다. • 이렇게 정의된 조건을 이용하여, 어떤 가설을 배울 수 있을까? • 만약 학습 샘플 X가 아래의 조건을 만족하면, 정답 “1”을 예측한다. • à R𝒆𝒕𝒖𝒓𝒏 𝟏 𝒘𝒉𝒆𝒏 𝜽 𝟎 + 𝜽 𝟏 𝒇 𝟏 + 𝜽 𝟐 𝒇 𝟐 + 𝜽 𝟑 𝒇 𝟑 ≥ 𝟎 83 X
  84. 84. Week7-2. Kernels – 𝝈 𝟐 은 어떤 역할을 하게 되나? 최종적으로 𝝈 𝟐를 사용한 Kernel함수를 통해 비선형 boundary를 분류 가능 만약 3개의 샘플에서 멀리 떨어진 X가 있다면? 그럼 𝒍 𝟑 근처에 X가 있다면? • 예시를 위해, 이미 알고리즘을 실행한 결과로 아래의 값을 가진다고 가정 • 𝜽 𝟎 = −𝟎. 𝟓 • 𝜽 𝟏 = 𝟏 • 𝜽 𝟐 = 𝟏 • 𝜽 𝟑 = 𝟎 • 파라미터 값(𝜽 𝟏, 𝜽 𝟐, 𝜽 𝟑)이 서로 다르게 정의되어 있으므로, 이 값에 따라 예측이 다르게 됨. • 𝜽 𝟏, 𝜽 𝟐 = 𝟏 à 𝒇 𝟏, 𝒇 𝟐 값이 분류에 영향을 미침 • 𝜽 𝟑 = 𝟎 à 𝒇 𝟑 값이 영향을 주지 못함. • 𝜽 𝟎 + 𝜽 𝟏 𝒇 𝟏 + 𝜽 𝟐 𝒇 𝟐 + 𝜽 𝟑 𝒇 𝟑 ≥ 𝟎 • = −𝟎. 𝟓 + 𝟏 ∗ 𝟎 + 𝟏 ∗ 𝟎 + 𝟎 ∗ 𝟎 = −𝟎. 𝟓 < 𝟎 è 0을 예측 • 왜 𝒇 𝟏 = 𝟏, 𝒇 𝟐&𝒇 𝟑 = 𝟎 일까? • à X와 가장 가까운 𝒇 𝟏은 왼쪽 그림과 같이 1 • à 𝒇 𝟐&𝒇 𝟑는 거리가 멀기 때문에 0 • 𝒍𝒂𝒏𝒅𝒎𝒂𝒓𝒌와의 거리가 멀면 어떻게 예측할까? • 예시를 위해, 이미 알고리즘을 실행한 결과로 아래의 값을 가진다고 가정 • 𝜽 𝟎 = −𝟎. 𝟓 • 𝜽 𝟏 = 𝟏 • 𝜽 𝟐 = 𝟏 • 𝜽 𝟑 = 𝟎 어떻게 예측할까? • 𝜽 𝟎+𝜽 𝟏 𝒇 𝟏 + 𝜽 𝟐 𝒇 𝟐 + 𝜽 𝟑 𝒇 𝟑 ≥ 𝟎 • = −𝟎. 𝟓 + 𝟏 ∗ 𝟎 + 𝟏 ∗ 𝟎 + 𝟎 ∗ 𝟏 = −𝟎. 𝟓 < 𝟎 è 0을 예측 𝒙 • 빨강 선 안에 X가 있으면 1 예측 • 빨강 선 밖에 X가 있으면 0 예측 • è 비선형 Boundary 분류 가능!! 84
  85. 85. Week7-2. Kernels – 그런데 landmark는 어떻게 선택하지? 복잡한 문제의 경우, 많은 landmark가 필요할 수 있다. Landmark는 어떻게 선택하고, f를 계산할까? 결정된 f값을 SVM에서 어떻게 활용하는가? 1. 학습 데이터를 읽어온다. (100건) 2. 학습 데이터 별로 landmark를 생성한다. (학습데이터와 동일한 위치) • 학습데이터 1건 별로 1개의 landmark가 생성됨 • 최종 100개의 landmark 생성 3. 새로운 샘플이 주어지면, 모든 landmark와의 거리(f)를 계산한다. • 𝒇 𝟎~𝒇 𝟗𝟗 , 총 100개의 f 결과 • 𝒇 𝟎 = 𝟏 (𝜽 𝟎는 bias 값이므로, 값을 그대로 유지) • 자세히 계산과정을 보면 • 𝒇 𝟏 𝒊 , = 𝑲 𝒙𝒊 , 𝒍 𝟏 • 𝒇 𝟐 𝒊 , = 𝑲 𝒙𝒊 , 𝒍 𝟐 • …. • 𝒇 𝟗𝟗 𝒊 , = 𝑲 𝒙𝒊 , 𝒍 𝟐 • 위 과정을 반복하면, X 자신과 동일한 landmark와 비교하는 구간이 있다. à 이 경우 Gaussian Kernel에서는 1로 평가 (동일한 위치) • 이렇계 계산된 f 값을 [m(99)+1 x 1] 차원의 vector로 저장한다. • 𝒇𝒊 à f 벡터의 i 번째 데이터를 의미 X값이 vector(배열)로 구성된 경우 1. 이전에 정의했던 수식을 확인해보자 • 𝑷𝒓𝒆𝒅𝒊𝒄𝒕 𝒚 = 𝟏 • 𝒘𝒉𝒆𝒏 𝜽 𝑻 𝒇 ≥ 𝟎 • 𝑨𝒏𝒅 𝒇 = [𝒎 + 𝟏 ∗ 𝟏] 2. 그럼 𝜽는 어떻게 계산할 수 있을까? • SVM Optimization 알고리즘 이용 • 위 최적화 결과를 최소화하기 위해 f 벡터를 이용한다. • 그리고 이 최적화 알고리즘을 계산하면, 𝜽를 찾을 수 있게 된다. 3. 계산 성능 향상을 위한 Tip • 위 예시에서 m = n으로 가정 (학습 데이터와 f 벡터의 수가 같기 떄문) • 좌측방식 구현보다는 우측 방식으로 구현하는 것이 계산성능 향상 • 데이터가 많을 경우 수많은 for loop를 하지 않고, 매트릭 계산85
  86. 86. 86 Week7-2. SVM Parameter SVM 파라미터가 미치는 영향 • C ↑, 𝝀 ↓ : Lower Bias, High Variance è Overfitting • C ↓, 𝝀 ↑ : High Bias, Lower Variance è Underfitting C 𝝈 𝟐 • 𝝈 𝟐 ↑ à 𝒇𝒊부드러운 곡선 à High Bias, Lower Variance è Underfitting • 𝝈 𝟐 ↓ à 𝒇𝒊부드러운 곡선 à Lower Bias, High Variance è Overfitting
  87. 87. Week7-2. Using an SVM – 커널 선택 SVM의 커널을 선택할때… Kernel을 선택하지 않으면? à Linear Kernel 1. 기본 linear classifier로 동작한다. • 𝑷𝒓𝒆𝒅𝒊𝒄𝒕 𝒚 = 𝟏 𝒘𝒉𝒆𝒏 𝜽 𝑻 𝒇 ≥ 𝟎 2. 어떤 경우에 사용할까? • Feature(n) à 크고 • Training Data (m) à 작은 경우 • 고차원 feature인 경우 Overfitting의 위험이 있다. Gausian Kernel 1. 커널에 필요한 작업들 • 𝝈 𝟐 값을 정해야 한다. • Kernel 함수 정의 : 𝒇 = 𝑲(𝒙 𝟏, 𝒙 𝟐) 2. 어떤 경우에 사용할까? • Feature(n) à 작고 • Training Data (m) à 큰 경우 (예를 들면 2차원 데이터 학습) 3. 대부분의 경우 좋은 결과를 도출함 (가장 많이 활용하는 kernel) 다른 커널들… 1. Polynomial Kernel • 입력 데이터 x와 landmark l간의 similarity를 아래 함수로 계산 • (xT l)2 • (xT l)3 • (xT l+1)3 • 공식은 : (xT l+Con)D • 파라미터 : Degree of Polynomial(D), L에 더할 상수값(Con) • 음수를 가지는 데이터가 없는 경우에 사용 2. String Kernel, Chi-square Kernel … • 소수의 문제해결에 사용하며, 많이 활용되지는 않는다. 87
  88. 88. 88 Week7-2. SVM 참고자료 • A User’s Guide to Support Vector Machines : http://www.cs.colostate.edu/~asa/pdfs/howto.pdf • https://www.cise.ufl.edu/class/cis4930sp11dtm/notes/intro_svm_new.pdf • https://nlp.stanford.edu/IR-book/html/htmledition/support-vector-machines-the-linearly-separable-case-1.html
  89. 89. Week 8-1 Clustering 89
  90. 90. Week8-1. K-Means Algorithm K-Means 클러스터링이 진행되는 과정 90
  91. 91. Week8-1. K-Means Algorithm • K = cluster의 개수 • k = cluster의 index • m = 학습 데이터의 개수 • 𝑪(𝒊) : 𝑿(𝒊) 에 가장 가까운 cluster의 index (1 ~ K) • 𝝁 𝒌 : k 번째 cluster의 중심점 (포함된 학습데이터와 K cluster의 중심값과의 평균 거리) 91
  92. 92. Week8-1. K-Means Algorithm – 분류가 어려운 클러스터에 사용 • 시각적으로 분류가 가능한 구성으로 쉽게 분류 • 티셔츠의 사이즈(넓이, 높이)를 기반으로 3개의 사이즈로 구분 92
  93. 93. Week8-1. Random Initialization 93 초기에 K개 cluster 좌표를 랜덤으로 정하는 것이 효과적 랜덤으로 2개의 클러스터를 선택 초기 랜덤값에 따라 분류결과가 달라짐 • 아래 2개의 상황처럼 잘못 분류되는 것을 막기 위하여, • 여러번의 random initialization을 수행하고, 가장 좋은 결과를 선택한다. • 보통 클러스터 개수(K)가 3정도 되는 상황에서 random initialization이 좋은 결과를 제공
  94. 94. Week8-1. Choosing the Number of Clusters 94 대부분의 경우 사람이 직접 K를 결정(Elbow Method 등)하고 있지만, 중요한 것은 cluster를 어떤 용도로 활용할 것인지를 결정하고, K를 정하는 것! 사람에 따라 2~4개로 분류 Elbow Method를 이용한 K결정 • Elbow(팔꿈치)모양의 지점을 K로 결정 • 최적화 함수(J)가 줄어드는 기울기가 낮아지는 지점을 결정 • 그런데, • 위와 같이 급격한 기울기 감소없이, 조금씩 J가 줄어드는 경우도 있다. • 따라서 Elbow Method는 특정 상황에서 K를 찾기 어렵다.
  95. 95. Week 8-2 Data Compression 95
  96. 96. Week8-2. Data Compression – Dimensionality Reduction 96 Memory 용량 절약, 알고리즘 속도 개선, • 2차원의 데이터를 1차원으로 변환하여 데이터 용량을 줄여줌. • 변환된 데이터(𝒁(𝟏) )는 1차원 영역임. 2D à 1D 3D à 2D
  97. 97. Week8-2. Principal Component Analysis Problem Formulation 97 변환된 차원과 데이터간의 거리의 평균이 최소화 되는 차원을 찾음 • 1차원 선으로 feature를 축소 • 현재 데이터와 축소된 선간의 거리가 최소화 되도록 선을 선택 • 즉 feature 선택 2D à 1D 3D à 2D • 빨강색 2차원 평면으로 feature를 축소 • 축소된 평면과 데이터간의 거리가 최소화 되도록 평면 선택 • 즉 feature를 선택
  98. 98. Week8-2. Principal Component Analysis Problem Formulation 98 PCA는 Linear Regression이 아니다. • Decision boundary와 데이터간의 거리(직선 거리) • 데이터 X에 대응하는 정답(Y)가 있음. Linear regression PCA • PCA는 직교하는(가장짧은) 거리를 계산함. • X에 대응하는 정답이 없음.
  99. 99. Week8-2. Principal Component Analysis Algorithm 99 PCA를 계산하는 절차 • 𝑼(𝟏) ~ 𝑼(𝒏) 개의 Column을 가진 vector(U)를 리턴함. • 여기서 K개의 column(𝑼(𝟏) ~ 𝑼(𝒌) )만을 사용할 것이다. • 정리하면, n차원 à k차원으로 변환되고, • 이때 데이터는 Z라는 변수로 정의한다. 모든 데이터의 Eigenvector를 계산 PCA • Z는 K번째 column까지의 벡터를 치환한 값과 X를 내적한 값. • 결과적으로 K*1의 차원으로 변환된다. • 최종 공식 Sigma
  100. 100. Week 8-3 Applying PCA 100
  101. 101. Week8-3. Reconstruction from Compressed Representation 101 PCA를 통해 압축된 데이터에서 원본데이터를 추출(예측)하는 방법 PCA를 통해 1차원으로 압축된 데이터 PCA • 위 공식을 통해서 원본 데이터를 예측 (X approx) 원본 데이터 𝑿(𝟏) 예측 데이터 𝑿 𝒂𝒑𝒑𝒓𝒐𝒙
  102. 102. Week8-3. Choosing the Number of Principal Components 102 축소할 차원의 개수(K)를 어떻게 결정할까? K값을 계산하는 공식 K를 좀 더 쉽게 찾는 방법은? • 평균제곱 projection 오류 : 원본과 축소된 차원의 값과의 평균 차이 • 분산 : 원본 데이터의 분산 • 위 공식에 따른 값이 최소화 되는 K를 선택한다. • 여기서는 0.01(1%) 이하가 되는 값을 선택하도록 가이드함. • à 차원이 축소해도, 분산의 99%는 유지되도록 k를 선택 • Svd함수를 이용하면, 대각행렬인 S를 제공하고, • S를 이용하여 variance를 계산할 수 있다. • 위 예시에서 K=3일때, 분산(variance) = 0.99 • 좌측의 방식처럼 전체를 반복하는 것 보다 계산이 효과적
  103. 103. Week8-3. Advice for Applying PCA 103 PCA적용시 고려사항 Supervised learing에서 PCA로 성능 향상 PCA 요약정리 • 학습데이터가 10,000 차원으로 구성되어 있다면, • Linear regression, SVM, Neural Network.. 무엇을 사용하든 학습속도는 느려진다. • 이러한 PCA를 통한 데이터 축소는 학습 데이터 뿐 만 아니라, Test 데이터에도 활용 가능. • 데이터 압축 • Memory & disk 용량 축소 • 알고리즘 실행 속도 증가 • 분산의 95 ~ 99% 를 유지하는 K를 선택 • Overfitting을 방지할 수는 없다. • Feature가 줄어들면 overfitting 가능성이 커짐. • Overfitting을 줄이려면, regularization을 사용 • 어떻게 빠르게 할 수 있을까? 1. Label이 없는 데이터만 추출한다. 2. PCA를 적용하여 차원 축소 3. 새로운 학습 데이터 생성
  104. 104. Week 9-1 Density Estimation 104 Week 9 Anomaly Detection
  105. 105. Week9-1. Gaussian(Normal) Distribution 105 평균값을 중심으로 각각의 x가 발생할 수 있는 확률 설명 Gaussian Distribution의 예시 • 각 분포곡선의 넓이가 확율을 나타낸다. 평균 분산 표준편차 ( 𝝈)
  106. 106. Week9-1. Anomaly detection 알고리즘 이해 106 각 데이터(𝑿(𝒊))별 발생 확률을 곱한(𝚷) 결과를 계산한다. • 각 데이터 별로 발생확률(정규분포 이용)을 구하고, • 각각의 확률을 곱한다. (𝚷기호) 알고리즘 이해 Anomaly detection 알고리즘 상세 Gaussian 공식 • 원하는 feature (𝒙𝒊) 를 선택하고, 평균과 분산을 계산 (𝟏 ≤ 𝒊 ≤ 𝒏). 여러개 feature 선택 가능 • 계산된 평균/분산을 이용하여 신규로 주어진 x의 발생확률인 p(x)를 계산. • P(x) 값이 특정 기준(𝜺) 보다 작으면, anomaly로 판단
  107. 107. Week9-1. Anomaly detection 알고리즘 예시 107 각 데이터(𝑿(𝒊))별 발생 확률을 곱한(𝝅) 결과를 계산한다. • 𝑿 𝟏, 𝑿 𝟐 2개의 feature에 대한 데이터 분포를 확인하고, • 각 feature별로 gaussian 분포를 확인한다. 학습 데이터의 확률분포 (정상 데이터 분포) 신규 데이이터에 대한 Anomaly Detection 예시 • 𝑿𝒕𝒆𝒔𝒕 𝟏 , 𝑿𝒕𝒆𝒔𝒕 𝟐 데이터가 입력되었을 때, 정상분포에 포함되는지 확인해 보자. • 여기서 기준이 되는 앱실론( 𝜺) = 0.02 분홍색 빗금 부분이Anomal 영역임 을 확인 할 수 있음. 𝑿 𝒕𝒆𝒔𝒕 𝟏 = 정상영역 𝑿 𝒕𝒆𝒔𝒕 𝟐 = 비정상 영역
  108. 108. Week 9-2 Building an Anomaly Detection System 108
  109. 109. Week9-2. Developing and Evaluating an Anomaly Detection System 109 Aircraft engine을 이용한 예시 데이터 준비 • 10,000개의 정상 데이터와 20개의 비정상 데이터 • 학습용 : 6,000개 (정상 데이터만 사용) • Cross Validation : 2,000(정상), 10(비정상) • Test : 2,000(정상), 10(비정상) 학습된 모델 평가 • 1) 학습데이터를 이용해 모델을 생성 • 2) 생성된 모델에 CV, Test 데이터를 이용해 anomaly 탐지
  110. 110. Week9-2. Anomaly Detection vs. Supervised Learning 110 이미 정답이 있는 데이터가 있다면, supervised learning을 사용하면 되지 않을까? Anomaly detection • Anomal data (positive, y=1) : 아주 적은 수만 존재 (0~20개) • Normal data (negative, y-0) : 아주 많은 데이터가 있음. • 위 경우, supervised learning과 다르게 • Anomal data à Cross Validation or Test 용으로만 활용 • Normal data à Training 용으로 활용 • 많은 경우, • Anomal(positive) 데이터로 Anormal의 패턴을 학습하는 것은 아주 어렵다. • 왜냐하면, 학습하지 못한 Anormal 데이터가 발생할 확률이 높기 때문. • 활용 • Fraud Detection • Manufacturing (ex, aircraft engine) • Monitoring machines in data center Supervised learning • Anomal & Normal data : 아주 많은 수의 샘플 존재 • 많은 학습 데이터로 Anormal 데이터의 패턴을 충분히 학습할 수 있는 경우에 활용가능 • 활용 • Email spam classification • Weather prediction (sunny, rainy …) • Cancer classification
  111. 111. Week9-2. Choosing What Features to Use 111 정규분포의 형태가 아닌 feature는? 정규분포(gaussian)가 아닌 feature의 변환 • 보유한 feature가 정규분포를 가진다면, 기존 확률분포 공식을 그대로 적용 새로운 feature를 이용한 anomal 데이터 분류 • 아래의 예시와 같이 X1 하나의 feature로는 anomal 데이터를 분류할 수 없고, • X2와 같은 새로운 feature를 이용하면 쉽게 탐지 가능하다. • 정규분포가 아닌 경우는 log함수를 통해 정규분포로 변환 • Data Center의 이상현상을 감지하는 예시의 경우, • 기존 데이터 외, X5, X6등의 새로운 feature를 추가하여 학습 • 자연로그를 사용하면 정규분포로 변환되는 이유? • 𝒆 𝒚 = 𝒙 일 때, ln 𝒙 = 𝒚 를 자연로그 • 즉, ln에 입력되는 값( 여기서는 x)가 커도, • 자연상수 e의 지수로 표현되므로, • x가 무한대로 커져도 증가폭이 높지 않음. • 다만, x가 0에 가까우면 마이너스 무한대로 감소 http://mwultong.blogspot.com/2008/04/ln-log-exp-graph-exponential-function.html 증가폭이 크지 않음 마이너스 무한대
  112. 112. Week 9-3 Multivariate Gaussian Distribution (optional) 112
  113. 113. Week9-3. Multivariate Gaussian Distribution 113 여러 개의 feature를 이용한 정규분포 Data Center의 이상현상 모니터링 새로운 feature를 이용한 anomal 데이터 분류 • 2개의 feature를 가진 정규분포 • 새로운 데이터 (X1 = 0.4, X2=1.5)가 입력된 경우, • CPU사용률은 낮고, Memory 사용은 높은... • 정상범위를 벗어난 것으로 판단할 수 있다.
  114. 114. Week9-3. Multivariate Gaussian Distribution 114 Multivariate Gaussian 예시들 -1
  115. 115. Week9-3. Multivariate Gaussian Distribution 115 Multivariate Gaussian 예시들 - 2
  116. 116. Week9-3. Multivariate Gaussian Distribution 116 Multivariate Gaussian 예시들 - 3
  117. 117. Week9-3. Anomaly Detection using the Multivariate Gaussian Distribution 117 Multivariate Gaussian에서 사용하는 parameter Multivariate Gaussian 분포의 공식 • 아래와 같은 Gaussian 분포의 공식에서 파라미터 계산방식 기존 모델과 Multivariate Gaussian의 차이 • Original model의 확률분포는 각 변수들에 대한 확률분포를 곱(product)하여 계산하는 방식 Week8. PCA에서 설명 𝜀 보다 작은 값이면 anomaly로 판정 • Origial model과 multivariate gaussian 결과값이 동일한 결과를 가지기 위한 조건이 있다. • 변수(X1, X2)의 축에 따라(align) 원형의 분포를 가져야 한다. • 아래의 sigma와 같이 축이 회전하는 값(0.8)은 없어야 함. 나머지 공간은 전부 0
  118. 118. Week9-3. Anomaly Detection using the Multivariate Gaussian Distribution 118 언제 Multivariate Gaussian 을 사용해야 할까? Original Model • 좀 더 많이 자주 사용되는 모델 • Feature를 직접 추가하여 이상탐지 확률 높임 • 예를 들어, Data Center의 cpu, memory 사용비율인 X3 feature 생성 Multivariate Gaussian • 특정 상황에 효과적임 • 자동으로 다른 feature간의 상관관계를 추출하여 계산함. • 계산 비용이 적음 (쉽게 확장가능) • 예를 들어 feature 수(n) = 100,000 • 계산비용이 비쌈 (역행렬 계산) • 100,000 * 100,00 차원의 역행렬 계산시간 증가 • 정상동작을 위한 조건 • 학습데이터(m) > feature수(n) , m >= 10*n 또는 • 𝚺 역행렬이 없는 경우 • 학습 데이터(m, Label이 없는)가 작아도 잘 동작함. • 위 조건을 만족한 경우에도 잘 동작하지 않으면? • 중복 feature 제거 • X1 = X2 à X1 제거 • X3 = X4 + X5 à X3 제거
  119. 119. Week 9-4 Predicting Movie Ratings 119
  120. 120. Week9-4. Recommender Systems (문제 정의) 120 많은 기업들이 ML을 recommender system에 적용하려 함 Recommender System 소개하는 이유 • 1) 많은 기업(Netflix, Apple, Amazone …) 들이 주로 ML을 활용하는 시스템 이 추천관련 서비스 • 학교에서 배우는 것 보다, 기업에서 적용하는 다양한 방식에 대한 소개 • 2) feature를 자동으로 선택하는 방법 • 많은 경우 분석가가 직접 feature를 선택하여 코딩을 통해 반영 • 이를 자동으로 최적의 feature를 선택할 수 있는 방법 소개 Recommender System의 수식 (영화 평점 예측 사례) • 사용자는 각 영화에 대하여 평점을 0~5점까지 줄 수 있다. • 𝒏 𝒖 : 사용자 수 (4명) • 𝒏 𝒎 : 영화 수 (5편) • 𝐫 𝐢, 𝐣 ∶ 𝐢 영화 번호 , 𝒋 사용자번호 • 사용자 i가 영화 j에 평점을 주었는지 여부 • 평점을 주었으면 1, 안주었으면 0 • 𝒚(𝒊, 𝒋) : 사용자 i가 영화 j에 준 평점(점수) • 𝐫 𝐢, 𝐣 = 𝟏 인 경우만 점수 존재함 대략 예측해보면, 분홍색 점수를 예측할 수 있다.
  121. 121. Week9-4. Content Based Recommendations 121 사용자별 가중치(𝜽)를 구하여, 평점을 예측하는 방법 영화 유형별 feature 추가 • 각 영화별로 romance의 특징과 action의 특징을 점수로 표현하고 • 이를 Feature vector로 관리 어떻게 최적의 𝜽 를 학습할까? • 𝒎(𝒋) : 사용자 j가 평점을 준 영화의 개수 (실제 평가한 영화 수) • n = 2, feature 수 (X1, X2) • 각 사용자(j)별로 가중치(𝜽)를 학습하여, 영화(i)에 대한 평점을 예측한다. • 𝜽 ∈ ℝ 𝟑 𝜽 ∈ ℝ 𝒏1𝟏 인 경우, è 예측한 평점은 : 𝒚 = 𝜽 𝒋 𝑻 (𝒙 𝒊 ) • 사용자 1(Allice)의 3번째 영화(Cute pupple of love)의 평점을 예측해 보자 • 이때 𝜽(𝟏) 은 사전에 학습되었다고 가정한다. [0, 5, 0] • 예측된 평점은 4.95 • 최적화 알고리즘 : Linear regression과 학습방식이 동일함. 상수값은 𝜽 최적화 에 영향을 미치지 않으므로 제거 사용자 j의 𝜽 전체 사용자의 𝜽 • Gradient descent Algorithm 최적화 알고리즘에 서 이미 반영됨 r(i,j) = 1 인 것만 sum 수행
  122. 122. Week 9-5 Collaborative Filtering 122
  123. 123. Week9-5. Collaborative Filtering 123 𝜽 와 평점을 이용하여 영화의 feature(x1, x2)를 추론 알고리즘 개요 • 각 영화별로 romance의 특징과 action의 특징을 모르는 상태에서, • 평점 만으로 영화의 특징을 추론 Optimization Algorithm • 𝜽가 주어진 경우, feature(x1, x2)를 추론 할 수 있다. • 이전 Recommendation에서 사용한 공식에 대입하여, • 역으로 추론하여 계산하면, • “Love at last”라는 영화의 특징은 romance(1.0), action(0.0)로 추론 가능 • 𝜽 𝒋 𝑻 𝒙 𝒊 ≈ 평점 Collaborative filtering 1. 𝒙 와 영화평점이 어지면 à 𝜽 예측 2. 𝜽가 주어지면 à 𝒙 예측 • 위 조건을 이용하여 반복적인 모델 학습이 가능하다 ① random 𝜽 à feature(x) à 𝜽 à feature(x) à 𝜽 ….. • 이렇게 𝜽와 feature를 반복하여 학습하면서, • 좀 더 최적화된 모델 파라미터를 찾을 수 있다.
  124. 124. Week9-5. Collaborative Filtering Algorithm 124 𝜽 와 feature(x)를 동시에 최적화 할 수 있는 알고리즘 알고리즘 개요 • 2개의 개별적인 최적화 알고리즘을 동시에 계산할 수 있는 공식 알고리즘 실행 단계 • 최종 목표인 x와 𝜽를 최소화 하기 위하여 cost function(여기서는 gradient descent)를 이용한다. 𝑖: 𝑟 𝑖, 𝑗 = 1 사용자 평점이 있는 값만 합계 𝑗: 𝑟 𝑖, 𝑗 = 1 모든 사용자가 평점을 준 영화만 합계
  125. 125. Week 9-6 Low Rank Matrix Factorization 125
  126. 126. Week9-6. Vectorization: Low Rank Matrix Factorization 126 Vectorization을 이용한 알고리즘 구현 방안 Low Rank Matrix Factorization • 아래와 같이 matrix를 이용한 알고리즘 계산방식을 low rank matrix factorization 이라고 함.
  127. 127. Week9-6. Vectorization: Low Rank Matrix Factorization 127 Mean Normalization을 이용하여 데이터 보정하기 문제 상황 • 특정 사용자(Eve)가 평점을 전혀 작성하지 않은 경우, 계산 결과가 Mean Normalization 적용하기 • 특정 사용자(Eve)가 평점을 전혀 작성하지 않은 경우, 이를 보정 • 각 평가점수의 평균값을 계산하고, 평균과의 차이값을 배열로 생성 • 아래처럼 Eve의 𝜽 를 최소화 하는 공식을 적용하면, 결국 𝜽(𝟓) = 0 0 (거의 0에 근접) • 왜냐하면, 평점을 알수 없어 모두 0을 대입함으로 인한 결과. • 결국 어떤 영화가 대입되더라도 평점을 0점으로 예측하게 됨 (비정상적인 상황) Eve가 평점을 작성하지 않았으므로, 0 이 부분의 계산 결과로 𝜽를 도출함. • Movie(i)에 대한 사용자(j)의 평가점수 예측 공식 • 사용자(Eve, 5)의 Movie에 대한 평가점수 예측 • 𝜽(𝟓) = 0 0 인 경우에도 𝝁 값을 이용하여 보정 • 𝜽 𝟓 𝑻 (𝒙 𝟏 ) + 2.5 = 2.5 (평균값으로 보정 가능)
  128. 128. Week 10-1 Gradient Descent with Large Datasets 128 Week 10 Large Scale Machine Learning
  129. 129. Week10-1. Stochastic Gradient Descent 129 Gradient Descent의 계산 비용을 줄여서, 더 많은 학습 데이터 처리 가능 • 모든 학습 데이터의 gradient(𝜽)를 전부 계산하고, • 그 값의 평균을 구하여 기존 gradient(𝜽)를 업데이트 한다. • 학습 데이터가 많아지면, SUM 연산 비용이 증가하여 성능이 저하됨 기존 Batch Gradient Descent Stochastic Gradient Descent • Batch gradient descent의 성능 개선을 위하여, • Iteration별로 1개의 데이터에 대한 gradient를 계산하고, • 다음 Iteration에서 1개의 데이터를 계산하여 gradient를 업데이트 하는 방식 • 매번 전체 데이터를 계산하는 것보다 효과적 • 데이터가 3백만 건인 경우, • Iteration 별로 3백만 건을 읽어와서 𝜽를 계산하는 연산을 • Iteration이 많아지면, 매번 반복하여 처리성능이 낮음 전체 데이터의 평균을 구하지 않음 (1개의 gradient만 계산할 때) Mini-batch Gradient Descent • Iteration별 데이터를 1개 à N개로 증가 • 한번에 처리하는 개수를 증가시켜 • Vector 계산으로 병렬처리가 가능 à 성능향상
  130. 130. Week 10-2 Advanced Topic 130
  131. 131. Week10-2. Online Learning 131 지속적으로 유입되는 대량의 스트림 데이터를 학습할 수 있는 알고리즘(모델) • 배달 웹서비스의 사용자가 과금액수에 따라서 • shipping service를 선택했는지 여부를 예측 할 수 하고, • 신규 사용자에게 최적의 과금액수를 제시한다. • 학습 feature(𝒙) : 사용자, 출발지, 도착지, 과금액수 • Y = 서비스 선택 여부 (0, 1) • 학습 모델 : 𝒑(𝒚 = 𝟏|𝒙; 𝜽) x : 과금액수 • Online learning의 장점 • 사용자의 변화하는 성향을 학습 가능 Online Learning 예시 1 Online Learning 예시 2 • Phone 제품 검색 (최적의 검색결과 제공을 위한 학습) • 사용자가 “Android phone 1080p camera”를 검색 • 100 개의 제품이 존재 • 이중 10 개만 제공 (학습된 모델을 통한 결과) • 학습 feature(𝒙) : phone의 특성 • 폰 이름과 매핑되는 단어, 폰 설명과 매핑되는 단어 • Y = 사용자의 click 여부 (0, 1) à 사용자가 조회된 결과를 click했는가 • 학습 모델 : 𝒑(𝒚 = 𝟏|𝒙; 𝜽) x : 과금액수
  132. 132. Week10-2. Map Reduce and Data Parallelism 132 Batch Gradient Descent의 계산을 분산처리하여 성능을 향상 • 기존 Batch Gradient Descent 공식 Map Reduce를 이용한 Batch Gradient Descent 계산 분산처리를 위한 시스템 구성 • 여러대의 서버로 작업을 분산하거나, core별로 작업을 분산 가능 • Map-Reduce를 이용한 계산 방식 • 𝜽𝒋 ∶= 𝜽𝒋 − 𝜶 𝟏 𝟒𝟎𝟎 (𝒕𝒆𝒎𝒑𝒋 𝟏 + 𝒕𝒆𝒎𝒑𝒋 𝟐 + 𝒕𝒆𝒎𝒑𝒋 𝟑 + 𝒕𝒆𝒎𝒑𝒋 𝟒 ) • 400개 학습데이터를 4개의 컴퓨터에서 학습하여 최종 결과만 업데이트 각 Map 단계에서 계산한 결과를 합산후 평균한 값으로 𝜽 업데이트 동일한 결과
  133. 133. 133 Week 11 Application Example: Photo OCR
  134. 134. Week11. Problem Description and Pipeline 134 사진에서 문자를 인식하고, 이를 텍스트로 변환 • Photo OCR pipeline (사진에서 텍스트를 추출하는 단계) Photo OCR 처리 방식 Photo OCR 을 위한 pipeline • 머신러닝 알고리즘을 이용하여, • 텍스트 추출을 하기 위한 • 처리 프로세스 1. 텍스트 감지 (사진에서 텍스트가 있는지 확인) 2. 문자 영역을 분할 3. 문자 분류
  135. 135. Week11. Sliding Window 135 Sliding Window 기법을 이용한 Text detection • 걷는 사람들의 이미지를 활용해 모델 학습 (82 * 36 pixels) Sliding Window를 활용한 보행자 탐지 Test Detection • Sliding window를 적용하여 문자일 확률이 높은 영역 추출 • Sliding window를 활용하여 걷는 사람을 탐지 • 다양한 window size를 적용하여 • Window를 sliding하면서 이미지를 탐지 • Expansion • white pixel을 중심으로 일정 거리(pixel)에 있는 pixel을 white로 변환 • 텍스트 영역을 확장하여 문자 인식률을 높이기 위함. • Sliding window를 활용한 문자 분할 • 문자 분리를 위한 학습 데이터 • 문자 사이의 공백을 학습 • 학습된 모델을 이용한 문자 분할
  136. 136. Week11. Getting Lots of Data and Artificial Data 다양한 데이터를 학습하기 위한 기법들 • 왜곡을 이용한 데이터 확장 (`2개 à 16개) • 실제 사진의 이미지는 다양한 방식으로 왜곡/합성되어 있으므로, • 학습시에 더 많은 케이스로 학습하여 모델의 예측정확도 향상 합성을 통한 데이터 확보(확장) 더 많은 데이터를 얻기 위한 고려사항 • Low bias classifier를 확보한 후에, 다음 작업을 수행하는 것이 좋다. • Low bias를 가지려면, 더 많은 feature를 확보하는 것이 필요 • Neural Network의 경우 hidden unit을 추가 • 현재 데이터의 10배를 확보하려면 어떻게 해야 할까? • 데이터 왜곡/조작을 통한 합성 • 실제 존재하는 데이터를 탐색하여 수집 • Crowd source (E.g. Amazon Mechanical Truck) • 단순히 random 값의 추가 및 의미없는 noise는 학습에 도움 안됨
  137. 137. Week11. Ceiling Analysis: What Part of the Pipeline to Work on Next 어떤 단계에 시간을 투자하는 것이 효과적인지 파악하는 방법 • 일단 현재 상태의 Accuracy를 확인 (82%) • 전체 단계를 구분하여 각 단계별로 최대 수준의 정확도를 부여하고, • 전체 정확도에 미치는 영향을 비교 OCR pipeline의 단계별 효과 측정 Image 분류 pipeline의 단계별 효과 측정 • 사진 속의 인물을 분류하는 pipeline에서 • 정확도에 가장 많은 영향을 단계를 확인 • 위 예시에서 “Text detection”을 100% 수준으로 설정하면, • 전체 Accurary가 89%로 약 17 %의 효과가 있음. • 따라서 Text detection 정확도 향상을 위해 가장 많은 시간을 투자해야 함. • Face detection과 Eyes segmentation 단계가 가장 많은 영향을 미침 • 따라서 이 2 단계에 많은 인력과 시간을 투자해야 함.
  138. 138. 138 Summary : Main topics
  139. 139. END

×