Fully Convolutional Networks와 관련된 문학 을 조사하던 중 다음 문구를 발견했습니다. ,

표준 CNN 아키텍처의 매개 변수가 풍부한 완전 연결 계층을 컨볼 루션 계층으로 $ 1 \ times 1 $ 커널.

두 가지 질문이 있습니다.

  1. 매개 변수가 풍부한 은 무엇을 의미합니까? 완전히 연결된 레이어가 어떤 종류의 “공간적”감소없이 매개 변수를 전달하기 때문에 매개 변수가 풍부합니까?

  2. 또한 $ 1 \ times 1 $ 커널은 어떻게 작동합니까? $ 1 \ times 1 $ 커널은 단순히 이미지 위로 단일 픽셀을 슬라이딩한다는 의미가 아닙니까? 혼란 스럽습니다.

답변

완전 컨볼 루션 네트워크

A FCN (Full Convolution Network) 은 컨볼 루션 (및 서브 샘플링 또는 업 샘플링) 작업 만 수행하는 신경망입니다. 마찬가지로 FCN은 완전히 연결된 계층이없는 CNN입니다.

컨볼 루션 신경망

일반적인 컨볼 루션 신경망 (CNN) 은 완전 컨볼 루션이 아닙니다. 종종 완전히 연결된 레이어 도 포함합니다 (컨볼 루션 작업을 수행하지 않음). 매개 변수가 풍부한 매개 변수가 많다는 점에서 (동등한 컨볼 루션에 비해) 레이어), 완전히 연결된 레이어도 ker를 사용하여 컨볼 루션으로 볼 수 있습니다. 전체 입력 영역을 포함하는 nel , 이것이 CNN을 FCN으로 변환하는 기본 아이디어입니다. 완전 연결 레이어를 컨볼 루션 레이어로 변환하는 방법을 설명하는 Andrew Ng의 이 동영상 을 참조하세요.

FCN의 예

완전 컨볼 루션 네트워크의 예는 U-net (아래 그림에서 볼 수있는 U 자 모양 때문에 이런 방식으로 호출 됨). 의미에 사용되는 유명한 네트워크입니다. 세분화 , 즉 동일한 클래스 (예 : 사람)에 속하는 픽셀이 동일한 레이블 (예 : 사람)과 연관되도록 이미지의 픽셀을 분류합니다. 또는 조밀) 분류.

여기에 이미지 설명 입력

시맨틱 분할

따라서 시맨틱 분할에서는 입력 이미지의 각 픽셀 (또는 작은 픽셀 패치)에 레이블을 연결하려고합니다. 다음은 의미 론적 세분화를 수행하는 신경망의 더 암시적인 그림입니다.

여기에 이미지 설명 입력

인스턴스 분할

인스턴스 분할 도 있습니다. , 같은 클래스의 서로 다른 인스턴스를 구별하려는 경우 (예 : 서로 다른 레이블을 지정하여 동일한 이미지에서 두 사람을 구별하려는 경우). 인스턴스 분할에 사용되는 신경망의 예는 mask R-CNN 입니다. Rachel Draelos의 블로그 게시물 Segmentation : U-Net, Mask R-CNN 및 Medical Applications (2020)는이 두 가지 문제와 네트워크를 매우 잘 설명합니다.

다음은 동일한 클래스 (예 : 사람)의 인스턴스가 다른 레이블 (주황색과 파란색)로 지정된 이미지의 예입니다.

여기에 이미지 설명 입력

시맨틱 및 인스턴스 세분화 모두 밀집 분류 작업입니다 (특히 이미지 분할 ) 카테고리로 분류합니다. 즉, 각 픽셀 또는 이미지의 여러 작은 픽셀 패치를 분류하려고합니다.

$ 1 \ times 1 $ 회선

위의 U-net 다이어그램에서 회선, 복사 및 자르기, 최대 풀링 및 업 샘플링 작업입니다. 완전히 연결된 레이어가 없습니다.

그러면 레이블을 각 픽셀 (또는 p의 작은 패치)에 어떻게 연결합니까? ixels)의 입력? 최종 완전 연결 레이어없이 각 픽셀 (또는 패치)의 분류를 어떻게 수행합니까?

여기서 $ 1 \ times 1 $ 컨볼 루션 및 업 샘플링 작업이 유용합니다!

위의 U-net 다이어그램 (특히 명확성을 위해 아래에 설명 된 다이어그램의 오른쪽 상단 부분)의 경우 two $ 1 \ times 1 \ times 64 $ 커널이 입력 볼륨에 적용됩니다 (이미지가 아닙니다!) $ 388 \ times 388 $ 크기의 2 개의 특성 맵을 생성합니다. 실험에 두 개의 클래스 (세포 및 비 세포)가 있었기 때문에 두 개의 $ 1 \ times 1 $ 커널을 사용했습니다. 언급 된 블로그 게시물 도 이에 대한 이해를 제공하므로 반드시 읽어 보시기 바랍니다.

여기에 이미지 설명 입력

U-net 다이어그램을주의 깊게 분석하려고했다면 출력 맵이 크기가 $ 572 \ times 572 \ times 1 $ 인 입력 이미지와는 공간 (높이 및 무게) 크기가 다릅니다.

그것입니다. 일반적인 목표는 고밀도 분류를 수행하는 것이므로 문제가 없습니다 (예 : 패치가 하나의 픽셀 만 포함 할 수있는 이미지의 패치 분류). ), 비록 우리가 픽셀 단위 분류를 수행했을 것이라고 말했지만, 따라서 출력이 입력과 정확히 동일한 공간 차원을 가질 것으로 예상했을 수 있습니다. 그러나 실제로는 출력 맵이 다음을 가질 수도 있습니다. 입력과 동일한 공간 차원 : 다른 업 샘플링 (디컨 볼 루션) 작업을 수행합니다.

$ 1 \ times 1 $ 컨볼 루션은 어떻게 작동합니까?

A $ 1 \ times 1 $ 컨볼 루션은 일반적인 2D 컨볼 루션이지만 $ 1 \ times1 $ 커널을 사용합니다. p>

아마도 이미 알고있는 것처럼 (그리고 이것을 몰랐다면 이제 알 것입니다) $ g \ times g $ 가있는 경우 $ h \ times w \ times d $ 크기의 입력에 적용되는 커널, 여기서 $ d $ 는 입력 볼륨의 깊이 (예 : 회색조 이미지의 경우 $ 1 $ )이며 커널은 실제로 $ g \ times g \ times d $ , 즉 커널의 세 번째 차원은 적용되는 입력의 세 번째 차원과 같습니다. 3D 컨볼 루션을 제외하고는 항상 그렇습니다. 그러나 이제 우리는 전형적인 2D 컨볼 루션에 대해 이야기하고 있습니다! 자세한 내용은 이 답변 을 참조하세요.

따라서 를 적용하려는 경우 $ 1 \ times 1 $ 모양 입력에 대한 컨볼 루션 $ 388 \ times 388 \ times 64 $ , 여기서 $ 64 $ 는 입력의 깊이이고, 우리가 사용해야하는 실제 $ 1 \ times 1 $ 커널은 $ 1 \ times 1 \ times 64 $ (위에서 U-net에 대해 언급했듯이). $ 1 \ times 1 $ 으로 입력의 깊이를 줄이는 방법은 $ 1 \ times 1 $의 수에 의해 결정됩니다. 사용하려는 커널. 이것은 다른 커널을 사용하는 2d 컨볼 루션 작업과 정확히 동일합니다 (예 : $ 3 \ times 3 $ ).

U-net, 입력의 공간 차원은 CNN에 대한 입력의 공간 차원이 감소하는 것과 동일한 방식으로 감소합니다 (예 : 2d 컨볼 루션에 이어 다운 샘플링 작업). U-net과 다른 CNN의 주요 차이점 (완전히 연결된 계층을 사용하지 않는 것 제외)은 U-net이 업 샘플링 작업을 수행하므로 인코더 (왼쪽 부분)와 디코더 (오른쪽 부분)로 볼 수 있다는 것입니다. .

댓글

  • 자세한 답변을 보내 주셔서 감사합니다. 정말 감사합니다!

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다