앞서 AI와의 예술 작품에 대해 포스팅하였다.
사람들이 쉽게 접 할 수 있고, 경험 할 수 있어 많은 사이트들이 생겨나고있다.
예술 작품을 창작하는 AI에 적용된 대표적인 모델을 소개하려한다.
CNN(Convolutions Neural Networks, 합성곱신경망)
CNN 구조는 입력 데이터가 이미지란 가정에 이미지 데이터가 갖는 특성들을 인코딩 할 수 있다.
이 구조는 학습에 필요한 parameter의 수를 크게 줄일 수 있어 효과적으로 모델을 학습할 수 있다.
위 예시 그림을 통해 이미지의 특징을 추출하는 부분과 이미지를 분류하는 부분으로 이루어진
일반적인 CNN 모델을 확인할 수 있고,각 부분별로 어떻게 계층을 구성하는지 살펴보려한다.
Feature extraction
Feature extraction은 이미지의 특징을 추출하는 역할을 담당한다.
Feature extraction에서 사용하는 대표적인 계층들은 Convolution layer + ReLu 와 Pooling이다.
Convolution layer 란 입력 특성 맵의 타일을 추출한 다음, 이 타일에 필터를 적용하여 새로운 특성을 산출한다.
그렇게 생성된 출력 특성 맵은 입력 특성 맵과 크기와 깊이가 달라질 수 있다.
Pooling은 처리 시간을 줄이기 위해 Convolution 된 특성을 다운샘플링하는것으로,
가장 중요한 특성 정보만 남겨 특성 맵의 차원 수를 줄이는 것이다.
일반적으로 많이 사용되는 알고리즘을 MaxPooling이라고 하며
가장 큰 값, 가장 영향력이 큰 값을 선택하여 차원 수를 줄이는 것이다.
Image classification
이미지 분류하는 단계 Fully connected layer와 SoftMax를 이용한다.
Fully Connected layer에서는 Convolution을 통해 추출된 특성을 기반으로 분류한다.
최종 Fully Connected layer에는 SoftMax 활성화 함수가 포함되어 있다.
여기서 SoftMax란, Fully Connected layer에서 입력 받은 값을
분류하고 싶은 클래스의 수만큼 출력을 0~1사이의 값으로 정규화하여 출력을 구성한다.
그리고 그 출력 값들의 총 합은 항상 1이되게한다.
정규화된 출력값 중 가장 큰 출력 값을 가지는 클래스로 분류를 하는것이다.
이번 포스팅에서는 예술 작품을 창작하는 AI에 적용된 대표적인 모델인 CNN에 대해 포스팅했다.
CNN 구성들을 살펴보면 여러 AI 모델 중에서도 가장 이미지의 특성을 효과적으로 이용하는 것을 알 수 있었다.
아래 링크로 CNN에 대해 더 자세히 다루고 있다.