본문 바로가기

Machine Learning

(9)
Octave: 제어문 1. for 문 ① $for\;i\,=\,n:m$ $\cdots$ $endfor$ ② $indices\,=\,n:d:m$ $for\;i\,=\,indices$ $\cdots$ $endfor$ $i$는 그냥 변수 이름이므로 다른 거 써도 됨. ①은 $n$부터 $m$까지 $1$씩 증가시켜 반복하는 경우고 ②은 $n:d:m$은 $n$부터 $d$씩 증가시키며 $m$까지 반복하는 경우다. 예를 들어 $1:3:11$로 지정하면 $1,\; 4,\; 7,\; 10$이 된다. * $disp()$: 주어진 parameter를 모니터에 출력하는 함수. display의 앞 네 글자를 딴 이름이다. ※ 주의 Octave의 제어문은 다른 언어들과 다시 $end$로 끝을 명시해줘야 한다. 끝을 명시하는 방법에는 다음의 두 가지가 ..
Octave: Utility 1. 주석 $\#$ $\%$ 한 줄 주석 $\%\{$ $\cdots$ $\%\}$ 여러 줄 주석, $\%$ 대신 $\#$ 써도 됨 2. 문자열 문자열은 작은 따옴표(')나 큰 따옴표(")로 감싸면 된다. 3. 크기 $size()$ 함수와 $length()$ 함수가 있는데 약간 다르다. 둘 다 행렬 또는 벡터의 차원을 반환하지만 $size()$와 달리 $length()$는 차원을 지정할 수 없고 가장 긴 차원을 반환한다. $Let\; A\; is\; 3\, \times\, 4\; matrix\; and\; v\; is\; 5\, \times\, 1\; vector$ $size(A,\,1) = 3 %size\; of\; 1-dimension\; i.e.\; length\; of\; row$ $size(A,\..
Octave: 기본적인 연산 1. 행렬 생성 다음과 같은 형식으로 $m\,\times\,n$ 행렬을 만들 수 있다. $A = [ a_{11}\;a_{12}\;\cdots a_{1n};\;a_{21}\;a_{22}\;\cdots\;a_{1n};\;\cdots;\;a_{n1}\;a_{n2}\;\cdots\;a_{nn}; ]$ 또는 $A = [ a_{11}\;a_{12}\;\cdots\;a_{1n};$ $a_{21}\;a_{22}\;\cdots\;a_{1n};$ $\cdots$ $a_{n1}\;a_{n2}\;\cdots\;a_{nn} ]$ 요소 간 구분자는 공백 문자. 행 구분자는 세미콜론이다. 다음과 같이 요소 간 구분자로 공백 대신 콤마, 또는 둘 다 써도 된다. $A = [ a_{11},\;a_{12},\;\cdots,\;a_{1n..
Feature scaling 1. Feature scaling - 여러 개의 feature들이 같은 scale을 갖도록 조정한다. $x_{1} = size (0\,-\,2000)$ $x_{2} = number\,\,of\,\,bedrooms(0\,-\,10)$ 위 feature는 0 ~ 2000, 0 ~ 10의 다소 극단적인 범위를 갖는다. 이를 아래와 같이 조정할 수 있다. $x_{1} = \frac{size}{2000}\,\rightarrow\,(0\,-\,1)$ $x_{2} = \frac{number\,\,of\,\,bedrooms}{10}\,\rightarrow\,(0\,-\,1)$ - 모든 feature가 0에서 크게 벗어나지 않는 범위(대략 $-1 \leq x_{i} \leq 1$)를 갖도록 한다. $-3 \leq x_{..
Gradient descent for linear regression - 비용 함수와 기울기 하강을 이용해 선형 회귀를 위한 알고리즘, 또는 데이터에 맞는 일차함수를 구한다. Gradient descent algorithm $Repeat\;until\;convergence\;\{$ $\theta_{j} \leftarrow \theta_{j} - \alpha\frac{\partial}{\partial\theta_{j}}J(\theta)\;\;\;\;(j\,=\,0, 1, ..., n)$ $\}$ Linear regression model $h_{\theta}(x) = \theta_{0} + \theta_{1}x_{1} + \cdots + \theta_{n}x_{n}$ $J(\theta) = \frac{1}{2m}\sum_{i=1}^{m}\{h_{\theta}(x^{(i)})..
Gradient descent 1. Definition 비용함수 $J(\theta)$를 최소화하는 $\theta$를 구하기 위한 알고리즘. Outline은 다음과 같다. ① 임의의 $\theta_{0}$, $\theta_{1}$을 설정한다(보통 0). ② $J(\theta)$를 줄이는 쪽으로 $\theta_{0}$, $\theta_{1}$값을 계속 바꾼다. ③ 기대하는 최소값에 도달할 때까지 이를 반복한다. pseudocode로 표현하면 다음과 같다. Repeat until convergence { $\theta_{j} \leftarrow \theta_{j} - \alpha\frac{\partial}{\partial\theta_{j}}J(\theta_{0}, \theta_{1})$ (for j = 0, 1) } $\leftarrow$..
가설과 비용함수 1. 가설 input variable(또는 feature)과 output(또는 target variable)의 관계를 나타내는 함수. 다음과 같은 집값 데이터를 수집했다고 하자. 집 크기(m²) 집 값(₩) 195 507840000 132 256128000 142 347760000 79 196512000 - 집 크기는 input, 집 값은 output에 해당한다. - 집 값 예측: input(집 크기)와 output(집 값)의 관계식을 정의해 새롭게 주어지는 집 크기에 대한 집 값을 예측한다. - 이 때의 관계식이 '가설(hypothesis)'에 해당한다. * 관계식을 '가설'이라고 하는 이유 집 값 예측: 집 값을 도출해낼 수 있는 변수(feature)와 집 값(output)의 관계식을 정의한다. - ..
Unsupervised learning Machine learning은 크게 Supervised learning과 Unsupervised learning의 두 가지로 분류된다. 여기서는 Unsupervised learning을 살펴보자. Unsupervised learning(비지도 학습) Supervised learning과 가장 큰 차이점은 label 즉 '정답'이 주어지지 않는다는 것이다. 쉽게 말해 기계에 dataset을 때려넣고 "알아서 구분해라"라고 하는 셈이다. 위 그림에서 보다시피 Supervised learning의 경우 label(O/X)되어 있는 반면, Unsupervised learning의 경우 label이 없거나 모든 data가 같은 label을 갖는다. Unsupervised learning에서는 주어진 datase..