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

Основной вопрос перед разработчиком – какому языку отдать предпочтение для создания ИИ? Мы рассмотрим популярные языки, используемые для создания ИИ.

Одно только лишь название «искусственный интеллект» может привести в ступор и навести немало страха как на обычного человека, так и заурядного программиста. Занятие действительно сложное, а красивые демонстрируемые примеры - это результат многотысячных строк кода. При всём этом создание ИИ может стать вполне реальной задачей, а в части случаев, даже несложной. Многие проекты требуют углублённых знаний ИИ, а также языков программирования.

LISP

Родоначальником языков программирования, на которых начал создаваться искусственный интеллект стал LISP . ЛИСП отличается гибкостью использования и простотой расширения функционала. Благодаря наличию возможности быстрого прототипирования и установки макросов удалось сократить уйму времени, это принесло много пользы в отношении ИИ.

LISP стал универсальным языком, который равно хорошо справляется с относительно тяжёлыми и лёгкими задачами. В нём устроена качественная и продвинутая система объектно-ориентированности , что и позволило занять одну из лидирующих позиций при разработке ИИ.

Java

Наибольшим достоинством языка является многофункциональность, среди прочих:

  • прозрачность использования и написания кода;
  • способность легко переносить программы;
  • лёгкое сопровождение проектов.

Для новичков важным достоинством Java станет наличие многочисленных бесплатных уроков в сети. Обучение Java является максимально комфортным и удобным для большинства студентов и новичков.

Среди особенностей языка стоит выделить:

  • простота выполнения отладки;
  • качественное взаимодействие клиентской и серверной системы ресурса;
  • лёгкость обращения с масштабными проектами.

При создании проектов на Java пользователь сталкивается с более привлекательным и доступным интерфейсом, что всегда притягивает аудиторию.

Prolog

Данный вариант относится к интерактивным языкам, которые работают по символической системе. Он популярен для использования в отношении проектов, требующих высокие логические способности. Язык имеет мощную и удобную основу, она активно используется в отношении программирования non-численного типа . На основании Prolog`а часто создаются доказательства теорем, проводится взаимодействие с понятным человеческим языком, используется для создания систем экспертной оценки.

Пролог относится к декларативным типам языка, которые используют формальное или образное «мышление ». Среди разработчиков ИИ приобрёл хорошую славу благодаря оптимальным обструкционным типам работы, встроенным алгоритмам анализа, недетерминизма и т.д. Всё в сумме можно описать так: Prolog - многофункциональная платформа для программирования ИИ.

Python

Активно применяется в программировании благодаря чистому синтаксису и логическому, строгому грамматическому построению программы. Немаловажную роль играет и удобный дизайн.

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

История развития ИИ

Началом традиционного представления ИИ стал проект UNIMATE , который увидел мир в 1961 году . В ходе представления был впервые получен робот, который начал выпускаться в промышленных масштабах. Робот был задействован на линии производства в концерне «General Motors ». Для создания были задействованы Валь и переменные из среды ассемблера. Язык пришёлся по душе благодаря наличию простейших фраз, отражению команд на мониторе и наличию инструкций, не нуждающихся в дополнительных разъяснениях.

Спустя 4 года (1965 год ) был запущен искусственный интеллект « Dendral ». Задача системы заключалась в выявлении молекулярной и атомной структуре соединений органического происхождения. Для написания был использован LISP .

«Weizenbaum » в 1966 году запустил проект Элиза, который впервые предполагал проведение беседы с роботом. Самой известной моделью являлся «Доктор», который позволял отвечать на поставленные запросы в форме психотерапевта. Для реализации проекта потребовалось сопоставление нескольких образцов технического достижения своего времени. Впервые Элиза увидел мир на SPLIP, но для отработки списка запущен «Weizenbaum». Немногим позже проект переработан на другую платформу - LISP .

Первым роботом мобильного типа стал «Шеки », в его основе также лежал ЛИСП. Логика конструктора была построена на решении поставленных задач и передвижения, для взаимодействия использовались подъёмы вверх и вниз, а также включение и выключение света. С помощью «Шеки » удавалось открывать, закрывать, передвигать и т.д. Робот даже был способен передвигаться со скоростью равной спокойной ходьбе человека - 5 км/ч.

За последние 15 лет было представлено многочисленное количество изобретений: «Деннинг » (сторожевой робот), «Predator » (беспилотник), «АЙБО » (собака), «АСИМО » от Honda и многие другие. Тенденция идёт к развитию данного направления, чего и стоит ожидать в ближайшем и дальнем бедующем.

ПЛАН.

1. Введение.

2. Феномен мышления.

3. Создание искусственного интеллекта.

3.1 Механический подход.

3.2 Электронный подход.

3.3 Кибернетический подход.

3.4 Нейронный подход.

3.5 Появление перцептрона.

4. Заключение.

5. Список литературы.

1. ВВЕДЕНИЕ.

Современные философы и исследователи науки часто рассматривают междисциплинарные науки как одно из достижений заново открытых в 20 веке.

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

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

В понятие «искусственный интеллект» вкладывается различный смысл – от признания интеллекта у ЭВМ оснащенных программными продуктами распознавания текста и речи до отнесения к интеллектуальным лишь тех систем, которые решают весь комплекс задач, осуществляемых человеком.

Теория искусственного интеллекта при решении многих задач сталкивается с определёнными проблемами. Одна из таких проблем состоит в выяснении вопроса, доказуема ли теоретически (математически) возможность или невозможность искусственного интеллекта.

На этот счёт существуют две точки зрения. Одни считают математически доказанным, что ЭВМ в принципе может выполнить любую функцию, осуществляемую естественным интеллектом. Другие полагают в такой же мере доказанным математически, что есть проблемы, решаемые человеческим интеллектом, которые принципиально недоступны ЭВМ. Эти взгляды высказываются как кибернетиками так и философами. Одна из многих проблем (можно сказать основная) состоит в том, что системы, обладающие психикой, отличаются от ЭВМ тем, что им присущи биологические потребности.

Отражение внешнего мира проходит через призму этих потребностей, в чем выражается активность психической системы. ЭВМ не имеет потребностей, для неё информация незначима, безразлична. У человека над слоем биологических потребностей надстраиваются социальные потребности, и информация для него не только биологически но социально значима. Однако технические системы все-таки могут иметь аналог телесной организации. Развитая кибернетическая система обладает рецепторными и эффекторными придатками. На практике под крышей термина искусственная жизнь гнездится грандиозное разнообразие различных проектов от моделей копирования ДНК и систем с обратной связью до изучения коллективного разума и динамики роста населения.

2. ФЕНОМЕН МЫШЛЕНИЯ.

Машины уже научились слагать стихи, сочинять музыку, рисовать картины. Возможно, кому-то покажется, что это – несомненный признак их разумности. Ведь если ЭВМ доступно творчество, которое всегда считалось свойством высокого интеллекта, то справедливо ли отказывать ей в разуме?

Всё же большинство из нас едва ли согласятся считать рисующую и сочиняющую стихи ЭВМ мыслящей. Что же тогда следует называть мышлением?(2)

Далёкому от науки человеку трудно себе представить, как много умеют делать современные кибернетические устройства. Стоит хотя бы упомянуть о так называемых «экспертных системах», которые на основе имеющихся в их памяти сведений анализируют состояние больного, режим технологического процесса, дают советы, как поступить в той или иной ситуации. При этом ЭВМ не только сообщает своё решение, но и объясняет, почему оно должно быть таковым. По сравнению с электронной памятью, выдачей архивных справок и математическими вычислениями, что сегодня у большинства людей ассоциируется сегодня с образом компьютера, это – качественно новая ступень интеллектуальной деятельности, когда на основе имеющегося вырабатывается новое знание. До сих пор это считалось неоспоримой привилегией человеческого мозга. Неудивительно, что тому, кто впервые встречается с подобными системами, часто просто не верится, что он имеет дело с «железной ЭВМ», а не со спрятавшимся где-то оператором-человеком.

Способность ЭВМ выполнять математические расчеты, к чему мы привыкли, ещё совсем недавно рассматривалась как одна из самых высших ступеней духовной деятельности человека. Комплексные числа, с которыми легко оперирует почти любая ЭВМ, Г.Лейбниц, сам выдающийся математик, называл «духовными амфибиями», удивительным «порождением духа Божьего», а писатель В.Одоевский в своей «Русской речи» писал о нашей способности к вычислениям как о каком-то непостижимом, почти мистическом свойстве: При всяком математическом процессе мы чувствуем, как к нашему существу присоединяется какое-то другое, чужое, которое трудится, думает, вычисляет, а между тем наше истинное существо как бы перестаёт действовать, не принимая никакого участия в этом процессе, как в деле постороннем, ждёт своей собственной пищи, а именно связи, которая должна существовать между ним и этим процессом, - и этой связи мы не находим».

Можно представить, как был бы поражён Одоевский, узнав о вычислительных способностях наших ЭВМ! Тем не менее, мы не считаем их думающими.

Любая вычислительная машина, каким бы поразительным ни было её «умение» обучаться, работает на основе заранее составленной для неё программы и поступающих внешних данных. Правда, мы, люди, тоже реализуем определенные программы действий, особенно в первые месяцы жизни, когда наше поведение почти целиком определяется заложенной в нас генетической программой. Однако принципиальное различие в том, что человек способен мотивированно, т.е. в зависимости от определённых условий, изменять программу и делает это так, что между Сарой и новой программами нет непрерывного логического мостика. Как это происходит, тоже пока не ясно, тут много споров и различных точек зрения, но это уже другой вопрос, важно, что современные вычислительные машины этим свойством не обладают. Вот если бы случилось так, что какая-то ЭВМ, решившая, скажем задачи по электромагнетизму и квантовой механике, объединила бы эти два раздела науки и вывела уравнения квантовой электродинамики, а потом с их помощью предсказала бы новые явления в этой неизвестной ей ранее области, тогда, наверное, мы были бы в праве назвать её думающей. И прежде всего потому, что она сама, без всякой программной подсказки, решила заняться качественно новой задачей. Слово «решила» как раз и означает, что она мыслит.

Всякая интеллектуальная задача представляет собой поиск способа достижения поставленной цели, а иначе это будет не решением задачи, а просто действием по точной инструкции.

Когда мы говорим, что школьник решает задачу, это означает прежде всего, что он должен сообразить, какую взять для этого формулу, какие подставить в неё числа. Однако, если он, заглядывая в тетрадь соседа, подставляет указанные там числа в написанную на доске формулу, это уже не решение, а механическое повторение. Именно так ведут себя современные ЭВМ. Строго говоря, никаких задач они не решают, и часто используемое нами выражение «ЭВМ решает» имеет условный смысл…

Способность ставить задачу и самопрограмироваться на её решение – это как раз и есть главное, что характеризует феномен мышления.

Можно возразить данному утверждению, отметив, что и рыбы, и примитивные амёбы в погоне за добычей, тоже ставят себе задачи, изменяющиеся в зависимости от конкретных условий, значит – и они мыслят?

Это могут быть примитивные формы мышления, ведь объяснить поведение животных во всём многообразии жизненных ситуаций одним лишь инстинктом – это гипотеза.(2)

Животным и птицам присуще такое свойство мышления, как способность к обобщению. Например, они узнают пищу в различных конкретных формах, так сказать – пищу вообще.

Наше обыденное понимание разумного слишком очеловечено, и, подобно тому, как в XIX веке многим казалась нелепой сама мысль о преемственной связи между человеком и обезьяной сегодня многих из нас смущает мысль о возможности нечеловеческого интеллекта. В частности, сами того не замечая, мы часто связываем представление о мышлении со способностью осознавать своё собственное «я», и это мешает нам более широко взглянуть на феномен мышления. Правда, связь между мышлением и чувством «я», по-видимому, действительно существует. Можно думать, что в условиях прихотливо изменяющейся внешней обстановки сложная система будет устойчивой лишь в том случае, если она обладает способностью ощущать своё состояние, а в этом и состоит суть нашего «я». Анализ показывает, что подобное чувство необходимо уже многим роботам-автоматам. Ведь робот, да и вообще всякая сложная самообучающаяся и активно общающаяся с человеком машина должна сообщать ему о состоянии своей памяти, о том, что ей понятно, а что – нет и почему. А для этого автомат должен ощущать и быть способным выразить своё состояние. Это нужно роботу и для того, чтобы вовремя заметить неполадки в своём «организме». Не осознающий себя робот едва ли сможет долго просуществовать в сложной, быстро меняющейся и воздействующей на него обстановке.

3.СОЗДАНИЕ ИСКУССТВЕННОГО ИНТЕЛЛНКТА.

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

Терпеливо продвигаясь вперед в своем нелегком труде, исследователи, работающие в области искусственного интеллекта (ИИ), обнаружили, что вступили в схватку с весьма запутанными проблемами, далеко выходя­щими за пределы традиционной информатики. Оказалось, что прежде всего необходимо понять механизмы процесса обучения, природу языка и чувс­твенного восприятия. Выяснилось, что для создания машин, имитирующих работу человеческого мозга, требуется разобраться в том, как действуют миллиарды его взаимосвязанных нейронов. И тогда многие исследователи пришли к выводу, что пожалуй самая трудная проблема, стоящая перед современной наукой - познание процессов функционирования человеческого разума, а не просто имитация его работы. Что непосредственно затраги­вало фундаментальные теоретические проблемы психологической науки. В самом деле, ученым трудно даже прийти к единой точке зрения относи­тельно самого предмета их исследований - интеллекта. Здесь, как в притче о слепцах, пытавшихся описывать слона, пытается придерживаться своего заветного определения.

На этой неделе вы могли прочитать крайне мотивирующей кейс от ученика GeekBrains , который изучил профессию , где он рассказал об одной из своих целей, которая привела в профессию - желанию познать принцип работы и научиться создавать самому игровых ботов.

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

Стадия 1. Разочарование

Когда мы говорим о создании хотя бы простых ботов, глаза наполняются блеском, а в голове мелькают сотни идей, что он должен уметь делать. Однако, когда дело доходит до реализации, оказывается, что ключом к разгадке реальной модели поведения является математика. Да-да, искусственный интеллект куда сложнее написания прикладных программ - одних знаний о проектировании ПО вам не хватит.

Математика - этот тот научный плацдарм, на котором будет строиться ваше дальнейшее программирование. Без знания и понимания этой теории все задумки быстро разобьются о взаимодействие с человеком, ведь искусственный разум на самом деле не больше, чем набор формул.

Стадия 2. Принятие

Когда спесь немного сбита студенческой литературой, можно приступать к практике. Бросаться на LISP или другие пока не стоит - сначала стоит освоиться с принципами проектирования ИИ. Как для быстрого изучения, так и дальнейшего развития прекрасно подойдёт Python - это язык, чаще всего используемый в научных целях, для него вы найдете множество библиотек, которые облегчат ваш труд.

Стадия 3. Развитие

Теперь переходим непосредственно к теории ИИ. Их условно можно разделить на 3 категории:

  • Слабый ИИ – боты, которых мы видим в компьютерных играх, или простые подручные помощники, вроде Siri. Они или выполняют узкоспециализированные задачи или являются незначительным комплексом таковых, а любая непредсказуемость взаимодействия ставит их в тупик.
  • Сильный ИИ – это машины, интеллект которых сопоставим с человеческим мозгом. На сегодняшний день нет реальных представителей этого класса, но компьютеры, вроде Watson очень близки к достижению этой цели.
  • Совершенные ИИ – будущее, машинный мозг, который превзойдёт наши возможности. Именно об опасности таких разработок предупреждают Стивен Хоккинг, Элон Маск и кинофраншиза «Терминатор».

Естественно, начинать следует с самых простых ботов. Для этого вспомните старую-добрую игру «Крестики-нолики» при использовании поля 3х3 и постарайтесь выяснить для себя основные алгоритмы действий: вероятность победы при безошибочных действиях, наиболее удачные места на поле для расположения фигуры, необходимость сводить игру к ничьей и так далее.

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

К слову, если вы всё-таки взялись за язык Python, то создать довольно простого бота можно, обратившись к этому подробному мануалу . Для других языков, таких как C++ или Java , вам также не составит труда найти пошаговые материалы. Почувствовав, что за созданием ИИ нет ничего сверхъестественного, вы сможете смело закрыть браузер и приступить к личным экспериментам.

Стадия 4. Азарт

Теперь, когда дело сдвинулось с мёртвой точки, вам наверняка хочется создать что-то более серьёзное. В этом вам поможет ряд следующих ресурсов:

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

Стадия 5. Работа

Теперь же, когда вы уже вполне ясно представляете, как ИИ создавать и чем при этом пользоваться, пора выводить свои знания на новый уровень. Во-первых, для этого потребуется изучение дисциплины, которое носит название «Машинное обучение ». Во-вторых, необходимо научиться работать с соответствующими библиотеками выбранного языка программирования. Для рассматриваемого нами Python это Scikit-learn, NLTK, SciPy, PyBrain и Numpy. В-третьих, в развитии никуда не обойтись от . Ну и самое главное, вы теперь сможете читать литературу о ИИ с полным пониманием дела:

  • Artificial Intelligence for Games , Ян Миллингтон;
  • Game Programming Patterns , Роберт Найсторм;
  • AI Algorithms, Data Structures, and Idioms in Prolog, Lisp, and Java , Джордж Люгер, Уильям Стбалфилд;
  • Computational Cognitive Neuroscience , Рэнделл О’Рейли, Юко Мунаката;
  • Artificial Intelligence: A Modern Approach , Стюарт Рассел, Питер Норвиг.

И да, вся или почти вся литература по данной тематике представлена на иностранном языке, поэтому если хотите заниматься созданием ИИ профессионально - необходимо подтянуть свой английский до технического уровня. Впрочем, это актуально для любой сферы программирования, не правда ли?

«Хочу заниматься ИИ. Что стоит изучить? Какие языки использовать? В каких организациях учиться и работать?»

Мы обратились за разъяснением к нашим экспертам, а полученные ответы представляем вашему вниманию.

Это зависит от Вашей базовой подготовки. Прежде всего, необходима математическая культура (знание статистики, теории вероятностей, дискретной математики, линейной алгебры, анализа и др.) и готовность многому быстро учиться. При реализации методов ИИ потребуется программирование (алгоритмы, структуры данных, ООП и др.).

Разные проекты требуют владения разными языками программирования. Я бы рекомендовал знать как минимум Python, Java и любой функциональный язык. Нелишним будет опыт работы с различными базами данных и распределёнными системами. Чтобы быстро изучать лучшие подходы, применяемые в индустрии, требуется знание английского языка.

Учиться рекомендую в хороших российских вузах! Например, в МФТИ, МГУ, ВШЭ есть соответствующие кафедры. Большое разнообразие тематических курсов доступно на Coursera, edX, Udacity, Udemy и других MOOC площадках. Некоторые ведущие организации имеют собственные программы подготовки в области ИИ (например, Школа анализа данных у Яндекса).

Прикладные задачи, решаемые методами ИИ, можно найти в самых разнообразных местах. Банки, финансовый сектор, консалтинг, ритейл, e-commerce, поисковые системы, почтовые сервисы, игровая индустрия, индустрия систем безопасности и, конечно, Avito — все нуждаются в специалистах различной квалификации.

Повысить Понизить

У нас есть проект по финтеху, связанный с машинным обучением и компьютерным зрением, в котором первый его разработчик писал все на C++, далее пришел разработчик, который все переписал на Python. Так что язык тут не самое главное, так как язык - это прежде всего инструмент, и от вас зависит, как его использовать. Просто на каких-то языках задачи решать быстрее, а на других более медленно.

Где учиться, сказать сложно — все наши ребята учились сами, благо есть интернет и Google.

Повысить Понизить

Могу посоветовать с самого начала готовить себя к тому, что учиться придётся много. Вне зависимости от того, что подразумевается под «заниматься ИИ» — работа с большими данными либо нейросети; развитие технологии или поддержка и обучение некой определённой уже разработанной системы.

Давайте ради конкретики возьмём трендовую профессию Data Scientist. Что делает этот человек? В общем и целом — собирает, анализирует и готовит к употреблению большие данные. Именно те, на которых растёт и тренируется ИИ. А что должен знать и уметь Data Scientist? Статический анализ и математическое моделирование – по умолчанию, причём на уровне свободного владения. Языки – скажем, R, SAS, Python. Также хорошо бы иметь какой-никакой опыт разработки. Ну и, вообще говоря, хороший дата-сайнтист должен уверенно себя чувствовать в БД, алгоритмике, визуализации данных.

Не сказать, чтобы такой набор знаний можно было получить в каждом втором техническом вузе страны. Крупные компании, у которых в приоритете разработка ИИ, это понимают и разрабатывают под себя соответствующие учебные программы — существует, например, Школа анализа данных от Яндекса. Но вы должны отдавать себе отчёт, что это не тот масштаб, где ты приходишь на курсы «с улицы», а выходишь с них готовым джуниором. Пласт большой, и идти учиться по дисциплине имеет смысл тогда, когда уже охвачена база (математика, статистика) хотя бы в рамках вузовской программы.

Да, времени уйдёт порядочно. Но игра стоит свеч, потому что хороший Data Scientist – это очень перспективно. И очень дорого. Есть ещё и другой момент. Искусственный интеллект – это, с одной стороны, уже не просто объект ажиотажа, а вполне себе вышедшая на виток продуктивности технология. С другой стороны, ИИ всё ещё только развивается. Для этого развития требуется много ресурсов, много навыков и много денег. Пока это уровень высшей лиги. Я сейчас скажу очевидную вещь, но, если вы хотите оказаться на острие атаки и своими руками двигать прогресс, цельтесь в компании уровня Facebook или Amazon.

В то же время в ряде областей технологию уже применяют: в банковской сфере, в телекоме, на промышленных предприятиях-гигантах, в ритейле. И там уже нужны люди, способные её поддерживать. Gartner прогнозирует, что к 2020 году 20% всех предприятий в развитых странах будут нанимать специальных сотрудников для тренировки нейронных сетей, используемых в этих компаниях. Так что пока ещё есть немного времени, чтобы подучиться самому.

Повысить Понизить

ИИ сейчас активно развивается, и предсказывать на десять лет вперед сложно. На ближайшие два-три года будут доминировать подходы на базе нейросетей и вычислений на основе GPU. Лидером в этой области является Python с интерактивной средой Jupyter и библиотеками numpy, scipy, tensorflow.

Есть много онлайн-курсов, которые дают базовое представление об этих технологиях и общих принципах ИИ, например курс Andrew Ng. И в плане обучения этой теме сейчас в России эффективнее всего самостоятельное обучение или в локальной группе по интересам (например, в Москве я знаю о существовании как минимум пары групп, где люди делятся опытом и знаниями).

Повысить Понизить

Повысить Понизить

На сегодняшний день самая быстро прогрессирующая часть искусственного интеллекта - это, пожалуй, нейронные сети.
Изучение нейросетей и ИИ стоит начать с освоения двух разделов математики - линейной алгебры и теории вероятности. Это обязательный минимум, незыблемые столпы искусственного интеллекта. Абитуриентам, желающим постичь основы ИИ, при выборе вуза, на мой взгляд, стоит обратить внимание на факультеты с сильной математической школой.

Следующий шаг - изучение проблематики вопроса. Существует огромное количество литературы, как учебной, так и специальной. Большинство публикаций по теме искусственного интеллекта и нейросетей написаны на английском языке, однако русскоязычные материалы тоже публикуются. Полезную литературу можно найти, например, в общедоступной цифровой библиотеке arxiv.org .

Если говорить о направлениях деятельности, то здесь можно выделить обучение прикладных нейронных сетей и разработку совершенно новых вариантов нейросетей. Яркий пример: существует такая очень востребованная сейчас специальность - «дата-сайентист» (Data Scientist). Это разработчики, которые, как правило, занимаются изучением и подготовкой неких наборов данных для обучения нейросетей в конкретных, прикладных областях. Резюмируя, подчеркну, что каждая специализация требует отдельного пути подготовки.

Повысить Понизить

Прежде чем приступать к узкопрофильным курсам, нужно изучить линейную алгебру и статистику. Погружение в ИИ я бы посоветовал начать с учебника «Машинное обучение. Наука и искусство построения алгоритмов, которые извлекают знания из данных», это неплохое пособие для начинающих. На Coursera стоит послушать вводные лекции К. Воронцова (подчеркну, что они требуют хорошего знания линейной алгебры) и курс «Machine Learning» Стэнфордского университета, который читает Andrew Ng, профессор и глава Baidu AI Group/Google Brain.

Основная масса пишется на Python, потом идут R, Lua.

Если говорить об учебных заведениях, лучше поступить на курсы при кафедрах прикладной математики и информатики, подходящие образовательные программы есть. Для проверки своих способностей можно принять участие в соревнованиях Kaggle, где предлагают свои кейсы крупные мировые бренды.

Повысить Понизить

В любом деле, прежде чем приступать к проектам, хорошо бы получить теоретический базис. Есть много мест, где можно получить формальную степень магистра по этому направлению, либо повысить свою квалификацию. Так, например, Сколтех предлагает магистерские программы по направлениям «Computational Science and Engineering» и «Data Science», куда входит курсы «Machine Learning» и «Natural Language Processing». Можно также упомянуть Институт Интеллектуальных Кибернетических систем НИЯУ МИФИ, Факультет вычислительной математики и кибернетики МГУ и Кафедру «Интеллектуальные системы» МФТИ.

Если же формальное образование уже имеется, есть ряд курсов на различных платформах MOOC. Так, например, EDx.org предлагает курсы по искусственному интеллекту от Microsoft и Колумбийского университета, последний из которых предлагает микро-магистерскую программу за умеренные деньги. Хотелось бы особо отметить, что обычно сами знания вы можете получить и бесплатно, оплата идет только за сертификат, если он нужен для вашего резюме.

Если же вы хотите «глубоко погрузиться» в тему, ряд компаний в Москве предлагает недельные интенсивы с практическими занятиями, и даже предлагают оборудование для экспериментов (например, newprolab.com), правда, цена таких курсов от нескольких десятков тысяч рублей.

Из компаний, которые занимаются разработкой Искусственного Интеллекта, вы наверняка знаете Яндекс и Сбербанк, но есть и многие другие разных размеров. Например, на этой неделе Минобороны открыло в Анапе Военный инновационный технополис ЭРА, одной из тем которого является разработка ИИ для военных нужд.

Повысить Понизить

Прежде чем изучать искусственный интеллект, надо решить принципиальный вопрос: красную таблетку взять или синюю.
Красная таблетка - стать разработчиком и окунуться в жестокий мир статистических методов, алгоритмов и постоянного постижения непознанного. С другой стороны, не обязательно сразу кидаться в «кроличью нору»: можно стать управленцем и создавать ИИ, например, как менеджер проекта. Это два принципиально разных пути.

Первый отлично подходит, если вы уже решили, что будете писать алгоритмы искусственного интеллекта. Тогда вам надо начать с самого популярного направления на сегодняшний день – машинного обучения. Для этого нужно знать классические статистические методы классификации, кластеризации и регрессии. Полезно будет также познакомиться с основными мерами оценки качества решения, их свойствами… и всем, что попадется вам по пути.

Только после того, как база освоена, стоит проштудировать более специальные методы: деревья принятия решений и ансамбли из них. На этом этапе нужно глубоко погрузиться в основные способы построения и обучения моделей - они скрываются за едва приличными словами беггинг, бустинг, стекинг или блендинг.

Тут же стоит познать методы контроля переобучения моделей (еще один «инг» - overfitting).

И, наконец, совсем уж джедайский уровень - получение узкоспециальных знаний. Например, для глубокого обучения потребуется овладеть основными архитектурами и алгоритмами градиентного спуска. Если интересны задачи обработки естественного языка, то рекомендую изучить рекуррентные нейронные сети. А будущим создателям алгоритмов для обработки картинок и видео стоит хорошенько углубиться в свёрточные нейронные сети.

Две последние упомянутые структуры - кирпичики популярных сегодня архитектур: состязательных сетей (GAN), реляционных сетей, комбинированных сетей. Поэтому изучить их будет нелишним, даже если вы не планируете учить компьютер видеть или слышать.

Совсем другой подход к изучению ИИ - он же «синяя таблетка» - начинается с поиска себя. Искусственный интеллект рождает кучу задач и целых профессий: от руководителей ИИ-проектов до дата-инженеров, способных готовить данные, чистить их и строить масштабируемые, нагруженные и отказоустойчивые системы.

Так что при «менеджерском» подходе сначала стоит оценить свои способности и бэкграунд, а уже потом выбирать, где и чему учиться. Например, даже без математического склада ума можно заниматься дизайном ИИ-интерфейсов и визуализациями для умных алгоритмов. Но приготовьтесь: уже через 5 лет искусственный интеллект начнет вас троллить и называть «гуманитарием».

Основные методы ML реализованы в виде готовых библиотек, доступных к подключению на разных языках. Наиболее популярными языками в ML сегодня являются: C++, Python и R.

Есть множество курсов как на русском, так и английском языках, таких как Школа анализа данных Яндекса, курсы SkillFactory и OTUS. Но прежде чем инвестировать время и деньги в специализированное обучение, думаю, стоит «проникнуться темой»: посмотреть открытые лекции на YouTube с конференций DataFest за прошлые годы, пройти бесплатные курсы от Coursera и «Хабрахабра».

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

Повысить Понизить

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

Как опытным, так и начинающим программистам рекомендую начать с онлайн-курсов на MOOC-площадках. Например, на Coursera есть отличная специализация «Машинное обучение и анализ данных» от Яндекса и Высшей школы экономики. Если нет проблем с пониманием лекций на английском языке, там же можно пройти курс Эндрю Ына «Machine Learning».

Основные языки программирования для работы в области ИИ и машинного обучения - R и Python. Долгое время эти языки использовались в академических кругах и для них было создано большое количество библиотек. Сейчас развиваются инструменты, позволяющие быстро стартовать свой проект: Keras, TensorFlow, Theano, Caffe, scikit-learn. Последнее время Microsoft начал активно развивать свои инструменты: CNTK, ML.NET. Они позволяют создавать интеллектуальные решения на языке C#.

Найти работу, не имея практического опыта в сфере анализа данных и машинного обучения, сейчас довольно сложно. Но можно обучаться самостоятельно на онлайн-курсах, участвовать в соревнованиях на Kaggle и подобных платформах. Это позволит наработать портфолио, которое станет вашим конкурентным преимуществом при поиске работы.

Повысить Понизить

Экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков . Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на , мы расскажем как это сделать.

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

LISP


Первый компьютерный язык, применяемый для создания искусственного интеллекта - ЛИСП. Этот язык является довольно таки гибким и расширяемым. Такие особенности, как быстрое прототипирование и макросы очень полезны в создании ИИ. LISP - это язык, который превращает сложные задачи в простые. Мощная система объектно-ориентированности делает LISP одним из самых популярных языков программирования для искусственного интеллекта.

Java

Основные преимущества этого многофункционального языка являются: прозрачность, переносимость и удобство сопровождения. Еще одним преимуществом языка Java является универсальность. Если вы новичок, то вас обрадует тот факт, что существуют сотни видеоуроков в Интернете, что сделает ваше обучение легче и эффективнее.

Основными особенностями java являются: легкая отладка, хорошее взаимодействие с пользователем, простота работы с большими проектами. Проекты, созданные с помощью языка Java имеют привлекательный и простой интерфейс.

Prolog

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

Пролог - это декларативный язык с формальной логикой. Разработчики искусственного интеллекта ценят его за высокий уровень абстракции, встроенный механизм поиска, недетерминизм и т.д.

Python

Python - широко используется программистами из-за его чистой грамматики и синтаксиса, приятного дизайна. Различные структуры данных, куча Фреймворков тестирования, соотношение высокого уровня и низкого уровня программирования, которые делают Питон одним из самых популярных языков программирования для искусственного интеллекта.

История развития ИИ

Для того, чтобы увидеть связь между ИИ и языком программирования, давайте рассмотрим наиболее важные события в истории ИИ. Все началось в 1939 году, когда робот Электро был представлен на Всемирной выставки. Следующий робот был построен в 1951 году, Эдмундом Беркли.

Робот Робби был построен в 1956 году. К сожалению, нет информации о том, как он был разработан. В 1958 году, был изобретен язык программирования ЛИСП. Хотя этот язык был разработан 60 лет назад, он до сих пор остается основным языком для многих программ искусственного интеллекта.

В 1961 году, был построен UNIMATE. Это первый промышленный робот, который выпускается серийно. Этот робот был использован в «Дженерал Моторс» для работы на производственной линии. Для изготовления UNIMATE ученые использовали Валь, переменная ассемблера. Этот язык состоит из простых фраз, команд монитора, и инструкций, которые не требуют пояснений.

Система искусственного интеллекта Dendral, была построена в 1965 году. Она помогала легко определять молекулярную структуру органических соединений. Эта система была написана на Лиспе.

В 1966 году, Weizenbaum создал Элизу, первого виртуального собеседника. Одна из самых знаменитых моделей назывался Доктор, он отвечал на вопросы в стиле психотерапевта. Этот бот был реализован при сопоставлении образцов техники. Первая версия Элизы была написана на SLIP, список обработки языка был разработан Weizenbaum. Позже одна из его версий была переписана на Лиспе.

Первый мобильный робот, запрограммированный на Лиспе был Шеки. С помощью решения задач программы прокладок и датчиков, шейки двигался, включал и выключал свет, поднимался вверх и вниз, открывал двери, закрывал двери, толкал предметы, и двигал вещи. Перемещался Шеки со скоростью 5 км в час.

В ближайшие 15 лет мир увидел множество удивительных изобретений: Сторожевого робота Деннинг, ЛМИ Лямбда, Omnibot 2000, MQ-1 Predator беспилотный, Ферби, АЙБО робот собака, и Хонда АСИМО.

В 2003 году iRobot изобрел робот-пылесос Roomba. Разработанный на Лиспе, это автономный пылесос моет полы, используя определенные алгоритмы. Он обнаруживает препятствия и обходит их.


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




Top