Подтвердить что ты не робот

Lisp и Prolog для искусственного интеллекта?

Теперь, когда я взял класс 3 года назад в A.I. im явно достаточно опытный, чтобы задать этот вопрос...... просто шутить, просто шучу;)

но серьезно, что это за эти языки, которые делают их настолько популярными для A.I. исследование. Хотя А.И. исследование "старое"... это, вероятно, самый длинный путь за последние 5-10 лет, похоже,... Это потому, что языки были несколько "разработаны" вокруг концепции А.И., или просто у нас нет ничего лучшего в использовании сейчас?

Я спрашиваю об этом, потому что я всегда находил его довольно интересным, и мне просто любопытно. Если я полностью ошибаюсь, и они используют разные языки, я хотел бы знать, что они используют. Я имею в виду, что я могу понять пролог, особенно с Sentient/Propositional Logic и Fuzzy logic. но я не понимаю "почему" мы будем использовать Lisp... и даже то, что еще A.I. исследователи использовали бы машинное обучение и т.д.

Полезны любые статьи/книги по теме:)

4b9b3361

Ответ 1

Не могу говорить с Prolog, но вот почему Lisp:

  • Lisp - это homoiconic, что означает, что код выражается в той же форме (s-expressions) в качестве структур данных на языке. то есть "код - это данные". Это имеет большие преимущества, если вы пишете код, который модифицирует/управляет другим кодом, например. генетические алгоритмы или символические манипуляции.

    Макросистема
  • Lisp делает ее хорошо подходящей для определения проблемных DSL. Большинство разработчиков Lisp эффективно "расширяют язык", чтобы делать то, что им нужно. Опять тот факт, что Lisp является гомоиконическим, чрезвычайно помогает здесь.

  • Существует некоторая историческая связь, в которой Lisp стал популярным примерно в то же время, что и много ранних исследований ИИ. Некоторые интересные факты в этой теме.

  • Lisp отлично работает как функциональный язык программирования. Это довольно хорошая область, подходящая для AI (где вы часто просто пытаетесь заставить машину научиться создавать правильный вывод для заданного ввода).

  • Субъективное мнение: Lisp, похоже, обращается к людям с математическим мышлением, который, как оказалось, является именно то, что вам нужно для большого количества современных AI..... это возможно из-за того, что Lisp довольно тесно связан с нетипизированным лямбда-исчислением

В настоящий момент я занимаюсь изучением AI/машинного обучения и выбрал Clojure (современный Lisp на JVM) в значительной степени по вышеуказанным причинам.

Ответ 2

Вопрос уже ответил за Lisp, поэтому я просто прокомментирую Prolog.

Prolog был разработан для двух вещей: обработка естественного языка и логические рассуждения. В парадоксах GOFAI начала 1970-х годов, когда был изобретен Prolog, это означало:

  • построение символических грамматик для естественного языка, которые будут использоваться для построения логических представлений предложений/высказываний;
  • используя эти представления и логические аксиомы (не обязательно классической логики) для вывода новых фактов;
  • используя аналогичные грамматики для перевода логического представления обратно на язык.

Prolog очень хорош в этом и используется в ISS для такой задачи. Однако подход был дискредитирован, потому что

  • "все утечки грамматик" : никакая грамматика не может уловить все правила и исключения на языке;
  • чем более подробно описана грамматика, тем выше сложность (как большая, так и практическая) разбора;
  • логические рассуждения являются неадекватными и ненужными для многих практических задач;
  • статистические подходы к НЛП, т.е. "подсчет слов", оказались гораздо более надежными. С ростом Интернета доступны достаточные наборы данных для получения статистики разработчиками НЛП. В то же время затраты на память и диск снизились, а мощность обработки по-прежнему относительно дорогая.

Только недавно исследователи НЛП разработали несколько практических комбинированных символико-статистических подходов, иногда используя Prolog. В остальном мире используются Java, С++ или Python, для которых вы можете более легко находить библиотеки, инструменты и программисты, не относящиеся к PhD. Тот факт, что ввод-вывод и арифметика громоздки в Prolog, не способствует его принятию.

В настоящее время Prolog в основном ограничивается приложениями, специфичными для домена, с использованием NLP и рассуждений о ограничениях, где он, похоже, довольно неплохо работает. Тем не менее, немногие компании-разработчики программного обеспечения будут рекламировать "построенную на технологии Prolog", поскольку язык получил плохое имя, чтобы не оправдать обещание "сделать AI легким".

(Я хотел бы добавить, что я отличный поклонник Prolog, но даже я использую его только для прототипирования.)

Ответ 3

Lisp имело преимущество, когда мы полагали, что AI - манипуляция символами и такие вещи, как онтологии. У Пролога было преимущество, когда мы считали ИИ логичным, а Унификация была сложной операцией. Но ни одно из них не дает каких-либо преимуществ для любого из нынешних претендентов на "AI": Статистический ИИ - это редкие массивы. Нейронные сети всех видов, включая глубокое обучение, относятся к океанам узлов, связанных со ссылками. Модели Бесплатные методы (многие виды машинного обучения, эволюционные методы и т.д.) Также очень просты. Сложность возникает, поэтому вам не нужно беспокоиться об этом. Напишите простую основу, которая может узнать, что ей нужно, чтобы узнать. В любом из этих случаев будет использоваться любой язык общего назначения. Аргументы могут даже быть сделаны, что большинство подходов к нейронной сети настолько просты, что С++ будет излишним.

Используйте язык, который позволяет наиболее легко нанять лучших программистов для выполнения задачи.

Ответ 4

Здесь были какие-то хорошие и содержательные ответы, но точка Lisp и Prolog либо была пропущена, маргинализована, либо недостаточно подчеркнута.

Lisp, а затем позже Пролог появился в эпоху, когда основное исследование ИИ вращалось вокруг символической обработки. Простым примером символической обработки является то, как мы, люди, делаем алгебру, исчисление или интегралы вручную. Мы символически манипулируем переменными и константами для получения эквивалентных отношений. Lisp и Prolog были разработаны для этой цели.

Символическая манипуляция не реализована тривиально в С++ или Java, поскольку они не были разработаны с этой целью. Однако С++, Java или подобные языки могут быть языковыми слоями в AI в настоящее время, потому что в настоящее время существует несколько вариантов исследований AI, которые не имеют отношения к символической обработке.

Одна форма ИИ связана с использованием статистических методов в качестве основы знаний, и для этого требуется использование гораздо более компактных языков для сокращения времени вычислений. Также многие так называемые системы ИИ представляют собой не что иное, как специализированные системы, предназначенные для конкретной цели. Конечно, эти системы могут быть лучше всего запрограммированы на языке Lisp/Prolog и меньше полагаться на "рассуждение" или приобретение знаний в здравом смысле и многое другое на обработку данных с входов.

Даже Watson (который запрограммирован на Java, С++ и немного Prolog), возможно, является высокоспециализированной системой. Похоже, Уотсон был разработан для получения огромного количества фактов, посредством чего он затем сортирует эти факты с использованием сложных алгоритмов поиска (не уверен, хотя и IBM, вероятно, возмутится меня за это). Будущие реализации ИИ, скорее всего, будут сочетать парадигмы ИА и внедрять различные языки для каждой специализированной части. Даже Lisp и Prolog однажды могут вернуться.

Ответ 5

Это, может быть, хорошие идеи, чтобы вспомнить мотивы для Пролога: Логика решения проблем и понимания рассуждений, человека или машины. Это постоянный проект, и хотя Prolog - один из его лучших результатов, не является его окончательным. Мы продолжаем искать лучшие языки для представления знаний. Проверьте последнюю книгу Боба Ковальского: как быть искусственно умным.

Ответ 6

но я не понимаю "почему" мы будем использовать Lisp... и даже то, что еще А.И. исследователи использовали бы машинное обучение и т.д.

Янн ЛеКун разработал Lush aka LISP Универсальная оболочка. Недавно он также стал директором AI Research в сети социальных сетей.

Полезны любые статьи/книги по теме:)

Я думаю, вы уже знаете Искусственный интеллект: современный подход Это самая читаемая учебная книга для ИИ в университетах.