목록인공지능 (30)
59doit

LSTM 순환신경망으로 텍스트 분류하기 기본 순환 신경망과 달리 LSTM 셀은 2개의 출력이 순환된다. 그중 하나만 다음 층으로 전달된다. 셀로 순환만 되는 출력을 셀 상태(C)라고 부른다 LSTM 셀에서는 이전 타임 스텝의 은닉 상태 H_p와 셀 상태 C_p를 사용해 계산을 수행 # 1. LSTM 클래스 임포트 from tensorflow.keras.layers import LSTM ▶ # 2. 임베딩층을 포함하여 LSTM 순환신경망만들기 model_lstm = Sequential() model_lstm.add(Embedding(1000, 32)) model_lstm.add(LSTM(8)) model_lstm.add(Dense(1, activation='sigmoid')) model_lstm.summa..

임베딩층으로 순환신경망 모델 성능 높이기 순환 신경망의 가장 큰 단점 중 하나는 텍스트 데이터를 원-핫 인코딩으로 전처리한다는 것이다. 원-핫 인코딩을 사용하면 입력 데이터 크기와 사용할 수 있는 영단어의 수가 제한된다는 문제가 있다. 또 원-핫 인코딩은 '단어 사이에는 관련이 전혀 없다'는 가정이 전제되어야 한다. 이런 문제를 해결하기 위해 고안된 것이 단어 임베딩(word embedding)이다. 단어 임베딩이란 단어를 고정된 길이의 실수 벡터로 임베딩 하는 것이다. 원-핫 인코딩을 변경한다면 성능을 올릴 수 있다. # 1.Embedding클래스 임포트하기 from tensorflow.keras.layers import Embedding ▶텐서플로는 Embedding클래스로 단어 임베딩을 제공한다 #..

텐서플로를 이용한 순환신경망 만들기 SimpeRNN : 텐서플로에서 가장 기본적인 순환층 # 1. 필요한 클래스 임포트 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, SimpleRNN # 2. 모델만들기 model = Sequential() model.add(SimpleRNN(32, input_shape = (100,100))) #타임스텝의 길이가 100이고 원핫인코딩 크기가 100이므로 입력크기 (100,100) model.add(Dense(1, activation = 'sigmoid')) model.summary() Model: "sequential" ____________________..

순환신경망 은닉층의 출력이 다시 은닉층의 입력으로 사용된다. 순환 구조라고 부르며 순환 구조가 있는 층을 순환층이라고 한다. 손실 함수에 대한 그레이디언트 : err_to_cell W_1x, W_1h, b_1에 업데이트할 최종 그레이디언트는 err_to_cell과 각각의 도함수를 곱해서 구한다. 순환신경망으로 텍스트 분류하기 # 1.텐서플로에서 IMDB 데이터 세트 불러오기 import numpy as np from tensorflow.keras.datasets import imdb ▶load_data() 함수를 이용하여 데이터를 불러온다. (x_train_all, y_train_all), (x_test, y_test) = imdb.load_data(skip_top=20, num_words=100) pr..