스택 형 컨볼 루션 오토 인코더의 아키텍처는 무엇입니까?


23

그래서 나는 convolutional net을 사용하여 인간의 이미지에 대해 사전 훈련을하려고합니다. 나는 논문 ( Paper1Paper2 ) 과이 stackoverflow link를 읽었 지만 그물의 구조를 이해하고 있는지 잘 모르겠습니다 (논문에 잘 정의되어 있지 않습니다).

질문 :

  • 입력과 노이즈 레이어, 컨볼 루션 레이어, 풀링 레이어를 차례로 가질 수 있는데, 출력을하기 전에 풀링을 해제합니까 (입력 이미지와 동일)?

    여러 개의 (135,240) 이미지가 있다고 가정하십시오. 32, (12,21) 커널과 (2,2) 풀링을 사용하면 32 (62,110) 기능 맵으로 끝납니다. 이제 풀링하여 32 (124, 220) 피처 맵을 얻은 다음 평면화합니까? 내 (135,240) 출력 레이어를 제공하기 전에?

  • 이러한 conv-pool 레이어가 여러 개인 경우 스택 형 노이즈 자동 인코더와 같이 하나씩 하나씩 훈련시켜야합니까? 또는-input-conv-pool-conv-pool-conv-pool-output (출력이 입력과 동일 함)과 같은 것을 가질 수 있습니까? 이 경우 풀링, 디 풀링은 어떻게 관리되어야합니까? 출력하기 전에 마지막 풀 레이어에서만 풀링해야합니까? 그리고 다시-풀링의 크기 조정 요소는 무엇입니까? 기능 맵을 입력 형태로 다시 가져 오려는 의도입니까?

  • 모든 conv-pool-depool 레이어 뒤에 노이즈 레이어를 도입해야합니까?

  • 그런 다음 미세 조정시-풀링 레이어를 제거하고 나머지는 그대로 두어야합니다. 또는 노이즈 레이어와 디 풀링 레이어를 모두 제거해야합니까?

  • 이미지에 대한 사전 교육을 수행하기 위해 스택 형 컨볼 루션 자동 엔코더의 아키텍처를 자세히 설명하는 url / paper를 알려 주실 수 있습니까?

답변:


12

현재 스택 컨볼 루션 자동 인코더를 탐색하고 있습니다.

나는 당신의 질문 중 일부를 내가 아는 한 최선을 다할 것입니다. 당신이 마음에, 내가 틀릴 수 있으므로 소금 한알로 가져 가라.

  1. 예, 풀을 "반전"한 다음 필터 세트와 함께 출력 이미지를 복구해야합니다. 표준 신경망 (MNIST 데이터를 입력, 즉 28x28 입력 크기로 간주)은 다음과 같습니다.

        28x28(input) -- convolve with 5 filters, each filter 5x5 -->  5 @ 28 x 28 maps -- maxPooling --> 5 @ 14 x 14 (Hidden layer) -- reverse-maxPool --> 5 @ 28 x 28 -- convolve with 5 filters, each filter 5x5 --> 28x28 (output)
    
  2. 내 이해는 일반적으로 그것이 해야하는 것, 즉 각 레이어를 개별적으로 훈련한다는 것입니다. 그런 다음 사전 훈련 된 가중치를 사용하여 레이어를 쌓고 전체 네트워크를 한 번 더 훈련시킵니다. 그러나 Yohsua Bengio는 완전히 스택 된 네트워크를 구축하고 처음부터 훈련 할 수 있음을 보여주는 몇 가지 연구 (참조는 내 기억을 피합니다)를 가지고 있습니다.

  3. 내 이해는 "노이즈 레이어"가 입력에 견고성 / 변동성을 도입하여 훈련이 과도하게 적합하지 않다는 것입니다.

  4. 사전 훈련 또는 미세 조정을 "훈련"하는 한 재구성 부분 (예 : reversePooling, de-convolution 등)이 필요하다고 생각합니다. 그렇지 않으면 가중치를 조정하기 위해 어떻게 오류 역전을 수행해야합니까?

  5. 수많은 논문을 탐색 해 보았지만 아키텍처에 대한 자세한 설명은 없습니다. 당신이 발견하면 알려 주시기 바랍니다.


사전 훈련을 마친 후에는 더 이상 디코더 부분이 필요하지 않으며 미세 조정을 통해 인코더를 조정할 수 있습니다.
jwalker

2
"reverse-maxPool"은 어떻게 가능합니까? 최대 값 만 주어진 숫자 집합을 재구성 할 수는 없습니다 ...?
Fequish

1
@Fequish 그 대략 역 maxpool 예 : 풀 = 2 ×, 내가 최대의 위치를 유지하고 2 × 2의 특정 위치로 최대 삽입하면되고 나머지는 0
user2979010

1
@jwalker, 내 최종 목표는 분류되지 않았으므로 롤링되지 않은 네트워크를 통한 미세 조정
user2979010

@Fequish, 역 디코딩의 목적으로 가장 가까운 인접 업 스케일입니다.
jwalker

2

또한 Stacked Convolutional Autoencoders의 전체 설명 모델을 검색했습니다.

세 가지 다른 아키텍처를 발견했습니다. 나는 아직도 그것들을 연구하고 있으며 이것들이 CAE를 탐구하기 시작한 다른 사람들을 도울 수 있다고 생각했습니다. 논문이나 구현에 대한 추가 참조는 크게 도움이 될 것입니다.

  1. 풀링을 사용하여 언급 한 것-풀링.
  2. (수렴) __ x_times-> (해제) __ x_times의 레이어

    입력과 같은 크기를 얻습니다.

  3. (convolve-> pool) __ x_times-> (strided deconvolution) __ y_times
    • 패딩과 보폭은 최종 이미지 크기가 원본 이미지와 동일하도록 선택됩니다.
    • 참고

2
사이트에 오신 것을 환영합니다. 이것은 OP의 질문에 대한 답변, OP 또는 답변자 중 하나의 설명을 요청하는 의견 또는 자신의 새로운 질문으로 의도 되었습니까? "답변"필드 만 사용하여 원래 질문에 대한 답을 제공하십시오. 평판이 50보다 크면 어디에서나 댓글을 달 수 있습니다. 새로운 질문이 있으면 ASK QUESTION 페이지 상단의 회색 을 클릭하여 질문 하면 제대로 도와 드리겠습니다. 여기에 처음 오셨으므로 새로운 사용자를위한 정보가 포함 된 둘러보기 를 이용하십시오.
gung-Monica Monica 복원

1
OP의 질문에 대한 답변으로 의도되었지만 완전한 답변이 될 수는 없습니다. 나는 '많은 논문을 통해 탐색을 시도했지만 아키텍처에 대해 완전히 설명하지는 않았습니다. 어떤 것이 있으면 알려주세요. '
Ankitp

알았어 고마워. 그것이 나오는 방법은 모호합니다. 예 : "또한 검색 중입니다 ..."& "서류 나 구현에 대한 추가 참조가 큰 도움이 될 것입니다." CV는 토론 포럼이 아니라 순수한 Q & A 사이트입니다. 왜 우리하지 투어 및 사이트에 대한 자세한 내용은?
gung-Monica Monica 복원

-1

레이어 방식 교육 방법이 맞지 않다고 생각합니다. 예를 들어, 컨볼 루션 자동 인코더의 아키텍처는 다음과 같습니다.

입력-> 전환-> max_poo-> de_max_pool-> de_conv-> 출력.

이것은 자동 인코더이며 전체 아키텍처에 대한 교육을 받아야합니다. 또한 하나의 컨볼 루션 자동 인코더에 pool 및 un_pool이 필요한지 여부에 대한 엄격한 기준이 없습니다. 일반적으로 하나의 풀이지만 un_pool은 없습니다. 다음은 pool과 un_pool이없는 실험적인 비교입니다.

https://arxiv.org/pdf/1701.04949.pdf

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