본문 바로가기
데이터 어쩌구/기술 써보기

[kaggle] Painting Vs Photograph Classification

by annmunju 2022. 9. 1.

 

사진과 그림을 구분해주는 모델 따라하기

 

[Painting or Photo]Guess right?_Deep Learning

Explore and run machine learning code with Kaggle Notebooks | Using data from Painting Vs Photograph Classification Dataset

www.kaggle.com

 

순서

  1. Module Import
  2. 데이터 목록 확인
  3. gray scale한 array를 dataset으로 만들기
  4. 데이터셋 합치기
  5. train test split
  6. normalize 및 모델 학습에 적합한 형태로 변환
  7. 사진, 그림 이렇게 두가지 카테고리로 변환
  8. 모델링 (Sequential)
  9. 모델 컴파일 (optimizer)
  10. 모델 fit
  11. 그래프로 정확도와 손실을 확인
  12. 예측 및 결과 확인 test

모델링 관련 함수 정리

 

사용량 확인 함수

nvtop gpu : 사용량 체크 커멘드 라인 함수

htop cpu : 사용량 체크 커멘드 라인 함수keras 컨볼루션 신경망

 

keras 컨볼루션 신경망 (참고)

활성화 함수

노드에 입력된 값들을 비선형 함수(활성화 함수)에 통과시킨 후 다음 레이어로 전달 비선형 함수는 딥러닝 모델 레이어 층을 깊게 (은닉층) 사용할 수 있음

  1. relu (Rectified Linear Unit, 경사함수)
    • x가 0보다 크면 기울기가 1인 직선, 0보다 작으면 함수 값이 0
  2. MaxPooling2D : 폴링 연산. 4차원 데이터를 입력으로 받고 출력도 4차원 데이터로 출력
  3. Flatten : 주요 특징 추출해서 전결합층에 전달하기 위해 1차원 자료로 변환
  4. softmax : 출력층에서 사용되는 함수. 다중 클래스 분류 모델을 만들때 사용.
    • 결과를 확률로 해석할 수 있게 변환해주는 함수

 

Optimizer (참고1)(참고2)

loss function의 최소값을 찾는 것을 목표로 최적화하는 알고리즘

  • Adam (Adaptive Moment Estimation)

 

Q&A

  • CPU vs GPU
    • CPU는 거의 모든 계산을 사용 할 수 있으나, 병렬 컴퓨팅에 적합하지 않음. 순차적인 데이터를 사용하는 경우 유용할 수 있음
    • GPU는 이미지 생성과 조작을 위한 전자 칩으로 딥러닝에서 병렬 구조를 훈련하는데 빠른 연산이 가능함. 신경망과 같은 복잡한 다차원의 형식에서 학습 적합함. 다만 비싸고, 에너지 소비가 큼.
  • GPU 사용하지 않고 CPU만 사용할 경우
728x90