CNN에서 업 샘플링과 컨볼 루션 컨볼 루션이 동일합니까?


12

"업 샘플링"과 "전치 컨볼 루션"이라는 용어는 "디컨 볼 루션"(<-좋은 용어는 아니지만 여기서 사용하겠습니다)을 수행 할 때 사용됩니다. 원래, 나는 그것들이 같은 것을 의미한다고 생각했지만, 나는이 기사들을 읽은 후에 그것들이 다른 것 같습니다. 누구든지 명확히 할 수 있습니까?

  1. 전치 컨볼 루션 : 우리가 복잡한 신경망을 통해 손실을 전파 할 때 사용할 수있는 것처럼 보입니다.

    http://andrew.gibiansky.com/blog/machine-learning/convolutional-neural-networks/#Backward-Propagation

    https://github.com/vdumoulin/conv_arithmetic

    https://arxiv.org/pdf/1312.6034v2.pdf , 섹션 4 "컨볼 루션 레이어의 경우 ..."

  2. 업 샘플링 : convnet-decovnet 구조에서 더 작은 입력에서 더 큰 입력으로 업 샘플링하려는 경우 사용하는 것처럼 보입니다.

    https://www.youtube.com/watch?v=ByjaPdWXKJ4&feature=youtu.be&t=22m


1
datascience.stackexchange.com/questions/15863/…에 교차 게시되었습니다 . 교차 게시하지 말고 질문 할 사이트를 결정하십시오.
Scortchi-Monica Monica 복원

@Scortchi 오 그들은 연결되어 있습니다!? 죄송합니다. 데이터 과학에서 삭제했습니다.
RockTheStar

흥미로운 게시물 소위 deconvolutions에이
한스

답변:


9

상세하고 명확한 답변이 없으므로 최선을 다할 것입니다.

먼저 이러한 레이어에 대한 동기가 어디에서 오는지 이해해 봅시다 : 예를 들어 컨볼 루션 오토 인코더. Convolutional Autoencoder를 사용하여 이미지의 특징을 추출하는 동안 Autoencoder를 훈련하여 원본 이미지를 재구성 할 수 있습니다. (감독되지 않은 방법입니다.)

이러한 자동 인코더에는 두 부분이 있습니다. 이미지에서 기능을 추출하는 인코더와 이러한 기능에서 원본 이미지를 재구성하는 디코더. 인코더와 디코더의 아키텍처는 일반적으로 미러링됩니다.

컨볼 루션 오토 인코더에서 엔코더는 컨벌루션 및 풀링 레이어와 함께 작동합니다. 나는 당신이 이것들이 어떻게 작동하는지 알고 있다고 가정합니다. 디코더는 인코더를 미러링하려고하지만 "모든 것을 더 작게 만드는"대신 이미지의 원래 크기와 일치하도록 "모든 것을 더 크게 만드는"목표를 가지고 있습니다.

컨볼 루션 레이어의 반대편은 전치 된 컨볼 루션 레이어입니다 ( deconvolution 이라고도 하지만 수학적으로 정확하게 말하기는 다릅니다). 그것들은 컨볼 루션 레이어처럼 필터, 커널, 보폭으로 작동하지만 3x3 입력 픽셀에서 1 출력으로 매핑하는 대신 1 입력 픽셀에서 3x3 픽셀로 매핑됩니다. 물론 역전 파도 약간 다르게 작동합니다.

풀링 레이어의 반대편은 업 샘플링 레이어로, 가장 순수한 형태로 이미지의 크기 만 조정하거나 필요한만큼 픽셀을 복사합니다. 고급 풀링 기법은 풀링 으로, 최대 풀링 레이어에서 최대 위치를 기억하고 풀링 레이어에서 값을 정확하게이 위치에 복사하여 최대 풀링 을 되돌립니다. 이 논문 에서 인용하려면 ( https://arxiv.org/pdf/1311.2901v3.pdf )

convnet에서 최대 풀링 작업은 되돌릴 수 없지만 스위치 풀 세트에서 각 풀링 영역 내에서 최대 값의 위치를 ​​기록하여 대략적인 역수를 얻을 수 있습니다. 디콘 넷에서, 풀링 동작은 이들 스위치를 사용하여 상기 층으로부터의 재구성을 적절한 위치에 배치하고, 자극의 구조를 보존한다.

보다 기술적 인 의견과 맥락을 보려면 실제로 훌륭하고 실증적이며 깊이있는 설명을 살펴보십시오. http://deeplearning.net/software/theano/tutorial/conv_arithmetic.html

https://www.quora.com/What-is-the-difference-between-Deconvolution-Upsampling-Unpooling-and-Convolutional-Sparse-Coding을 살펴보십시오.


F. Chollet (Keras의 제작자)은 이것이 자체 감독 기법 이라고 주장합니다 .
hans

6

사용중인 패키지에 따라 다를 수 있습니다.

케 라스에서는 그것들이 다릅니다. 업 샘플링이 정의된다 https://github.com/fchollet/keras/blob/master/keras/layers/convolutional.py을 당신이 tensorflow 백엔드를 사용 다만, 무엇을 실제로 일어나는 일은 keras 호출 tensorflow입니다 resize_images에게 본질적으로 보간되지 않고 기능을, 훈련 가능.

전치 된 컨볼 루션 이 더 복잡합니다. 위에 나열된 것과 동일한 파이썬 스크립트에 정의되어 있습니다. tensorflow conv2d_transpose 함수를 호출 하고 커널을 가지며 학습 가능합니다.

도움이 되었기를 바랍니다.


1

컨볼 루션 신경망의 맥락에서 디컨 볼 루션은 컨볼 루션을 바꾸는 것과 동의어입니다. Deconvolution은 다른 분야에서도 다른 의미 를 가질 수 있습니다 .

전치 컨볼 루션은 업 샘플링을 수행하는 전략 중 하나입니다.


그래, 난 동의. 그러나 참고 문헌에서 설명하는 방식이 다릅니다. No.2의 비디오를 본 다음 No.1의 참조를보십시오 (개인적으로 No.1 설명을
보러갑니다

@RockTheStar 어떤 개념이 다르게 설명됩니까? 컨볼 루션 또는 업 샘플링을 바꿉니 까?
Franck Dernoncourt

1
업 샘플링 / 디컨 볼 루션 컨셉은 No.2의 비디오에서 설명했습니다. 약 몇 분입니다.
RockTheStar

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