일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- ARIMA
- 스태킹 앙상블
- ImageDateGenerator
- 인프런
- 캐글 신용카드 사기 검출
- tableau
- 데이터 정합성
- 데이터 증식
- 캐글 산탄데르 고객 만족 예측
- pmdarima
- 그로스 마케팅
- 리프 중심 트리 분할
- 3기가 마지막이라니..!
- Growth hacking
- 로그 변환
- 그로스 해킹
- 컨브넷
- 부트 스트래핑
- lightgbm
- splitlines
- 분석 패널
- 마케팅 보다는 취준 강연 같다(?)
- DENSE_RANK()
- WITH CUBE
- 그룹 연산
- WITH ROLLUP
- XGBoost
- sql
- 데이터 핸들링
- python
- Today
- Total
LITTLE BY LITTLE
[3] 캐글 RSNA 2022 Cervical Spine Fracture Detection - Classification Model 3 : ResNet 본문
[3] 캐글 RSNA 2022 Cervical Spine Fracture Detection - Classification Model 3 : ResNet
위나 2022. 10. 22. 00:16ResNet (The Deep Residual Network )
" Instead of hoping each few stacked layers DIRECTLY fit a desired underlying mapping, let these layers fit a RESIDUAL mapping"
키워드
*잔여 블록을 통해 경사 소실 문제 없이도 매우 깊은 층을 학습
*뛰어난 성능
*이해하기 쉬운 단순한 구조 ( 적은 파라미터 수, 간단한 구현 과정 )
* 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. "
- (층이 깊어졌을 때 발생하는) 경사 소실 문제를 해결
- 데이터를 빠르게 예측
- 예측은 빠르게 할 수 있으나, 학습 시간이 오래 걸림
- 깊은 네트워크를 학습시키기 위해서 '잔여 학습'을 제안했다는 것이 가장 큰 특징
- 깊은 네트워크를 학습할 수 있다는 사실은 분류 뿐만 아니라, Detection , Sementic Segmentation과 같은 다른 분야에서도 좋은 성능을 보일 수 있다는 의미
- 너무 층이 깊어지게되면, 성능이 떨어지게되는 문제가 있었는데 (일반적인 CNN), ResNet에서는 잔여 학습을 이용해서 이러한 문제를 개선함
- (참고) CNN
- 컨볼루션 레이어의 서로 다른 필터들은 각각 적절한 특징 값을 추출하도록 학습된다.
- 일반적으로 CNN에서 층이 깊어질수록 채널의 수가 많아지고, 너비와 높이는 줄어든다. (별도의 패딩을 붙이지 않는이상)
- (참고) VGG - Very Deep Convolutional Networks for Large-Scale Image Recognition
- 작은 크기의 3x3 컨볼루션 필터를 이용해 층의 깊이를 늘려 우수한 성능을 보임
- 주기적으로 풀링 레이어를 거쳐서 down sampling을 진행, 너비와 높이가 줄어들도록 하고, 컨볼루션 레이어를 거치는 과정을 반복
- 파라미터의 개수가 많다는 단점
- 하지만 CNN의 장점을 살린 네트워크
- 고차원적인 필터까지 추출할 수 있는 네트워크
- 단순히 층의 깊이만 깊게한다고 해서 성능이 좋아지지 않고, 파라미터의 수가 많았기 때문에 다른 접근 방법이 필요했던 상황에서 ResNet이 등장
- 잔여 블록
- 잔여 블록의 역할은 네트워크의 최적화 난이도를 낮춰준다는 것
- 일반적으로 입력이 들어왔을 때,
- CNN과 같은 weight layer가 특징을 추출하고,
- relu와 같은 활성화 함수를 거쳐서 네트워크가 non-linear한 동작을 수행할 수 있게 해주고
- 이어서 연속적으로 CNN을 거쳐서 출력되는
- 이상적인 함수 H(X)가 있다고 가정하면
- 이러한 과정을 곧바로 학습하는 것이 아니라, 새로운 함수 F(X) = H(X) - X 를 만들어서
- 가중치에 input 값(X)을 추가해주는 방법 (앞서 학습된 정보를 그대로 가져오고)
- 잔여한 정보인 F(X)만 추가로 학습할 수 있는 형태로 만들어준 것
- 즉, 학습이 잘되는 형태로 변경한 것이 잔여 블록
- 뒤에 붙는 숫자는 변형한 레이어의 수 (ex. ResNet152 : 152개의 레이어 변형이 있는 Residual Network)
기타 Key Features
- Batch Normalization 사용 : 입력 계층을 조정하여 네트워크 성능을 향상
- 너비(W)와 높이(H) 치수는 전체 레이어 동안 일정하게 유지
- 각 레이어는 동일한 패턴을 따름
- 고정된 피쳐 맵 차원(F)[64, 128, 256, 512]으로 3x3 컨볼루션을 수행
- ResNet이 더 깊어지면 일반적으로 블록 내 작업 수를 늘려서 수행하지만 전체 레이어 수는 동일하게 유지
아키텍처 (ResNet-50)
- ResNet50의 아키텍처는 4단계로 구성
- 모든 ResNet 아키텍처는 각각 7×7 및 3×3 커널 크기를 사용하여 초기 컨볼루션 및 최대 풀링을 수행
- 3개의 레이어를 포함하는 3개의 Residual 블록
- 입력 크기는 높이와 너비 측면에서 절반으로 줄어들지만 채널 너비는 두 배가 됨
- 한 단계에서 다른 단계로 진행함에 따라 채널 너비는 두 배가 되고 입력 크기는 절반으로 줄어듭니다.
- 마지막으로 네트워크에는 Average Pooling 레이어와 1000개의 뉴런이 있는 완전히 연결된 레이어
Convolution 1
=> ResNet의 첫 번째 단계는 컨볼루션 + 배치 정규화 + 최대 풀링 작업으로 구성된 블록
=>
이어서
* 참고 영상
https://www.youtube.com/watch?v=671BsKl8d0E
* 논문 해석