End-to-End Learning: 어떤 문제를 해결할 때 필요한 여러 스텝을 하나의 신경망을 통해 '재배치'하는 과정. 데이터 크기가 클 때 효율적. 즉 데이터가 클 때 두 단계로 나누어 각각 네트워크를 구축한 후 학습한 후 그 결과를 합치는 방법이다. 이렇게 하는 이유는 스텝을 나누는 것이 성능이 더 좋기 때문이다. (참고: https://pongdangstory.tistory.com/424)
컨텍스트: 이웃한 픽셀 간의 정보, 이미지의 일부를 보고 이미지의 문맥 파악
Expanding Path는 Contracting Path에서 나온 최종 특징 맵으로부터 높은 해상도의 segmentation 결과를 얻기 위해 여러 번 Up-sampling한다. (Coarse Map-> Dense Prediction 위한 구조)
FCN(Fully convolutional network)을 토대로 확장했기 때문에 FCN을 먼저 이해해야 함. (참고: FCN 논문 리뷰)
U-Net은 FCN의 "skip architecture" 개념을 활용해 얕은 층의 특징맵을 깊은 층의 특징맵과 결합하는 방식을 제안함.
"CNN 네트워크의 Feature hierarchy의 결합을 통해 Localization과 Context(Semantic Information) 사이의 트레이드 오프를 해결할 수 있다." 의 해석
-> CNN 네트워크의 얕은 층은 국소적이고 세밀한 부분의 특징을 추출하고 깊은 층은 전반적이고 추상적인 특징을 추출한다. 서로 다른 특징을 추출하는 이 두 층을 결합해 주어서 국소적인 정보와 전역적인 정보를 모두 포함할 수 있게 한다.
국소와 전역은 서로 trade-off 관계
넓은 이미지를 한번에 인식하면 context 인식에는 효과적이나 localization는 잘 하지 못함. 좁은 이미지를 인식하면 그 반대!
The Contracting Path: 이미지의 context 포착
The Expanding Path: 특징맵을 확장, 정확한 localization!
이미지 경계부분 픽셀에 대한 세그멘텐이션을 위해 0이나 임의의 패딩값을 사용하는 대신 이미지 경계 부분의 미러링을 이용한 extrapolation기법(interpolation은 안의 것을 추가, extrapolation은 바깥 부분을 추가)을 사용함.
"보통 연구에서 U-Net을 활용했다고 하면 기본구조(인코더, 디코더, 스킵커녁션)을 유지하고, 인코더/디코더의 구성방식이나 학습 방식을 조정했다"는 뜻이다. 즉 해빙예측에서는 이미지의 크기를 줄이면서도 이미지 내의 중요한 정보를 직접 전달(skip-connection)하여 디코더에서 선명한 이미지를 얻게 하여 보다 정확한 예측 을 할 수 있도록 한 것!
원래 U-Net은 의료 영상을 다루기 위해 개발된 모델이므로 모델 내에 Data Augmentation이 포함되어 있다. 베이스라인에서는 Data Augmentation이 빠져있지만 이 부분을 제안하는 것으로 보아 U-Net의 원래 구조에서 아이디어를 얻지 않았을까 생각함.
안녕하세요 구글 AI Blog 보고 스터디하다 U-net에 대해 검색하게 들어왔습니다. 정리가 너무 잘되어 있네요 ㅎㅎ 혹시 U-net에 대해 정리하신 자료 블로그 스터디 기록하는데 출처 남기고 사용해도 될까요?? 구조에 대해서 자세하게 설명하시는 부분입니닷!!