컨볼 루션 레이어 : 패딩 또는 패딩?


19

AlexNet 아키텍처는 그림과 같이 제로 패딩을 사용합니다. 여기에 이미지 설명을 입력하십시오 그러나이 패딩이 도입 된 이유는 논문에 설명되어 있지 않습니다.

Standford CS 231n 과정에서는 공간 크기를 보존하기 위해 패딩을 사용합니다. 여기에 이미지 설명을 입력하십시오

이것이 패딩이 필요한 유일한 이유인지 궁금합니다. 공간 크기를 유지할 필요가 없다면 패딩을 제거 할 수 있습니까? 더 깊이 들어가면 공간 크기가 매우 빠르게 줄어 듭니다. 그러나 풀링 레이어를 제거하면이 문제를 해결할 수 있습니다. 누군가 제로 패딩 뒤에 근거를 줄 수 있다면 매우 기쁠 것입니다. 감사!

답변:


20

패딩이 중요한 몇 가지 이유가 있습니다.

  1. 우리가 보존 경우는 네트워크를 설계하는 것이 더 쉽습니다 heightwidth및 치수가 있기 때문에 한 레이어에서 다른 레이어로 갈 때 텐서 치수에 대해 너무 걱정하지 않아도 그냥 "작업"것이다 .

  2. 보다 깊은 네트워크 를 설계 할 수 있습니다 . 패딩이 없으면 볼륨 크기가 너무 빨리 줄어 듭니다.

  3. 패딩은 실제로 정보를 경계에 유지함으로써 성능을 향상시킵니다 .

Stanford 강의에서 인용 한 내용 : "CONV 이후 공간 크기를 일정하게 유지하는 전술 한 이점 외에도 실제로 성능이 향상됩니다. CONV 레이어가 입력을 제로 패드하지 않고 유효한 컨볼 루션 만 수행하는 경우 각 CONV 후에는 볼륨이 약간 줄어들고 경계의 정보는 너무 빨리 "씻겨 나갑니다". - 출처

  1. @dontloo가 이미 말했듯이 새로운 네트워크 아키텍처는 1x1, 3x3 및 5x5 필터로 컨볼 루션 레이어를 연결해야하며 크기가 일치하지 않기 때문에 패딩을 사용하지 않으면 불가능합니다. 패딩이 왜 유용한 지 더 잘 이해하려면이 시작 모듈 이미지를 확인하십시오.

여기에 이미지 설명을 입력하십시오


4
제로 패딩이 왜 보편적입니까? 이미지 처리에는 다양한 유형의 미러링 또는 가장자리 값 유지와 같은 다양한 테두리 모드가 사용됩니다. 순수한 0은 실제 이미지 / 기능에 비해 구조가 매우 다릅니다.
isarandi

3

가장 중요한 이유는 공간 크기를 유지하는 것입니다. 말했듯이 풀링 레이어를 제거하여 공간 크기 감소를 줄일 수 있습니다. 그러나 많은 최근 네트워크 구조 ( 잔여 그물 , 시작 그물 , 프랙탈 그물 등 )는 서로 다른 레이어의 출력에서 ​​작동하며, 이들 사이의 일관된 공간 크기가 필요합니다.

패딩이 없으면 입력의 모서리에있는 픽셀은 출력의 해당 모서리에있는 픽셀에만 영향을 미치는 반면 가운데의 픽셀은 출력의 이웃에 기여합니다. 패딩이없는 여러 레이어가 함께 쌓이면 네트워크 종류는 이미지의 보더 픽셀을 무시합니다.

내 이해 중 일부는 다른 좋은 이유가 있다고 생각합니다.


2

좋은 질문입니다. Drag0은 훌륭하게 설명했지만 동의합니다.

마치 사진을보고 국경을 다루는 것과 같습니다. 실제 생활에서는 눈을 움직여 더 자세히 볼 수 있습니다. 실제 테두리가 없습니다. 따라서 매체의 한계입니다.

크기를 보존하는 것 외에도 중요합니까? 나는 만족스러운 대답을 알지 못하지만주의와 폐색 (부분 객체)에 대한 실험을 통해 경계에서 잃어버린 정보가 필요하지 않다고 추측합니다. 더 똑똑한 것을해야한다면 (예를 들어 옆에 픽셀을 복사하십시오), 나는 스스로 실험하지 않았지만 대답을 바꾸지 않을 것입니다. 0으로 채워 넣는 것은 빠르며 크기를 유지하므로 우리는 그렇게합니다.


1

이것이 나의 생각이다. 출력 피쳐 벡터의 크기를 유지하기 위해 초기에는 제로 패딩이 중요합니다. 그리고 위의 누군가는 제로 패딩이 더 많은 성능을 가지고 있다고 말했습니다.

하지만 마지막 시간은 어때요? 이미지 기능 벡터 해상도는 매우 작으며 픽셀 값은 일부 글로벌 크기의 벡터를 의미합니다.

마지막 경우에는 어떤 종류의 미러링이 제로 패딩보다 낫습니다.


1

기본적으로 경계에 정보를 유지하기 위해 정교하게 할 때 기본적으로 모서리에있는 픽셀 (녹색 음영)은 컨볼 루션이 완료되면 한 번만 사용되는 반면 가운데 빨간색은 음영으로 표시되어 결과 피쳐 맵에 여러 번 기여합니다. 이미지를 채 웁니다 (그림 참조). 2 .


1

나는 정보의 측면에서 패딩하는 것이 괜찮은 때와 그렇지 않은 때를 말하려고 노력할 것이다.

기본 사례의 경우 tensorflow 패딩 기능의 예를 들어 봅시다. "유효"또는 "동일"의 두 가지 시나리오를 제공합니다. 동일한 것은 출력의 크기를 유지하고 적절한 패딩을 추가하여 입력의 크기와 동일하게 유지하지만 유효한 것은 그렇지 않으며 일부 사람들은 정보 손실로 이어질 것이라고 주장하지만 여기에는 문제가 있습니다. .

이 정보 손실은 커널 크기 또는 사용중인 필터에 따라 다릅니다. 예를 들어 28x28 이미지가 있고 필터 크기가 15x15라고 가정 해 봅시다. 출력의 크기는 16x16이어야하지만 tensorflow에서 "같은"을 사용하여 채운 경우 28x28이됩니다. 이제 12 열과 12 열 자체에는 의미있는 정보가 없지만 여전히 잡음의 형태로 존재합니다. 그리고 우리는 소음에 대한 감수성이 깊은 딥 러닝 모델이 얼마나 많은지 알고 있습니다. 이것은 훈련을 많이 저하시킬 수 있습니다. 따라서 큰 필터를 사용하는 경우 패딩을 사용하지 않는 것이 좋습니다.

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