Чи можна нейронні мережі використовувати для розробки алгоритмів?


9

Після новіших і новіших успіхів нейронних мереж в іграх у настільні ігри відчувається, що наступна мета, яку ми поставимо, може стати чимось кориснішим, ніж побиття людей у ​​Starcraft. Точніше, я задумався, чи

Чи можуть нейронні мережі навчатись вирішувати класичні алгоритмічні задачі?

Тут я маю в виду , що, наприклад, мережа буде отримати вхідний граф з зваженими дугами, і дві вершини і визначені, і ми попросили його знайти найкоротшу шлях якомога швидше. Тоді я здогадуюсь, що нейронна мережа виявить і навчить себе використовувати Dijkstra чи щось подібне.Гстст

З одного боку, ми знаємо, що обчислювальна потужність нейронних мереж дорівнюєТС0 . З іншого боку, я не знаю, чи обов'язково це стосується мого питання. Тим не менш, для більшості проблем ми не знаємо, чи можна їх вирішити в чи ні. Побачення того, чи може нейронна мережа тренуватися сама, може бути хорошим показником, чи є швидкий алгоритм чи ні. Наприклад, якщо нейронні мережі не можуть навчитись швидко вирішувати SAT, то це робить (навіть більше) ймовірним, що . Цікаво, що нейронна мережа зробить із ГРАФІЗОМОРФІЗМОМ або ФАКТОРИЗАЦІєю.ТС0NПТС0

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

Додано через два дні: Побачивши відповіді, дозвольте мені уточнити, що якщо ви відповісте негативно, то я хотів би це знати

Чому грати в шахи простіше, ніж у Дейкстру чи Графізоморфізм?


Коментарі не для розширеного обговорення; ця розмова була переміщена до чату .
Лев Рейзін

Відповіді:


2

Відповідно до цього блогу Реза Заде , навчання нейронної мережі для отримання правильного результату навіть лише для двох третин прикладів тренувань обчислювально важко:

Дійсно, у 1988 р. Дж. Стівен Джадд показав, що така проблема є НП:

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

Джудд також показує, що проблема залишається складною для NP, навіть якщо для її отримання потрібна лише мережа для отримання правильного результату лише на дві третини прикладів тренувань, що означає, що навіть приблизно тренування нейронної мережі в найгіршому випадку непросто. У 1993 році Blum і Rivest погіршують новини: навіть просту мережу з лише двома шарами та трьома вузлами НП важко навчити!


1
Я не бачу, як це відповідає на моє запитання.
domotorp

Перш ніж ви відредагували допис, ваше перше запитання стосується навчання НН. Оскільки ви додали тег CC, моя відповідь показує, що важко тренувати NN незалежно від того, чи є ваша алгоритмічна проблема в P або NPC
Мохаммед Аль-Туркстані

Вибачте, якщо мені було розпливчасто.
domotorp

0

Це не повна відповідь, і я не дуже досвідчений в нейронних мережах, але, можливо, корисний.

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

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

Чому грати в шахи простіше, ніж у Дейкстру чи Графізоморфізм?

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

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

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

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


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

@domotorp, я думаю, що між правильними алгоритмами та неправильною, але приблизною евристикою, існує величезна концептуальна та практична різниця. Ви не запитували, чому шахи важче, ніж приблизні найкоротші шляхи, ви запитували, чому шахи важче, ніж Dijkstra, що в усіх розмірах вводу є вірно правильним 100% часу. Re: нім, немає ідеї; вам потрібна архітектура NN, яка приймає довільно великий вхід, щоб почати з ...
usul

0

Я жодним чином не експерт, але поки не розумію, чому ні.

Нейронні мережі в основному здійснюють оптимізацію відповідно до якоїсь "моделі витрат / вигод", яка часто вже відома раніше. Крім того, простір пошуку добре визначений, з відомими дійсними та недійсними рухами та "варіантами", які легко визначити. Навіть для AlphaZero та AlphaGo функції витрат, ймовірно, базуються на виграшній ставці та отриманому розподілі ставок виграшу на всі можливі кроки після переходу, або на якусь евристичну для цього.

Розробляючи алгоритми, ви, по суті, просите програму навчитися виводити правильну рядок (з уже відомою функцією неявного кодування та витрат), що відповідає програмі, яка "виконує алгоритм". Однак, можливо, існує нескінченно багато алгоритмів, для яких ви реалізуєте програму. Тому, можливо, ви захочете визначити правильні показники "придатності".

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

Я гадаю, що якщо ви знайдете правильні показники фітнесу та алгоритми коригування, ви зможете це зробити.


-3

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


Я думаю, що оптимальна стратегія для відповідної гри така ж, як і оптимальний алгоритм відповідної проблеми.
domotorp

@domotorp "стратегія" скоріше евристична, ніж алгоритм
riemann77

-6

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

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