Як нейронні мережі можуть мати справу з різними розмірами входу?


42

Наскільки я можу сказати, нейронні мережі мають фіксовану кількість нейронів у вхідному шарі.

Якщо нейронні мережі використовуються в такому контексті, як NLP, пропозиції або блоки тексту різної величини подаються в мережу. Яким чином різний розмір входу узгоджується з фіксованим розміром вхідного шару мережі? Іншими словами, наскільки така мережа робиться достатньо гнучкою для вирішення вводу, який може бути від одного слова до кількох сторінок тексту?

Якщо моє припущення про фіксовану кількість вхідних нейронів невірно, і нові вхідні нейрони додаються до / видаляються з мережі, щоб відповідати розміру вводу, я не бачу, як їх можна коли-небудь навчити.

Я наводжу приклад NLP, але багато проблем мають суттєво непередбачуваний розмір вводу. Мене цікавить загальний підхід для вирішення цього питання.

Для зображень зрозуміло, що ви можете збільшити / зменшити вибірку до фіксованого розміру, але, для тексту, це здається неможливим підходом, оскільки додавання / видалення тексту змінює значення початкового вводу.


чи можете ви уточнити, що ви маєте на увазі під пониженням на фіксований розмір? Як робиться пониження?
Чарлі Паркер

Відповіді:


36

На думку спадають три можливості.

Найпростіше - це нульова накладка . В основному ви приймаєте досить великий розмір вводу і просто додаєте нулі, якщо ваш конкретний вклад занадто малий. Звичайно, це досить обмежено і, звичайно, не корисно, якщо ваше введення коливається від кількох слів до повних текстів.

Повторні NN (RNN) - це дуже природна мережа, яку ви можете вибрати, якщо в якості тексту вводите тексти різної величини. Ви вводите слова як вектори слів (або вбудовування) лише один за одним, і внутрішній стан RNN повинен кодувати значення цілого рядка слів. Це одна з більш ранніх робіт.

Інша можливість - використання рекурсивних NN . Це в основному форма попередньої обробки, при якій текст рекурсивно зменшується до меншої кількості векторів слів, поки не залишиться лише один - ваш вхід, який повинен кодувати весь текст. Це має багато сенсу з лінгвістичної точки зору, якщо ваш вклад складається з речень (які можуть сильно відрізнятися за розміром), оскільки речення структуровані рекурсивно. Наприклад, слово вектор для "чоловіка" має бути подібним до слова вектор для "чоловіка, який неправильно прийняв дружину за капелюх", оскільки іменникові фрази діють як іменники тощо. Часто ви можете використовувати мовну інформацію для наведення ваша рекурсія на речення. Якщо ви хочете вийти за рамки статті Вікіпедії, це, мабуть, вдалий початок .


1
Яка різниця між тим, що ви назвали "рекурсивними NN", і RNN? R - для рекурсивної ... Також було б корисно кілька цитат та покажчиків.
Ерік Платон

3
R - для повторюваних. Рецидивний означає додавання вводу лінійно до однієї і тієї ж NN знову і знову. Рекурсивний означає введення даних вздовж структури дерева.
BlindKungFuMaster

@BlindKungFuMaster 0 прокладки з маскою для MLP - це добре і чи не впливає погано на точність?
DINA TAKLIT

12

Інші, про які вже говорилося:

  • нульові накладки
  • RNN
  • рекурсивний NN

тому я додам ще одну можливість: використання згортків різну кількість разів залежно від розміру введення. Ось чудова книга, яка підтримує такий підхід:

Розглянемо колекцію зображень, де кожне зображення має різну ширину та висоту. Незрозуміло, як моделювати такі входи з ваговою матрицею фіксованого розміру. Згодження прямо застосовується; ядро просто застосовується різну кількість разів залежно від розміру входу, і висновок операції згортання відповідно масштабується.

Зі сторінки зі сторінки 360. Ви можете прочитати її далі, щоб переглянути деякі інші підходи.


1
Мені здається, що такий підхід працюватиме лише в тому випадку, якщо 1) співвідношення сторін (AR) всіх вхідних зображень однакове; 2) ви перевстановите масштаб усіх зображень до заданої АР або 3) якщо зображення з нульовими колодками змушують a заданий AR.
Метт Венхем

@Salvador Dali може "прокладка" з маскою "0" бути хорошим рішенням для MLP?
DINA TAKLIT

Я не можу знайти текст, який ви цитуєте у своїй відповіді у книзі. Можливо, він був присутній спочатку і був видалений пізніше? Сторінка 354 наразі має абзац, який починається аналогічно, але ніколи не використовує змінну кількість шарів (а замість цього змінний розмір виводу).
Jochen

7

У NLP вам властиве впорядкування входів, тому RNN - це природний вибір.

Для входів змінного розміру, де серед входів немає особливого впорядкування, можна створити мережі, які:

  1. використовувати повторення однієї і тієї ж підмережі для кожної з груп вхідних даних (тобто із загальними вагами). Ця повторна підмережа вивчає подання (груп) входів.
  2. використовувати операцію з подання входів, яка має ту ж симетрію, що і входи. Для інваріантних даних порядку можливий вибір усереднення представлень із вхідних мереж.
  3. використовувати вихідну мережу для мінімізації функції втрат на виході на основі комбінації представлень вводу.

Структура виглядає так:

структура мережі

Подібні мережі використовувались для вивчення відносин між об'єктами ( arxiv: 1702.05068 ).

Простий приклад того , як вивчення зразка дисперсії змінного розміру набору значень даються тут (відмова від відповідальності: Я автор пов'язаної статті).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.