본문 바로가기

6.수학과 알고리즘

CNN 이미지 식별 알고리즘

들어가기

컨볼루션 신경망 이용한 이미지 인식 알고리즘이다. 이전에 이미지 인식 알고리즘의 성능 한계를 뛰어넘는 알고리즘이다. CNN 이미지 인식 알고리즘이 무엇인지 개념을 살펴볼려고 한다.

작성자: ospace114@empal.com, http://ospace.tistory.com/

컨볼루션 신경망(CNN)

2006년 빈지오(Bengio)팀의 연구로 이미지 식별 알고리즘에 변화가 생겼다. 또한 GPGPU로 인한 고속 연산 처리이 가능해지고 빅데이터로 인한 이미지 식별위한 학습 데이터 증가로 신경망에 의한 이미지 인식 알고리즘이 가능해졌다. 학습 데이터가 증가로 인해 학습 시간이 오래걸린다. 이를 GPGPU에 의해서 비약적으로 빠르게 처리되었다.

신경망을 이용한 이미지 인식에 사용한 구성은 컨볼루션 층과 풀링 층으로 여러 층으로 연결되어 구성된다. 컨볼루션 층은 이미지 국소 부분 추상화을 하고 풀링 층은 국소부분 통합에 사용된다. 풀링 층에는 맥스풀링이 있다. 이렇게 여러 층의 신경망 구성을 심층 신경방으로 더 복잡한 작업을 처리할 수 있고, 이미지 식별도 가능해졌다.

이미지 인식 알고리즘

이미지 인식 알고리즘 방식을 간단하게 살펴보겠다. 신경망에서는 학습을 통해서 이미지 식별을 위한 정보를 생성하고 판정을 통해 이미지를 식별을 한다.

학습 처리는 다음과 같은 순으로 진행된다.

  1. 이미지와 종류를 쌍으로 하는 학습데이터 준비
  2. 인공 신경망(CNN) 준비
  3. 훈련 데이터로 신경망 학습

훈련 데이터는 이미지와 이미지 식별 정보 쌍으로 구성된다. 특별한게 처리 작업이 없다.
다음 판정 처리는 단순한다.

  1. 미지의 이미지를 입력
  2. 출력 값으로 어떤 종류인지 판정
    CNN 이미지 인식 알고리즘의 단점도 있다. 훈련 데이터가 적으면 식별 성능이 나오지 않는다. 또한 식별 결과를 튜닝하기가 어렵다. 이전에 살펴보았던 BoF 알고리즘과 반대이다. 성능적인 측면에서는 CNN 이미지 식별 알고리즘이 좋지만, 데이터가 적다면 더 좋지않을 수 있다.

Krizhevsky et al. 모델

대표적인 CNN 이미지 식별 알고리즘으로 총 8개 계층으로 1000 클래스 이상 분류 가능하다. 5개의 CNN, 몇 개의 맥스풀링 층, 2개 전역 연결 층으로 구성되어 있다. 총 6천만 개 파라미터와 5십만개 신경을 가진다.

출처: Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, ImageNet Classification with Deep Convolutional Neural Networks , 2012, p.5

마무리

CNN을 이용한 이미지 식별 알고리즘은 어떻게 분류되는지 정확히 알 수 없지만, 잘 분류해준다. 이전에 알고리즘은 어떻게 식별하는지 방법을 설명할 수 있지만, CNN은 이미지 특징을 추출한다고 해지만, 어떻게 이런 특징이 이미지를 식별하는지 설명하기 힘들다. 어떻게 보면 이미지를 넣었더니 결과가 나왔다라고 할 수 있다. 물론 내부적으로 이미지 식별 성능을 높이기위해서 다양한 변경을 하지만 넣었더니 성능이 좋아졌다라는 경험적인 부분이 많다. 물론 최근에는 이런 부분에 대한 해석이 되면서 어떤 효과가 있는지 밝혀졌지만, 파라미터나 구성이 조그만한 변경으로도 전혀 다른 결과가 나오기에 기존 알고리즘과는 다르다. 그러나 다른 알고리즘에 비해서 알고리즘 과정은 매우 단순하다. 즉, CNN 신경망 구성이 핵심이 된다.

부족한 글이지만 여러분에게 도움이 되었습니다. ^^ 감사합니다. ospace.

참고

[1] 다케이히로마사, 가장빨리만나는 딥러닝 with Caffe, 2016

[2] http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks

[3] image database, http://image-net.org/,

반응형

'6.수학과 알고리즘' 카테고리의 다른 글

BoF 알고리즘  (0) 2024.03.10
Blockchain  (4) 2024.03.07
[javascript] 펜윅 트리 Fenwick tree  (0) 2023.10.20
나비에-스토크스(Navier-Stokes) 방정식  (0) 2023.01.03
랑그랑주 역학  (0) 2022.12.28