반응형
ResNet 요약정리
목차
서론
- ResNet은 딥러닝 모델이 깊어질수록 발생하는 기울기 소실 문제를 해결하기 위해 개발되었습니다.
- ResNet은 2015년 마이크로소프트 리서치 아시아(Microsoft Research Asia)의 연구원들에 의해 개발되었습니다.
ResNet의 개념
- 잔차 학습(Residual Learning)
- 기존 학습은 입력으로부터 목표 출력을 계산(예측)할 수 있도록 학습합니다.
- 잔차 학습은 입력과 목표 출력의 차이, 즉 잔차(residual)를 계산(예측)할 수 있도록 학습합니다.
- 입력 x, 목표 출력 H(x), 잔차 F(x) 라고 할 때,
기존 학습: x -> H(x), H(x)를 학습함
잔차 학습: x + F(x) = H(x), F(x)를 학습하여 H(x)를 구함
- 스킵 연결(Skip Connection)
- 스킵 연결은 입력을 다음 레이어로 그대로 전달하는 방식입니다.
- 위 잔차 학습 수식에서 입력 x를 "신경망에서 계산된 F(x)"에 더하는 부분에 해당합니다.
- 잔차 블록(Residual Block)
- 잔차 블록은 스킵 연결을 포함하는 작은 네트워크 구성 요소입니다.
- 입력을 여러 레이어를 통해 처리한 결과와 더해준 뒤, 다음 레이어로 전달되는 구조입니다.
- 각 잔차 블록은 두 개 이상의 컨볼루션 레이어로 이루어져 있습니다.
ResNet의 간단한 구조 예
- 초기 층(Initial Layers)
- Conv Layer
- Max Pooling Layer
- 잔차 블록 (Residual Blocks)
- Conv Layer 1
- Batch Normalization
- ReLU Activation
- Conv Layer 2
- Skip Connection
- 종결 층(Final Layers)
- Global Average Pooling
- Fully Connected Layer
- Softmax Layer
ResNet -50 예시
- 초기 Conv 레이어(1개의 레이어)
- 여러 잔차 블록들(16개 블록, 총 48개의 Conv 레이어)
- Fully Connected 레이어 (1개의 레이어)
ResNet의 행렬 연산
- 예시로 입력 이미지의 크기가 224×224 픽셀이고, RGB 채널을 가진 3채널 이미지를 사용한다고 가정하겠습니다.
- 입력 이미지: (224×224×3)
- 초기 층(Initial Layers)
- Conv Layer
- 입력: (224×224×3)
- 필터 크기: 7×7×3, 필터 수: 64, 스트라이드: 2, 패딩: 3
- 출력: (112×112×64)
- Max Pooling Layer
- 입력: (112×112×64)
- 필터 크기: 3×3, 필터 수: 1, 스트라이드: 2, 패딩: 1
- 출력: (56×56×64)
- 잔차 블록 (Residual Blocks)
- Conv Layer 1
- 입력: (56×56×64)
- 필터 크기: 3×3×64, 필터 수: 64, 스트라이드: 1, 패딩: 1
- 출력: (56×56×64)
- Batch Normalization
- 크기 변화는 없음
- ReLU Activation
- 크기 변화는 없음
- Conv Layer 2
- 입력: (56×56×64)
- 필터 크기: 3×3x64, 필터 수: 64 스트라이드: 1, 패딩: 1
- 출력: (56×56×64)
- Skip Connection
- 크기 변화는 없음
- 종결 층(Final Layers)
- Global Average Pooling
- 입력: (7×7×512) * 여러 잔차 블록을 통과하여 입력 크기가 (7×7×512)가 되었다고 가정함
- 출력: (512) * 각 채널에 대해 평균을 계산하여, 채널별로 하나의 값만 저장합니다.
- Fully Connected Layer
- 입력: (512)
- 출력: (num_classes)
- Softmax Layer
- 입력 및 출력: (num_classes)
반응형
'개발 > AI' 카테고리의 다른 글
[AI] ChatGPT의 딥러닝 모델 Transformer 요약 (0) | 2024.08.27 |
---|---|
[AI] 인공지능 모델 설계 자동화를 위한 NAS 간단한 예제 (0) | 2024.08.26 |
[AI] 인공지능 모델 설계 자동화를 위한 NAS (0) | 2024.08.12 |
Python과 Tensorflow를 이용하여 구현한 LSTM 활용하기 (4) | 2024.07.13 |
Python과 Tensorflow를 이용하여 LSTM 구현하기 (2) | 2024.07.13 |