본문 바로가기

Machine Learning52

12. [실습] Octave 설치하기 자 이제 직접 실습을 하기 위한 프로그램인 Octave를 설치해보록 하겠습니다. 자신의 pc환경에 맞는 설치파일을 찾아서 설치하면 되며, 머신러닝 강좌를 위해 교수님이 올려놓은 파일을 사용해도 되고 직접 최신 버젼을 사용해서 설치를 해도 됩니다. 아래 두개의 링크를 클릭하셔서 자신의 pc에 맞는 원하는 버젼을 다운로드 받아서 설치하시면 됩니다. 설치는 간단하게 다운로드 받은 파일을 실행해서 진행하시면 됩니다. 혹시 어려움이 있으시다면 네이버나 구글에서 검색하시면 설명이 잘되어 있으니 보시고 따라하시면 될 것 같습니다 Coursera 강좌 다운로드 Octave-Forge 최신버젼 다운로드 Mac OS에서 설치하실때 다른 방식(package manager)으로 설치를 원하시는 분들은 다음의 위키 링크를 보시.. 2016. 7. 13.
11. Linear regression을 처리하는 또 다른 방법 (Normal Equation) 지금까지 linear regression에서 머신이 학습하는 알고리즘으로 Gradient Descent Algorithm에 대해서 배웠습니다. 이번에는 이를 대체하여 사용할 수 있는 또 다른 방법인 Normal Equation(정규방정식)에 대해서 알아보겠습니다. Normal Equation 아래 그림과 같이 Gradient Descent는 경사면을 하강하면서 최저점을 찾는 방식이기에 한걸음씩 내려오면서 여러번을 수행하게 됩니다. 하지만 Normal Equation을 사용하면 한번에 찾아갈 수 있는 장점이 있습니다. 물론 단점도 있습니다 J함수가 세타에 대한 2차 방정식으로 아래 그림에서와 같다고 생각해봅니다 이 공식을 세타에 대한 미분을 하고 그 값을 0으로 놓았을때 수학적으로 풀어 낸 세타 값이 곧 .. 2016. 7. 12.
10. Feature를 선택하는 방법과 다항식 모델(Polynomial regression) 인 경우 Feature 아래 그림과 같은 두개의 features가 있다고 생각해보겠습니다.집의 사이즈를 나타내기 위한 폭과 넓이, 이 두가지 데이터가 있습니다.features가 두개임으로 h함수는 아래와 같이 3개의 parameters를 갖는 함수로 표현이 됩니다. 여기서 우리는 이 두개의 features이 의미하고자 하는 정보를 다시 생각해볼 수 있을 것입니다. 결국 우리가 원하는 것은 집의 사이즈 정보이지 사이즈가 어떻게 구성이 되었는지는 별로 중요하지 않다는 것을 이해할 수 있습니다. 그러므로 이 두개의 features를 하나의 feature로 만들수 있다면 h 함수는 심플해질 것입니다. 같은 의미의 데이터가 중복되어 있다면 feature를 줄일 수 있는지 생각해 봐야겠습니다. Polynomial regre.. 2016. 7. 11.
9. Gradient Descent Algorithm 사용시 유의할 점 이번에는 Gradient Descent 알고리즘을 사용할때 유의할 내용에 대해서 알아보겠습니다. Feature Scaling 이제 우리는 많은 features들의 data를 사용할 수 있게 되었습니다.각각의 features는 다른 정보를 나타내는 값들이기 때문에 이 값들이 어떤것은 사이즈를 나타내어 단위가 1000단위로 표현이 되고 어떤것은 층수를 나타내어 1~10까지의 단위로 표현이 되기도 할 것입니다.만약 이런 데이터들을 그대로 사용하면 어떻게 될까요 아래 그림과 같이 등고선의 형태가 각 feature의 단위에 따라서 홀쭉한 형태로 나타나거나 뚱뚱한 형태로 나타날 것입니다. 이렇게 되면 알고리즘이 목표로 하는 중앙의 점으로 찾아갈때 오래 걸리게 됩니다. 길 등고선을 따라 하강을 해야 하게 되기 때문입.. 2016. 7. 10.
8. 많은 데이터를 표현/처리하는 방법 (Multiple Features) 자 이제 그동안에 배웠던 내용을 다시 기억해봅니다. 이전에는 집의 사이즈에 대한 집 매매가격에 대한 예제 dataset를 가지고 했었는데요집의 가격에 영향을 미치는 요인이 단지 사이즈만 존재하는 것은 아니겠지요. 그래서 data(feature)를 더 추가해보려고 합니다. 아래 그림에서와 같이 방의 갯수, 층수, 건물이 지어진 년수와 같은 3가지 data를 추가하였습니다. 1번째 데이터를 보면 집에 사이즈는 2104피트이고 방이 5개가 있고 1층으로 지어진 45년전에 지어진 집의 가격이 460,000달러가 되겠습니다. 각각의 집에 가격에 영향을 미치는 x의 항목들을 순서대로 x1, x2, x3, x4라고 표현을 했습니다. 총 4개의 data(features)가 되고 features의 객수를 n이라고 표현했.. 2016. 7. 9.
7. 매트릭스와 벡터 계산하기(Linear algebra) 이번에는 선형대수학(Linear algebra)에 대해서 공부를 합니다.이름은 거창하지만 실제로는 더하기, 곱하기 이런 기본 산수 수준인데 단지 다른 것은 알고리즘을 사용하기 위해서 필요한 행렬과 벡터 위주로 다루고 있습니다. 행렬이나 벡터도 이름만 거창하지 실제로는 여러번 산수해야하는 것을 한번에 산수하면 되도록 해주는 도구라고 생각하면 될 것 같습니다. 알아두면 매우 유용한 면이 많아 보이는 내용입니다. 예를 들어서, 1+1, 1+2, 1+3을 한다고 생각해보겠습니다.단순한 더하기를 3번 수행해야 하는데, 행렬이나 벡터를 이용하면 더하기 1번에 3개의 결과를 얻어낼수 있는 효과가 있을 뿐이지 더하기는 동일합니다. 행렬(Matrix) 사각형 모양안에 숫자들을 나열해 놓은 형태로 아래 그림과 같이 표기가.. 2016. 7. 7.
6. 머신이 학습하는 알고리즘 (Gradient descent algorithm) 지난번에 Cost 함수에 대해서 알아보았습니다. 이번에는 Cost 함수를 minimizing 하기 위한 알고리즘에 대해서 알아보겠습니다.이 알고리즘의 이름은 Gradient descent algorithm이라고 합니다. 변역해서 이야기 하면 경사면을 하강하는 알고리즘이 되는데 실제로도 그렇습니다. 우리는 기본이 되는 linear regression에서 하나씩 살펴보고 있지만 실제로 이 알고리즘은 여러 다양한 분야에서 범용적으로 사용이 되는 알고리즘입니다. 중요하다는 뜻이 되겠습니다. Cost 함수를 minimizing하기 위한 방법중에 하나인 이 Gradient descent algorithm은 이미 알고 계시듯이 우리가 목표로 하는 직선을 찾기 위한 방법이되고 이를 머신이 학습한다고 표현합니다. 현재까.. 2016. 7. 5.
5. 결과 값을 비교하는 방식(Cost function) 우리는 Supervised 방식을 공부하고 있기 때문에 결과 값을 비교할 수 있습니다.왜냐하면 실제 정확한 결과 값을 알고 있기 때문입니다.이 결과 값을 비교할 수 있는 표현이 Cost입니다. 그리고 Cost를 수학적인 함수로 표현하는 것도 배우게 될 것입니다. 이전 내용에서 이어서h 함수를 일차방정식으로 표현할 수 있었습니다. ( h = Ax + B)여기서 A와 B를 Parameters라고 합니다. 이 파라미터가 결정이 되면 우리는 원하는 결과 값을 찾을 수 있게 됩니다. 그럼 이 파라미터 값은 어떻게 찾을 수 있을까요?바로 minimize를 해서 찾을 수 있습니다. 우리는 이미 결과 값을 알고 있기 때문에 실제 결과 값과 알고리즘이 수행하여 예측한 결과 값을 비교해서 그 차이를 구할 수 있는데, 이 .. 2016. 7. 4.
4. Supervised Learning - Regression 표현 이제 한걸음 들어가게 됩니다.앞에서 공부했던 Supervised Learning에서 regression 에 대한 예시를 가지고 이것을 수학적인 표현식으로는 어떻게 표현이 되는지를 보겠습니다. 집의 사이즈에 따라서 집의 매매가격의 변화하는 데이터를 그래프로 표현하면 아래와 같습니다.사이즈가 커지면 가격이 높아지니 선을 하나 그어볼 수 있을 것입니다.이 직선은 사이즈와 가격에 대한 변화를 아주 잘 나타내는 그래프이자 수학적으로는 일차방정식으로 표현이 됩니다. 데이터셋의 실제 데이터들을 하나씩 열어보면 아래와 같이 사이즈와 가격으로 구성이 된 정보들을 볼 수 있습니다.저기 지역에서는 사이즈가 2104 피트인 집이 460,000달러인가 봅니다. DataSet의 크기, 즉 데이터의 수량을 m으로 표현을 하고집의 .. 2016. 7. 3.
3. 머신이 학습하는 방식들 머신이 학습을 하는 방식은 Supervised Learning과 Unsupervised Learning의 2가지로 구분이 됩니다.이는 기초 데이터인 Dataset의 성격과 원하는 결과 값의 성격에 따라 다르게 사용이 됩니다. Supervised Learning 변역하면 지도식 학습 방법입니다.선생님이 학생을 교육하듯이 이미 답을 알고 있는 상태에서 학습을 하는 경우입니다.DataSet이 이미 결과 값을 포함하고 있어 머신이 학습을 수행하여 나온 결과 값이 얼마정도의 오차를 가지고 있는지 알수 있는 경우에 사용될 수 있습니다. 예를들어, 집의 사이즈에 따른 집의 가격을 분석한다면 우리는 이미 평수에 따른 가격이 어떻게 구성이 되는지를 알고 있습니다. 실제로 집이 거래된 가격도 정확하게 알 수 있습니다. 이.. 2016. 7. 3.