CNN 성능향상

Ruinak·2021년 9월 23일
1

Machine Learning

목록 보기
8/8
post-thumbnail

CNN Example (MNIST, Fashion MNIST, CIFAR-10)

CNN 구조 => 특징 추출기(Feature Extractor) + 분류기(Classifier)

TensorFlow CNN API – Conv Layer . Pool Layer

TensorFlow CNN API – Flat Layer . Dense Layout . Dropout Layer

TensorFlow CNN API- Accuracy . Loss

Accuracy Comparison – ANN vs CNN

Training-Data CIFAR 10

CIFAR 10 개요

  • airplane, automobile, bird 등 10개의 정답으로 분류된 이미지이며, 딥러닝 학습을 위해 총 50000개의 학습데이터와 10000개의 테스트 데이터로 구성
  • 이미지는 32 X 32 크기의 작은 컬러 이미지, 즉 30 X 32 X 3 형상(shape)을 가지는 아주 작은 컬러 데이터들로 구성

정확도 비교 – MNIST. Fashiom MNIS . CIFAR 10

CIFAR 10 정확도 및 손실

CNN 성능향상(오버피팅 ↓ . 정확도 ↑)

CNN 성능 향상 – Image Data Augmentation

Image Data Augmentation

  • 원본 이미지에 적절한 변형을 가해서 새로운 데이터를 만들어 내는 방식
  • 즉 원본 이미지를 상하좌우 방향으로 조금 이동하거나, 약간 회전 또는 기울이거나 또는 확대 등 여러가지 변환을 조합해 이미지 데이터 개수를 증가시킴

Image Data Augmentation 장점

  • 다양한 데이터를 입력시킴으로써 모델을 더욱 견고하게 만들어 주기때문에 실제
    데이터를 가지고 테스트 시에 더 높은 성능을 기대할 수 있음
  • CNN 모델을 학습시키기에 수집된 데이터가 적은 경우에 강력한 힘을 발휘함

ImageDataGenrator(1)

  • 케라스에서는 이미지 데이터 보강을 위한 ImagedataGenrator 제공
  • 주요 인수 : rotation_range, width_shift_range, height_shift_range, rescale, shear_range, fhorizontal_flip 등
  • flow(), flow_directory() 함수를 통해 이미지 데이터를 보강할 수 있음

ImageDataGenrator(2)

flow()함수 예제

flow_from_directory() 함수 예제

성능 향상을 위한 CNN 구조 및 데이터(오버피팅 ↑ . 정확도 ↓)

CNN 성능 향상을 위한 개발과정

CIFAR 10 Example2

CNN 성능향상(오버피팅 ↓ . 정확도 ↑)

profile
Nil Desperandum <절대 절망하지 마라>

0개의 댓글