machine learning(56)
-
[골빈해커의 3분 딥러닝] 04_02_DeepNN
2019/06/04 - [machine learning] - [골빈해커의 3분 딥러닝] 04_01_classification [골빈해커의 3분 딥러닝] 04_01_classification 골빈 해커님이 쓰신 3분 딥러닝을 코드 위주로 설명한 포스팅. 4장 01에서는 2개의 특징 데이터(털, 날개)를 가지고 [기타, 포유류, 조류]를 분류하는 모델을 설명하고 있으며, 전체 코드는 아래와 같다. step by.. yujuwon.tistory.com 이전 포스팅에 이어 이번에는 layer를 2개를 만들어서 (Deep) 모델을 구현한 예제를 살펴보자. 이전 포스팅과의 차이라면 layer 개수와 loss 함수를 tf에서 제공하는 함수를 썼다는 정도이다. 전체 코드는 아래와 같다. 이전 포스팅과 차이점만 살펴보자..
2019.06.05 -
[골빈해커의 3분 딥러닝] 04_01_classification
골빈 해커님이 쓰신 3분 딥러닝을 코드 위주로 설명한 포스팅. 4장 01에서는 2개의 특징 데이터(털, 날개)를 가지고 [기타, 포유류, 조류]를 분류하는 모델을 설명하고 있으며, 전체 코드는 아래와 같다. step by step으로 하나씩 살펴보자. import tensorflow as tf import numpy as np 텐서플로우와 numpy를 import 하고 있다. 참고로 실행 환경에서의 텐서플로우와 numpy 버전은 각각 1.13.0, 1.16.3을 사용하였다. x_data = np.array([[0, 0], [1, 0], [1, 1], [0, 0], [0, 0], [0, 1]]) y_data = np.array([ [1, 0, 0], # 기타 [0, 1, 0], # 포유류 [0, 0, 1]..
2019.06.04 -
TextToCNN으로 분류하기
Text를 마치 하나의 image로 인식해서 CNN 모델에 태우는 기법의 분류가 높은 성능을 보인다고 해서 나도 한번 테스트를 해봤다.우선 이론 및 모델은 김윤 교수님의 논문인 Convolutional Neural Networks for Sentence Classification을 차용했다. 모델에 대해 간략히 설명하자면, 어떤 하나의 문장이 들어오면 해당 문장을 단어로 나누고 (위의 그림의 경우에서는 wait, for, the, video, and가 됨) 각 단어에 대해 embedding vector를 적용 시킨다. 가령 단어의 개수가 5개고 embedding vector가 128차원이라면 매트릭스는 5 x 128의 행렬이 된다. 이렇게 구성된 행렬에 convolution을 적용시킨다. 논문에서는 co..
2019.01.28 -
Char based Text to CNN 한글 적용하기
Text의 각 Character들을 (한글로 치면 하나의 음절) 하나의 특징데이터로 삼고 CNN을 이용해서 분류작업을 해보기로 했다. 기본 Text to CNN에 대한 간략한 설명. http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/ 대략적으로 설명하자면 각각의 text내의 word 들을 vector로 변환한 후 해당 vector 값들을 나열해서 2차원 이미지 배열 처럼 만든다. 예를들어 I like coffee 라는 text가 있다면 I, like, coffee 이 단어들을 각각 3차원 벡터로 변환을 하고 ([1,0,0], [0,1,0], [0,0,1]) 변환된 벡터를 나열하면 3 * 3의 행렬이 생성된다...
2018.04.10 -
[SCIKITLEARN] naive bayes를 이용해서 문서 분류 하기
Naive bayes를 이용해서 문서 분류를 해보자. Naive bayes는 bayes 정리의 일부분이다. 앞에 Naive라는 수식어가 붙은 이유는 몇 가지 Naive한 가정을 기반으로 정의된 이론이기 때문에 Naive bayes라고 불린다. 그렇기 때문에 우선 bayes 정리에 대해서 살펴보자.A라는 분류 항목을 가지는 p1(x,y) 이라는 확률 방정식과 B라는 분류 항목을 가지는 p2(x,y)라는 확률 방정식이 있다고 가정을 해보자. 아래와 같은 가정이 성립할 것이다.만약에 p1(x,y) > p2(x,y)이면, x, y는 A에 속한다.만약에 p1(x,y) < p2(x,y)이면, x, y는 B에 속한다.분류를 위해 우리는 p1과 p2의 확률을 계산할 수 있어야 하며, 이를 계산하기 위해서 조건부 확률을..
2017.12.18 -
[TENSORFLOW] seq2seq 기반 챗봇 만들기
2017/07/12 - [machine learning] - [TENSORFLOW] LSTM Dual encoder 기반 챗봇 만들기 지난 포스팅에 검색 기반 챗봇을 구현했다면 이번에는 generative model의 대표격인 seq2seq를 활용해서 챗봇을 만들어 보자. seq2seq의 대표적인 구조이다. encoder 부분에서는 입력 응답을 받아 하나의 hidden code 값으로 표현을 해주고 decoder 영역에서는 hidden code 값과 start tag를 받아 가장 적합한 결과 단어들을 추출해 준다. 여기서 train과 test의 모델이 각각 다르게 나타나는데, train의 경우에는 decoder의 output과는 별개로 훈련 셋이 input으로 들어가는데 반해 test 모델의 경우에는 d..
2017.07.14