Кожен приклад нейронної мережі для розпізнавання зображень, про який я читав, дає просту відповідь "так" або "ні". Один вузол виходу відповідає "Так, це людське обличчя", а один відповідає "Ні, це не людське обличчя".
Я розумію, що це, ймовірно, для простоти пояснення, але мені цікаво, як така нейромережа могла бути запрограмована, щоб дати більш конкретний вихід. Наприклад, скажімо, я класифікував тварин. Замість того, щоб сказати "Тварина" чи "Не тварина", я хотів би відповідей на кшталт "Собака", "Риба", "Птах", "Змія" тощо. Один кінцевий вузол виходу "Не тварина / Я не визнати цього ".
Я впевнений, що це повинно бути можливим, але у мене виникають проблеми з розумінням того, як це зробити. Здається, що завдяки алгоритму тренувань зворотної пропорції помилок, коли ви тренуєте один вузол виходу (тобто "Це собака") і ваги нейронів змінюються, то ідеальний стан для іншого вузла виходу, який ви раніше навчений (тобто «Це птах») почне відхилятися, і навпаки. Таким чином, навчання мережі розпізнаванню однієї категорії би саботажувало будь-яке навчання, проведене для іншої категорії, тим самим обмежуючи нас простою конструкцією "Так" або "Ні".
Це робить такий розпізнавальник неможливим? Або я нерозумію алгоритм? Єдине, що я можу придумати, це:
Або ми могли б навчити одну нейронну мережу для кожної речі, яку ми хочемо класифікувати, і якось використовувати їх для побудови більшої, супермережі (наприклад, мережа для "собаки", мережа для "птахів" тощо), яку ми якось скласти разом, щоб створити супермережу для "тварин"); або,
Створіть якусь смішно складну методологію навчання, яка вимагала б неймовірно розвиненої математики і якось створила б ідеальне стан нейрон-ваги для всіх можливих результатів (іншими словами
insert math magic here
).
(Бічна примітка 1: Я спеціально розглядаю багатошарові перцептрони як різновид нейронної мережі.)
(Побічна примітка 2: Для першого бульованого "можливого рішення" наявність кожної конкретної нейронної мережі та повторення через них, поки ми не отримаємо відповідь "Так", недостатньо хороший. Я знаю, що це можна зробити досить легко, але це простий функціонал програмування, а не машинне навчання. Я хочу знати, чи можливо мати одну нейронну мережу для подачі інформації та отримання відповідної відповіді.)