Как выбрать язык для программирования Искусственного интеллекта? [закрытый]

Источник форматирования с 80 текстами столбца ранее, чем терминалы на 80 столбцов - перфокарта IBM относится ко времени 1928 ! Это напоминает о (недостоверный) история, что американский железнодорожный индикатор был определен шириной колес каретки в римской Великобритании.

я иногда нахожу его небольшим сжатием, но имеет смысл иметь [приблизительно 113] стандартный предел, так 80 столбцов, которые это.

Вот та же тема, затронутая Slashdot.

И вот олдскульный Оператор Фортрана:

FORTRAN punch card

38
задан nbro 25 September 2016 в 22:17
поделиться

9 ответов

Все крутые бородатые гуру в том, что осталось от исследований ИИ, используют Lisp :)

Есть два больших лагеря: Common Lisp и Scheme. У них разный синтаксис и т. Д. Для обоих написано много хороших вещей.

Java - очень популярный универсальный язык, но есть много интересных вещей в ИИ / функциональном программировании, таких как передача замыканий как объектов первого порядка, неудобно делать на Java.

Я лично предпочитаю держаться подальше от Windowsy-языков, таких как C # и F #. Классные люди развиваются под Unix. Или Linux, если они крутые, но плохие.

Некоторые крутые, но странные люди программируют на Haskell. Достаточно современный язык программирования FP с хорошей производительностью. Я попробовал однажды, у меня разболелась голова; но, возможно, ты умнее меня.


ОБНОВЛЕНИЕ: Ответы на вопросы Стива.

  1. Я бы не стал платить за вариант для Unix; это то, что делают корпорации и исследовательские институты. Идея в том, что вы хотите проводить исследования ИИ для организации, которая вкладывает миллионы в свое оборудование и не отказывается платить несколько тысяч за операционную систему. В таком наряде можно хорошо поесть в кафетерии и / или хорошо заплатить за веселую работу. Но я, конечно, не стучу по Linux.

  2. F # может быть крутым, но я вижу целый ряд проблем с его запуском в Linux или любой другой Unix (это то, что я имел в виду под "windowsy"), и я не хочу работать под Windows (это то, что я имел в виду под "личными предпочтениями").

  3. Чтобы уточнить тему "windowsy": вы упомянули, что F # является вариантом OCaml. Из моего, правда, краткого исследования, кажется, что в F # отсутствуют функторы, объекты в стиле OCaml, полиморфные варианты и препроцессор camlp4. Функциональный язык без функторов? В самом деле? Если бы кто-то был настроен не любить Microsoft, как я, по общему признанию, я, можно было бы сделать вывод, что они пошли дальше и сломали совершенно хороший функциональный язык, OCaml, в нечто, что они могли бы запустить в своей CLR, чтобы они могли утверждать, что "имеют" функциональный язык. Наконец, поскольку я не подозреваю, я знаю , что Microsoft всегда ставит доминирование на рынке выше качества продукта, я не планирую касаться F #. Но это мое личное предпочтение и четко обозначено как таковое, в то время как мы действительно больше озабочены тем, чтобы дать хорошую рекомендацию для mary.ja45.

У меня есть более веские причины рекомендовать Lisp вместо F # и даже OCaml и Haskell. В основном они основаны на историческом преобладании Lisp над любым другим языком в области ИИ.

  • Большая часть литературы по ИИ основана на программах, написанных на Лиспе или Прологе. По крайней мере, хорошее знание Лиспа позволит ученику понять примеры программ. Мой личный любимый мегапроект AI, Cyc, имеет время выполнения на ваш выбор Common Lisp или C.

  • В индексе языка программирования TIOBE (как видно и используется в промышленности) Lisp занимает 15-е место, в то время как Haskell - 43-е, а F # и OCaml. место ниже 50-го. Присутствие на рынке, естественно, коррелирует с возможностями трудоустройства.

Тем не менее, вполне возможно, что количество более молодых, «интересных для ИИ» языков вот-вот вырастет.

43
ответ дан 27 November 2019 в 03:05
поделиться

Это действительно зависит от того, на какую проблему вы обращаетесь. Кроме того, насколько «глубоко» вы хотите вникнуть в ИИ. Если вы хотите научиться основам и просто реализовать теоретический материал ИИ, используйте язык более высокого уровня - как в функциональном программировании (и проверено в ИИ), например, lisp или пролог. Если вы знаете, с какой проблемой вы имеете дело, и хотите работать эффективно, воспользуйтесь чем-то вроде Java, C ++ и воспользуйтесь набором инструментов для решения этой задачи. Поскольку вы упомянули машинное обучение, посмотрите на некоторые из этих вещей Weka Toolkit на Java.

4
ответ дан 27 November 2019 в 03:05
поделиться

Выберите язык программирования с методами искусственного интеллекта так же, как вы выбираете язык для любого другого проекта:

  • В чем заключается проблема, которую вы пытаетесь решить решить?
  • Есть ли хорошая поддержка для
    язык?
  • Каковы требования клиентов?

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

4
ответ дан 27 November 2019 в 03:05
поделиться

Нет "лучшего" языка. У каждого есть свои достоинства. Когда я изучал ИИ, в основном мы работали с шепелявым и прологом, но я был наиболее продуктивным в ИИ с Java / C #, а F # может многое предложить.

3
ответ дан 27 November 2019 в 03:05
поделиться

Также существует Java-фреймворк под названием weka , разработанный университетом Вайкато. Я не знаю, отвечает ли он на ваш вопрос, но это может помочь.

Цитата wikipedia : «Weka поддерживает несколько стандартных задач интеллектуального анализа данных, в частности, предварительную обработку данных, кластеризацию, классификацию, регрессию, визуализацию. »И др.

1
ответ дан 27 November 2019 в 03:05
поделиться

Я брошу Scala в горшок.

  • его можно использовать для функционального программирования
  • его можно сделать так же быстро, как и Java
  • это современный язык с множеством приятных аспектов
  • Java кажется немного популярной в AI тоже, поэтому вы можете использовать все эти библиотеки Java из Scala

. Я решил все упражнения из базового курса AI в Scala. Это сработало действительно хорошо.

14
ответ дан 27 November 2019 в 03:05
поделиться

Python, похоже, много используется в научном сообществе. В нем доступно множество библиотек, и его легко изучить.

19
ответ дан 27 November 2019 в 03:05
поделиться

Если под «весь ИИ» вы также подразумеваете машинное обучение, которое, я думаю, Matlab, R и Python + Scipy обязательно следует упомянуть.

12
ответ дан 27 November 2019 в 03:05
поделиться

Вероятно, имеет значение, является ли среда программирования академической или нет, но для разработки большинства неакадемических приложений ИИ я бы рекомендовал придерживаться основного языка, такого как Java или C ++. Необходимо иметь возможность легко взаимодействовать с другими COTS или пакетами программного обеспечения с открытым исходным кодом, а это иногда может быть сложно или невозможно на более «экзотических» языках. Для академической работы это может быть менее важным вопросом.

Кроме того, для многих приложений может быть важна производительность, а основные языки обычно имеют наиболее сильно оптимизированные компиляторы, например, C ++ или Java.

Это правда, что функциональные языки программирования, такие как LISP, Scheme и т. Д., Имеют специализированные функции, которые могут облегчить реализацию определенных методов ИИ, но я не верю, что это верно для программирования, связанного с ИИ, в целом, например, Методы количественного машинного обучения обычно не требуют функционального языка. Если вам нужен доступ как к функциональным конструкциям, так и к общим программным пакетам, есть несколько инструментов для LISP , которые помогут с этим, а недавно разработанный Clojure - это вариант LISP, работающий на JVM и может получить доступ к библиотекам Java. Кроме того, Groovy - это еще один язык на основе JVM, который включает поддержку замыканий.

Наконец, некоторым программистам нравится гибкость парадигм и / или быстрое создание прототипов для проектов ИИ. По этой причине и Ruby, и Python рассматривают некоторое использование, связанное с ИИ, как многопарадигмальные языки, которые также можно использовать для написания сценариев.

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

7
ответ дан 27 November 2019 в 03:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: