Розвиваються штучні нейронні мережі для вирішення завдань NP


10

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

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

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

Тому в основному моє запитання таке: Чи не могли ми використовувати генетичні алгоритми + нейронні мережі для вирішення кожної проблеми НП? Ми просто створюємо правильний еволюційний контекст і залишаємо «природі» знайти рішення.

Інцепціонізм: заглиблюючись у нейронні мережі

EDIT: Я знаю, що ми можемо використовувати Brute-Force або знайти неефективне рішення у багатьох випадках. Ось чому я намагаюся виділити Еволюціонуючі штучні нейронні мережі. Як я сказав у коментарі: Враховуючи достатній час та відповідну частоту мутацій, ми могли б знайти оптимальне рішення (або, принаймні, так я думаю).

Концепція


1
Нам не треба. Ми можемо просто використовувати грубу силу. Яка саме ваша мета?
Pål GD

2
Я не є фахівцем з нейронних мереж, тому не знаю, чи можуть вони бути навчені правильно вирішувати проблеми НП. Але я не думаю, що ви ставите правильне запитання. Створювати алгоритм, який вирішує проблему, що міститься в NP, зазвичай не є складним, просто перевіряйте кожне можливе рішення. Однак знайти алгоритм, який вирішує проблему з важким NP в поліноміальний час - це вже інша історія, і його існування вкрай малоймовірне. Оскільки нейронні мережі можуть бути змодельовані справжньою машиною, вони все ще потребують суперполіномного часу, якщо P = NP і не допоможе.
Денніс Крафт

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

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

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

Відповіді:


21

Ні. Цей напрямок навряд чи буде корисним з двох причин:

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

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

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


1
Дійсно хороша відповідь. Генетичні алгоритми + нейронні мережі видаються дуже потужними, але, можливо, цього недостатньо для вирішення кожної проблеми з np. Я уявляю, як залишити цю нейронну мережу + генетичні алгоритми в дикій природі шукаючи цього рішення. Як маленькі розвідники ха-ха.
NMO

1
Можна також відзначити, що нейронні мережі зазвичай дають певну ймовірність знайти правильну відповідь, а не гарантію. Коли ви послабите свої проблемні вимоги, щоб дозволити неоптимальні рішення, дуже часто є практичні рішення проблем, повних NP, незважаючи на їхню нестабільність у гіршому випадку.
Дан Брайант

9

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


4

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

Однією з важливих особливостей нейронних мереж є те, що вони не зобов'язані щоразу знаходити "правильну" відповідь. Їм дозволяється «помилятися». Наприклад, ви можете вирішити проблему упаковки у сміттєві кошики і прийти до рішення, яке не відповідає 1% від ідеального рішення, і цілком задоволений цією відповіддю.

Якщо ви знімаєте вимогу бути 100% правильним кожен раз, інші підходи до вирішення проблем спрацьовують дуже добре. Наприклад, багато алгоритмів планування маршрутів (а-ля Google Maps) повинні бути завершеними NP, але цілком тривіально знайти алгоритм, який знаходить шлях у межах 1% від оптимальних 99,9% часу. Він намагається закріпити результати в останніх 0,1% випадків, які зумовлюють цілі НП, щоб вони були настільки розумно дорогими.

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


1

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

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

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


Чи можете ви додати якісь посилання на свою відповідь? Крім того, спробуйте покращити форматування (наприклад, використовуйте NP, SGD, зворотне розповсюдження тощо) і, можливо, додайте деякі розриви рядків).
Yuval Filmus

Добре вніс кілька змін, дайте мені знати, чи варто мені кудись піти далі
нік

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

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

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