Coursera 에서 제공하는 Machine learning by Andrew ng 의 강의내용 정리입니다.


Week 1

- What is Machine Learning?

기계 학습의 두 가지 정의가 제공됩니다. Arthur Samuel은 이것을 "컴퓨터에 명시 적으로 프로그래밍하지 않고 배우는 능력을주는 연구 분야"라고 묘사했습니다. 이것은 오래되고 비공식적 인 정의입니다.

Tom Mitchell은보다 현대적인 정의를 제공합니다. "컴퓨터 프로그램은 P로 측정 한 T에서의 작업 성능이 경험 E로 향상되면 작업 T와 성능 측정 P와 관련하여 경험 E를 통해 배우는 것으로 알려져 있습니다. "

예 : 체커 연주.

E = 체커 게임을 많이 한 경험

T = 체커를하는 작업.

P = 프로그램이 다음 게임에서 이기게 될 확률.

일반적으로 모든 기계 학습 문제는 크게 두 가지 분류 중 하나로 분류 될 수 있습니다.

Supervised learning(지도 학습) 및 Unsupervised learning(비지도 학습).


- Supervised Learning

감독 학습에서 우리는 데이터 집합을 제공 받고 입력과 출력 사이에 관계가 있다는 아이디어를 가지고 올바른 출력이 어떻게 보이는지 알고 있습니다.

감독 학습 문제는 "회귀"및 "분류"문제로 분류됩니다. 회귀 문제에서 우리는 연속 출력 내에서 결과를 예측하려고합니다. 즉, 입력 변수를 일부 연속 함수에 매핑하려고합니다. 분류 문제에서 우리는 이산 출력에서 ​​결과를 예측하려고합니다. 즉 입력 변수를 이산 카테고리로 매핑하려고합니다.

예 1 : 부동산 시장 규모에 관한 자료가 있으면 가격 예측을 시도하십시오. 크기의 함수로서의 가격은 지속적인 산출물이므로 회귀 문제가됩니다.

우리는 주택이 "물가보다 더 많이 또는 적게 팔느냐"에 대한 결과를 대신 제시함으로써이 사례를 분류 문제로 바꿀 수 있습니다. 여기서 우리는 가격에 따라 주택을 두 개의 개별 카테고리로 분류합니다.

예 2 :

(a) 회귀 - 사람의 그림이 주어지면 주어진 그림을 기준으로 나이를 예측해야한다.

(b) 분류 - 종양이있는 환자에게 종양이 악성인지 양성인지를 예측해야합니다.

- Unsupervised learning

지도되지 않은 학습은 우리의 결과가 어떻게 보일지 거의 또는 전혀 모르는 상태로 문제에 접근 할 수있게 해줍니다. 우리는 변수의 효과를 반드시 알 필요가없는 데이터로부터 구조를 도출 할 수 있습니다.

우리는 데이터의 변수들 사이의 관계에 기반하여 데이터를 클러스터링함으로써이 구조를 도출 할 수 있습니다.

지도되지 않은 학습의 경우 예측 결과를 기반으로 한 피드백이 없습니다.

예:

클러스터링 (clustering) : 1,000,000 개의 서로 다른 유전자를 모으고 이들 유전자를 수명, 위치, 역할 등과 같은 다양한 변수에 의해 어떻게 유사하거나 관련이있는 그룹으로 자동 분류하는 방법을 찾는다.

비 클러스터링 : "Cocktail Party Algorithm"은 혼돈스러운 환경에서 구조를 찾을 수있게합니다. (즉, 칵테일 파티에서 소리의 메쉬로부터 개별 음성 및 음악을 식별).


- Model Representation

미래의 사용을위한 표기법을 만들기 위해 x (i)를 사용하여 입력 특성이라고도하는 "입력"변수 (이 예제에서는 거실)를 나타내고 "출력"또는 목표 변수를 나타내는 y (i)를 나타냅니다. 우리는 (가격)을 예측하려고 노력하고 있습니다. 쌍 (x (i), y (i))을 학습 예제라고 부르며 학습을 위해 사용할 데이터 집합, 즉 m 개의 학습 예제 목록 (x (i), y (i)); = 1, ..., m-은 훈련 세트 라 불린다. 표기법에서 위 첨자 "(i)"는 단순히 훈련 세트에 대한 지수이며 지수 계산과는 아무런 관련이 없다는 점에 유의하십시오. 또한 입력 값의 공간을 나타내는 X와 출력 값의 공간을 나타내는 Y를 사용합니다. 이 예에서 X = Y =.

감독 학습 문제를보다 공식적으로 설명하기 위해, 우리의 목표는 주어진 학습 집합에서 h : X → Y 함수를 학습하여 h (x)가 y의 해당 값에 대한 "좋은"예측 자라는 것입니다. 역사적인 이유로,이 함수 h는 가설이라고 불린다. 따라서 회화 적으로 볼 때이 과정은 다음과 같습니다.

 


우리가 예측하려고하는 목표 변수가 주택 예에서와 같이 연속적 일 때, 우리는 학습 문제를 회귀 문제라고 부릅니다. y가 소수의 이산 값만을 취할 수있는 경우 (예 : 거주 지역이 주어지면 주거가 주택인지 아파트인지 예측하기를 원할 경우),이를 분류 문제라고 부릅니다.


- Cost function

비용 함수를 사용하여 가설 함수의 정확성을 측정 할 수 있습니다. 이것은 x와 실제 출력 y의 입력 값을 가진 가설의 모든 결과의 평균 차이 (평균보다 더 좋은 버전)를 취합니다.

 

그것을 분해하기 위해서는 12 x ¯ 는 hθ (xi) -yi의 제곱 평균 또는 예측값과 실제 값의 차이입니다.

이 함수는 "제곱 오류 함수"또는 "평균 제곱 오류"라고합니다. 구형 함수의 미분 항이 12 항을 취소하므로, 평균은 구배 강하의 계산의 편의를 위해 반으로 나뉩니다 (12). 다음 이미지는 비용 함수가 수행하는 것을 요약합니다.

 

 


- Cost function Intuition 1

시각적으로 생각하면 우리의 훈련 데이터 세트는 x-y 평면에 흩어져 있습니다. 우리는이 흩어져있는 데이터 포인트를 통과하는 직선 (hθ (x)로 정의)을 만들려고합니다.

우리의 목표는 최상의 라인을 확보하는 것입니다. 가능한 최상의 선은 라인에서 산란 된 점의 평균 제곱 된 수직 거리가 가장 작을 것입니다. 이상적으로는 선이 교육 데이터 세트의 모든 점을 통과해야합니다. 이 경우 J (θ0, θ1)의 값은 0이됩니다. 다음 예제는 비용 함수가 0 인 이상적인 상황을 보여줍니다.

 

θ1 = 1 일 때, 모델의 모든 단일 데이터 포인트를 통과하는 1의 기울기를 얻습니다. 반대로, θ1 = 0.5 일 때 우리의 적합도에서 데이터 포인트까지의 수직 거리를 알 수 있습니다.

이것은 비용 함수를 0.58로 증가시킵니다. 다른 여러 점을 플롯하면 다음 그래프가 나타납니다.


- Cost function Intuition 2

등고선 플롯은 많은 등고선을 포함하는 그래프입니다. 두 변수 함수의 등고선은 같은 선의 모든 점에서 상수 값을가집니다. 그러한 그래프의 예가 바로 아래에 있습니다.

 

 

어떤 색을 취하고 '원'을 따라 가면 비용 함수와 동일한 가치를 기대할 수 있습니다. 예를 들어 위의 초록색 선에있는 세 개의 녹색 점은 J (θ0, θ1)에 대해 동일한 값을 가지므로 결과는 같은 선을 따라 나타납니다. 원으로 표시된 x는 θ0 = 800 및 θ1 = -0.15 일 때 왼쪽의 그래프에 대한 비용 함수의 값을 표시합니다. 또 다른 h (x)를 사용하고 등고선 그래프를 그려 보면 다음과 같은 그래프가 표시됩니다.

 

θ0 = 360이고 θ1 = 0 일 때 윤곽 플롯에서 J (θ0, θ1)의 값이 중심에 가까워 지므로 비용 함수 오차가 줄어 듭니다. 이제 우리의 가설 기능에 약간의 양의 기울기가 주어지면 데이터가 더 잘 들어 맞습니다.


- Gradient Descent

등고선 플롯은 많은 등고선을 포함하는 그래프입니다. 두 변수 함수의 등고선은 같은 선의 모든 점에서 상수 값을가집니다. 그러한 그래프의 예가 바로 아래에 있습니다.

 

어떤 색을 취하고 '원'을 따라 가면 비용 함수와 동일한 가치를 기대할 수 있습니다. 예를 들어 위의 초록색 선에있는 세 개의 녹색 점은 J (θ0, θ1)에 대해 동일한 값을 가지므로 결과는 같은 선을 따라 나타납니다. 원으로 표시된 x는 θ0 = 800 및 θ1 = -0.15 일 때 왼쪽의 그래프에 대한 비용 함수의 값을 표시합니다. 또 다른 h (x)를 사용하고 등고선 그래프를 그려 보면 다음과 같은 그래프가 표시됩니다.

 

θ0 = 360이고 θ1 = 0 일 때 윤곽 플롯에서 J (θ0, θ1)의 값이 중심에 가까워 지므로 비용 함수 오차가 줄어 듭니다. 이제 우리의 가설 기능에 약간의 양의 기울기가 주어지면 데이터가 더 잘 들어 맞습니다.

 

위의 그래프는 가능한 한 비용 함수를 최소화하므로 θ1과 θ0의 결과는 각각 약 0.12와 250이되는 경향이 있습니다. 우리의 그래프에서 그 값을 오른쪽으로 그려 보면 내부의 가장 큰 '원'의 중심에 우리의 포인트가 놓여있는 것 같습니다.


- Gradient Descent For Linear Regression

선형 회귀의 경우에 특별히 적용될 때, 새로운 형태의 그래디언트 강하 방정식이 도출 될 수있다. 우리는 실제 비용 함수와 실제 가설 함수를 대체하고 방정식을 다음과 같이 수정할 수 있습니다.

수렴 될 때까지 반복 :

 

여기서 m은 훈련 세트의 크기이고, θ0는 주어진 훈련 세트 (데이터)의 θ1 및 xi, yiare 값과 동시에 변할 수있는 상수이다.

우리는 θj에 대한 두 가지 경우를 θ0과 θ1에 대한 별도의 방정식으로 구분했다. 그리고 θ1에 대해서는 미분으로 인해 xi에 끝에 곱하는 것입니다. 다음은 단일 예제에 대한 ∂∂θjJ (θ)의 도출입니다.

 

이 모든 것의 요점은 우리 가설을 추측하고이 구배 하강 방정식을 반복적으로 적용하면 우리의 가설이 점점 더 정확해질 것이라는 것입니다.

 

따라서 원래 비용 함수 J에 대한 그래디언트 디센트입니다.이 방법은 모든 단계에서 전체 교육 세트의 모든 예를 살펴보고 일괄 그래디언트 디센트라고합니다. 그라디언트 디센트는 일반적으로 로컬 최소 점의 영향을 받기 쉽지만 선형 회귀에 대해 여기에서 제기 한 최적화 문제는 전역 적이며 다른 로컬 최적화가 하나도 없음을 유의하십시오. 따라서 그라디언트 디센트는 (학습 속도 α가 너무 크지 않다고 가정 할 때) 전역 최소값으로 항상 수렴합니다. 실제로 J는 볼록한 2 차 함수입니다. 다음은 2 차 함수를 최소화하기 위해 실행되는 그라디언트 디센트의 예입니다.

위에 표시된 타원은 2 차 함수의 윤곽입니다. 또한 그라데이션 하강에 의해 취해진 궤도가 (48,30)에서 초기화되었다. 그림에서 x는 (직선으로 연결되어있는) 기울기 강하가 최소로 수렴 할 때 통과 한 θ의 연속적인 값입니다.

 

----- Linear Algebra Review

 아래 내용은 선형대수 기초내용 리뷰로 선형대수를 알고 있는 경우 건너뛰어도 좋습니다.


- matrix & Vector

rows X columns

R 2X3 는 2X3 로 이뤄진 행렬을 의미함

A(i,j) 는 A 행렬의 i row 의 j 컬럼의 entry 를 의미한다.

Vector : an nX1 matrix => N demensional vector 라고 부름

R 4 는 4차원 벡터를 의미한다.

Y(i) 는 Y 벡터의 i 차원값의 entry 를 의미한다.

1-indexed vector 는 y1,y2,y3 로 시작 => 프로그래밍에서 많이 사용됨(더 직관적)

0-indexed ventor 는 y0,y1,y3 로 시작 => 머신러닝에서 많이 사용됨

matrix addition

A(i,j) + B(i,j) 같은 entry 끼리 더함

차원이 다른 행렬은 더할수 없다.

scalar multiplication

3 X A(i,j) 모든 entry 에 3을 곱함

combination of operands

일반 사칙연산 순서와 마찬가지로 곱셈, 나눗셈을 먼저하고 덧셈 뺄셈은 나중에 하며 순서대로 한다.

[ 1 3 ] [ 1 ]  = [ 1 X 1 + 3 X 5 ] 

 4  0     5          4 X 1 + 0 X 5

 2  1                 2 X 1 + 1 X 5

A(m,n) X Y(n) = Y(m) 

m x n 행렬과 n 벡터를 곱하면 m벡터를 구할 수 있다.

y = a + bx 일경우 으로 x를 앞에 1을 붙인 행렬로 만들어 계산한다.

[ 1 x1 ] [ a ] = [ y1 ]

  1 x2      b        y2

       1 x3            y3

즉, DataMatrix X parameters 로 행렬곱으로 표현가능하다.

주의할 점

스칼라곱은 교환법칙이 성립하나 행렬곱은 교환법칙이 성립하지 않는다.

스칼라곱: a x b = b x a,   행렬곱 : A X B <> B X A

스칼라곱과 마찬가지로 행렬곱도 결합법칙이 성립한다.

스칼라곱 : a x (b x c) = (a x b) x c, 행렬곱 :  A X (B X C) = (A X B) X C

identity matrix (항등행렬)

스칼라에서 1 은 곱셉의 항등값이다. 1 x z = z x 1

행렬에서 I 항등행렬이 있다. I X A = A X 1 : I(n,n) row, column 이 같은 entry 만 1 이고 나머지는 0 인 정사각형 행렬

- Inverse and Transpose (역행렬과 전치행렬)

곱셈에 대한 항등원 1을 같게 하는 것. 3 X (1/3) = 1

A의 역행렬 A^-1 : A(A^-1) = (A^-1)A = I

0의 역행렬은 없다. 스칼라도 마찬가지 (undefined)

A^T 는 A(i,j) A^T(j,i) 로 row column 을 맞바꾼것. 대각선 거울로 반사시킨 모양과 같음

+ Recent posts