Unsupervised Learning :
데이터 포인트가 무엇인지, 무엇을 해야할지, right한 정답 Label 등이
명시되지 않는 데이터셋을 학습하는 것이다.
Clustering Algorithm :
data 간의 관계를 가지고 Clustering하여 어떠한 구조인지 예측하는 Algorithm이다.
Unsupervised Learning의 Algorithm 중 하나이다.
(아이디어)
개인들의 유전 지도가 있다.
이 데이터에 무엇이 있는지, 누가 어떤 유형에 있는지 모른다.
하지만 데이터에서 구조를 찾을 수 있다.
특정 유전자를 갖고 있는 정도에 개인을 다른 그룹으로 그룹화할 수 있다.
파티룸에 많은 사람들이 앉아서 동시에 이야기한다면, 목소리가 중첩되어 듣기가 힘들 것이다.
Example : Speaker가 2명, Microphone 2개 있다고 가정.
Microphone들은 각각의 Speaker로부터 다른 거리에 있기 때문에
Microphone1은 Speaker1의 목소리가 더 크게 들릴 것이고,
Microphone2은 Speaker2의 목소리가 더 크게 들릴 것이다.
Microphone1, 2에서 Speaker1, 2가 동시에 이야기하는 것을 녹음한다.
Cocktail Party Algorithm
이라고 불리는 Non-Clustering Algorithm
에게 주면, 두 개의 음성을 분리해 낼 수 있다.
SVD와 같은 선형대수와 방대한 양의 수학적 연산이 필요한 경우에
C++나 Java로 구현할 수 있지만, 너무 오래 걸린다.
따라서 Octave나 Matlab Programming Language를 사용하여,
학습 알고리즘의 Prototype을 보다 빠르게
만들 수 있다.
실제로 실리콘밸리의 많은 회사에서 Octave를 학습 도구와 Prototyping Tool로 사용한다.
어디까지 도달한 후에는 C++ 또는 Java 등으로 Migration
한다.
아래는 Octave type의 Programming Language 사용 예시이다.
이처럼 SVD를 한 줄로 빠르고 간결하게 구현
할 수 있다.
Which would you address using an Unsupervised Learning Algorithm?
Given email labeled as spam/not spam, learn a spam filter
Given a set of news articles found on teh web, group them into set of articles about the same story
Give a DB of customer data, automatically discover market segments and group customers into different market segments
Given a dataset of patients diagnosed as either having diabetes or not, learn to classify new patients as having diabetes or not
Answer : 2, 3