본문 바로가기

Deep Learning71

16.2 감성 분석 IMDB 데이터를 통한 감성분석 데이터셋 로드 (X_train, y_train), (X_test, y_test) = keras.datasets.imdb.load_data() X_train[0][:10] #[1, 14, 22, 16, 43, 530, 973, 1622, 1385, 65] * IMDB의 training set은 문장의 구두점을 제거하고 소문자로 변환하여 빈도에 따라 인덱스가 부여되어있다. * 인덱스가 낮을 수록 자주 등장하는 단어이다. * 또한 0은 , 1은 , 2는 즉, 알 수 없는 단어를 의미한다. 만약 데이터셋을 문장으로 디코딩하고 싶다면 아래와 같이 디코딩해야 한다. #인덱스를 단어로 디코딩하는 법 word_index=keras.datasets.imdb.get_word_index() .. 2021. 11. 23.
16.1 Char-RNN을 통해 셰익스피어 문체 생성하기 In [16]: import sklearn import tensorflow as tf from tensorflow import keras import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt 16.1 훈련 데이터셋 만들기¶ In [17]: shakespear_url="https://raw.githubusercontent.com/karpathy/char-rnn/master/data/tinyshakespeare/input.txt" filepath=keras.utils.get_file('shakespear.txt', shakespear_url) with open(filepath) as f: shakespear_te.. 2021. 11. 23.
신경망 * 퍼셉트론을 통해 논리 연산을 하기 위해서는 사람이 직접 가중치, 편향을 설정해야 했다. * 하지만, 신경망은 학습을 통해 자동으로 가중치를 갱신하기 때문에 인간이 가중치를 직접 설정할 필요가 없다. 3층 신경망 구현하기 * input layer, hidden layer1, hidden layer2, output layer(전달된 값을 forwarding만 해주는 층)로 이뤄진 3층 신경망 모형은 위와 같다. * 오늘은 x1, x2의 입력이 신경망을 거쳐 output y1, y2으로 도출되는 과정을 살펴보고 python code로 구현해보겠다. 1) input layer to hidden layer1 * 위 $a_1^{(1)}$은 다음과 같은 수식으로 나타낼 수 있다. $a_1^{(1)} = w_11^.. 2021. 11. 23.
15.4 긴 시퀀스 다루기 *RNN의 문제점은 긴 sequence를 처리할 때 잘 작동하지 않는다는 점이다. 이유는 아래 두 가지가 있다. 1) gradient vanishing problem, gradient exploding problem 2) 입력의 첫 부분에 대한 정보를 기억하지 못하는 문제 15.4.1 불안정한 그레디언트 문제와 싸우기 * RNN에서도 역시 가중치 초기화, optimizer, dropout 등을 사용하여 불안정한 gradient를 조절할 수 있다. * 하지만, ReLU와 같이 수렴하지 않는 활성화 함수의 경우 큰 도움이 되지 않는다. RNN의 경우 DNN과 달리 한 층에서 뉴런은 여러 time step에 걸쳐 동일한 가중치를 사용하게 된다. 만약, gradient descent를 통해 첫 번째 time s.. 2021. 11. 21.