티스토리 뷰

[Introduction]

1. What is the machine learning

 - 머신러닝은 인공지능이나 몇 가지 분야의 베이스가 됨

 - 웹 클릭 데이터, 의학 레코드, 생물 정보 등 데이터가 쏟아지는 중

 - 직접 손으로 프로그램을 짤 수 없는 영역의 프로그래밍 방법(손글씨 인식을 통한 자동 우편 분류, 추천 알고리즘 등)

 - (미국) 채용시장에서, 기계학습 전공자의 수요가 급격하게 증가


2. Supervised Learning

 - 정답인 데이터셋을 주고, 이것이 정답이야! 알려줌, 기계는 학습 후 더 많은 정답을 찾아냄

 - regression problem 으로 조금 더 정확히 말할 수 있는데, regression이란 연속적인 속성 값을 예측하는 것을 의미함

 - classification은 이산적인(descrete) 결과값을 예측하는 것이다. ex) 0, 1 / 양성, 음성 등

 - 정답을 판단할 수 있는 근거가 한 가지 일 수도 있지만, 현실에는 훨씬 많은 속성들이 존재함

 - 서포트 벡터 머신(SVM)에 알고리즘을 적용함으로써 무한한 feature를 가지는 판단 문제를 다룰 수 있음

 - 회귀를 통해서 연속적인 값을 결과로 얻을 수 있고, classification을 통해서 이산적인 값을 결과로 얻을 수 있음


 - 예를 들어, 천개 정도의 identical items가 있을 때, 3개월 후 얼마나 팔릴 것인지 예측하는 문제는 그 수가 실수 범위로 연속성이 있으므로 regression problem으로 해석하고, 각 소비자가 해킹되었는지 안전한지 판단하는 문제의 경우, 0/1로 판단해낼 수 있으므로 classification problem으로 다룰 수 있을 것으로 예상됨


3. Unsupervised Learning

 - 지도 학습에서는 label이 있거나 하여 정답군이 무엇인지 표시하지만, 비지도 학습에서는 그런 표식이 전혀 없음

 - 비슷한 경향을 보이는 군끼리를 묶는 클러스터링 알고리즘이 비지도 학습에서 사용되기도 함(비슷한 뉴스를 묶어서 보여주는 news.google.com) 

 - 즉 알고리즘을 돌리는데 그 알고리즘이 지향하는 특정한 정답 데이터를 가지고 있지 않은 학습을 비지도 학습이라 함

 - datacenter/SSN/Market segmentation/Astronomical data analysis 등의 예시


 - Cocktail party problem : 두 사람 혹은 소리를 내는 물체에 대해 두 스피커에 대해서 녹음을 한 결과를 clustering을 통하여 거의 분명하게 분리해낼 수 있음

 음파를 분석하는 알고리즘을 생각해보면 난해하고 어려울 것으로 생각되지만 한 줄의 코드로 구현이 가능함 (in Octave) 

 - c++, java, python으로 할 경우 상당히 복잡한데, Octave의 경우 프로토타입 등 상당히 빠른 구현이 가능하므로 생산성 등을 위해 이 언어를 사용하길 간곡히 권함


Quiz

틀린 문제 :

각각의 task T와 performance measure P로 얻어지는 experience E로부터 학습하는 프로그램이 있고 측정값들로 E를 improve 한다고 하자

우리가 날씨를 학습하는 learning algorithm을 feed하면서 날씨를 예측할 수 있도록 하는 프로그램을 학습하는데 그렇다면 T는 무엇인가?

내 생각 : 

P는 측정과정이고, E는 측정된 결과값이며 이것을 데이터로 사용하는 것으로 보아, 학습 데이터이다.

그렇다면, T는 학습 시키는 트레이닝 알고리즘이 아닐까?

이해 :

performance measure는 성능을 측정하는 것이다. 즉, 얼마나 잘 측정하는가를 확률로 젠 값으로 생각되며, T로 오해했던 learning algorithm은 그냥 문제에서 제시됨. T는 prediction task라고 볼 수 있다. E는 각 결과 값 즉, sunny, cloudy 등의 날씨 데이터로 추정된다.



[Linear Regression with One Variable - Model and Cost function]

1. Model Representation

 - m = training examples의 수(47열의 데이터가 있으면, m=47) , x's = input variable / features, y's = output variable / targets

 - (x^(i), y^(i))에서 i는 지수를 의미하는 것이 아니라, i번째 데이터 셋을 의미함

 - Training Set을 Learning Algorithm에 input하면, 나오는 모델을 머신러닝에서는 전형적으로 h(hypothesis, 추정)이라고 함. h에 어떤 판단하고자하는 input을 넣으면, 얻고자하는 판단 결과를 내는 함수의 역할

 - h를 어떻게 표현할 것인지 고려해야할 필요가 있음 

 - (univariate) linear regression : h(x) = θ_0 + θ_1x, 하나의 변수를 가진 선형 회귀


2. Cost function

 - θ_0, θ_1 두 파라미터를 어떻게 선택하느냐에 따라 다른 h 모델을 갖게됨

 - h 모델의 output이 실제로는 완전하게 선형이 아니라 중간 중간 튀는 값들이 있게되는데 경향성이 그렇게 나타난다는 것을 표현함

 - minimization problem  => square cost function  : regression 문제들에 대해서 가장 commonly 사용되며 성능이 괜찮은 모델로, 모든 데이터셋에 대해서 예측된 값과 실제 값의 차를 제곱한 다음 더한 것을 1/2m 정도로 나누어서 심플하게 표현함. 이 때, 예측된 값이라는 것은 h(x) = θ_0 + θ_1x 를 의미한다. 아래 그림에서 J가 cost function이 됨

 # 2인 이유는 미분 결과를 예쁘게 표현하기 위해서


 - cost function이 minimize되는 지점이 곧 linear regression이 매우 정확하게 예측되는 지점이라고 판단할 수 있음

 - 수업에서는 h(x) = θ_1x, (1, 1), (2,2), (3, 3)으로 θ_1이 0, 0.5, 1일 때의 상황으로 J(θ_1)를 최소화하는 지점을 찾는 것으로 직관적으로 설명함


 - cost function J가 1개의 변수일 때, 2차 함수 꼴을 보였는데, 2개의 변수일 때는 3D-plot을 보임, 수업에서는 contour plot으로 보일 것임

 - 3D-plot을 2차원의 타원들(ellipses)로 나타내서 해당 좌표가 표현하는 cost function을 실제 h(x)에서 어떻게 표현하고 그 minimum이 centric point에서 최소가 됨을 보임

댓글