Чи досі Лісп використовується для вирішення проблем зі ШІ?


20

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

Відповіді:


9

Загалом, відповідь "ні", але нинішні парадигми багато зобов'язані LISP. Мова, яка сьогодні найчастіше використовується - пітон.

Відповідні відповіді:

LISP став першопрохідцем багатьох важливих концепцій у тому, що ми сьогодні називаємо функціональним програмуванням, головним захопленням є те, наскільки близькі програми до математики. Багато з цих функцій з тих пір були включені в сучасні мови (див . Сторінку Вікіпедії). LISP дуже виразний: у нього дуже мало синтаксису (лише списки та деякі елементарні операції над ними), але ви можете писати короткі стислі програми, які представляють складні ідеї. Це дивує новачків і продає його як мову для ШІ. Однак це властивість програм загалом. Короткі програми можуть представляти складні поняття. І хоча ви можете написати потужний код у LISP, будь-який новачок скаже вам, що також дуже важко прочитати чийсь код LISP чи налагодити власний код LISP. Спочатку були також міркування щодо ефективності функціонального програмування, і це було вигідно, щоб його замінили імперативні мови низького рівня, наприклад C. новий об’єкт, який потрібно створити. Без гарного вивезення сміття, це може стати непростим). Сьогодні ми дізналися, що потрібен поєднання функціонального та імперативного програмування для написання хорошого коду та сучасних мов, таких як python, ruby ​​та scala. На даний момент, і це лише моя думка, немає ніяких причин віддавати перевагу LISP перед python.

Парадигма для ШІ, яка в даний час привертає найбільшу увагу, - це Машинне навчання, де ми вчимося на основі даних, на відміну від попередніх підходів, таких як Експертні системи (у 80-х роках), де експерти писали правила дотримання ШІ. На даний момент Python є найбільш широко використовуваною мовою для машинного навчання і має багато бібліотек, наприклад, Tensorflow і Pytorch, та активну спільноту. Для обробки великої кількості даних нам потрібні такі системи, як Hadoop, Hive або Spark. Код для них пишеться в python, java або scala. Часто основні підпрограми, що вимагають часу, записуються в С.

AI Зима 80-х була не тому, що ми не мали правильної мови, а тому, що у нас не було правильних алгоритмів, достатньої обчислювальної потужності та достатньої кількості даних. Якщо ви намагаєтеся вивчити AI, витрачайте свій час на вивчення алгоритмів, а не мов.


6

Я безумовно продовжую часто використовувати Lisp під час роботи над моделями AI.

Ви запитали, чи використовується вона для значної роботи. Це занадто суб'єктивно для мене, щоб відповісти про мою власну роботу, але я запитав одну зі своїх моделей AI, чи вважав вона себе істотною чи ні, і я відповів ствердно. Звичайно, відповідь природно також упереджена.

Загалом значна кількість досліджень та розробок ШІ проводиться в Ліспі. Крім того, навіть для проблем, що не належать до ШІ, іноді використовують Лісп. Щоб продемонструвати потужність Ліспа, я створив першу систему моделювання нейронної мережі, повністю написану в Ліспі за чверть століття тому.


Перша IDE теж була LISP IDE. Крім того, EMMAScript, формалізація JavaScript набагато краща лінгвістична система для швидкого прототипування, ніж модний на даний момент Python, і більше схожа на LISP, ніж на Java. Я не бачу великої стійкої цінності, що випливає з поточної тенденції ML, за винятком прогресу машинного зору та слуху. Я погоджуюся з тим, що LISP все ще є чудовою мовою для лабораторних робіт AI і набагато природніше, ніж XML для представлення структурованих даних.
Фахристиян

4

LISP все ще використовується значно, але все менше і менше. Все ще існує імпульс через те, що багато людей, які його використовують в минулому, все ще активно працюють у галузі чи дослідженні (анекдот: останній відеомагнітофон був виготовлений японським виробником у липні 2016 року, так). Однак мова використовується (наскільки мені відомо) для типу ІІ, який не використовує машинне навчання, як правило, довідники Рассела та Норвіга. Ці програми як і раніше дуже корисні, але машинне навчання сьогодні отримує всю пару.

Ще однією причиною зниження є те, що практикуючі LISP частково перейшли до Clojure та інших останніх мов.

Якщо ви дізнаєтесь про технології AI, LISP (або Схема або Prolog) - хороший вибір, щоб зрозуміти, що відбувається з "AI" взагалі. Але якщо ви хочете або маєте бути дуже прагматичними, Python або R - вибір громади

Примітка. У наведеному вище відсутній конкретний приклад та посилання. Мені відомо про деяку роботу в університетах, а також про деякі компанії, натхнені LISP або безпосередньо використовують їх.


Щоб додати відповідь @ Харша, LISP (і схема, і Prolog) має якості, завдяки яким він виглядав так, що він краще підходить для створення інтелектуальних механізмів --- створення AI, як сприймалося в 60-х.

Однією з якостей було те, що мовна конструкція змушує розробника мислити досить елегантно, розкладати велику проблему на невеликі проблеми і т. Д. Досить «розумний», або «розумний», якщо хочете. У порівнянні з деякими іншими мовами, майже не залишається іншого вибору, як розвиватись таким чином. LISP - мова обробки списків і "чисто функціональна".

Однак одну проблему можна побачити в роботі, пов'язаній з LISP. Помітною в області AI є робота над обчисленням ситуації , де (коротко кажучи) описуються об'єкти та правила у "світі", і вони можуть дозволити еволюціонувати для обчислення ситуацій --- держав світу. Тож це модель для міркування про ситуації. Основна проблема називається проблемою кадру , тобто це обчислення не може сказати, що нізмінювати --- лише те, що змінюється. Все, що не визначено у світі, не може бути оброблено (зверніть увагу на різницю тут в ML). Спочатку реалізація використовувала LISP, оскільки тоді це була мова AI. І там була пов'язана проблема кадру. Але, як згадував @Harsh, це не вина LISP: будь-яка мова зіткнеться з тим же питанням обрамлення (концептуальною проблемою обчислення ситуації).

Тож мова насправді не має значення з точки зору AI / AGI / ASI. Поняття (алгоритми тощо) насправді важливі.

Навіть у машинному навчанні мова - це лише практичний вибір. Python та R популярні сьогодні, насамперед завдяки їх бібліотечній екосистемі та увазі ключових компаній. Але спробуйте використати Python або R для запуску моделі для програми на основі RaspberryPI, і ви зіткнетесь з деякими суворими обмеженнями (але все-таки це можливо: я це роблю :-)). Тож вибір мови згорає до прагматизму.


1

На мою думку, python та java перейняли LISP. Багато людей ними користуються, є велика кількість бібліотек. І що ще важливіше, їх легко інтегрувати у веб-технології.

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