본문 바로가기

반응형

전체 글

(188)
GRU(Gated Recurrent Unit) 게이트 순환 유닛 간단정리 GRU는 LSTM과 구조가 비슷하지만, 더 간단한 구조여서 계산상으로 이점이 있다. GRU는 LSTM에서 사용되는 cell state가 없는 대신에 GRU 출력 H 값이 그 역할을 대신한다. GRU 내부 구조 또한 Reset Gate, Update Gate 두 가지만 존재하며, 이때 사용되는 활성화 함수는 sigmoid 2번과 tanh 1번만 사용되기 때문에 LSTM에 비해 연산량을 줄일 수 있다. LSTM구조의 cell state 역할 -> GRU 계층 출력 값 H 수행 LSTM구조의 활성화 함수 5개 -> GRU 구조의 활성화 함수 3개 Reset Gate Rt Reset Gate는 과거의 정보를 얼마나 잊을지(또는 기억할지) 결정하는 게이트이다. 즉, 현 시점의 데이터 Xt와 과거의 은닉층 값 데이..
LSTM을 활용한 삼성 주가 예측 스크립트 삼성전자 주가 데이터는 yahoo finance에서 csv파일로 다운받아서 활용할 수 있다. 개발과정 - 시계열 데이터 분석 및 예측 1. 데이터 로드 및 분포 확인 df = pd.read_csv(), df.describe(), df.hist(), plot() 등 2. 데이터 전처리 outlier / missing value 확인 후 대체(또는 삭제) 처리 데이터 정규화(normalization) / 표준화(standardization) 딥러닝을 위한 feature column / label column 정의 3. 데이터 생성 window size 설정 후 feature / label 시계열 데이터 생성 학습 데이터 생성. 이때 입력 데이터는 (batch_size, time_steps, input_dim..
LSTM 개념, 구조, 동작원리 간단 정리(Long Short-Term memory) SimpleRNN의 단점 - 장기 의존성 문제(the problems of long-term dependency) 장기 의존성 문제는 입력 데이터가 많아질수록 SimpleRNN 레이어, 즉 은닉층에서 보관하는 과거의 정보가 마지막 레이어까지 충분히 전달되지 못하는 현상을 의미한 -> tanh출력값 범위는 -1
Simple RNN 간단 예제 스크립트 [1] 시계열 데이터 : y=0.5sini(x) - cos(x/2)정의 import tensorflow as tf import numpy as np import matplotlib.pygame as plt from tensorflow.keras.layers import SimpleRNN, Dense from tensorflow.keras import Sequential X = np.arragne(0, 100, 0.1) # 1000개의 시계열 데이터 Y = 0.5 * np.sin(2*x) - np.cos(x/2.0) seq_data = y.reshape(-1, 1) # RNN입력에 필수적인 3차원 텐서 형태의 입력 데이터로 쉽게 만들기 위해서 사용 -> (1000, 1) 행렬로 바꾸어 줌 print(seq..
RNN(Recurrent Neural Network) - 순환신경망 간단정리 RNN 1. 내부적으로 순환(recurrent)되는 구조를 이용 2. 순서(sequence)가 있는 데이터를 처리하는데 강점을 가진 신경망 순서가 있는 데이터 ex) I work at google / i google at work 문장이나 음성 같이 연속적인 데이터를 말하는데, 이런 데이터는 문장에서의 순서에 따라 의미가 달라진다. 현재 데이터의 의미를 알기 위해서는 이전에 놓여 있는 과거 데이터도 알고 있어야 한다. RNN은 이러한 과거의 데이터를 알기 위해서 1. 은닉층내에 순환구조를 이용하여 과거의 데이터를 기억해 두고 있다가 2. 새롭게 입력으로 주어지는 데이터와 은닉층에서 기억하고 있는 과거 데이터를 연결 시켜서 그 의미를 알아내는 기능을 가지고 있다. 시간 개념을 포함한 RNN구조 순환 구조를..
CIFAR-10을 이용한 CNN 성능 향상 과정 예제 스크립트 데이터 로드 및 정규화 -> 데이터 증강 -> 모델 구축(중첩 CNN모델) -> 모델 컴파일 및 학습 -> 성능향상 측정 [1] CIFAR-10 데이터 불러오기 및 정규화 import numpy as np import tensorflow as tf from tensorflow.keras.models import cifar10 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D from tensorflow.keras.layers import Flatten, Dense, Dropout from tensorflow.keras.optimizers import Adam from t..
CNN-ImageDataGenerator를 활용한 예제 스크립트 flow() 적용 [1] ImageDataGenerator 생성 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt from tensorflow.keras.preparing.image import load_img from tensorflow.keras.preprocessing.image import img_to_array from tensorflow.keras.preprocesing.image import ImageDataGenerator gen = ImageDataGenerator(rotation_range=30, width_shift_range=0.3, shear_range=0.4, horizontal_flip=True..
CNN 성능 개선, Image Data Augmentation 개요 및 장점 Image Data Augmentation 원본 이미지에 저절한 변형을 가해서 새로운 데이터를 만드는 방식 장점 다양한 데이터를 입력시킴으로써 모델을 더욱 견고하게 만들어 주기 때문에 실제 데이터를 가지고 테스트 시 더 높은 성능을 기대할 수 있음 CNN모델을 학습시키기에 수집된 데이터가 적은 경우에 강력한 힘을 발휘함 Keras에서 이미지 데이터 보강을 위한 ImageDataGenerator 제공 flow(), flow_from_generator 함수 중 원하는 것을 선택하여 사용 flow() 적용 ImageDataGenerator 생성 (gen=ImageDataGenerator(...)) -> 이미지 로드 (load_img() / cifar10.load_data()) -> flow(...)적용 (ob..

반응형