Вопрос: На каком языке пишут искусственный интеллект?

Автор Анонимный вопрос задал интересный вопрос в категории Высокие технологии, Искусственный интеллект, Языки программирования. Он спрашивает: На каком языке пишут искусственный интеллект?. Среди полученных ответов он выбрал самый точный и полный ответ.

Самый полезный ответ для автора Анонимный вопрос

Большие успехи, из-за которых вокруг AI и machine learning сейчас наблюдается самый настоящий хайп, дело совсем недавнее. Например, вот эта картинка из известного среди гиков комикса xkcd нарисована в сентябре 2014 года, а всё ещё упоминает задачу «распознать, что на фото есть птица» как нечто невероятно сложное, потребующее команды исследователей и пяти лет разработки. С тех пор эта задача стала доступна практически любому упорному студенту. Соответственно, в последние годы под словами «искусственный интеллект» подразумевают в основном машинное обучение. Это не всегда было так: в разное время к «искусственному интеллекту» могли причислять экспертные системы, написанные на языках Лисп и Пролог, алгоритмы планирования, написанные на Java или С++, или вообще какие-то модные в разные годы технологии, для создания которых могли использоваться почти какие угодно языки программирования и их смеси. Когда вы слышите, например, что такая-то российская система вооружений «снабжена искусственным интеллектом», вполне возможно, что речь идёт о какой-то довольно простой по современным меркам логике, написаной, может быть, на языке Паскаль, а может быть, даже и прямо на ассемблере.В создании систем, основанных на машинном обучении, есть два больших ответвления: нейронные сети (часто также используется более размытый, но круто звучащий термин deep learning) и статистические методы, например, градиентный бустинг. Для некоторой части статистических методов иногда используется коммерциализированный термин data mining.Использование нейронных сетей состоит примерно из трёх частей. Во-первых, нужно спроектировать и описать её структуру (часто также говорят «архитектуру», но это нужно не путать с использованием слова «архитектура» в других областях программирования). Во-вторых, нужно её обучить. В-третьих, нужно написать код, который будет применять обученную нейронную сеть и дальше что-то делать с результатами её работы. Обучение и применение нейронной сети очень вычислительно тяжелый процесс, ещё несколько лет назад подразумевалось, что это делается на С или С++, и код, который это делает, нужно специально для этого каждый раз отдельно писать. В последние годы для этих этапов появились стандартные, хорошо спроектированные и работающие инструменты, например, TensorFlow, Theano или Torch. Внутри они по-прежнему написаны на каком-то языке, близком к железу, вроде С, но для всех, кроме их создателей, это уже не очень важно. Ну а первый этап — описание структуры сети — в них для удобства уже выполняется на каком-то более удобном и приятном, хоть и сильно менее эффективном, языке. Чаще всего это Python, иногда Lua. Вот что скрывается за словами «разработчики искусственного интеллекта работают на питоне».В статистическом машинном обучении экспериментируют обычно на Питоне, а в production работают монструозные системы, разрабатываемые сотнями человек. Пишут этот код на C++ с «вкраплениями» Питона или, реже, Java. Примеры таких систем — поисковые машины Яндекса или Гугла; рекламные сети, которые пытаются подсунуть вам именно ту рекламу, на которую вы кликнете; и даже та штука, которая в ленте Facebook старается показать вам те обновления, которые вы с большей вероятностью «лайкнете».

Кроме этого другие посетители написали Ещё 3 ответа

Большие успехи, из-за которых вокруг AI и machine learning сейчас наблюдается самый настоящий хайп, дело совсем недавнее. Например, вот эта картинка из известного среди гиков комикса xkcd нарисована в сентябре 2014 года, а всё ещё упоминает задачу «распознать, что на фото есть птица» как нечто невероятно сложное, потребующее команды исследователей и пяти лет разработки. С тех пор эта задача стала доступна практически любому упорному студенту. Соответственно, в последние годы под словами «искусственный интеллект» подразумевают в основном машинное обучение. Это не всегда было так: в разное время к «искусственному интеллекту» могли причислять экспертные системы, написанные на языках Лисп и Пролог, алгоритмы планирования, написанные на Java или С++, или вообще какие-то модные в разные годы технологии, для создания которых могли использоваться почти какие угодно языки программирования и их смеси. Когда вы слышите, например, что такая-то российская система вооружений «снабжена искусственным интеллектом», вполне возможно, что речь идёт о какой-то довольно простой по современным меркам логике, написаной, может быть, на языке Паскаль, а может быть, даже и прямо на ассемблере.В создании систем, основанных на машинном обучении, есть два больших ответвления: нейронные сети (часто также используется более размытый, но круто звучащий термин deep learning) и статистические методы, например, градиентный бустинг. Для некоторой части статистических методов иногда используется коммерциализированный термин data mining.Использование нейронных сетей состоит примерно из трёх частей. Во-первых, нужно спроектировать и описать её структуру (часто также говорят «архитектуру», но это нужно не путать с использованием слова «архитектура» в других областях программирования). Во-вторых, нужно её обучить. В-третьих, нужно написать код, который будет применять обученную нейронную сеть и дальше что-то делать с результатами её работы. Обучение и применение нейронной сети очень вычислительно тяжелый процесс, ещё несколько лет назад подразумевалось, что это делается на С или С++, и код, который это делает, нужно специально для этого каждый раз отдельно писать. В последние годы для этих этапов появились стандартные, хорошо спроектированные и работающие инструменты, например, TensorFlow, Theano или Torch. Внутри они по-прежнему написаны на каком-то языке, близком к железу, вроде С, но для всех, кроме их создателей, это уже не очень важно. Ну а первый этап — описание структуры сети — в них для удобства уже выполняется на каком-то более удобном и приятном, хоть и сильно менее эффективном, языке. Чаще всего это Python, иногда Lua. Вот что скрывается за словами «разработчики искусственного интеллекта работают на питоне».В статистическом машинном обучении экспериментируют обычно на Питоне, а в production работают монструозные системы, разрабатываемые сотнями человек. Пишут этот код на C++ с «вкраплениями» Питона или, реже, Java. Примеры таких систем — поисковые машины Яндекса или Гугла; рекламные сети, которые пытаются подсунуть вам именно ту рекламу, на которую вы кликнете; и даже та штука, которая в ленте Facebook старается показать вам те обновления, которые вы с большей вероятностью «лайкнете».

Искусственный интеллект — это «зонтичный» термин, который накрывает собой множество не очень связанных дисциплин.Так, если вас интересует машинное обучение — то там почти безраздельно правит Python. Также используют R, Matlab/Octave, …. При этом, когда дело доходит до применения в индустриальных системах, то решения часто переписывают на C/C++. Особенно это касается машинного зрения.Если говорить про математический ИИ — то там правят математические языки: Mathematica (см. Wolfram Alpha), Matlab, Maple.Для систем автоматического доказательства и экспертных систем часто используют декларативные языки, такие как LISP, Prolog, CLIPS.Но это всё не ограничивает разработчика в творчестве. Поэтому появляются такие милые вещи, как свёрточные нейронные сети в браузере: https://cs.stanford.edu/people/karpathy/convnetjs/

Теоретически, можно использовать практически любой язык программирования, но выделяют 4 наиболее подходящих для этого языка: LISP, Prolog, Java и Python. Лично от себя могу посоветовать для изучения последний, так как он является довольно чистым и прозрачным, а так же вести разработку на нем получается куда быстрее.

по моему так на любом
Читайте также:  Вопрос: Как сверстать сайт из PSD в HTML?
Adblock
detector