본문 바로가기

구조

GRU - 리셋 게이트 /업데이트 게이트 / 입력정보 처리 / 출력 값 계산 출처 【6】최근 RNN 응용 모델 이해하고 사용하기 / GRU GRU - 리셋 게이트 /업데이트 게이트 / 입력정보 처리 / 출력 값 계산 출처 작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail.com 더보기
LSTM을 이용한 시계열 데이터 분석(실습) 【5】RNN 기본 다지기 / 실습으로 익히는 순환신경망 LSTM을 이용한 시계열 데이터 분석 (실습) 이전에 실습했던 내용은 SimpleRNN을 사용했고 이번에는 LSTM을 이용한 시계열 데이터 처리를 배워보자 데이터셋은 SimpleRNN 실습 때 사용했던 것을 재사용한다. 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 in range(10)]) x_train = x[:700].reshape(-1,10,1) x_test = x[700:].reshape(-1,10,1) y = np.array([data[i+10] fo.. 더보기
기본 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 더보기
시계열 데이터 분석을 위한 RNN 【5】RNN 기본 다지기 / 순환 신경망의 출현 시계열 데이터 분석을 위한 RNN 지금까지 살펴본 신경망 모델의 구조를 단순화시킨다면 아래와 같이 생각할 수 있다. 즉 화살표 오른쪽에 있는 그림처럼 신경망 모델을 표현 할 수 있다. 파란 동그라미가 입력으로 들어가면 네모박스에 있는 은닉층들을 통과하여 파란 동그라미로 출력이 된다. 여기서 하나의 네모 박스 안에는 여러개의 가중치(weights)가 포함되었다고 이해할 수 있다. 이제 우리는 단순화시킨 오른쪽 그림을 사용해 RNN을 이해해 볼 것이다. 텍스트 데이터를 이용해 예시를 들어보겠다. 한 문장에 대한 다음 문장을 예측하는 모델을 만든다고 가정해보자. 그렇다면 입력데이터는 하나의 문장이 될 것이고 출력데이터도 마찬가지로 예측한 하나의 문장일 것이다. .. 더보기
faster R-CNN (이론 + 실습) 【4】이미지 분류를 넘어, Object Detection 모델 / R-CNN 이론 + 실습 faster R-CNN (이론 + 실습) Resnet을 입힌 Detection model(이론 + 실습) 텐서플로우 공홈에서 배포하고 있는 Faster R-CNN (inception resnet) 모델이다. 코드를 보면서 어떤 구조인지 이해를 해보자 import tensorflow as tf import tensorflow_hub as hub import matplotlib.pyplot as plt import tempfile from six.moves.urllib.request import urlopen from six import BytesIO import numpy as np from PIL import Im.. 더보기