본문 바로가기

분류 전체보기246

20. 뇌신경망을 이용한 머신러닝 예제 (Neural Networks) 이제 Neural Networks에 대해서 실제 예제들을 살펴보며 알아보겠습니다.여기서는 어떻게 NNs가 복잡한 non-linear hypothesis를 처리할 수 있는지에 대해서 볼 수 있습니다. 아래 그림의 오른쪽과 같은 binary형태의 dataset이 있을때 뼈다귀 모양의 곡선으로 Decision Boundary를 정의할 수 있을 겁니다. 이것을 조금 심플하게 왼쪽과 같이 표현을 한다고 하면 x1과 x2의 XOR/XNOR의 결과로 표현을 할 수 있습니다. 역시 binary의 input data에 대해서 AND 연산에 대하여 예제를 보겠습니다.x1, x2의 input data와 x0의 bias unit을 포함하여 생각합니다. 이때 각각의 weight를 -20, 30, 30으로 주어졌다고 합시다. 이.. 2016. 7. 21.
19. 뇌신경망을 활용한 머신러닝 개념 (Neural Networks) Neural Networks Motivation 앞에서 배웠던 non-linear classification을 조금더 살펴보겠습니다.2개의 features가 있을때 아래 그림의 그래프와 같이 dataset이 존재하고 이것을 곡선으로 decision boundary를 표현할 수 있습니다. 여기서 featrures가 100개로 늘어났을 경우를 생각해봅시다.각 features의 2차항으로 h 함수를 생성한다고 가정할때 다음과 같이 각각의 곱 혹은 제곱으로 표현이 됩니다.x12 ,x1x2, x1x4 ..., x1x100이렇게 만들어진 features의 수는 약 5,000개가 되고 이것은 features 수가 n 개라고 할때 (n제곱 / 2) 만큼의 갯수가 됩니다. 만약 3차항의 h 함수를 생성한다고 가정하면 역.. 2016. 7. 20.
18. 모델의 과최적화를 피하는 방법 (overfitting, regularization) 지금까지 우리는 두가지 모델에 대해서 배웠습니다.Supervised Learning에 대한 Linear regression 모델과 Logistic regression 모델을 배웠습니다.이 두가지 모델을 이용하면 상당히 많은 머신러닝에 대한 해답을 찾을 수 있을 것입니다. Overfitting 이시점에서 우리는 h함수에 대해서 조금더 알아보도록 하겠습니다.아래 그림은 Linear regression에서의 dataset을 그래프로 표현한 것입니다. 가장 왼쪽에 세타에 대한 1차방정식으로 h함수를 정의했다고 생각합시다. 이때 직선을 그리면 그래프와 같이 될 것입니다. 실제 데이터 결과와 직선으로 예측되는 결과와는 완전히 일치를 하지 않습니다. 대략적으로 추정이 가능한 정도의 수준입니다. 이때의 h함수를 Und.. 2016. 7. 19.
17. 여러개의 결과로 분류하는 방법 (multiclass classification:one vs all) 지금까지는 결과값이 0,1로 두개로 분류되는 것에 대해서 알아보았습니다.이번에는 결과값이 여러개로 분류되는 경우에 대해서 알아보겠습니다. 아래 그림의 예제들과 같이 여러개의 케이스로 분류가 되는 경우가 있을 것입니다. 이메일을 분류하기 위해서 직장에서 온 메일인지, 친구에게 온 메일인지, 가족이나 취미활동에서 온 메일인지를 분류하고자 하는 경우 y 결과값이 1,2,3,4의 4가지로 나타낼 수 있습니다. 또 의사 처방시에 이상없음, 감기정도임, 악성 플루로 의심됨과 같이 3가지 분류가 될 수도 있고요또 날씨에 경우도 맑음, 흐림, 비, 눈으로 분류해서 4가지의 결과값을 가지는 경우도 있을 것입니다. 3가지로 결과가 분류가 되는 케이스에 대해서 생각해봅니다.1번째 결과는 세모로, 2번째 결과는 네모로, 3번.. 2016. 7. 18.
16. Logistic Regression을 처리하는 방법 앞에서 Classification 를 하기 위해서는 Logistic Regression의 모델을 사용해야 한다는 것을 알아봤습니다.이번에는 Logistic Regression에 대해서 하나씩 알아보겠습니다. Cost function 우리가 사용하는 dataset은 아래 그림에서와 같이 한개의 feature와 결과 y로 구성이 됩니다. 그리고 m의 사이즈 만큼의 데이터가 존재하고 한개의 feature는 x vector로 표현을 할 수 있습니다.앞에서 본것처럼 우리의 h 함수는 sigmoid function이 적용된 함수였습니다. 이제 Cost 함수를 만들어야 하겠죠?앞서 배운 모델인 Linear regression에서의 Cost 함수 J는 아래 그림과 같이 공식으로 표현이 되었었습니다.이 공식에 Logis.. 2016. 7. 16.
15. Supervised Learning - Classification 표현 지금까지 여러분은 머신러닝 학습 방법중에 하나인 Supervised Learning에서 regression을 처리하는 방법에 대해서 배웠습니다. 실제 구현까지 했으니 마스터 했다고 볼수 있습니다.^^ 이제부터는 Supervised Learning에서 다른 분야인 Classification에 대해서 알아볼 차례입니다. 이제는 2강에서 살짝 다룬것과 같이 결과값을 예측하는 모델이 아니라 데이터를 분류하여 처리하는 모델에 대해서 알아보겠습니다. Classification Classification은 어떤 기준에 의해서 데이터를 처리하고 그 결과로 A 아니면 B 혹은 0 아니면 1로 분류가 되는(판단을 하는) 결과 값을 원할 때 사용되는 모델입니다. 예를 들어, 아래 그림과 같이 이 메일이 스팸인지 아닌지 여부.. 2016. 7. 15.
14. [실습] Linear Regression 구현해보기 (Octave) 이제 그동안 배웠던 Linear regression를 이용한 머신러닝을 실제 구현을 해보겠습니다.Octave를 이용해서 간단하게 해볼 수 있습니다. 실습을 하기 이전에 벡터화를 하는 방법에 대해서 잠시 살펴보고 하겠습니다. Vectorization 우리가 배웠던 h함수를 아래 그림과 같이 공식으로 나타낼 수 있었습니다.왼쪽편 아래에 표기된 방법으로 구현을 하게 되면 이것은 벡터로 처리하는 것이 아닙니다.반복문을 돌면서 각각의 변수들을 개별적으로 처리하는 방법이기 때문에 복잡하게 보입니다. 하지만, 오른쪽 아래에 표기된 방법으로 각 변수들을 matrix로 생성하면 공식이 상당히 심플해 지면서 한번 연산으로 처리가 가능해집니다. 벡터화를 하는 방법에 대해서 알아보겠습니다.우리가 배운 Gradient Desc.. 2016. 7. 14.
13. [실습] Octave/Matlab Tutorial 앞에서 Octave를 설치하였으니 이제 간단한 사용법에 대해서 알아보겠습니다.교수님의 강의에서 실제로 명령어들을 직접 실행하면서 보여주시기에 명령어를 순서대로 나열해서 정리하려고 합니다.그러므로 직접 Octave에서 순서대로 실행을 하시면서 이해하시면 좋을 것 같습니다. 각 명령어 옆에 %는 주석이고 주석에 간단히 설명을 달아놓았습니다. 1. Octave Basic Operations 1 == 2 % 1과 2가 같은 값이면 true(1) 아니면 false(0)1 ~= 2 % 1과 2가 같지 않으면 true(1) 아니면 false(0)1 && 0 % and 연산1 || 0 % or 연산xor(1,0) % xor 연산ps1(‘>> ‘); % 프롬프트 변경하기a = 3a = 3; % 세미콜론은 출력안함b = .. 2016. 7. 13.
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.