후속 컨볼 루션 레이어는 어떻게 작동합니까?


29

이 질문은 "컨볼 루션 레이어가 정확히 어떻게 작동 하는가"로 요약됩니다 .

그레이 스케일 이미지 가 있다고 가정 합니다. 따라서 이미지에는 하나의 채널이 있습니다. 첫 번째 레이어에서는 필터와 패딩 으로 컨벌루션을 적용합니다 . 그런 다음 회선 및 필터 가있는 다른 회선 레이어가 있습니다. 기능 맵은 몇 개입니까?3 × 3 k 1 5 × 5 k 2××케이15×5케이2

타입 1 컨볼 루션

첫 번째 레이어가 실행됩니다. 그 후 기능 맵을 갖 (각 필터 당 하나씩). 각각의 크기는 입니다. 모든 단일 픽셀은 패딩 된 입력 이미지에서 픽셀을 만들어졌습니다 . n × m 3 3 = 9케이1×=9

그런 다음 두 번째 레이어가 적용됩니다. 모든 단일 필터는 각 기능 맵 에 개별적으로 적용됩니다 . 이러한 결과 기능은 모든 맵을 기능지도. 따라서 두 번째 레이어 다음에 기능 맵이 있습니다. 각각의 새로운 피쳐 맵의 모든 단일 픽셀은 이전부터 패딩 된 피쳐 맵의 "픽셀"을 취함으로써 생성되었습니다 .k 1 k 1 × k 2 5 5 = 25케이2케이1케이1×케이255=25

시스템은 매개 변수 를 학습 합니다.케이1+케이255

2.1 형 컨볼 루션

전과 같이 : 첫 번째 레이어가 실행됩니다. 그 후 기능 맵을 갖 (각 필터 당 하나씩). 각각의 크기는 입니다. 모든 단일 픽셀은 패딩 된 입력 이미지에서 픽셀을 만들어졌습니다 . n × m 3 3 = 9케이1×=9

이전과 달리 : 두 번째 레이어가 적용됩니다. 모든 단일 필터는 동일한 지역에 적용되지만 이전부터 모든 기능 맵 이 적용됩니다 . 결과적으로 두 번째 레이어가 실행 된 후 총 기능 맵 이 생성됩니다 . 각각의 새로운 피쳐 맵의 모든 단일 픽셀은 이전부터 패딩 된 피쳐 맵의 "픽셀"을 가져 생성되었습니다 .k 25 5 = 25 k 2케이2케이255=25케이2

시스템은 매개 변수 를 학습 합니다.케이1+케이255

2.2 컨볼 루션

위와 같이 필터 당 매개 변수를 가져 와서 다른 입력 기능 맵에 대해 배우고 간단히 복사해야하는 매개 변수를 배워야합니다.55=25케이1+케이2케이155

의문

  1. 유형 1 또는 유형 2가 일반적으로 사용됩니까?
  2. Alexnet 에서 어떤 유형이 사용 됩니까 ?
  3. GoogLeNet 에서 어떤 유형이 사용 됩니까 ?
    • 타입 1이라고하면 : 왜 컨볼 루션이 의미가 있습니까? 데이터에 상수 만 곱하지 않습니까?1×1
    • 유형 2를 말하는 경우 : 2 차 비용을 설명하십시오 (예를 들어, 심층 비전 네트워크에서 2 개의 컨볼 루션 레이어가 연결되어있는 경우 필터 수가 균일하게 증가하면 2 차 계산이 증가합니다).

모든 답변에 대해 귀하의 답변이 옳다는 증거 (종이, 교과서, 프레임 워크 문서)를 제공하십시오.

보너스 질문 1

풀링은 항상 기능 맵마다 적용됩니까? 아니면 여러 기능 맵에서도 수행됩니까?

보너스 질문 2

나는 타입 1이 정확하고 GoogLe 종이에 문제가 있다고 확신합니다. 그러나 3D 컨볼 루션도 있습니다. 크기가 인 1337 개의 피쳐 맵이 있고 필터 를 적용 한다고 가정하겠습니다 . 기능 맵 위로 필터를 어떻게 슬라이드합니까? (왼쪽에서 오른쪽으로, 위에서 아래로, 첫 번째 기능 맵에서 마지막 기능 맵으로?) 구성 적으로 수행하는 한 중요합니까?3 × 4 × 542×314×4×5

내 연구


얼마 후 : Convolutional Neural Network Architecture의 분석 및 최적화 , 특히 2 장과 그림 2.2 및 그림 2.3.
마틴 토마

답변:


5

위에서 설명한 대안에 대해 잘 모르지만 일반적으로 사용되는 방법은 다음과 같습니다.

비선형 성을 적용하기 전에 각 필터 출력은 패치 내에서 모든 기능 맵에 선형으로 의존하므로 두 번째 레이어 다음에 필터로 끝납니다 . 전체 매개 변수 수는 3 ˙입니다.케이2 .˙˙케이1+케이1˙5˙5˙케이2

보너스 1 : 풀링은 기능 맵마다 별도로 수행됩니다.

보너스 2 : "슬라이딩"순서는 중요하지 않습니다. 실제로 각 출력은 이전 레이어를 기반으로 계산되므로 출력 필터 응답은 서로 의존하지 않습니다. 그것들은 병렬로 계산 될 수 있습니다.


1
나는이 질문에 대해 완전히 잊었다. 한편 CNN에 관한 석사 논문을 썼습니다. 3 장 에서는 작동 방식에 대해 설명합니다.
Martin Thoma

1
명확히하기 위해 : 2.2 형이 맞습니다 (이 답변에 설명되어 있음)
Martin Thoma

1
누군가가 실제로 이것을 보고 싶어하는 경우 , 나는 구글 시트에 깊은 회선 신경망을 구현했습니다. CNN이 응답을 예측할 때까지 CNN을 통과하는 동안 필터와 입력 이미지, 픽셀의 픽셀을 확인할 수 있습니다. docs.google.com/spreadsheets/d/…
bwest87

5

나는 몇 시간 동안이 같은 질문으로 어려움을 겪었습니다. 내가 이해하는 데 도움이되는 사이트를 공유하겠다고 생각했습니다.

답은 두 번째 컨볼 루션 레이어의 필터가 첫 번째 레이어의 필터와 차원이 같지 않다는 것입니다. 일반적으로 필터는 입력 값과 치수가 같아야합니다 . 따라서 첫 번째 conv 레이어에서는 입력이 이미지이므로 2 차원입니다. 따라서 필터도 2 차원으로되어 있습니다. 첫 번째 변환 레이어에 20 개의 필터가있는 경우 첫 번째 변환 레이어의 출력은 20 개의 2D 기능 맵의 스택입니다. 따라서 첫 번째 conv 레이어의 출력은 3 차원이며, 여기서 세 번째 차원의 크기는 첫 번째 계층의 필터 수와 같습니다.

이제이 3D 스택은 두 번째 전환 레이어로의 입력을 형성합니다. 두 번째 레이어에 대한 입력은 3D이므로 필터도 3D 여야합니다. 세 번째 차원의 두 번째 레이어 필터 크기를 첫 번째 레이어의 출력 인 기능 맵 수와 동일하게 만듭니다.

이제 당신은 처음 2 차원에 대해 뭉쳤습니다. 행과 열. 따라서, 특징 맵의 스택 (제 1 층의 출력)을 갖는 각각의 제 2 층 필터의 컨벌루션 (convolution)은 단일 특징 맵을 생성한다.

따라서, 제 2 층의 출력의 제 3 차원의 크기는 제 2 층의 필터의 수와 동일하다.


2

강의시각화를 확인하십시오

일반적으로 유형 2.1 컨볼 루션이 사용됩니다. 입력에 NxMx1 이미지가 있고 첫 번째 컨볼 루션 후에 N_1xM_1xk_1을 ​​얻게되므로 첫 번째 컨벌루션 이후 이미지에는 k_1 채널이 생깁니다. 새로운 차원 N_1과 M_1은 보폭 S와 패딩 P에 따라 달라집니다. N_1 = (N-3 + 2P) / S + 1이며, 유사하게 M_1을 계산합니다. 첫 번째 전환점 레이어의 가중치는 3x3xk_1 + k_1입니다. 비선형 함수의 바이어스에 k_1이 추가되었습니다.

두 번째 레이어에는 N_1xM_1xk_1 크기의 입력 이미지가 있습니다. 여기서 k_1은 새로운 채널 수입니다. 그리고 두 번째 컨볼 루션 후에 N_2xM_2xk_2 이미지 (배열)를 얻습니다. 두 번째 레이어에는 5x5xk_2xk_1 + k_2 매개 변수가 있습니다.

k_3 필터 및 입력 NxMxC (C는 입력 채널 수)를 사용하는 1x1 컨볼 루션의 경우 새 이미지 (배열) NxMxk_3을 얻으므로 1x1이 의미가 있습니다. 그들은이 논문 에서 소개되었습니다

보너스 1 : 기능 맵마다 풀링이 적용됩니다.

자세한 내용 은 Stanford의 CNN 강좌 슬라이드 를 참조하십시오 . 여러 입력 채널에서 컨볼 루션을 요약하는 방법에 대한 훌륭한 시각화가 있습니다.


2
링크 전용 답변은 사용하지 않는 것이 좋습니다. 링크 작동이 중지 될 수 있습니다. 관련 정보를 인라인 할 수 있습니까?
Sean Owen

1
시각화가 정말 도움이되었습니다. 필자의 비전은 필터가 2D가 아니라 3D라는 것을 깨달았을 때였습니다.
kmace

1
훌륭한 링크, 나를 위해 물건을 정리하십시오. 그러나 귀하의 답변은 링크에서 말한 내용과 일치하지 않는 것 같습니다. 특히 conv 레이어 2에서 각 수용 필드는 5x5xk_1 차원의 3D이므로 매개 변수 수는 5 * 5 * k_1 * k_2 (플러스 바이어스)이어야합니다.
Daniel Schlaug

@DanielSchlaug 당신이 맞습니다, 나는 대답을 수정했습니다.
pplonski

1

케이11케이1

케이255케이1케이2

즉, 컨볼 루션 레이어의 커널은 이전 레이어의 출력 깊이에 걸쳐 있습니다.

1×1케이11케이1 .

추측:

보너스 질문 2는 익숙하지 않지만 컨볼 루션의 깊이 매개 변수가 추가 차원이 될 것입니다.

예를 들어 레이어의 출력 크기가 옵니다케이케이+1케이

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.