본문 바로가기

반응형

머신러닝공부

(45)
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..
CNN 성능향상 방법 4가지 Overfitting은 낮추고, 정확도는 향상 시키는 4가지 방법 1. 더 많은 레이어(Layer) 쌓기 컨볼루션 레이어가 중첩된 더 깊은 구조가 될수록 성능 크게 개선됨 2. 이미지 데이터 보강(Image Data Augmentation) 딥러닝에서는 많은 학습 데이터를 사용하면 성능을 개선 시킬 수 있음 기존 데이터가 있을때, 해당 데이터를 원본으로 해서 다양한 변형을 주고, 이렇게 생성된 데이터를 원본 학습 데이터에 포함시켜 수 많은 데이터를 확보할 수 있음 3. 높은 해상도(High Resolution) 학습 데이터 확보 동일한 CNN구조라면, 상대적으로 높은 해상도의 학습데이터를 통해서 성능을 개선시킬 수 있음 4. L1 Norm, L2 Norm 등의 가중치 규제(Regulation), Drop..
CIFAR-10 스트립트 예제 CIFAR-10 CIFAR-10의 데이터는 airplane, automobile, bird등의 10개의 정답으로 분류된 이미지이며, 딥러닝 학습을 위해 총 50,000개 학습데이터와 10,000개의 테스트 데이터로 이루어져 있음. 각각의 이미지는 32x32 크기의 작은 컬러 이미지. [1] CIFAR-10 데이터 불러오기 및 정규화 import numpy as np import tensorflow as tf from tensorflow.keras.datasets import cifar10 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPool2D from tensorflow.keras..
CNN을 활용한 MNIST Example Script [1] MNIST 데이터 불러오기 및 정규화 import numpy as np import tensorflow as tf from tensorflow.keras.datasets import mnist from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPool2D from tensorflow.keras.layers import Flatten, Dense, Dropout (x_train, y_train) (x_test, y_test) = mnist.load_data() # 데이터 불러오기 x_train = x_train.reshape(-1, 28, 28, 1) # 텐서로 변환 x_test =..

반응형