본문 바로가기

반응형

전체 글

(188)
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 =..
CNN-Convolution Neural Network (합성곱 신경망)간단 정리 컨볼루션이라는 것은 두개의 함수 f, g가 있을 때 1. 적분변수에 대해서 2. 하나의 함수를 반전(reverse)하고 시간 t만큼 전이(shift)시킨 후에, 3. 다른 하나의 함수와 곱한 결과를 4. 전체 구간에서 적분하는 것을 의미함 데이터 관점에서 곱셈연산은 원본 데이터 또는 입력데이터에 변화를 주어 출력 데이터를 만들어내는 역할을 수행하고 덧셈 연산은 데이터의 평균을 구한다는 의미를 내포한다. 즉, 컨볼루션 수식은 원본 데이터 또는 입력 데이터에 변화를 주어서, 그 변화된 값들의 평균을 구한다는 의미를 나타낸다. 데이터 관점 시간에 따른 이동 -> 곱셈 -> 덧셈 해석1: 시간의 흐름에 따라 데이터 g(x)가 이동하면서, 입력 데이터 f(x)를 평균적으로 얼마나 변화 시키는지 나타내는 것을 co..
Fashion MNIST 딥러닝 스크립트 예제 Fashion MNIST 손글씨가 아닌 옷과 신발 등의 흑백 이미지로서 MNIST보다는 좀 더 어려운 문제로 평가되고 있음 데이터 정의 -> 데이터 전처리 -> 모델 구축 -> 모델 컴파일 -> 학습 -> 모델 평가 # 데이터정의 (데이터 불러오기 및 확인) import tensorflow as tf import numpy as np from tensorflow.keras.datasets import fashion_mnist (x_train, t_train), (x_test, t_test) = fashion_mnist.load_data() print(학습데이터 정답) print(테스트 데이터 정답) import matplotlib.pyplot as plt plt.figure(figsize = (6,6))..
MNIST를 활용한 이미지 데이터 딥러닝 개발 프로세스2 Deep Learning MNIST Example # 데이터 불러오기 import tensorflow as tf import numpy as np from tensorflow.keras.datasets import mnist (x_train, t_train), (x_test, t_test) = mnist.load_data() print('\ntrain shape = ', x_train.shape, ', Train label shape = ', t_train.shape) print('\ntest shape = ', t_train.shape,', test label shape = ', t_train.shape) print('\ntrin label = ', t_train) # 학습 데이터 정답 출력 print..
MNIST를 활용한 이미지 데이터 딥러닝 개발 프로세스 MNIST MNIST 데이터는 28 x 28 크기의 숫자 이미지와 0~9까지의 정답으로 이루어져 있으며, 총 60000개의 학습데이터와 10000개의 테스트 데이터로 구성되어 있다. MNIST는 딥러닝을 배울 때 처음 배우는 'Hello, World'같은 존재임 Architecture 입력층 : 입력층에는 28x28 크기를 가지는 2차원 이미지 데이터를 1차원 벡터로 변환해야 함, Flatten() 함수를 이용해서 28x28 크기의 2차원 이미지를 784개(28x28)의 길이를 갖는 1차원 벡터로 변환해서 은닉층으로 전달함 은닉층 : 딥 러닝 아키텍처는 일반적으로 1개 이상의 은닉층으로 이루어져 있으며 각각의 은닉층은 내부에 많은 노드(node)로 구성됨. 이러한 은닉층 개수와 노드 개수는 전형적인 하이..
이항 분류 Binary Classification 딥러닝 예제 # 데이터 생성 import tensorflow as tf import numpy as np x_data = np.array([...]).astype('float32') t_data = np.array([...]).astype('float32') # 모델 구축 model = tf.keras.models.Sequential() model.add(tf.keras.layers.Dense(8, input_shape(1,), activation = 'sigmoid') # 은닉층 8개 노드, 입력층 노드 1개 model.add(tf.keras.layers.Dense(1, activation = 'sigmoid') # 출력층 1개 노드 # 모델 컴파일 model.compile(tf.keras.optimizers.SG..

반응형