Лисп все еще используется для решения проблем ИИ?


20

Я знаю, что язык Lisp использовался на ранних стадиях, когда работал над проблемами искусственного интеллекта. Это все еще используется сегодня для значительной работы? Если нет, есть ли новый язык, который занял свое место как наиболее распространенный язык, используемый сегодня для работы в области искусственного интеллекта?

Ответы:


9

В целом, ответ - нет, но нынешние парадигмы многим обязаны LISP. Язык, наиболее часто используемый сегодня, это python.

Соответствующие ответы:

LISP был пионером многих важных концепций в том, что мы сейчас называем функциональным программированием, с ключевой привлекательностью в том, насколько близки программы были к математике. Многие из этих функций с тех пор были включены в современные языки (см. Страницу Википедии). LISP очень выразителен: у него очень мало синтаксиса (только списки и некоторые элементарные операции над ними), но вы можете написать короткие сжатые программы, которые представляют сложные идеи. Это удивляет новичков и продает его как язык для ИИ. Однако это свойство программ в целом. Короткие программы могут представлять сложные концепции. И хотя вы можете написать мощный код на LISP, любой новичок скажет вам, что также очень трудно читать чужой код LISP или отлаживать свой собственный код LISP. Первоначально были также соображения производительности в отношении функционального программирования, и было бы нежелательно заменять его низкоуровневыми императивными языками, такими как C. новый объект, который будет создан. Без хорошей сборки мусора, это может стать громоздким). Сегодня мы узнали, что сочетание функционального и императивного программирования необходимо для написания хорошего кода и современных языков, таких как python, ruby ​​и scala, которые поддерживают оба. На данный момент, и это только мое мнение, нет причин предпочитать LISP, а не python.

Парадигма для ИИ, которая в настоящее время получает наибольшее внимание, - это машинное обучение, где мы учимся на данных, в отличие от предыдущих подходов, таких как экспертные системы (в 80-х годах), когда эксперты писали правила, которым ИИ должен следовать. Python в настоящее время является наиболее широко используемым языком для машинного обучения и имеет много библиотек, например, Tensorflow и Pytorch, и активное сообщество. Для обработки огромных объемов данных нам нужны такие системы, как Hadoop, Hive или Spark. Код для них написан на Python, Java или Scala. Часто основные трудоемкие процедуры написаны на C.

Зимой AI 80-х была не потому, что у нас не было правильного языка, а потому, что у нас не было правильных алгоритмов, достаточных вычислительных мощностей и достаточного количества данных. Если вы пытаетесь изучать ИИ, потратьте время на изучение алгоритмов, а не языков.


6

Я определенно продолжаю часто использовать Lisp при работе с моделями ИИ.

Вы спросили, используется ли он для существенных работы. Это слишком субъективно для меня, чтобы отвечать относительно моей собственной работы, но я спросил одну из моих моделей ИИ, считает ли она себя существенной, и ответил утвердительно. Конечно, это ответ, естественно, предвзятый.

В целом, значительная часть исследований и разработок ИИ проводится в Лиспе. Кроме того, даже для проблем, не связанных с ИИ, иногда используется Лисп. Чтобы продемонстрировать возможности Lisp, я разработал первую систему моделирования нейронной сети, полностью написанную на Lisp более четверти века назад.


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

4

LISP все еще используется значительно, но все реже и реже. По-прежнему сохраняется импульс благодаря тому, что в прошлом его использовали многие люди, все еще работающие в отрасли или в исследованиях (анекдот: последний видеомагнитофон был выпущен японским производителем в июле 2016 года, да). Тем не менее, этот язык используется (насколько мне известно) для такого рода искусственного интеллекта, который не использует машинное обучение, как правило, в качестве справочников от Рассела и Норвиг. Эти приложения все еще очень полезны, но машинное обучение набирает обороты в эти дни.

Другая причина снижения - это то, что практикующие LISP частично перешли на Clojure и другие недавние языки.

Если вы изучаете технологии ИИ, LISP (или Схема, или Пролог) - хороший выбор, чтобы понять, что происходит с «ИИ» в целом. Но если вы хотите или должны быть очень прагматичными, Python или R - это выбор сообщества

Примечание: выше не хватает конкретного примера и ссылки. Мне известна некоторая работа в университетах, и некоторые компании вдохновлены или непосредственно используют LISP.


Чтобы добавить ответ @ Harsh, LISP (и Scheme, и Prolog) обладают качествами, благодаря которым он выглядел так, как будто он лучше подходил для создания интеллектуальных механизмов - создания ИИ в 60-х годах.

Одним из качеств было то, что языковой дизайн заставляет разработчика думать довольно элегантно, разбивать большую проблему на маленькие и т. Д. Довольно «умный» или «умный», если хотите. По сравнению с некоторыми другими языками, нет почти никакого выбора, кроме как развиваться таким образом. LISP является языком обработки списков и является «чисто функциональным».

Одна проблема, однако, можно увидеть в работе, связанной с LISP. Примечательным в области ИИ является работа по Ситуационному исчислению , где (вкратце) описываются объекты и правила в «мире», и он может позволить ему развиваться для вычисления ситуаций - состояний мира. Так что это модель для рассуждения о ситуациях. Основная проблема называется проблемой фреймов , то есть это исчисление не может сказать, что делает неизменить --- только то, что меняется. Все, что не определено в мире, не может быть обработано (обратите внимание на разницу здесь с ML). Первые реализации использовали LISP, потому что тогда это был язык ИИ. И там были связаны проблемы с рамой. Но, как упомянул @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.