LITTLE BY LITTLE

[3] 캐글 RSNA 2022 Cervical Spine Fracture Detection - Classification Model 3 : ResNet 본문

4-2/이미지 딥러닝

[3] 캐글 RSNA 2022 Cervical Spine Fracture Detection - Classification Model 3 : ResNet

위나 2022. 10. 22. 00:16

ResNet (The Deep Residual Network

" Instead of hoping each few stacked layers DIRECTLY fit a desired underlying mapping, let these layers fit a RESIDUAL mapping"

Classification Model - ResNet


키워드

*잔여 블록을 통해 경사 소실 문제 없이도 매우 깊은 층을 학습

뛰어난 성능

이해하기 쉬운 단순한 구조 ( 적은 파라미터 수, 간단한 구현 과정 )

 * Identity Connection

 * Residual Mapping

* 매핑

: 입력과 타깃의 관계로 입력을 representation로 변환, 연관시키는 것을 의미

* Identity Mapping(Connection)

: 입력에 ID 매핑을 적용하면 입력과 동일한 출력을 얻을 수 있음( AI=A: 여기서 A는 입력 행렬이고 I는 ID 매핑)

=> ID 연결을 추가해도 추가 매개변수가 발생하지 않음


선행 연구

" evaluated the diagnostic performance of automatic detection of acute and chronic rib fractures using a deep learning algorithm for whole-body trauma CT . The algorithm consisted of a ResNet-based region proposal phase followed by a fast region-based CNN, which had a final sensitivity of 87.4% and a specificity of 91.5% for rib fracture detection."


코로나19 진단을 위한 CT 이미지 분석에 쓰이는 AI Tool의 파이프 라인 ResNet 50과 다른 분류 모델로 구성, 3D U-Net과 ResNet50의 조합이 AUC는 0.991, Sensitivity는 0.974, Specificity는 0.992를 달성

 

" To that end, they used transfer learning based approach with a very deep architectures such as ResNet50, InceptionV3 and Inception-ResNetV2. The algorithms were trained on the basis of 100 images (50 COVID vs 50 non-COVID) in 5 cross-valida‐ tion. Authors claimed 97% of accuracy using InceptionV3 and 87% using Inception-ResNetV2. However, due to the very limited size of the dataset and the very deep models, overfitting would rise and could not be ruled-out, hence the need to validate those results in a larger data‐ base is necessary. "


 

(우측) ResNet에서 층이 깊어질수록 에러가 줄어드는 모습

 

  1. (층이 깊어졌을 때 발생하는) 경사 소실 문제를 해결
  2. 데이터를 빠르게 예측
  3. 예측은 빠르게 할 수 있으나, 학습 시간이 오래 걸림
  4. 깊은 네트워크를 학습시키기 위해서 '잔여 학습'을 제안했다는 것이 가장 큰 특징
    1. 깊은 네트워크를 학습할 수 있다는 사실은 분류 뿐만 아니라, Detection , Sementic Segmentation과 같은 다른 분야에서도 좋은 성능을 보일 수 있다는 의미
  5. 너무 층이 깊어지게되면, 성능이 떨어지게되는 문제가 있었는데 (일반적인 CNN), ResNet에서는 잔여 학습을 이용해서 이러한 문제를 개선함
  6. (참고) CNN
    1. 컨볼루션 레이어의 서로 다른 필터들은 각각 적절한 특징 값을 추출하도록 학습된다. 
    2. 일반적으로 CNN에서 층이 깊어질수록 채널의 수가 많아지고, 너비와 높이는 줄어든다. (별도의 패딩을 붙이지 않는이상)
  7. (참고) VGG - Very Deep Convolutional Networks for Large-Scale Image Recognition
    1. 작은 크기의 3x3 컨볼루션 필터를 이용해 층의 깊이를 늘려 우수한 성능을 보임
    2. 주기적으로 풀링 레이어를 거쳐서 down sampling을 진행, 너비와 높이가 줄어들도록 하고, 컨볼루션 레이어를 거치는 과정을 반복
    3. 파라미터의 개수가 많다는 단점
    4. 하지만 CNN의 장점을 살린 네트워크
    5. 고차원적인 필터까지 추출할 수 있는 네트워크
    6. 단순히 층의 깊이만 깊게한다고 해서 성능이 좋아지지 않고, 파라미터의 수가 많았기 때문에 다른 접근 방법이 필요했던 상황에서 ResNet이 등장
  8. 잔여 블록
    1. 잔여 블록의 역할은 네트워크의 최적화 난이도를 낮춰준다는 것
    2. 일반적으로 입력이 들어왔을 때,
      1. CNN과 같은 weight layer가 특징을 추출하고,
      2. relu와 같은 활성화 함수를 거쳐서 네트워크가 non-linear한 동작을 수행할 수 있게 해주고
      3. 이어서 연속적으로 CNN을 거쳐서 출력되는
      4. 이상적인 함수 H(X)가 있다고 가정하면 
      5. 이러한 과정을 곧바로 학습하는 것이 아니라, 새로운 함수 F(X) = H(X) - X 를 만들어서
        1. 가중치에 input 값(X)을 추가해주는 방법 (앞서 학습된 정보를 그대로 가져오고)
        2. 잔여한 정보인 F(X)만 추가로 학습할 수 있는 형태로 만들어준 것
    3. 즉, 학습이 잘되는 형태로 변경한 것이 잔여 블록
  9. 뒤에 붙는 숫자는 변형한 레이어의 수 (ex. ResNet152 : 152개의 레이어 변형이 있는 Residual Network)

잔여블록의 원리 => multiple convolution layers는 가중치를 단순히 두번만 쓰는 것이 아니라 여러번 쓸 수 있기 때문에 그렇게 정의되었고, Shortcut 은 Shortcut Connection을 이용해서 기존의 입력값을 그대로 가져와서 결괏값에 더해주는 방법
잔여블록 추가설명 : 특징 = Identity Connection
적은 연산 횟수 (우측)

기타 Key Features

  1. Batch Normalization 사용 : 입력 계층을 조정하여 네트워크 성능을 향상
  2. 너비(W)와 높이(H) 치수는 전체 레이어 동안 일정하게 유지
  3. 각 레이어는 동일한 패턴을 따름
  4. 고정된 피쳐 맵 차원(F)[64, 128, 256, 512]으로 3x3 컨볼루션을 수행
  5. ResNet이 더 깊어지면 일반적으로 블록 내 작업 수를 늘려서 수행하지만 전체 레이어 수는 동일하게 유지

아키텍처 (ResNet-50)

 

  1. ResNet50의 아키텍처는 4단계로 구성
  2. 모든 ResNet 아키텍처는 각각 7×7  3×3 커널 크기를 사용하여 초기 컨볼루션 및 최대 풀링을 수행
  3.  3개의 레이어를 포함하는 3개의 Residual 블록
  4. 입력 크기는 높이와 너비 측면에서 절반으로 줄어들지만 채널 너비는 두 배가 됨
    1. 한 단계에서 다른 단계로 진행함에 따라 채널 너비는 두 배가 되고 입력 크기는 절반으로 줄어듭니다.
  5. 마지막으로 네트워크에는 Average Pooling 레이어와 1000개의 뉴런이 있는 완전히 연결된 레이어

Convolution 1

(왼) 컨볼루션, (오) 최대 풀링 작업

=> ResNet의 첫 번째 단계는 컨볼루션 + 배치 정규화 + 최대 풀링 작업으로 구성된 블록

=> 

이어서


* 참고 영상

https://www.youtube.com/watch?v=671BsKl8d0E 

* 논문 해석

https://wikidocs.net/164800

 

07.05 Understanding of ResNet

ResNet은 ILSVRC 2015 분류 문제에서 놀라운 성능 결과를 달성한 가장 강력한 심층 신경망 중 하나입니다. ResNet은 다른 인식 작업에서 뛰어난 일반화 성능을 ...

wikidocs.net


 

Comments