PowerAI 노트북을 이용한 이미지 인식 학습시키기

Summary

이 코드 패턴은 IBM의 새로운 PowerAI 오퍼링을 활용하려는 개발자를 위해 작성되었습니다. IBM은 Jupyter Notebook을 사용하여 IBM POWER8® 시스템에서 TensorFlow Inception 모델을 사용한 전이 학습 (transfer learning) 의 예를 소개합니다. 이 노트북 환경에서 주어진 JPEG 이미지 파일로부터, 수영장이 딸린 주택과 그렇지 않은 주택을 분류하는 나만의 이미지 분류기를 만드는데 중점을 둘 것입니다. 이 과정은 강력한 딥러닝 애플리케이션을 효율적으로 구축할 필요가 있지만, 시간이나 데이터 사이언스 경험이 아직 풍부하지 않은 애플리케이션 개발자에게 적합한 과정일 것입니다.

Description

전이 학습(transfer learning)은 사전에 훈련된 모델 (이미 대규모 데이터 세트에 기반한 학습을 통해 도출된 네트워크의 가중치 및 변수)에, 자신의 데이터 세트로 모델을 미세 조정하는 프로세스입니다. 사전 훈련된 모델로 특징을 추출 (feature extraction)하고, 네트워크의 마지막 레이어를 (문제 공간의 성격에 따라) 본인의 분류기로 바꿉니다. (경사 하강법 (gradient descent) 최적화 과정 동안 가중치를 변경하지 않음으로써) 다른 모든 계층의 가중치를 고정하고 네트워크를 학습합니다. 본 예제에서는, 이미지 분류를 위해 사전 학습된 Inception-v3 모델을 사용했습니다. 이 모델은 두 부분으로 구성됩니다.

  • 컨볼루션 신경망을 활용한 특징 추출
  • 완전 연결 (fully connected)레이어와 소프트맥스(softmax) 레이어로 분류

사전 학습된 Inception-v3 모델은 1,000 개의 클래스로 일반 객체를 인식 할 수 있는 최첨단 정확도를 제공합니다. 모델은 우선 입력 이미지로 부터 특징을 추출하고 그러한 특징을 기반으로 분류합니다. 우리는 이 사전 학습된 모델을 기반으로 하여 수영장이 딸린 주택과, 그렇지 않은 주택을 분류하기 위한 추가 학습을 합니다.

이 개발 과정을 통해, Nimbix 및 PowerAI 환경의 Jupyter Notebook에서 모델을 로드하고 실행하는 방법을 이해하고, 전이 학습을 알수 있게 되는데, TensorFlow Inception 모델을 활용하여 여러 이미지로 부터, 나만의 분류기를 만들고, 해당 분류기를 테스트하고 시연할 수 있게 됩니다.

Flow

flow

  1. 개발자는 PowerAI 시스템에서 실행되는 제공된 쥬피터 노트북을 로드합니다.
  2. 제공된 예제 데이터 세트는 수영장이 있는 주택과 수영장이 없는 주택을 인식하는 사례를 보여줍니다.
  3. 쥬피터 노트북에서 기존 모델을 활용 및 사용자 정의 분류기를 만들기 위해, 텐서플로우 Inception 모델 및 재학습을 위한 예제 데이터를 사용합니다.
  4. 노트북은 원래 모델과 새 모델을 사용하여 결과를 비교합니다.

Instructions

이 패턴의 각 단계별 자세한 설명은 README 파일에서 확인하실 수 있습니다. 단계는 아래와 같습니다.

  1. PowerAI 플랫폼에 24 시간 무료로 액세스 할 수 있습니다.
  2. Jupyter 노트북에 액세스하고 시작합니다.
  3. 노트북을 실행하십시오.
  4. 결과를 분석하십시오.
  5. 저장하고 공유하세요.
  6. trial을 종료하세요.