반응형

Data Analysis & ML/Deep Learning 12

[Deep Learning][딥러닝] FunctionalAPI

이전 까지 예제에 사용했던 모델은 Sequential API를 사용한 것이었습니다. Sequential API def create_model(): model = keras.Sequential() model.add(keras.layers.Dense(units=16, activation='relu', input_shape=(13,))) model.add(keras.layers.Dense(units=1)) return model 위와 같은 Sequential API는 편리하고 직관적으로 알아볼 수 있지만, 단순하게 층을 쌓는것으로는 복잡한 인공신경망을 구현할 수 없습니다. Functional API 더 복잡한 모델을 만들어 주기 위해 Functional API를 사용합니다. Functional API는 각 층..

[Deep Learning][딥러닝] 모델저장 / Callback

모델은 아래 MNIST CNN모델을 활용 ysyblog.tistory.com/151?category=1150980 [Deep Learning][딥러닝] CNN MNIST 분류 MNIST 데이터에 CNN 적용 하이퍼파라미터 및 데이터셋 전처리 import tensorflow as tf import tensorflow.keras as keras import tensorflow.keras.layers as layers import numpy as np np.random.seed(1) tf.ra.. ysyblog.tistory.com 모델 저장 딥러닝은 모델을 만드는데 오래걸리기 때문에 이 모델을 따로 저장해 놓을 필요가 있다. 모델을 저장하는 방법은 다음과 같다. 학습이 끝난 모델의 파라미터만 저장 모델 전체..

[Deep Learning][딥러닝] CNN Image Augmentation(이미지 증식)

적은 datasets에 CNN 학습하는 경우 Data의 수가 많지 않을 때 CNN을 통한 모형 학습이 어려울 수 있음 딥러닝은 많은 수의 데이터를 통해 feature engineering 과정 없이 feature를 찾을 수 있는데 있음 하지만 모델이 작고 regularization이 잘 되어 있다면 수백 개의 샘플로도 훈련 가능 Data가 많지 않아 CNN 학습에 어려움이 있을 때 사용 가능한 방법 Data augmentation 활용 이미지의 색깔, 각도 등을 약간씩 변형하여 data의 수를 늘림 Pre-trained network의 활용 ImageNet 등에서 학습된 기존의 모형과 weight를 불러온 후 목적에 맞게 약간 수정하여 모형 생성 Data for cats vs. dogs 2013년 Kag..

[Deep Learning][딥러닝] CNN MNIST 분류

MNIST 데이터에 CNN 적용 하이퍼파라미터 및 데이터셋 전처리 import tensorflow as tf import tensorflow.keras as keras import tensorflow.keras.layers as layers import numpy as np np.random.seed(1) tf.random.set_seed(1) # 하이퍼파라미터 정의 learning_rate = 0.001 N_EPOCHS = 20 N_BATCH = 100 N_CLASS = 10 # 데이터 저장 (train_images, train_labels), (test_images, test_labels) = keras.datasets.mnist.load_data() N_TRAIN = train_images.shap..

[Deep Learning][딥러닝] CNN_MNIST분류 / 모델저장/ FunctionalAPI

Convolutional Neural Network 구현 import matplotlib.pyplot as plt # 학습결과 그래프 함수 # loss 그래프 def loss_plot(history): # plt.figure(figsize=(10,7)) plt.plot(history.history['loss'], label='Train loss') plt.plot(history.history['val_loss'], label='Validation loss') plt.title('Loss') plt.xlabel('Epoch') plt.ylabel('Loss') plt.legend() plt.show() # accuracy 그래프 def accuracy_plot(history): # plt.figure(fi..

[Deep Learning][딥러닝] CNN 개요

CNN - 합성곱 신경망(Convolutional Neural Network) DCNN (Deep Convolutional Neural Network) Overview 컴퓨터 비전(이미지, 동영상관련 처리) 에서 사용되는 딥러닝 모델 특히 이미지 분류에 가장 많이 사용된다. 일반적으로 Convolution layer, Pooling Layer, Fully-connected layer 로 구성되어 있다. Convolution layer와 pooling layer: Feature Extraction 담당 Fully-connected layer : 분류 담당 CNN 응용 이미지 분류 64*64 이미지를 입력하였을 때 고양이인지 여부 판단 2. Object detection(객체 찾기) 이미지 안의 물체를 탐색..

[Deep Learning][딥러닝] DNN 성능개선

Deep Neural Networks 모델 성능 개선 과대적합과(Overfitting) 과소적합(underfitting) 최적화(Optimization)와 일반화(generalization) 최적화(Optimization): train data에서 최고의 성능을 얻으려고 모델을 조정하는 과정 (옵티마이저가 한다.) 일반화(Generalization): 훈련된 모델이 처음 보는 데이터에서 얼마나 잘 수행되는지를 의미 과소적합(Underfitting)의 발생 epoch가 진행될 수록 train loss와 test loss(validation loss)가 모두 안 좋음 핵심 : train loss도 안좋고 test loss도 안 좋다. 모델이 너무 단순하면 train loss가 줄어들 지 않는다. 그런 경우 ..

[Deep Learning][딥러닝] DNN 분류 (DNN Classification)

Classification Fashion MNIST(MNIST) Dataset 10개의 범주(category)와 70,000개의 흑백 이미지로 구성된 패션 MNIST 데이터셋. 이미지는 해상도(28x28 픽셀)가 낮고 다음처럼 개별 의류 품목을 나타낸다: 션 MNIST와 손글씨 MNIST는 비교적 작기 때문에 알고리즘의 작동 여부를 확인하기 위해 사용되곤 하며 코드를 테스트하고 디버깅하는 용도로 좋다. 이미지는 28x28 크기의 넘파이 배열이고 픽셀 값은 0과 255 사이이다. 레이블(label)은 0에서 9까지의 정수 배열이다. 아래 표는 이미지에 있는 의류의 클래스(class)를 나낸다. 레이블 클래스 0 T-shirt/top 1 Trouser 2 Pullover 3 Dress 4 Coat 5 San..

[Deep Learning][딥러닝] DNN 회귀(DNN Regression)

데이터셋 API데이터 입력 파이프라인을 위한 패키지tf.data 패키지에서 제공tf.data.Dataset 추상클래스에서 상속된 여러가지 클래스 객체를 사용 또는 만들어 쓴다.데이터 입력 파이프라인이란모델에 공급되는 데이터에 대한 전처리 작업과 공급을 담당한다.이미지 데이터의 경우분산 파일시스템으로 부터 이미지를 모으는 작업,이미지에 노이즈를 주거나 변형하는 작업,배치 학습을 위해 무작위로 데이터를 선택하여 배치데이터를 만드는 작업텍스트 데이터 경우원문을 토큰화하는 작업임베딩하는 작업길이가 다른 데이터를 패딩하여 합치는 작업데이터셋 API 사용 세단계데이터셋 생성from_tensor_slices(), from_generator() 클래스 메소드, tf.data.TFRecordDataset 클래스를 사용해..

[Deep Learning][딥러닝] DNN (Deep Neural Network)

DNN (Deep Neural Network) 유닛/노드/뉴런 (Un1qit, Node, Neuron) Tensor를 입력받아 tensor를 출력하는 데이터 처리 모듈 Input -> Output 입력 값에 Weight(가중치)를 곱하고 bias(편향)을 더한 뒤 활성화 함수를 거쳐 출력한다. 레이어/층(Layer) Input Layer: 입력값들을 받아 Hidden Layer에 전달하는 노드들로 구성된 Layer. Output Layer: 예측결과를 출력하는 노드들로 구성된 Layer Hidden Layer Input Layer와 Output Layer사이에 존재하는 Layer. 데이터의 패턴을 찾는 역할을 한다. 대부분 Layer들은 가중치(weight)를 가짐 (dropout, pooling과 같이..

반응형