의료영상은 대부분 3차원
1. 본 차시에서 3차원 Convolution에 대해 살펴볼 것.
2. 본 차시 뒷부분에서는 demographic score어떻게 함께 이용할 수 있을지 살펴볼 것.
기본적인 idea는 2D와 상당히 비슷.
3D volume이 있고, 3D fiter를 만들어야 하는 상황.
2차원이라면, (앞의 예시) 6x6의 2차원 영상이미지에 3x3필터 사이즈
convolution 수행하면 padding 하지 않고 stride 1로 하면
4x4영상이 만들어진다.
여기에 RGB영상도 보기는 했었지만(채널 3개, 6x6x3),
필터가 그 만큼 늘어났다.(3x3x3)
아웃풋은 변동이 없었다.(4x4)
이런 필터를 16개 학습했다한다면,
아웃풋에 16개의 피처맵이 나온다(4x4x16)
<1>다시 여기에 3x3필터를 쓰게되면(3x3x16(뎁스16)을 쓰게 될것이다.)
아웃풋은 2x2.
이런 필터를 32개쓰면 아웃풋은 2x2x32.
3D도 마찬가지이다.
Volume의 길이를 6x6x6으로 놓고,
3D 필터는 3x3x3필터가 된다.
의료영상은 대부분 컬러가 아닌 intensity영상이기에 채널은 1개이다.
그렇기때문에 6x6x6x1(채널1개) 영상이 3x3x3필터와 convolution이 된다.
filter도 역시 채널 1개가 된다.
결국 아웃풋은
4x4x4이다.
이런 필터를 여러개 사용할 수 있다.
16개라고 가정한다면
아웃풋은 4x4x4x16
<1>처럼, 3x3x3x16(뎁스)필터를 여기서도 수행할 수 있다.
3x3x3x16(채널개수와 같다.)필터와 convolution 가능.
이것을 수행하면,
아웃풋 2x2x2
만약 필터 3x3x3x16을 1개가 아닌 32개 사용한다면,
아웃풋은 2x2x2x32
영상이 intentsity 이미지이기에 채널이 1개인데,
type이 다른 영상이 들어오는 경우가 있다.
volume이 MRI의 T1-weighted나 T2-weighted로 얻어진 영상일 수 있다.
이 영상들을 서로 다른 채널의 영상으로 놀 수 있다.
이런 경우 마지막 부분이 달라지는 것이다.
처음 볼륨은 6x6x6x1 -> 6x6x6x2로 변경
필터 사이즈도 3x3x3x1 -> 3x3x3x2로 변경
3차원에 대해 알아봤지만 1차원 신호도 비슷하게 적용가능하다.
신호가 6개(하단 1차원배열)있다고 가정하면,
여기에 3개의 값을 filter한다고 볼 수 있다.
6x1 * 3x1 -> 4x1
필터 여러개라면
6x1 * 3x1xn개 -> 4xn
이 과정을 반복하면 2x32 아웃풋
차원이 달라질 뿐,
convolution은 비슷하게 수행가능하다.
CNN구조는 그대로 이용가능하다.
ResNet을 이용한다면,
ResNet의 구조의 convolution part를 3차원으로 바꿔주는 것 뿐.
3차원 컨볼루션은 지금까지 설명한 것처럼 할 수 있다.
pooling도 3차원으로 진행
이런식으로 convolution - pooling과정 반복하면 output얻을 수 있다.
이 과정을 좀 더 그려보자.
3차원영상에 convoliton 수행.
크기가 약간 작아질 수 있다.
(padding사용하면 크기 유지)
여기에 pooling
convolution - pooling 다시 수행
size가 어느정도 작아지면 fully connected layer를 만들 수 있다.
다시한번 fully connected 통과.
최종적으로 prediction(h)얻을 수 있다.
prediction값과 ground truth 값과의 error구해 back propagation 가능.
마지막 fully connected의 값들이 처음 영상으로부터 추출된 feature라고 볼 수 있다.
처음 영상이 T1-wieghted, T2-weighted 다른 타입들의 영상이라면,
1. 영상들을 묶어서 한번에 같은 작업을 반복할 수 있다(채널처럼).
2. 혹은, 이렇게 영상타입이 다른 경우 각각 CNN수행해서 나온
마지막 fully connected 값들을 연결해서 concatenation시켜서 최종 y값 얻어내는 연구도 수행되고 있다.
그리고,
Demographic Score가 의료데이터에는 보통 있다.(age, gender ...)
이런 더 많은 정보들을 feature로 이용할 수 있다.
이 요소들을 같이 고려해서 최종 prediction할 수 있다.
error구한뒤 back propagation 할 것이고,
age나 gender 파라미터들도 back propagation으로 업데이트 될 것이다.
저번주차에 이렇게,
age, gender등 demographic score를 바로 classification에 이용하기 위해서는
(여기서는 feature의 nomalization이 없다)
데이터의 양이 많아야한다.
age의 변화 gender의 변화라던지 demographic score의 변화를 cover해 줄 수 있는
data가 있는 상황에서 이런 연구를 수행하는 것이 의미가 있다.
여기까지 3차원 영상분류를 위해 Convolutional Neural Network를 사용할 때 유의할 점에 대해 살펴보았다.
다음주차에서는 실제 classifier를 학습할때 염두해두어야 할 내용에 대해 살펴볼 것.
'Deep learning' 카테고리의 다른 글
4-3. Overfitting / Regularization (0) | 2020.11.02 |
---|---|
4-2. Validation (0) | 2020.11.02 |
4-1. Overall procedure (0) | 2020.10.28 |
3-5. Advanced CNNs (ResNet, InceptionNet, DenseNet) (0) | 2020.10.05 |
3-4.Advanced CNNs (LeNet, AlexNet, VGG) (0) | 2020.09.15 |
3-3. Convolutional Neural Network (CNN) (0) | 2020.08.20 |
3-2. Convolution (0) | 2020.08.19 |