본문 바로가기

전체 글

(22)
[코세라 강의 정리] 앤드류 응의 머신러닝 - Large Scale Machine Learning 1. Gradient Descent with Large Datasets 최근 머신러닝 알고리즘이 더 높은 성능을 보이는 이유 중 하나는 훈련할 수 있는 데이터의 양이 엄청나게 많아졌기 때문이다. 이런 대규모 데이터가 있을 때 처리하는 방법에 대해 알아볼 것이다. [Learning With Large Datasets] 이전에도 잠깐 봤었지만, 머신러닝에서 알고리즘이 중요한 게 아니라 데이터의 양이 성능에 중요한 영향을 끼친다. 하지만 이렇게 데이터가 많을 때는 계산적인 문제(Computational problems)가 발생하게 된다. 예를 들어 100,000,000 개의 샘플을 가지고 있다고 생각해보자. 그러면 Gradient Descent를 한 단계 진행하기 위해서 100,000,000번의 덧셈을 해야 ..
[코세라 강의 정리] 앤드류 응의 머신러닝 - Recommender Systems 1. Predicting Movie Ratings [Problem formulation] 영화 별점을 예측한다고 생각해보자. 유저들은 평점을 0~5로 영화를 평가한다. \(n_u\) : 유저 수 \(n_m\) : 영화 수 \(r(i, \, j)\) : 유저 j가 영화 i에 평점을 줬다면 1 \(y^{(i, \, j)}\) : 유저 j가 영화 i에 준 평점 (\(r(i, \, j)\) = 1 일 때만 정의됨) 위의 표에서 유저는 4명이고 영화는 5편이 있다(\(n_u\) = 4, \(n_m\) = 5). 총 5편의 영화 중 3편은 로맨틱 영화(초록색 박스)고 2편은 액션 영화(빨간색 박스)이다. 여기서 유저 1과 2는 로맨틱 영화에 높은 평점을, 액션 영화에 낮은 평점을 줬다. 유저 3과 4는 반대로, 로..
[코세라 강의 정리] 앤드류 응의 머신러닝 - Anomaly Detection 1. Density Estimation [Problem Motivation] 항공기 엔진의 품질 보증 테스트를 한다고 생각해보자. 위와 같이 두 개의 feature만으로 측정한다고 가정하면, 새로운 엔진 \(x_{test}\)가 기존 샘플들과 비슷한 위치에 있으면 정상으로 판단할 수 있다. 반대로, 기존 샘플들과 떨어진 위치에 있으면 이상이 있다고 볼 수 있을 것이다. Density estimation은 아래와 같이 정상일 확률 \(P(x)\)를 구해서 이상 유무를 판단하는 것이다. 새로운 샘플이 기존 데이터가 많은 곳에 위치한다면 확률이 높을 것이고, 기존 데이터가 별로 없는 곳에 위치한다면 확률이 낮을 것이다. 즉, 위와 같이 원의 중앙에 있으면 정상일 확률이 높고 바깥으로 갈수록 확률이 낮아진다. ..
[코세라 강의 정리] 앤드류 응의 머신러닝 - Dimensionality Reduction (PCA) 1. Motivations [Data Compression] 데이터에 feature가 엄청 많이 있는 경우 차원의 저주에 걸릴 수 있다. 이런 경우에 feature를 줄임으로써 컴퓨터의 메모리를 절약할 수 있고 알고리즘 속도를 높일 수 있다. 예를 들어 다음과 같은 feature 2개가 있다고 생각해보자. \(x_1\) 은 (cm) 단위고 \(x_2\) 는 (inches) 단위로, 둘 다 길이를 나타내기 때문에 연관성이 매우 높은 것을 볼 수 있다. 이런 경우에는 2차원을 위와 같이 1차원으로 줄일 수 있다. 이번에는 3D -> 2D의 예를 살펴보자. 왼쪽 그래프와 같이 3차원(\(x_1,x_2,x_3\))으로 펼쳐진 데이터를 2차원(\(z_1, z_2\)) 으로 축소한 결과 중간 그래프처럼 나타난다. ..
[코세라 강의 정리] 앤드류 응의 머신러닝 - Unsupervised Learning (Clustering) 이번 시간에는 Label이 붙어있지 않은 데이터를 다루는 Unsupervised learning에 대해 알아볼 것이다. 위의 오른쪽 그래프처럼 O, X 같은 label이 없는 데이터의 경우 비지도 학습으로 비슷한 것 끼리 묶는 Clustering(군집화)을 진행할 수 있다. (Clustering 외에 다른 비지도 학습도 있다.) 강의 초반에 잠깐 언급했는데 Clustering의 경우 고객 세분화나 소셜 네트워크 분석 등에 활용이 된다. 1. K-Means Algorithm K-Means Algorithm은 가장 대표적인 클러스터링 방법이다. 위와 같이 데이터(초록색 점)가 있을 때, 우선 랜덤으로 Cluster Centroid라는 점을 생성한다. 그다음 데이터들을 아래 왼쪽 그래프와 같이 둘 중 가까운 ..
[코세라 강의 정리] 앤드류 응의 머신러닝 - SVM : Kernels 이제 non-linear classification 문제에서 SVM을 적용해보자. 1. Kernels I 위와 같이 데이터가 있을 때, 우리는 오른쪽 식처럼 예측할 수 있을 것이고 Decision boundary는 파란색 선으로 그려질 것이다. 따라서 가설 함수는 다음과 같이 세울 수 있다. \(h_{\theta}(x)=\left\{\begin{matrix} 1 & if & \theta_0 + \theta_1x_1+\cdots \geq 0\\ 0 & else \end{matrix}\right.\) 여기서 \(x\)들을 그냥 사용하지 않고 \(f\)로 바꿔주면 다음과 같이 쓸 수 있다. \(f\)는 기존의 \(x\)들을 변경해서 만든 새로운 feature들이다. 이 \(f\)들을 어떻게 정의할 수 있을까?..
[코세라 강의 정리] 앤드류 응의 머신러닝 - Support Vector Machines Support Vector Machine(SVM)은 매우 강력하고 널리 사용되는 알고리즘인데, Logistic regression과 NN와 비교했을 때 복잡한 비선형 함수에 대해서 더욱 명확하고 강력한 방법이 될 수 있다. 1. Optimization Objective 이전에 배웠던 Logistic Regression을 다시 살펴보자. 우리는 \(y=1\) 일 때 \(\theta^{T}x>>0\)을 \(y=0\) 일 때 \(\theta^{T}x
[코세라 강의 정리] 앤드류 응의 머신러닝 - Machine Learning System Design 1. Building a spam classifier 스팸 메일인지 아닌지 구분하는 모델을 만든다고 생각해보자. \(x\) = features of email \(y\) = spam(1) or not spam(0) 다음과 같이 spam과 spam이 아닌 메일을 구분하는 100개의 단어들로 features \(x\)를 만들 수 있다. Spam 메일에 등장하는 단어들(buy, deal, now 등)로 x를 만든 모습 실제로는 직접 단어를 선택하기보단 training set에서 가장 자주 등장하는 n(10,000~50,000) 개의 단어를 사용한다. 모델의 정확도를 높이기 위해서는 다음과 같은 방법을 취할 수 있다. 많은 양의 데이터 수집 email routing 정보에 기반한 정교한 feature 개발 em..