일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DP
- tflite
- 임베디드 딥러닝
- 코테 문제
- 알고리즘
- 삼성코딩테스트
- 삼성역테
- 포스코 AI교육
- MCU 딥러닝
- TensorFlow Lite
- dfs
- 코딩테스트
- 그리디
- bfs문제
- DP문제
- dfs문제
- 딥러닝
- 초소형머신러닝
- 다이나믹프로그래밍
- 삼성코테
- 삼성역량테스트
- 자료구조
- 컴퓨팅사고
- 코테
- 포스코 교육
- 포스코 ai 교육
- sort
- tinyml
- 영상처리
- BFS
- Today
- Total
코딩뚠뚠
[머신러닝 공부] 딥러닝/U-Net 본문
이전 포스팅에서는 2021년 인턴에서 사용한 GNN에 대해 포스팅했다.
이번엔 2019년 인턴에서 U-Net을 사용한 것에 대해 다시 알아보는 포스팅을 할 것이다.
U-Net
U-Net은 이미지 분할을 목적으로 제안된 End to End 방식의 Fully Convolutional Network 기반 모델이다.
네트워크 구성의 형태가 U 모양이여서 U-Net 이라는이름이 붙여졌다.
레이어를 나열해보면 다음과 같은 형태를 보인다.
U-Net은
1) 이미지의 context 정보를 얻기위한 네트워크와
2) Localization 을 위한 네트워크가
대칭형태로 구성되어 있다.
1) 이미지의 context 정보를 얻기위한 네트워크
즉 encoding 과정을 Contracting Path 라고 부른다.
Fully Convolutional Networks 처럼 VGG 베이스의 아키텍쳐를 지닌다.
2) Localization 을 위한 네트워크
즉 decoding 과정을 Expanding Path 라고 부른다.
높은 차원의 채널을 갖는 Up-sampling으로 얕은 레이어의 특징맵을 결합한다.
Coarse Map에서 Dense Map을 얻기 위한 과정
또한 FCN을 토대로 확장한 것이여서 CoarseMap to DenseMap 뿐 아닌 Skip Architecture 개념도 활용했다.
이를 활용해 얕은 층의 Feature Map을 깊은 층의 Feature Map과 결합하는 방식을 제안하였다.
이러한 CNN 계층과의 결합을 통해 Segmentation이 내제하는 [Localization과 Context] 사이의 trade-off를 해결.
U-Net 네트워크 구성
1) Contracting Path
2) Expanding Path
+ skip Architecture
= 각 expanding step 마다 up-convolution 된 feature map은 contracting path의 cropped 된 특징맵과 concatenation한다.
concatenation : 텐서를 이어붙인다 lsjsj92.tistory.com/456
최종 출력인 Segmentation map의 크기는 Input Image의 크기보다 작다.
(Convolution 연산에서 패딩을 사용하지 않았기 때문이다)
Training
출력값은 픽셀 단위의 Softmax로 예측된다.
즉 최종적인 Feature Map에 대한 픽셀 X의 예측값은 아래와 같다.
(채널:k=클래스의 수, a(x):x의 activation)
Loss Function은 Cross-Entropy 함수가 사용된다.
정리 및 추가사항
- U-Net은 Fully Convolutional Networks 보다 확장된 개념의 Up-sampling과 Skip Architecture 를 적용한 모델이다.
- FCN 그리고 FCN을 기반으로 한 모델들()은 Semantic Segmentation에서 뛰어난 성능을 보였다. (2015년 발표)
Sementic Segmentation은 픽셀단위로 물체를 구별해내는 기술이다. (개와 고양이가 있다면 그들을 따로 분류하는것. 개와 고양이로 예측이 아니고 그들이 있는 범위를) |
순서가 바뀌었지만 다음 포스팅에선 FCN에 대한 정리를 해보고자 한다.
'공부 > ML&DL' 카테고리의 다른 글
[머신러닝 공부] 딥러닝/FCN (Fully Convolutional Networks) (0) | 2021.04.06 |
---|---|
[머신러닝 공부] KNN의 이해 (0) | 2021.04.04 |
[머신러닝 공부] 딥러닝/GNN (Graph Neural Network) (0) | 2021.04.03 |
[머신러닝 공부] Graph Representation learning 2 (0) | 2021.04.03 |
[머신러닝 공부] Graph Representation learning 1 (0) | 2021.04.03 |