본문 바로가기

machine learning56

[TENSORFLOW]CNN-MAXPOOLING 2017/05/08 - [machine learning] - [TENSORFLOW] CNN-1convolution으로 다양한 filter를 적용한 filter map을 생성했다면, 이제는 이 filter map의 계산 부하나 연산 속도 등을 위해 filter map 데이터의 크기를 줄일 필요가 있다. CNN의 pooling을 통해 filter map의 크기를 줄일 수가 있다. average pooling이나 sparse coding pooling, maxpooling 등의 여러 가지 pooling이 있으며 이번 포스팅에서는 max pooling만 다뤄볼 예정이다.max pooling은 말 그대로 해당 커널 내에서 가장 큰 값만 취하겠다는 소리다. 예를 들어 [[1,3], [2,4]] 의 값에서 4만 취하.. 2017. 5. 9.
[TENSORFLOW] CNN-CONVOLUTION 2017/04/19 - [machine learning] - [TENSORFLOW] Image AutoEncoder 이번 포스팅에서는 이미지나 오디오 등의 데이터에 대해 많이 쓰이는 CNN 모델에 대해 알아 볼 것이다. 기존 neural network의 경우에는 입력 데이터 차원이 클 수록 수많은 weight 파라미터를 가져야 한다는 단점이 있었다. 예를 들어 아래의 그림은 256x256의 이미지를 나타내며 각 픽셀이 10개의 output neuran에 매핑되고 있다. 아래의 방식을 기존에 학습한 neural network에 적용해 본다면 256x256x10 개의 weight 파라미터를 지녀야 할 것이다.CNN에서는 공유 파라미터라는 개념을 도입해서 위와 같은 부하를 방지하고 있다. 똑같은 256x256.. 2017. 5. 8.
[TENSORFLOW] Reinforcement learning 강화 학습이란 현재의 상태를 인식해서 어떠한 행동을 취하고 해당 행동이 옮은지에 따라 포상을 취하게 된다. 이렇게 포상을 받게 되면, 이러한 포상이 최대가 될 수 있도록 하는 일련의 행동을 찾을 수가 있고, 이러한 행동들이 발생하게 하는 정책을 찾아냄으로써 학습을 해나가는 것이 바로 강화 학습이다.우리는 20년치의 주식 데이터를 가지고 언제 어떤 행동을 했어야 했는지에 대해 학습을 강화해 볼 것이다.행동은 크게 [주식을 산다, 주식을 판다, 기다린다] 이렇게 3 가지 action으로 분류하였다.코드를 보며 자세히 살펴보자. 우선 DecisionPolicy라고 하는 class를 생성해 주자. 일종의 abstract class라고 생각하자.그리고 DecisionPolicy를 상속받는 QLearningDeci.. 2017. 4. 27.
[TENSORFLOW] Image AutoEncoder 2017/04/18 - [machine learning] - [TENSORFLOW] Autoencoder 지금까지 1차원 입력에 대해서만 auto encoder를 살펴보았다. 그렇다면 이미지 등과 같은 2차원 입력에 대해서는 어떤 식으로 autoencoder를 만들어야 하는 것일까?우리는 이미지를 우선 gray scale로 변환 한 후 1차원으로 열거할 것이다. 우선 첫 번째로 빨간색, 녹색, 파란색의 평균을 구해 gray 픽셀 값으로 변환한다. 그 다음으로 2차원으로 나열되어 있는 이미지 배열을 1차원으로 열거해 놓는 것이다. 즉 [[1,2,3],[4,5,6],[7,8,9]] 이런 식의 이미지 데이터를 [1,2,3,4,5,6,7,8,9] 이런식으로 변환을 한 후 autoencoder를 적용해 볼 것이다.. 2017. 4. 19.
[TENSORFLOW] Autoencoder Autoencoder는 출력을 가능한한 입력에 가깝에 만들도록 매개변수를 학습하는 신경망 유형 중의 하나이다. 예를 들어 아래와 같은 뉴런 모형이 있다면 입력과 출력의 값은 일치하게 될 것이다. 하지만 위와 같은 모델은 어떠한 이득이나 어떠한 특징도 없기 때문에 위와 같은 모델을 autoencoder라고 하지는 않는다. input과 output 사이에는 작은 차원의 hidden layer가 있고, 이 hidden layer를 통해 input의 특징을 구분지을 수가 있다. 위와 같은 모델을 autoencoder라고 하며, input->hidden으로 데이터를 압축하는 과정을 encoding, hidden->output으로 데이터를 복호화하는 과정을 decoding이라고 부른다. 코드를 통해 살펴보자. 선언.. 2017. 4. 18.
[TENSORFLOW] HMM viterbi 알고리즘 2017/04/14 - [machine learning] - [TENSORFLOW] Hidden Markov Model 지난 포스팅에서 HMM과 forward 알고리즘에 대해 알아봤다면 이번에는 주어진 관측 데이터에 대해 가장 최상의 hidden state는 무엇인지를 찾아보는 viterbi 알고리즘에 대해 알아보자. 예를 들어 [Walk -> Shop -> Shop -> Clean -> Shop] 라는 관측 데이터가 주어졌을 때, 이에 대한 가장 최상의 state는 [Rainy -> Sunny -> Sunny -> Rainy -> Rainy] 라는 것을 찾아 내는 것이다.위와 같은 HMM 모델에 대해서 [Walk->Shop->Shop->Clean->Shop] 일 때의 상태 정보를 알아볼 것인데, 원리는.. 2017. 4. 17.
[TENSORFLOW] Hidden Markov Model Hidden Markov Model에 대해 살펴보자. 기계학습하면 가장 많이 언급된 단어가 바로 HMM이며, 아래 그림을 통해 HMM에 대해 알아보자. Markov Model은 현재 일어날 확률이 바로 이전의 확률에만 영향을 받는 확률 모델을 말한다. Hidden Markov Model과의 차이점은 단지 관찰할 상태가 있으냐 없으냐에 따라 결정된다. (관찰할 상태가 있으면 Hidden Markov Model) 위의 그림에서는 Rainy와 Sunny의 두 가지 hidden state가 존재한다. 비가 오거나 맑음의 두 가지 상태는 알지만 현재 비가 오는지 아니면 맑은지에 대한 상태를 전혀 알 수 없기 때문에 해당 상태를 hidden state라고 정의한다. 그리고 최초의 state 확률을 정의한다. 여기서.. 2017. 4. 14.
[TENSORFLOW] Multiclass classifier 2017/04/10 - [machine learning] - [TENSORFLOW] Linear regression Classification2017/04/11 - [machine learning] - [TENSORFLOW] Logistic regression Classification2017/04/12 - [machine learning] - [TENSORFLOW] 다항 Logistic Regression지금까지 이진 분류 문제만 다루어 봤다면 이제는 3개 이상의 분류 문제를 다루어 보자. 여기서는 mutliclass 분류에 적합한 Softmax regression에 대해 살펴볼 것이다.우선 binary classification과 multinomial classification에 대해 차이를 살펴보자.. 2017. 4. 13.
[TENSORFLOW] 다항 Logistic Regression 지난 포스팅에서 Polynomial Model에 대해 언급했던 것을 기억해 보자. 이번에는 다항의 모델에 sigmoid를 씌우는 형태의 다항 Logistic Regression을 구현해 볼 것이다.아래의 데이터 분포가 주어졌을 때 Logistic Regression을 이용해서 분류를 해보자. train data가 2차원이기 때문에 x1_label1은 group 1의 x좌표 리스트(평균 3, 표준편차 1의 1000개 리스트), x2_label1은 group1의 y좌표 리스트(평균 2, 표준편차 1의 1000개 리스트), x1_label2는 group2의 x좌표 리스트, x2_label2는 group2의 t좌표 리스트가 된다.해당 train data가 만들어지면 x좌표는 x좌표끼리 묶어서 x1s에 저장하고,.. 2017. 4. 12.