딥러닝 24

CNN(Convolutional Neural Network) Pooling

https://seonggongstory.tistory.com/151 CNN(Convolutional Neural Network) 컨볼루션 CNN이란 CNN은 이미지(영상)를 분석하기 위한 패턴을 찾아 이를 직접 학습하고, 학습한 패턴을 이용하여 이미지를 분류한다. CNN은 Convolution Layer, Pooling Layer(Sub Sampling), Fully Connected Layer 를 사용하여 seonggongstory.tistory.com pooling이란 컨볼루션을 통해 나온 피처맵의 크기를 다시 리사이징하여 새로운 레이어를 도출해내는것을 의미한다 pooling에는 최댓값을 뽑아내는 max pooling, 평균값을 뽑아내는 mean pooling등 다양한 종류가 있다. 위사진은 max..

Tensorflow : MNIST 손글씨 숫자예측 ANN으로 모델링 하기

import numpy as np import matplotlib.pyplot as plt import pandas as pd from PIL import Image %matplotlib inline import tensorflow as tf from tensorflow.keras.datasets import mnist from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Dropout, Activation from tensorflow.keras.optimizers import Adam from tensorflow.keras.utils import to_categorical (X_train, y_t..

CNN(Convolutional Neural Network) 컨볼루션

CNN이란 CNN은 이미지(영상)를 분석하기 위한 패턴을 찾아 이를 직접 학습하고, 학습한 패턴을 이용하여 이미지를 분류한다. CNN은 Convolution Layer, Pooling Layer(Sub Sampling), Fully Connected Layer 를 사용하여 사람의 시각처리방식을 모방한 딥러닝 학습 모델이며, 이미지(영상) 분류에 적합한 딥러닝 모델이다. 컨볼루션이란 이미지의 특징을 추출하고 추출한 특징을 피처맵으로 나타내주는 공식 인풋 이미지 커널,필터,피처디텍터 피처맵 (1*0)+(0*1)+(1*0)+(1*1)+(0*0)+(0*-1)+(0*0)+(1*1)+(1*0)=2 쉽게 인풋에서 피처맵까지의 과정이라고 생각하면된다

딥러닝 하이퍼 파라미터 용어 : validation_data란

기존 모델링 학습중 epoch시 마다 테스트를 하는 validation 데이터를 처리할때 train데이터의 일부를 활용하는 방법을 사용을 했다(validation_split) validation_data는 단순학습이 아니고 따로 평가를 위해 데이터를 준비하는 경우를 의미하며 정확도를 올리는 과정이다. history 기능을 사용해 단순히 train데이터의 loss와 accuracy만 가지고 판단하기에는 overfitting의 문제를 거를 수 없다. 따라서 별도의 validation_data의 loss와 accuracy를 함께 확인함으로써 실제 test 데이터에서의 예측을 보다 정확히 할 수 있다. epoch_history = model.fit(X_train , y_train , epochs=10 ,vali..

에포크 학습 데이터/밸리데이션데이터와 오버피팅

def build_model(): model = Sequential() model.add( Flatten() ) model.add( Dense(128, 'relu') ) model.add( Dense(64, 'relu') ) model.add( Dense(10, 'softmax')) model.compile('adam', 'sparse_categorical_crossentropy', ['accuracy']) return model model = build_model() epoch_history = model.fit(X_train, y_train, epochs= 30 , validation_split= 0.2 ) 모델링을 하면서 에포크의 숫자를 너무 과하게 할경우 epoch_history.history.k..

Tensorflow 이미지분류(ANN) 모델링 하기

mnist = tf.keras.datasets.fashion_mnist ( X_train,y_train ) , ( X_test , y_test ) = mnist.load_data() 기존 텐서플로우 안에 존재하는 이미지 딥러닝 세트 6만장 사진 28행 28열 (컬러 사진은 rgb값까지 포함해서 뒤에 3이 하나 더붙음) 이미지값은 숫자로 되어있다. 0부터 255까지의 숫자로 되어있다. 그림으로 보면 이런식 X_train = X_train /255.0 이미지란 어짜피 0~255 사이숫자이기때문에 최대값으로 나눠버리면 그게 노말라이징 그리고 255.0 으로 하는이유는 딥러닝엔 float으로 해야됨 int값은 잘 안됨 import tensorflow as tf from tensorflow.keras.models..

Tensorflow 이미지분류(ANN) 과 Flatten

Artificial Neural Network 알고리즘으로 이미지셋 데이터를 표 형태의 데이터로 변형해서 원하는 아웃풋을 얻어내는 알고리즘을 CNN이라고 한다. flatten을 사용하는 이유? cnn에서 이미지를 행렬로 나타낼때 이 데이터는 2차원 데이터로 이루어저 있어서 이걸 다시 1차원으로 바꿔주는 작업을 Flatten 라이브러리라고 한다 이미지 모델링 중에 flatten이 없다면 .당연히 오류