본문 바로가기

RNN

Show, Attend and Tell (Encoder, Decoder, Attention) 【5】RNN 기본 다지기 / Show, Attend and Tell Show, Attend and Tell (Encoder, Decoder, Attention) 이번에 소개할 이미지 캡셔닝 논문은 2016년에 발표된 [Show, Attend and Tell: Neural Image Caption Generation with Visual Attention] 이다.이 논문은 6.2장에서 언급한 show and tell의 후속작으로 이전 논문에 Attention 매커니즘을 추가하였다. 이전 논문처럼 인코더 부분은 CNN으로 디코더 부분은 RNN(LSTM)으로 같으나 문장을 만드는 디코더 파트에 attention을 적용하였다. 그 결과 이미지 설명문의 매 단어를 생성할때 모델 스스로 이미지의 어디를 볼지 학습한.. 더보기
Show and Tell (이미지 캡셔닝) 【6】 최근 RNN 응용 모델 이해하고 사용하기 / Show and Tell Show and Tell (이미지 캡셔닝) 작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail.com 더보기
GRU - 리셋 게이트 /업데이트 게이트 / 입력정보 처리 / 출력 값 계산 출처 【6】최근 RNN 응용 모델 이해하고 사용하기 / GRU GRU - 리셋 게이트 /업데이트 게이트 / 입력정보 처리 / 출력 값 계산 출처 작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail.com 더보기
LSTM을 이용한 자연어처리 (실습) 【5】RNN 기본 다지기 / 실습으로 익히는 순환신경망 LSTM을 이용한 자연어처리 (실습) 이번에는 RNN의 강점이라고 할 수 있는 자연어처리를 해보자 모델에 사용 할 데이터셋은 IMDB 데이터다. IMDB 사이트에 등록된 리뷰를 긍정인지 부정인지를 분류하는 문제다. from tensorflow.keras import models,layers,datasets from tensorflow.keras.preprocessing.sequence import pad_sequences 텐서플로우 2.0 생략하고 자연어처리 실습에 사용될 패키지들이다. (x_train,y_train),(x_test,y_test) = datasets.imdb.load_data(num_words=10000) IMDB 데이터셋을 호출하는.. 더보기
기본 RNN과 LSTM 비교 【5】RNN 기본 다지기 / 실습으로 익히는 순환신경망 기본 RNN과 LSTM 비교 여기까지 RNN과 LSTM을 자세히 살펴 보았다. 두 순환신경망의 구조를 비교해보자. 아래 그림을 보자. 가장 간단하게 두 구조를 구별하는 방법은 타임스텝이 진행될때 한 셀에서 다음셀로 전달되는 정보의 개수를 확인하면 된다. 즉 위 그림에서는 셀과 셀 사이의 화살표 개수를 확인하면 되는것이다. 단기 기억 뿐인 RNN의 경우 다음 셀로 전달 되는 정보는 역시 바로 직전 타임스텝의 정보일 뿐이다. 그래서 그림에서 하나의 화살표만 볼 수 있다. 그러나 LSTM은 이름에서 보듯 Long-Short Term Momory 이므로 장기와 단기 기억이 모두 존재한다. 그러므로 구조 그림에서 두개의 화살표를 확인할 수 있다. 위 화살표는.. 더보기
LSTM의 원리 (삭제 게이트 / 입력 게이트 / 장기 기억 / 단기 기억) 【5】RNN 기본 다지기 / 실무에서 활용되는 LSTM 이해하기 LSTM의 원리 (삭제 게이트 / 입력 게이트 / 장기 기억 / 단기 기억) 작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail.com 더보기
한계를 극복한 LSTM 【5】RNN 기본 다지기 / 실무에서 활용되는 LSTM 이해하기 한계를 극복한 LSTM 작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail.com 더보기
RNN의 한계 【5】RNN 기본 다지기 / 실무에서 활용되는 LSTM 이해하기 RNN의 한계 RNN의 구조를 다시 한번 보자. RNN은 계속해서 같은 셀의 반복으로 구성된다. 반복 횟수는 입력의 길이(sequence)에 따라 달라지는데 입력의 길이가 길면 그만큼 시간 축이 길게 펼쳐지므로 신경망이 깊어진다. 즉, 신경망의 깊이는 입력에 의존적이라고 할 수 있다. 또한 RNN의 동작은 아래의 수식과 같이 표현할 수 있었는데 마치 양파처럼 이전 타임스텝들이 가중치로 겹겹이 쌓인 구조를 띄었다. 이렇게 RNN은 이전 타임스텝의 모든 입력을 참조하는 특징을 가지는데 다시 말하면 서로 다른 층들이 매개변수를 공유한다고 할 수 있다. RNN의 이러한 특징으로 인해 훈련에 큰 어려움이 발생한다. 입력 순차열이 길다면 상황은 더욱 .. 더보기
예제로 다시 한번 이해하는 RNN 구조 【5】RNN 기본 다지기 / 순환 신경망의 출현 예제로 다시 한번 이해하는 RNN 구조 RNN을 실습해보자 import numpy as np from matplotlib import pyplot as plt from tensorflow.keras import datasets, layers, models 실습에 사용되는 패키지들이다. 텐서플로우 2.0은 선언하는 것은 생략하고 넘파이, 맷플롯립, 케라스 이렇게 사용된다. 이번에는 데이터셋을 호출하지 않고 만들어서 사용한다. data = np.sin( np.pi * np.arange(0, 100)* 2.025 ) + np.random.random(100) x = np.array([data[i+j] for i in range(len(data)-10) for j.. 더보기
독특할 뿐, 어렵지 않은 RNN 구조 【5】RNN 기본 다지기 / 순환 신경망의 출현 독특할 뿐, 어렵지 않은 RNN 구조 예시: 작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail.com 더보기