신경망은 어떻게 다양한 입력 크기를 다룰 수 있습니까?


42

내가 알 수있는 한 신경망에는 고정 된 수의 뉴런이 있습니다. 에는 입력 레이어에 이 있습니다.

신경망이 NLP와 같은 맥락에서 사용되는 경우, 다양한 크기의 문장 또는 텍스트 블록이 네트워크에 공급됩니다. 다양한 입력 크기 는 네트워크 입력 레이어의 고정 크기 와 어떻게 조정 됩니까? 다시 말해, 그러한 네트워크가 어떻게 한 단어에서 여러 페이지의 텍스트에 이르기까지 입력을 처리 할 수있을 정도로 유연하게 만들어 졌습니까?

고정 된 수의 입력 뉴런에 대한 나의 가정이 잘못되고 입력 크기와 일치하도록 네트워크에서 새로운 입력 뉴런이 추가 / 제거되면 어떻게 이들이 어떻게 훈련 될 수 있는지 알 수 없습니다.

NLP의 예를 들지만, 많은 문제에는 본질적으로 예측할 수없는 입력 크기가 있습니다. 나는 이것을 다루는 일반적인 접근 방식에 관심이 있습니다.

이미지의 경우 고정 된 크기로 업 / 다운 샘플링 할 수 있지만 텍스트의 경우 텍스트를 추가 / 제거하면 원래 입력의 의미가 변경되므로 불가능한 방법으로 보입니다.


고정 크기로 다운 샘플링하여 의미를 명확히 할 수 있습니까? 다운 샘플링은 어떻게 이루어 집니까?
찰리 파커

답변:


36

세 가지 가능성이 떠 오릅니다.

가장 쉬운 방법은 제로 패딩 입니다. 기본적으로 콘크리트 입력이 너무 작은 경우 입력 크기가 다소 크고 0을 추가합니다. 물론 이것은 입력이 몇 단어에서 전문에 이르기까지 매우 제한적이고 유용하지 않습니다.

NNN ( Recurrent NN )은 입력으로 다양한 크기의 텍스트가있는 경우 선택할 수있는 매우 자연스러운 NN입니다. 단어를 단어 벡터 (또는 포함)로 하나씩 입력하면 RNN의 내부 상태는 전체 문자열의 의미를 인코딩해야합니다. 이것은 하나입니다 이전 논문 입니다.

또 다른 가능성은 재귀 NN을 사용하는 것입니다 . 이것은 기본적으로 전처리의 한 형태로 텍스트가 하나만 남을 때까지 텍스트를 더 적은 수의 단어 벡터로 재귀 적으로 줄입니다. 입력은 전체 텍스트를 인코딩해야합니다. 문장이 재귀 적으로 구조화되어 있기 때문에 입력이 문장으로 구성되는 경우 (언어의 크기가 다를 수 있음) 언어 관점에서 보면 이치에 맞습니다. 예를 들어, "남자"에 대한 단어 벡터는 "부인을 모자로 비난 한 남자"에 대한 단어 벡터와 유사해야합니다. 명사구는 명사와 같은 역할을하기 때문에 종종 언어 정보를 사용하여 안내 할 수 있습니다. 문장에 대한 당신의 재귀. Wikipedia 기사를 넘어 가고 싶다면 이것이 좋은 시작일 것 입니다.


1
"재귀 NN"과 RNN의 차이점은 무엇입니까? R은 재귀를위한 것입니다. 또한 인용과 포인터가 유용 할 것입니다.
Eric Platon

3
R은 반복입니다. 반복은 입력을 동일한 NN에 반복해서 추가하는 것을 의미합니다. 재귀는 트리 구조를 따라 데이터를 입력하는 것을 의미합니다.
BlindKungFuMaster

MLP를위한 마스크를 사용한 @BlindKungFuMaster 0 패딩이 좋으며 정확도에 크게 영향을 미치지 않습니까?
DINA TAKLIT

12

이미 언급 한 사람들 :

  • 제로 패딩
  • RNN
  • 재귀 NN

입력의 크기에 따라 다른 횟수로 컨볼 루션을 사용하는 또 다른 가능성을 추가하겠습니다. 다음은 이 접근법을 뒷받침 하는 훌륭한 책 입니다.

각 이미지의 너비와 높이가 다른 이미지 모음을 고려하십시오. 고정 된 크기의 가중치 행렬로 이러한 입력을 모델링하는 방법은 확실하지 않습니다. 컨볼 루션은 간단하게 적용 할 수 있습니다. 커널은 입력의 크기에 따라 단순히 다른 횟수로 적용되며 컨볼 루션 연산의 출력은 그에 따라 확장됩니다.

360 쪽에서 발췌 한 내용입니다. 다른 접근 방법을 더 자세히 볼 수 있습니다.


1
이 접근법은 1) 모든 입력 이미지의 종횡비 (AR)가 동일하거나 2) 모든 이미지를 주어진 AR로 크기를 조정하거나 3) 0 패드 이미지를 강제로 적용하는 경우에만 작동합니다. 주어진 AR.
매트 웬햄

@Salvador Dali 마스크를 사용한 "0"패딩이 MLP에 적합한 솔루션 일 수 있습니까?
DINA TAKLIT

책에서 답변에 인용 한 텍스트를 찾을 수 없습니다. 어쩌면 원래 존재하고 나중에 제거되었을 수 있습니까? 현재 유사한 단락으로 시작하는 단락이 있지만 가변 수의 레이어를 사용하지는 않습니다 (단, 가변 출력 크기).
jochen

7

NLP에서는 입력 순서가 고유하므로 RNN이 자연스럽게 선택됩니다.

입력 사이에 특별한 순서가없는 가변 크기 입력의 경우 다음과 같은 네트워크를 설계 할 수 있습니다.

  1. 각 입력 그룹에 대해 동일한 서브 네트워크를 반복적으로 사용하십시오 (예 : 공유 가중치). 이 반복 서브 네트워크는 (그룹) 입력의 표현을 학습합니다.
  2. 입력과 동일한 대칭을 갖는 입력 표현에 대한 조작을 사용하십시오. 불변 데이터 주문의 경우 입력 네트워크의 표현을 평균화하는 것이 가능합니다.
  3. 입력의 표현 조합을 기반으로 출력에서 ​​손실 기능을 최소화하려면 출력 네트워크를 사용하십시오.

구조는 다음과 같습니다.

네트워크 구조

객체 간의 관계를 배우기 위해 비슷한 네트워크가 사용되었습니다 ( arxiv : 1702.05068 ).

가변 크기 값 집합의 표본 분산을 배우는 방법에 대한 간단한 예가 여기 에 나와 있습니다 (면책 조항 : 링크 된 기사의 저자입니다).

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