Нейронна мережа - бінарний проти дискретного / безперервного введення


14

Чи є якісь вагомі причини віддати перевагу бінарним значенням (0/1) над дискретними або безперервними нормованими значеннями, наприклад (1; 3), як входи для мережі подачі для всіх вузлів входу (із зворотним розповсюдженням чи без)?

Звичайно, я кажу лише про вхідні дані, які можуть бути перетворені в будь-яку форму; наприклад, коли у вас є змінна, яка може приймати кілька значень, або безпосередньо подавати їх як значення одного вхідного вузла, або формувати двійковий вузол для кожного дискретного значення. І припущення полягає в тому, що діапазон можливих значень був би однаковим для всіх вхідних вузлів. Дивіться фото для прикладу обох можливостей.

Досліджуючи цю тему, я не зміг знайти жодних важких фактів з цього приводу; мені здається, що - більш-менш - в кінці кінців завжди буде "проба і помилка". Звичайно, бінарні вузли для кожного дискретного вхідного значення означають більше вузлів вхідного шару (і, таким чином, більш прихованих вузлів шару), але чи справді це дасть кращу вихідну класифікацію, ніж однакові значення в одному вузлі, з добре підігнаною пороговою функцією в прихований шар?

Чи погоджуєтесь ви, що це просто "спробувати і побачити", чи у вас є інша думка з цього приводу? Можливість перша: прямий введення можливих значень {1; 3} Можливість друга: отримати кожне вхідне значення двійкового вузла

Відповіді:


11

Перетворювати вхідні змінні в бінарні залежить від вхідної змінної. Ви можете вважати, що входи нейронної мережі представляють якусь "інтенсивність": тобто великі значення вхідної змінної представляють більшу інтенсивність цієї вхідної змінної. Зрештою, якщо припустити, що мережа має лише один вхід, даний прихований вузол мережі буде вивчати деяку функцію . де - функція передачі (наприклад, сигмоїда) і вхідна змінна.f(wx+b)fx

Ця установка не має сенсу для категоричних змінних. Якщо категорії представлені числами, немає сенсу застосовувати до них функцію . Наприклад, уявімо, що ваша вхідна змінна репрезентує тварину, а овець = 1 і корова = 2. Немає сенсу розмножувати овець на і додавати до нього , а також не має сенсу корова завжди бути більшою за величину, ніж овець. У цьому випадку ви повинні перетворити дискретне кодування у бінарне кодування 1-го- .f(wx+b)wbk

Для змінних з реальною оцінкою просто залиште їх реальними значеннями (але нормалізуйте вхідні дані). Наприклад, у вас є дві вхідні змінні, одна тварина і одна температура тварини. Ви перетворите тварину на 1- - , де = кількість тварин, і ви залишите температуру такою, якою є.kk


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

4

Так, є. Уявіть, що ваша мета - побудувати двійковий класифікатор. Тоді ви моделюєте свою проблему як оцінку розподілу Бернуллі, де, з огляду на вектор функції, результат належить або одному класу, або протилежним. Вихід такої нейронної мережі - це умовна ймовірність. Якщо більше 0,5, ви асоціюєте його до класу, інакше - до іншого.

Щоб бути чітко визначеним, вихід повинен бути між 0 і 1, тому ви вибираєте, що ваші мітки становлять 0 і 1, і мінімізуйте поперечну ентропію, де - вихід вашої мережі, а - цільові значення для ваших навчальних зразків. Отже, вам потрібно .

E=y(x)t(1y(x))1t
y(x)tt{0,1}

Я розумію, що слід віддати перевагу нормалізованому входу над змінними діапазонами вхідних значень, оскільки це більше схоже на двійкові виходи, які повинна виробляти мережа. Але в своєму питанні я хотів посилатися на нормалізовані дискретні значення певного діапазону, тобто, якщо входи могли бути в межах діапазону, то всі вузли повинні мати однаковий діапазон, тобто бути нормалізованими. У такому випадку все- таки було б краще використовувати двійкові вузли для кожного дискретного значення? (Я зараз редагував питання, щоб виконати цю умову)
cirko

1

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

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