https://www.coursera.org/learn/machine-learning/lecture/V9MNG/problem-motivation

Anomaly Detection Problem Motivation

image

anomaly detection 은 정상인지 아닌지 확인해주는 기능을 수행한다. 위의 경우 새로운 항공기 엔진이 정상인지 아닌지 확인해주는 작업을 예로 보여준다.

image
image


https://www.coursera.org/learn/machine-learning/lecture/ZYAyC/gaussian-distribution

Anomaly Detection Gaussian Distribution

image

gaussian distribution은 normal distribution이라고 불리기도 한다. 그래서 x tilda n(mu, sigma squares) 에서 n을 사용했다. tilda의 의미는 distributed as 의 의미이다. 즉 여기서는 normal distribution을 이용해 distributed되었다는 의미이다.

mu 는 중앙을 나타낸다. 시그마를 통해 그래프의 높낮이, 폭이 조절된다. 그래프 높이의 총합은 항상 1이 된다.

image
image

위그림은 중앙점 mu를 구하는 공식, 시그마를 구하는 공식이다. 


https://www.coursera.org/learn/machine-learning/lecture/C8IJp/algorithm

Anomaly Detection Algorithm

image

p(x)는 최종 계산값이며 최종 probability이다. 이는 각각의 feature의 probability의 곱으로 결정되어 진다. pi는 각 요소들의 곱을 나타내는 기호이다. 

image

mu j를 간단하게 vector로 묶어서 생각할수 있다. 이때 features 들도 묶어서 vector 들끼리의 연산으로 생각할수도 있다.( vectorization ) 

image


https://www.coursera.org/learn/machine-learning/lecture/Mwrni/developing-and-evaluating-an-anomaly-detection-system

Developing and Evaluating an Anomaly Detection System

image

위의 그림은 anomaly detection 알고리즘을 이용한 프로젝트 과정을 설명한다.

image

가지고 있는 데이터를 training, cross validation, test set으로 구분하는 비율에 관한 내용이다.

image

anomaly 를 구분하는 정확도만으로 알고리즘의 성능을 평가 할수 없다. logistic regression과 마찬가지로 skewed class의 경우를 생각해야 한다. 위의 예시의 경우 대부분의 엔진은 문제가 없고 아주 극소수의 엔진만이 문제를 가지므로 모든 경우에 anomaly로 판단하는 알고리즘이라도 좋은 적중률을 가지게 된다.


https://www.coursera.org/learn/machine-learning/lecture/Rkc5x/anomaly-detection-vs-supervised-learning

Anomaly Detection vs. Supervised Learning

image

anomaly detection과 logistic regression은 비슷하다. 어떤 경우에 어떤 알고리즘을 써야 하는지 설명하고 있다. 위 그림 anomaly detection 설명에서 말하는 positive ( y=1) 이란 anomaly 인경우를 말한다. 많은 수의 negative 데이터를 가지고 있는 경우 즉 normal인 경우의 데이터가 많고 anomaly의 경우의 데이터가 별로 없는 경우. 이제 까지 젼혀 보지 못한 anomaly를 관측해내야 하는 경우 anomaly detection을 이용한다. 

일반상태 자료가 많아서 일반상태를 상정하고 여기에서 벗어나는 경우를 측정하는 경우에 anomaly detection을 사용한다. 

image


https://www.coursera.org/learn/machine-learning/lecture/LSpXm/choosing-what-features-to-use

Anomaly Detection Choosing What Features to Use

image

일반 gaussian 의 모양( bell모양 )이 아닌 경우 x의 변형을 통해 근접하게 만들어 준다. 


https://www.coursera.org/learn/machine-learning/lecture/Cf8DF/multivariate-gaussian-distribution

Anomaly Detection Multivariate Gaussian DistributionLoaded

image

위그림의 왼쪽 그래프처럼 normal인 데이터들의 형성이 정확히 동심원형태가 아닌경우 mu, sigma를 조정할필요가 있다. 

image

위그림에서 p(x1)*p(x2)*p(x3) …… p(xn) 과 같이 계산하던것을 p(x) 로 한번에 계산 하는 것에 유의한다. 

image
image
image
image
image
image


https://www.coursera.org/learn/machine-learning/lecture/DnNr9/anomaly-detection-using-the-multivariate-gaussian-distribution

Anomaly Detection using the Multivariate Gaussian Distribution

image

multivariate gaussian distribution을 사용할때 의 공식과 mu와 sigma를 구하는 방법을 설명하고 있다.

image
image

위 그림은 original gaussian model과 multivariate gaussian model을 비교하고 있다.

상단부분처럼 기울어지지 않은 벨모양인 경우는 multivariate model로도 구현 가능하다. 이때 시그마 matrix는 그림 하단 처럼 대각선에는 각각의 시그마값을 요소로 가지며 나머지는 0이 되게 된다. 

multivariate gaussian model은 기울어진 벨모양도 만들수 있다.  

image

언제 original gaussian model과 multivariate gaussian model 를 사용해야 하는지 각각 어떤 특성을 가지는지 보여주고 있다. original gaussian model은 두 feature의 연관성을 스스로 알아내지 못하므로 손수 찾아서 지정해 주어야 한다. original gaussian의 경우 데이터의 갯수가 features의 수보다 적어도 사용가능하다. multivariate gaussian model은 두 features간의 관계를 스스로 찾아낼수 있다. m ( 데이터수 )보다 n ( features수 )가 항상 커야하며 m >= 10n 인경우 multivariate gaussian model 사용을 추천한다.

그림 우하단은 중독된 feature나 linearly dependent 관계를 가진 features를 줄여 사용하기를 추천한다는 내용이다.


https://www.coursera.org/learn/machine-learning/lecture/Rhg6r/problem-formulation

predicting movie rating Problem Formulation

이 강의는 영화 평점을 예상하고 영화를 추천하는 경우를 예시로 들고 있다.

image

이 예시에서 영화를 두가지 종류로 바라본다. 로맨스, 액션으로 나누어본다.

영화는 5가지 이고 사용자는 4명이다. 써있는 숫자는 평점이고 물음표는 사용자가 평점을 내리지 않는 경우이며 이 점수를 예상하는 것도 이 프로젝트의 목적중의 하나이다. 

image

쎄타는 각 사용자들의 각 영화종류에대한 쎄타값이다. 즉 위그림의 하단의 경우 0 , 5, 0 이 주어졌는데 이는 사용자 alice 의 x0 feature에대한 쎄타값 0 , x1에대한( romance features 값 도표) 사용자 alice의 x1 쎄타값, x2에 대한 ( action 값) 사용자 alice의 쎄타값이된다. 사용자가 평점하지 않은 영화에 대한 평점 구하기위해서는 사용자의 각 영화종류에 대한 쎄타값을 구하는 방법은 아래는 참조한다.

image

각 영화종류에 대한 쎄타값을 구하는 방법이다.

image

k0는 biased value이므로 regularization할 필요가 없다 그러므로 뒷부분 시그마에서 k는 0이 아닌 1부터시작한다. 위의 경우는 단 한 명의 사용자에 대한 쎄타값을 구하는 경우이고 아래는 전체 사용자들에 대한 쎄타값을 구하는 경우이다.

image

일반 gradient descent와 다르게 1/m이 사라졌음에 유의한다. 있어도 상관없지만 계산을 줄이기위한 작업인것 같다.


https://www.coursera.org/learn/machine-learning/lecture/2WoBV/collaborative-filtering

Collaborative Filtering

image

이 강의는 전강의에 이어서 영화 추천 알고리즘에 관한 것이다.

처음 프로젝트를 시작하는 경우 위 같이 theta ( 사용자의 각 영화 카테고리별 쎄타값 )도 알수 없고 x features ( 각 영화 카테고리별 feature값 )도 알수 없다, theta 값을 구하기 위해서는 x features값이 필요하고 x features 값을 구하기 위해서는 theta값이 필요하기 때문이다. 이때는 아래 그림과 같이 먼저 theta값이나 features값중 하나를 임의로 정하고 두 과정을 반복하면서 수정해 나가는 방법을 택한다. 이 방법을 collaborative filtering이라고 한다.

image


https://www.coursera.org/learn/machine-learning/lecture/f26nH/collaborative-filtering-algorithm

Collaborative Filtering Algorithm

image

예상 feature 값( 각 영화종류 별에 대한 값 )에 대한 cost 를 줄이기 위한 공식은 상단의 공식이다.

예상 theta값( 사용자들의 영화종류에 대한 성향 값 )에 대한 cost 를 줄이기 위한 공식은 중간의 공식이다.

위 두개의 알고리즘을 이용하는 경우 theta -> feature -> theta -> feature ….  이와 같은 방법으로 왔다 갔다 해야 하나 하단의 공식의 경우 그런 작업 필요없이 한번에 처리된다. 

위 두개 공식의 보라색 박스의 내용을 살펴보면 실상 같은 내용이다. 상단의 경우 사용자가 본 영화중에서의 cost를 구한다는 내용이고 중간의 경우는 영화중에서 사용자가 본 영화의 cost를 구한다는 이야기 이므로 결국 같은 내용이므로 하나로 통일되어 들어간다. 그리고 각각의 regularization 부분은 살아서 들어간다.

image


https://www.coursera.org/learn/machine-learning/lecture/CEXN0/vectorization-low-rank-matrix-factorization

Collaborative Filtering Vectorization: Low Rank Matrix Factorization

이 전 강의와 마찬가지로 영화 추천 알고리즘의 예시를 이야기하고 있다.

image

위 그림은 사용자들의 영화들에 대한 평점 matrix이다.

image
image

한 영화와 다른 또 하나의 영화간의 거리를 측정하고 그값이 작을 수록 비슷한 영화라고 볼수 있는 알고리즘을 만든다.


https://www.coursera.org/learn/machine-learning/lecture/Adk8G/implementational-detail-mean-normalization

Collaborative Filtering Implementational Detail: Mean Normalization

image

위그림은 eve라는 사용자를 가정한다. eve는 어떤 영화에 대해서도 평점을 남기지 않았다. 이런경우 그림 하단의 공식에서 앞부분 시그마에 해당하는 데이터가 없으므로 아무 영향을 미치지 못한다. 그렇다면 전체 cost를 줄이기 위해서는 뒷부분 시그마의 값이 최소가 되는 방향으로 알고리즘은 움직이게 된다. 이런경우 결국 theta 1, 2는 0이 되는 방향으로 가게 된다. 그렇다면 theta vector는 (0, 0) 이 된다. 

위의 그림은 mean normalization을 추가한 Collaborative Filtering 알고리즘이다. 이를 통해 평점을 하나도 남기지 않은 사용자에게도 기본적으로 평균 theta값을 부여할수 있게 된다. 과정을 살펴보면 우선 각 영화에 대한 평점의 평균을 구한다. 이를 mu 라고 한다. 그리고 각 평점에 mu를 빼서 위에서 보는 Y matrix를 만든다. 이를 살펴보면 각 영화의 평점의 합은 0이 되는 것을 알수 있다. 새로운 평점 Y matrix를 이용 learning과정을 수행한다. 이를 통해 구해진 theta , feature값을 통해 예비예상값을 구하고 이에 mu를 더하면 최종 예상값이 된다.

https://www.coursera.org/learn/machine-learning/lecture/V9MNG/problem-motivation

Anomaly Detection Problem Motivation

image

anomaly detection 은 정상인지 아닌지 확인해주는 기능을 수행한다. 위의 경우 새로운 항공기 엔진이 정상인지 아닌지 확인해주는 작업을 예로 보여준다.

image
image


https://www.coursera.org/learn/machine-learning/lecture/ZYAyC/gaussian-distribution

Anomaly Detection Gaussian Distribution

image

gaussian distribution은 normal distribution이라고 불리기도 한다. 그래서 x tilda n(mu, sigma squares) 에서 n을 사용했다. tilda의 의미는 distributed as 의 의미이다. 즉 여기서는 normal distribution을 이용해 distributed되었다는 의미이다.

mu 는 중앙을 나타낸다. 시그마를 통해 그래프의 높낮이, 폭이 조절된다. 그래프 높이의 총합은 항상 1이 된다.

image
image

위그림은 중앙점 mu를 구하는 공식, 시그마를 구하는 공식이다. 


https://www.coursera.org/learn/machine-learning/lecture/C8IJp/algorithm

Anomaly Detection Algorithm

image

p(x)는 최종 계산값이며 최종 probability이다. 이는 각각의 feature의 probability의 곱으로 결정되어 진다. pi는 각 요소들의 곱을 나타내는 기호이다. 

image

mu j를 간단하게 vector로 묶어서 생각할수 있다. 이때 features 들도 묶어서 vector 들끼리의 연산으로 생각할수도 있다.( vectorization ) 

image


https://www.coursera.org/learn/machine-learning/lecture/Mwrni/developing-and-evaluating-an-anomaly-detection-system

Developing and Evaluating an Anomaly Detection System

image

위의 그림은 anomaly detection 알고리즘을 이용한 프로젝트 과정을 설명한다.

image

가지고 있는 데이터를 training, cross validation, test set으로 구분하는 비율에 관한 내용이다.

image

anomaly 를 구분하는 정확도만으로 알고리즘의 성능을 평가 할수 없다. logistic regression과 마찬가지로 skewed class의 경우를 생각해야 한다. 위의 예시의 경우 대부분의 엔진은 문제가 없고 아주 극소수의 엔진만이 문제를 가지므로 모든 경우에 anomaly로 판단하는 알고리즘이라도 좋은 적중률을 가지게 된다.


https://www.coursera.org/learn/machine-learning/lecture/Rkc5x/anomaly-detection-vs-supervised-learning

Anomaly Detection vs. Supervised Learning

image

anomaly detection과 logistic regression은 비슷하다. 어떤 경우에 어떤 알고리즘을 써야 하는지 설명하고 있다. 위 그림 anomaly detection 설명에서 말하는 positive ( y=1) 이란 anomaly 인경우를 말한다. 많은 수의 negative 데이터를 가지고 있는 경우 즉 normal인 경우의 데이터가 많고 anomaly의 경우의 데이터가 별로 없는 경우. 이제 까지 젼혀 보지 못한 anomaly를 관측해내야 하는 경우 anomaly detection을 이용한다. 

일반상태 자료가 많아서 일반상태를 상정하고 여기에서 벗어나는 경우를 측정하는 경우에 anomaly detection을 사용한다. 

image


https://www.coursera.org/learn/machine-learning/lecture/LSpXm/choosing-what-features-to-use

Anomaly Detection Choosing What Features to Use

image

일반 gaussian 의 모양( bell모양 )이 아닌 경우 x의 변형을 통해 근접하게 만들어 준다. 


https://www.coursera.org/learn/machine-learning/lecture/Cf8DF/multivariate-gaussian-distribution

Anomaly Detection Multivariate Gaussian DistributionLoaded

image

위그림의 왼쪽 그래프처럼 normal인 데이터들의 형성이 정확히 동심원형태가 아닌경우 mu, sigma를 조정할필요가 있다. 

image

위그림에서 p(x1)*p(x2)*p(x3) …… p(xn) 과 같이 계산하던것을 p(x) 로 한번에 계산 하는 것에 유의한다. 

image
image
image
image
image
image


https://www.coursera.org/learn/machine-learning/lecture/DnNr9/anomaly-detection-using-the-multivariate-gaussian-distribution

Anomaly Detection using the Multivariate Gaussian Distribution

image

multivariate gaussian distribution을 사용할때 의 공식과 mu와 sigma를 구하는 방법을 설명하고 있다.

image
image

위 그림은 original gaussian model과 multivariate gaussian model을 비교하고 있다.

상단부분처럼 기울어지지 않은 벨모양인 경우는 multivariate model로도 구현 가능하다. 이때 시그마 matrix는 그림 하단 처럼 대각선에는 각각의 시그마값을 요소로 가지며 나머지는 0이 되게 된다. 

multivariate gaussian model은 기울어진 벨모양도 만들수 있다.  

image

언제 original gaussian model과 multivariate gaussian model 를 사용해야 하는지 각각 어떤 특성을 가지는지 보여주고 있다. original gaussian model은 두 feature의 연관성을 스스로 알아내지 못하므로 손수 찾아서 지정해 주어야 한다. original gaussian의 경우 데이터의 갯수가 features의 수보다 적어도 사용가능하다. multivariate gaussian model은 두 features간의 관계를 스스로 찾아낼수 있다. m ( 데이터수 )보다 n ( features수 )가 항상 커야하며 m >= 10n 인경우 multivariate gaussian model 사용을 추천한다.

그림 우하단은 중독된 feature나 linearly dependent 관계를 가진 features를 줄여 사용하기를 추천한다는 내용이다.


https://www.coursera.org/learn/machine-learning/lecture/Rhg6r/problem-formulation

predicting movie rating Problem Formulation

이 강의는 영화 평점을 예상하고 영화를 추천하는 경우를 예시로 들고 있다.

image

이 예시에서 영화를 두가지 종류로 바라본다. 로맨스, 액션으로 나누어본다.

영화는 5가지 이고 사용자는 4명이다. 써있는 숫자는 평점이고 물음표는 사용자가 평점을 내리지 않는 경우이며 이 점수를 예상하는 것도 이 프로젝트의 목적중의 하나이다. 

image

쎄타는 각 사용자들의 각 영화종류에대한 쎄타값이다. 즉 위그림의 하단의 경우 0 , 5, 0 이 주어졌는데 이는 사용자 alice 의 x0 feature에대한 쎄타값 0 , x1에대한( romance features 값 도표) 사용자 alice의 x1 쎄타값, x2에 대한 ( action 값) 사용자 alice의 쎄타값이된다. 사용자가 평점하지 않은 영화에 대한 평점 구하기위해서는 사용자의 각 영화종류에 대한 쎄타값을 구하는 방법은 아래는 참조한다.

image

각 영화종류에 대한 쎄타값을 구하는 방법이다.

image

k0는 biased value이므로 regularization할 필요가 없다 그러므로 뒷부분 시그마에서 k는 0이 아닌 1부터시작한다. 위의 경우는 단 한 명의 사용자에 대한 쎄타값을 구하는 경우이고 아래는 전체 사용자들에 대한 쎄타값을 구하는 경우이다.

image

일반 gradient descent와 다르게 1/m이 사라졌음에 유의한다. 있어도 상관없지만 계산을 줄이기위한 작업인것 같다.


https://www.coursera.org/learn/machine-learning/lecture/2WoBV/collaborative-filtering

Collaborative Filtering

image

이 강의는 전강의에 이어서 영화 추천 알고리즘에 관한 것이다.

처음 프로젝트를 시작하는 경우 위 같이 theta ( 사용자의 각 영화 카테고리별 쎄타값 )도 알수 없고 x features ( 각 영화 카테고리별 feature값 )도 알수 없다, theta 값을 구하기 위해서는 x features값이 필요하고 x features 값을 구하기 위해서는 theta값이 필요하기 때문이다. 이때는 아래 그림과 같이 먼저 theta값이나 features값중 하나를 임의로 정하고 두 과정을 반복하면서 수정해 나가는 방법을 택한다. 이 방법을 collaborative filtering이라고 한다.

image


https://www.coursera.org/learn/machine-learning/lecture/f26nH/collaborative-filtering-algorithm

Collaborative Filtering Algorithm

image

예상 feature 값( 각 영화종류 별에 대한 값 )에 대한 cost 를 줄이기 위한 공식은 상단의 공식이다.

예상 theta값( 사용자들의 영화종류에 대한 성향 값 )에 대한 cost 를 줄이기 위한 공식은 중간의 공식이다.

위 두개의 알고리즘을 이용하는 경우 theta -> feature -> theta -> feature ….  이와 같은 방법으로 왔다 갔다 해야 하나 하단의 공식의 경우 그런 작업 필요없이 한번에 처리된다. 

위 두개 공식의 보라색 박스의 내용을 살펴보면 실상 같은 내용이다. 상단의 경우 사용자가 본 영화중에서의 cost를 구한다는 내용이고 중간의 경우는 영화중에서 사용자가 본 영화의 cost를 구한다는 이야기 이므로 결국 같은 내용이므로 하나로 통일되어 들어간다. 그리고 각각의 regularization 부분은 살아서 들어간다.

image


https://www.coursera.org/learn/machine-learning/lecture/CEXN0/vectorization-low-rank-matrix-factorization

Collaborative Filtering Vectorization: Low Rank Matrix Factorization

이 전 강의와 마찬가지로 영화 추천 알고리즘의 예시를 이야기하고 있다.

image

위 그림은 사용자들의 영화들에 대한 평점 matrix이다.

image
image

한 영화와 다른 또 하나의 영화간의 거리를 측정하고 그값이 작을 수록 비슷한 영화라고 볼수 있는 알고리즘을 만든다.


https://www.coursera.org/learn/machine-learning/lecture/Adk8G/implementational-detail-mean-normalization

Collaborative Filtering Implementational Detail: Mean Normalization

image

위그림은 eve라는 사용자를 가정한다. eve는 어떤 영화에 대해서도 평점을 남기지 않았다. 이런경우 그림 하단의 공식에서 앞부분 시그마에 해당하는 데이터가 없으므로 아무 영향을 미치지 못한다. 그렇다면 전체 cost를 줄이기 위해서는 뒷부분 시그마의 값이 최소가 되는 방향으로 알고리즘은 움직이게 된다. 이런경우 결국 theta 1, 2는 0이 되는 방향으로 가게 된다. 그렇다면 theta vector는 (0, 0) 이 된다. 

위의 그림은 mean normalization을 추가한 Collaborative Filtering 알고리즘이다. 이를 통해 평점을 하나도 남기지 않은 사용자에게도 기본적으로 평균 theta값을 부여할수 있게 된다. 과정을 살펴보면 우선 각 영화에 대한 평점의 평균을 구한다. 이를 mu 라고 한다. 그리고 각 평점에 mu를 빼서 위에서 보는 Y matrix를 만든다. 이를 살펴보면 각 영화의 평점의 합은 0이 되는 것을 알수 있다. 새로운 평점 Y matrix를 이용 learning과정을 수행한다. 이를 통해 구해진 theta , feature값을 통해 예비예상값을 구하고 이에 mu를 더하면 최종 예상값이 된다.