Чи може нейронна мережа відповісти більше, ніж "так" чи "ні"?


11

Кожен приклад нейронної мережі для розпізнавання зображень, про який я читав, дає просту відповідь "так" або "ні". Один вузол виходу відповідає "Так, це людське обличчя", а один відповідає "Ні, це не людське обличчя".

Я розумію, що це, ймовірно, для простоти пояснення, але мені цікаво, як така нейромережа могла бути запрограмована, щоб дати більш конкретний вихід. Наприклад, скажімо, я класифікував тварин. Замість того, щоб сказати "Тварина" чи "Не тварина", я хотів би відповідей на кшталт "Собака", "Риба", "Птах", "Змія" тощо. Один кінцевий вузол виходу "Не тварина / Я не визнати цього ".

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

Це робить такий розпізнавальник неможливим? Або я нерозумію алгоритм? Єдине, що я можу придумати, це:

  • Або ми могли б навчити одну нейронну мережу для кожної речі, яку ми хочемо класифікувати, і якось використовувати їх для побудови більшої, супермережі (наприклад, мережа для "собаки", мережа для "птахів" тощо), яку ми якось скласти разом, щоб створити супермережу для "тварин"); або,

  • Створіть якусь смішно складну методологію навчання, яка вимагала б неймовірно розвиненої математики і якось створила б ідеальне стан нейрон-ваги для всіх можливих результатів (іншими словами insert math magic here).

(Бічна примітка 1: Я спеціально розглядаю багатошарові перцептрони як різновид нейронної мережі.)

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

Відповіді:


15

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

Щоб зупинитися більше на вашому прикладі - розпізнаванні тварин - я б сказав, що це можливо. Це здебільшого приклад розпізнавання рукописного тексту; ви розпізнаєте особливості фігури і порівнюєте їх з "ідеальними" фігурами, щоб побачити, які збіги. Питання - технічні, а не теоретичні. Рукописний текст, коли виконується через програмне забезпечення для розпізнавання, зазвичай відображається до набору ліній і кривих - приємно і просто. Обличчя тварин важче розпізнати, тому вам потрібна логіка обробки зображень для вилучення таких рис, як очі, ніс, рот, шорсткі обриси черепа тощо. Тим не менш, ви запитували лише, чи можливо, а не як, тому відповідь - так.

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

Редагувати:

(В інтересах повного розкриття інформації: я все ще досліджую це сам для проекту, тому мої знання все ще є неповними і, можливо, трохи відпадають.)

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

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

Ця ідея вивчення нових даних без руйнування раніше засвоєної поведінки відома як дилема стабільності / пластичності. Мережа повинна бути достатньо стабільною для збереження вивченої поведінки, але достатньо пластичною , щоб її можна було навчити новим речам, коли обставини змінюються. Саме це покликане вирішити мережі ART.


Дякую за чудову відповідь! Тож як це пов'язати з вагами для встановлення зворотного розповсюдження для одного вихідного вузла, руйнуючи ваги для іншого, попередньо навченого вузла? Або я думаю про це неправильно?
asteri

@Jeff Я трохи доповнив свою відповідь. Боюсь, це не особливо детально - я все ще сам це вчу. Тим не менш, ваше питання стосується дилеми щодо стабільності / пластичності, оскільки ви хочете навчити мережу розпізнавати щось нове, не забуваючи, як розпізнати те, про що воно вже знає, і Теорія адаптивного резонансу спрямована саме на вирішення цієї проблеми, тому, напевно, варто заглянути.
anaximander

3

@ anaximander відповідь досить гарна, я думав, що прокоментую цю частину вашого запитання:

Здається, що завдяки алгоритму тренувань зворотної пропорції помилок, коли ви тренуєте один вузол виходу (тобто "Це собака") і ваги нейронів змінюються, то ідеальний стан для іншого вузла виходу, який ви раніше навчений (тобто «Це птах») почне відхилятися, і навпаки. Таким чином, навчання мережі розпізнаванню однієї категорії би саботажувало будь-яке навчання, проведене для іншої категорії, таким чином обмежуючи нас простою конструкцією "Так" або "Ні"

Ну, я думаю, ваше припущення тут неправильне; якщо я правильно розумію, у вас є NN з одним виходом на категорію, яку ви намагаєтеся класифікувати. В ідеалі, ви хочете, щоб вони працювали майже незалежно, щоб класифікація "собака" та "птах" не працювала одночасно. Тож насправді під час тренувань відбудеться те, що коли ви тренуєте NN з результатом "собаки", зворотне розмноження намагатиметься забезпечити, щоб "птах" та інші вихідні нейрони не давали помилкових позитивних результатів. Отже, теоретично, це буде працювати чудово, всупереч вашому коментарю; підкріплення негативного результату для "пташки" є правильним.

Однак вашою проблемою буде масштабність такого підходу. Коли ви додасте більше категорій до мережі, навчання стане складнішим принаймні лінійним (але, можливо, набагато гіршим) способом. З цієї причини багато людей використовують підхід, де індивідуальні національні мережі навчаються для кожної категорії; це робить речі досить простими та відносно масштабованими. Тоді ви залежите від метарівня рівня їх поєднання. Ви можете просто переглядати всі NN і бачити, які з них дають позитивні результати, ви можете створити евристичні NN середнього рівня, які намагаються звузити для вас тип тварини, або ви навіть можете мати гігантський NN, який поєднує окремі NN як нейрони . По суті, я намагаюся сказати, що ви попередньо знаєте структуру проблеми - індивідуальні класифікації, швидше за все, відрізняються одна від одної;

РЕДАКТУВАННЯ: Щоб відповісти на головне запитання, звичайно, національні мережі можуть дати більше відповідей "так / ні". У "стандартних" моделях кожен вихідний нейрон типово спрацьовує так / ні (хоча ця поведінка може бути змінена, якби ви були так схильні), що представляє один біт інформації; але так само, як і на вашому комп'ютері, біти можна комбінувати, щоб забезпечити діапазон дискретних значень, який можна інтерпретувати будь-яким способом. Досить наочним прикладом небінарних виходів буде карта самоорганізації , яка зазвичай має двовимірний вихід.


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

1

Коротка і не дуже жорстка відповідь: так, кожна мережа може надати більше інформації, ніж просто yes, або no. Це обумовлено порогом. Якщо ваги перевищують деякий поріг, то відповідь - це один із класифікаційних класів, якщо нижчий - відповідь - другий клас класифікації. В основному:

    0..threshold 
    threshold..1

Вихід Нейрона знаходиться в інтервалі [0..1] (або [-1,1], це залежить), і ви не хочете отримувати відповідь, чи є вихід нижчим або вище порогового значення, але вихід (вихід, який ви можна легко перетворити на інтервал 0..1, а це означає%)

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