처음 딥러닝 도입을 결정하고 가장 어려웠던 점은 딥러닝 자체에 대한 이해였다.
신경망은 뭘까 경사하강법은 뭐지 loss function 은 뭘까
그리고 대게 설명은 무척이나 어렵게 되어 있었다.
이쯤 1차 포기 시점이었는데 이해하고 모든 걸 하기에는 시간이 부족했고 쉽게 해결될 문제도 아니었다.
여기서 발상의 전환을 하게 된다.
개와 고양이 이런 사진 분류는 이미 잘해주는 시스템(논문)이 있으니 난 그걸 쓰기만 해도 충분하지 않을까?
그렇게 tensorflow 와 inception을 만나게 되었다.
tensorflow는 쉽게 이야기하면 머신 러닝 시스템이다.
학습 코드를 작성하여 tensorflow를 이용해 실행하고 로그를 이용해 결과를 보거나 할 수 있다.
개와 고양이 분류 예제를 찾아보니 코드를 전혀 수정하지 않아도 폴더 이름과 라벨만 수정해주면 바로 실행해볼 수 있었다.
설명을 보니 일명 CNN ( Convolution Neural Network )에서 가장 인기 있는 모델 중에 하나인 inception v3을 이용한 코드였다. (물론 CNN, inception 은 당시에 전혀 이해를 못했다.)
가볍게 이미지 분류를 체험해보자
이미 텐서플로우는 이런 사람들을 위해 튜토리얼을 제공하고 있다.
코드 한 줄 작성 없이 바로 이미지 분류를 해보자.
우선 tensorflow/models 저장소를 받는다.
(앞으로도 우리는 이 저장소에서 많은 일을 하게 된다.)
이미 튜토리얼 파일로 잘 되어 있는 /tutorials/image/imagenet 로 이동한다.
그리고 필요한 tensorflow, numpy 라이브러리를 설치한다.
(여기서 잠깐 tensorflow는 보통 버전 벌로 다르기 때문에 anaconda 같은 것을 이용한다)
바로 고양이 사진 한 장 분류해보자
각 고양이 종류들이 나온다.
고양이만 분류가 될까? 이번엔 강아지 사진을 해봤다.
각 강아지 종류들이 나온다.
이렇게 코드 한 줄을 작성하지 않아도 기본적인 분류는 가능하다.
앞으로는 이런 코드를 이용해 내가 원하는 사진들을 원하는 카테고리로 분류하는 작업을 할 것이다.