본문 바로가기

기계학습61

IMDB 실습 - LSTM 모델 123456789101112131415161718192021222324252627282930313233from tensorflow.keras.datasets import imdbimport numpy as np (X_train, Y_train), (X_val, Y_val) = imdb.load_data(num_words=1000)vocab_size = 1000 from tensorflow.keras.preprocessing.sequence import pad_sequences # 데이터 전처리 - paddingmax_len = 0for s in X_train: tmp_len = len(s) if tmp_len > max_len : max_len = tmp_len X_train = pad_sequences.. 2020. 2. 12.
LSTM 실습 - 로이터 뉴스 분류기 123456789101112131415161718192021222324252627282930313233343536from tensorflow.keras.datasets import reutersimport numpy as npimport seaborn as sns (X_train, Y_train),(X_test, Y_test) = reuters.load_data(num_words=1000, test_split=0.2) from tensorflow.keras.models import Sequentialfrom tensorflow.keras.layers import Dense, LSTM, Embeddingfrom tensorflow.keras.utils import to_categoricalfrom tens.. 2020. 2. 12.
RNN 실습 - 스팸메일 분류기 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081import numpy as npimport pandas as pd import matplotlib.pyplot as pltfrom tensorflow.keras.preprocessing.text import Tokenizerfrom tensorflow.keras.preprocessing.sequence import pad_sequences from google.colab import drivedrive.mount('/content/d.. 2020. 2. 12.
MNIST 실습 - GAN 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114import numpy as npimport tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("./mnist/data/", one_hot=True).. 2020. 2. 11.
MNIST 실습 - CNN 모델 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("./mnist/data/", one_hot=True) from tensorflow.keras.models import Modelfrom tensorflow.keras.. 2020. 2. 10.
MNIST - 일반 딥러닝 모델 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("./mnist/data/", one_hot=True) # 데이터 모음input_data_train = mnist.train.imagesoutput_data_train = mnist.t.. 2020. 2. 9.
MNIST - 기본 1 layer 머신러닝 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556import tensorflow as tfimport randomfrom tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("tmp/data/", one_hot=True) tf.set_random_seed(777) x=tf.placeholder(tf.float32, [None, 784])y=tf.placeholder(tf.float32, [None, 10]) w=tf.Variable(tf.random_normal([7.. 2020. 2. 8.
공부정리 - map 함수 : 말 그대로, 매핑(mapping) 을 도와주는 함수 > 형식 : map(함수, 리스트) or map(함수, 튜플)ex) a = [1.2, 2.5, 3.7, 4.6] a = list(map(int, a))>> a = [1, 2, 3, 4] > 왜 함수라고 표현할까? - 실제로 해당 함수에 값을 집어넣기 때문!ex) map(int, a) -> int(a) 연산을 한다! > 반환형식은? : map 이라는, "자료형"을 반환한다! - 따라서, map(int, a) 이런식으로만 할 경우, 제대로 된 실제 값을 확인하지 못함- 반드시, list, tuple 등으로 처리했을 경우에만 매핑 된 결과를 확인할 수 있다. - seaborn 함수 > 의의 : 데이터를 더 잘 시각화하여 표현하기 위함> 2020. 2. 2.
글자레벨 번역기 코드 - 딥러닝을 이용한 자연어처리 입문 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816.. 2020. 1. 31.
GRU, ELMO - 딥러닝을 이용한 자연어처리 입문 # GRU : Gate Recursive Unit(게이트 순환 유닛) - 의의 : - LSTM 과 같은 성능, 그러나 은닉상태(h 값)를 계산하는 식은 더 간단하게 - 게이트의 갯수가 2개밖에 없다 (업데이트, 리셋 게이트) # ELMo (Embedding from Language Model) - 특징 : 사전에 훈련된 언어 모델을 사용한다 - 문제의식 : Bank Account(은행 계좌)와 River Bank(강둑) 같이, 같은 Bank임에도 불구하고, 문맥에 따라 다른 의미를 띠기도 한다-> 그러나 일반적인 Glove 나 word2Vec 의 경우, Bank 가 똑같은 의미로 사용되었다고 간주하고 임베딩을 시킴-> 즉, 동음이의어에 취약한 특성을 지님. - 해결책 : 문맥을 반영한 워드 임베딩! (c.. 2020. 1. 28.
LSTM - 딥러닝을 이용한 자연어처리 입문 # LSTM : 장단기 메모리(Long-short term memory) - 바닐라 RNN : 가장 기본적인 꼴의 RNN > 이 RNN으로부터 더 발전된 꼴의 RNN 들이 LSTM 등 여러가지 존재 - 장기 의존성 문제 : (RNN 의 한계점) > 맨 마지막 state 에서, 올바른 y 값을 출력하기 위해서 앞부분에 있는 state 의 출력값이 필요하다고 하자 그럴 경우, 앞 부분의 state 값은 뒷부분까지 널리 전달되지 못하기 떄문에 (영향력이 미비해짐) 문제 발생 - 구성 방식 : 모두 시그모이드 함수를 사용한다는 특징 지님 1) 입력 게이트 : 현재의 정보를 기억하기 위한 게이트 > i : 시그모이드 함수 사용 -> 0, 1 출력 > g : 하이퍼볼릭 탄젠트 함수 사용 -> -1, 1 출력 >> .. 2020. 1. 28.
RNN 언어모델 - 딥러닝을 이용한 자연어처리 입문 # RNNLM vs. n-gram, NNLM - n-gram, NNLM : 고정된 갯수의 단어만큼을 입력으로 받는다 - RNNLN : 반드시 고정된 갯수일 필요가 없다 # RNNLM 의 훈련 과정 - "교사 강요" 기법의 사용 (teacher forcing) > RNN 의 기본 원칙인, "현재의 출력값을 다음 상태 값으로 전달한다" 방식을 훈련 과정에선 하지 않는다 (훈련이 다 끝난, 테스트 과정에서만 은닉 상태를 전달함) > 실제 훈련 과정에서는, (현재의 입력값) + (실제 정답 값) 두 가지만 이용해서 훈련한다.> 즉, t 시점의 실제 정답값을 t+1 시점의 입력값으로 전달한다. ( 출력값 전달 X ) > Why? : 오류 발생 가능성 많음, 시간이 오래 걸림 - 여태껏 봐왔던 대부분의 RNN 도식.. 2020. 1. 28.