의료 영상 데이터 분석 기법 - CNN 구조와 특징
1981년 노벨 생리학상은 데이비드 허블과 토르스텐 비셸에게 주어집니다. 두 연구자는 고양이를 이용한 포유류의 대뇌반구 특히, 시각피질과 시각 정보화 과정에 관한 연구를 수행하였습니다. 이 실험은 고양이의 대뇌 시각피질에 탐침을 설치하고 머리를 고정한 상태에서 화면에 기다란 막대를 크기와 방향을 변화시켜가며 시각피질 뉴런의 반응을 기록하였습니다. 특정 굵기와 방향에 해당하는 막대가 있을 때, 관측장비의 뉴런의 반응이 치지 직하는 소리와 함께 나타났습니다. 이 막대를 화면에서 이리저리 이동시키더라도 뉴런은 반응하였으나 크기를 변화시키거나 회전시키게 되면 더 이상 뉴런이 반응하지 않았습니다. 이를 통해 포유류의 시각 정보화 과정에는 컨볼루션이 사용된다는 것을 밝혔습니다. 최근 컴퓨터 비전 분야에서 많이 사용하는 CNN구조는 이런 인간의 시각 정보화 과정을 모사하여 만들어졌으며, 영상 분류, 얼굴 인식 등의 영역에서 인간보다 뛰어난 성능을 보여주고 있습니다.
컨볼루션
컨볼루션이 수행되는 과정은 아래 그림과 같습니다. 우선 컨볼루션 커널을 준비하고 영상을 겹칩니다. 겹치는 영역에서 컨볼루션 커널을 각각 영상 값을 서로 곱한 후 모두 더합니다. 그 값을 중심에 적고 영상에서 옆으로 이동하여 같은 과정을 반복합니다. 이러한 컨볼루션이 영상에서 어떤 역할을 할 수 있을까요. 딥러닝 이전에 영상처리 분야에서도 영상의 경계를 찾거나 노이즈를 제거하거나 선명하게 하는데 컨볼루션이 사용되어 왔습니다. 그러나 컨볼루션을 이용한 인공신경망이 기존에 영상처리 방식과 다른 점은 목적에 알맞은 컨볼루션 커널을 스스로 결정한다는 점입니다. 기존에는 전문가가 직접 컨볼루션 커널을 디자인하여 사용하였습니다. 또한 컨볼루션은 특징을 추출하는 기능을 가지고 있습니다. 컨볼루션 커널과 비슷한 형태의 영상 영역은 컨볼루션을 수행하게 되면 높은 값을 가지게 됩니다. 예를 들어 차가 있는 영상을 찾는 인공지능 모델을 만든다고 할 때, 동그란 원 형태의 컨볼루션 커널을 만들어 적용하면 타이어가 있는 위치가 큰 값을 가지게 됩니다. 이러한 큰 값들이 몇 개 이상 영상에서 발견되면 '차'라고 할 수 있는 특징 값으로 기능할 수 있습니다.
CNN 구조
딥러닝과 가장 큰 특징은 영상 데이터 자체를 입력으로 가진다는 사실입니다. 기존 기법들은 영상에서 전문가들이 특징값이라고 하는 값들을 추출하고 이를 이용하여 학습을 수행하였습니다. 딥러닝에서는 이러한 특징 값을 추출하는 과정이 전문가를 통해서가 아닌 데이터에서 자동적으로 이루어집니다. 이러한 변화는 실로 엄청난 것입니다. 예전에는 차를 분류하는 알고리즘을 가지고 있고, 고양이를 분류하는 알고리즘을 다시 만들어야 했습니다. 차의 특징을 계산하는 부분을 고양이의 특징을 계산하도록 고양이 전문가가 다시 설계해야 했으니까요. 그러나 딥러닝에서는 이러한 과정이 필요 없습니다. 다만 고양이 영상을 같은 인공지능 모델에 넣어 학습을 수행하기만 하면 됩니다. 이러한 CNN 구조는 입력영상에서 컨볼루션을 통해 자동적으로 특징 값을 추출하고 이렇게 추출된 특징 값을 기반으로 간단한 분류 인공신경망 모델을 결합하는 형태로 이루어져 있습니다. 간단한 분류 인공신경망의 예는 다층 퍼셉트론 모델입니다. 히든 층이 한 개, 두 개 정도로 포함된 인공 신경망 모델입니다. 특징을 추출하는 컨볼루션 계층은 아래와 같은 수학적으로 단순한 형태로 구성되어 있습니다. 컨볼루션, 액티베이션, 풀링 이러한 세 개의 간단한 형태로 이루어져 있습니다.
CNN 모델의 진화과정
CNN 모델의 진화과정을 연도순으로 살펴보도록 하겠습니다. 첫 번째는 AlexNet으로 2012년 ImageNET challenge에서 우승한 모델입니다. 우리나라에서는 2016년 알파고 사건으로 인해 인공지능 기술이 사회에 엄청난 영향을 주었다면 미국에서는 2012년이 그러한 충격을 준 시기였습니다. 그 충격은 알렉스그리체프스키라는 박사과정 학생이 구글에 여름 인턴을 가서 몇 달만에 ImageNET 챌린지에서 우승한 사건에서 시작되었습니다. 2000년 중반부터 이 챌린지에서 영상 분류 성능은 큰 향상 없이 정체되어 있었는데, 이렇게 짧은 시간에 큰 폭으로 향상되었기 때문입니다. 11X11 크기의 커널을 처음 사용하고 다음으로 맥스 풀링 이후에 5X5 커널을 사용하는 구조로 되어있습니다. 다음은 VGG16으로 2013년 ImageNET challenge에서 우승한 모델입니다. 이 모델은 영국 옥스퍼드 대학에서 개발된 CNN 모델로 3X3이라는 작은 커널을 2~3번 연속해서 사용하고 맥스 풀링을 수행하는 단순한 구조로 이루어져 있으며, 현재까지도 동영상 분석 모델의 pretrained 모델로 많이 사용되고 있습니다. 다음은 GoogLeNet으로 2014년 ImageNET challenge에 우승한 모델입니다. 이 모델은 구글에서 개발될 CNN 모델입니다. 이 모델의 특징은 인셉션 모듈을 사용한 것입니다. 인셉션 모듈은 여러 번 개선을 거쳐 오늘에까지 이루고 있는데요. 그 특징은 여러 스케일의 특징 값을 한 층에서 함께 볼 수 있다는 것입니다. 허블의 고양이 실험을 생각해보면 막대의 굵기가 커지면 컨볼루션 커널과 맞지 않아 반응하지 않습니다. 그런데 고양이를 조금 멀리 위치하게 하거나 영상을 축소하여 보여준다면 컨볼루션 커널과 다시 맞을 수 있습니다. 네 다음은 ResNet으로 2014년 ImageNET challenge 우승 모델입니다. 마이크로소프트사에서 소개한 CNN 모델로 이때까지 CNN 모델들이 깊이가 더 깊어지면 학습이 어려워지는 문제를 발견하고 이를 Residual connection을 통해 해결책을 제시하였습니다. 기존의 VGG 네트워크의 경우 19 레이어 정도가 가장 깊은 구조였으나, ResNet은 50에서 시작하여 152 레이어까지 더 깊어질 수 있게 되었습니다. 영상 연구에서 베이스라인 구조로 여전히 많이 사용되고 있습니다. 다음은 DenseNet으로 2016년 ImageNET challenge에서 우승한 모델입니다. 벤지오 교수님 연구실에서 제안한 CNN 모델로 ResNet은 Residual connection이 addition 영상으로 이루어져 있었다면, DenseNet은 Channel-wise concatenation을 사용하였습니다. 이러한 구조 장점은 각 컨볼루션 층이 여러 계층에서 얻어진 다양한 특징 정보를 통합적으로 고려할 수 있다는 것입니다. 다만 이렇게 하기 위해 채널의 수가 뒤로 갈수록 많아지고 크기도 달라, 이를 보정하는 추가적인 작업이 필요합니다. 그리고 채널 수를 줄이기 위하여 병목 현상을 이용합니다. 체액 스퍼드 데이터셋에서 높은 성능을 보여주었습니다. 다음은 EfficientNet으로 2019년 ImageNET challenge에서 우승한 모델입니다. CNN 구조는 컨볼루션 계층을 얼마나 쌓고 맥스 풀링을 수행할 것인가라는 깊이 정보와 각 컨볼루션 층에서 몇 개의 커널을 만들 것인가라는 너비와 같은 설계인자를 가지고 있습니다. 기존에는 연구자들마다 실험적으로 또는 자의적으로 이 깊이와 너비를 설정하고 사용하여 왔습니다. 이러한 설계인자를 자동적으로 데이터에 맞게 설정할 수 없을까 고민하기 시작하였고 구글에서 이러한 설계인자를 자동적으로 찾아주는 뉴럴 아키텍처 서치라는 나스 기법을 적용하여 나온 CNN 모델입니다. 이 CNN 모델의 성능은 기존의 모델과 비교하여 월등하였기 때문에 많은 응용 연구들에서 사용되고 있습니다.
'의료 인공지능 전망, 의료 영상 분석 방법, 의료 데이터 분석 기법' 카테고리의 다른 글
의료 영상 데이터 분석 기법 - 서포트 벡터 머신, 결정 트리, 랜덤 포레스트 모델 (0) | 2022.08.02 |
---|---|
의료 영상 데이터 분석 기법 - 로지스틱 모델 (0) | 2022.08.02 |
의료 영상 데이터 분석 - 지도 학습의 종류와 인공지능 학습 (0) | 2022.08.01 |
의료 데이터 분석 기법 - CNN 기반의 딥러닝 모델(Segmentation, Detection 모델) (0) | 2022.08.01 |
비정형 텍스트 분석 기법과 모델 (0) | 2022.08.01 |
댓글