Машинное обучение и искусственный интеллект уже давно и прочно вошли в повседневную жизнь. Однако специалистов в этой области до сих пор очень мало. С чего же начать изучение сферы ИИ? На этот вопрос ответили пользователи сайта Quora.
Шриканс Варма Чекури, преподаватель и исследователь в сфере машинного обучения
Я работаю преподавателем онлайн-курса по изучение искусственного интеллекта и машинного обучения. Этот курс создан для новичков, у которых нет никаких знаний в данной сфере, которые, однако, готовы на протяжении 5-6 месяцев тратить 5-10 часов в неделю на изучение машинного обучения. По окончании данного курса многие наши студенты действительно решают существующие задачи при помощи ИИ\МО.
Работа курса построена следующим образом:
Мы начинаем с базовых знаний об Python, включая изучение крупных библиотек данных, таких как NumPy, SciPy, MatPlotlib, Seaborn и др. Среди множества языков программирования мы выбираем Python (а не Java или, к примеру, R), потому что этот язык достаточно легко изучить. Кроме того, для него существует огромное количество отличных библиотек для ИИ\МО.
Как только усвоен базовый уровень программирования, участники курса учатся работать с данными, используя Python в качестве инструмента программирования. Данный этап носит название «Исследовательский анализ данных» и включает в себя использование инструментов для построения диаграмм, что облегчает работу с данными. На этом этапе изучаются базовые понятия, такие как гистограмма, PDF, CDF, точечная и прямоугольная диаграммы и другие. Анализу подвергаются реально существующие массивы данных. Благодаря использованию диаграмм для осуществления анализа данных, уже на начальных этапах обучения студенты могут увидеть результат проделанных ими исследований, что, несомненно, мотивирует их на дальнейшую работу.
После мы переходим к изучению статистики и теории вероятности. Данный блок информации воспринимается участниками курса легче, учитывая то, что на предыдущем этапе велась работа с данными. Участники курса знакомятся с такими понятиями, как распределение вероятностей, тестирование гипотезы, корреляция, доверительные интервалы и многое другое. При помощи простых примеров, разбавляющих «сухую» теорию, данная тема воспринимается намного лучше.
Дальше мы переходим к линейной алгебре. Хоть многим людям намного проще воспринимать зрительную информацию, поэтому диаграммы и геометрия намного легче для восприятия, чем уравнения, все же базовые знания в линейной алгебры необходимы.
Теперь можно перейти непосредственно к основам машинного обучения. Мы используем Метод главных компонент (PCA) и алгоритм t-SNE для визуализации многомерных переменных. Однако в качестве базиса для извлечения математических деталей используется геометрия.
Изучив все необходимые основы, можно переходить к главным алгоритмам машинного обучения. Что касается уравнений – они начинают нравиться студентам только тогда, когда студенты в них разобрались и могут с легкостью их читать. Поэтому мы подаем уравнения в форме описательных предложений, что помогает студентам быстрее разобраться в них и получить более четкое представление о происходящем.
По моему опыту, изучение каждой отдельной техники необходимо сочетать с параллельной работой над действительно существующей задачей той же направленности. В нашем курсе изучается более 25 техник машинного обучения и 5 техник глубокого обучения.
Если у вас есть свободное время, то неплохо было бы использовать каждый отдельный метод на практике. Это даст вам более глубокое понимание того, каким образом функционирует каждый алгоритм в машинном обучении.
Кроме того, студенту также необходимо понять и разобраться, как наиболее эффективно применять различные методы, в каких случаях метод работает не лучшим образом и что делать, если метод плохо работает.
Также, для более глубокого погружения в машинное обучение необходимо разбираться в базовой математике и применять различные техники для решения многочисленных задач, существующих в данной области.
Ражж Раж, разработчик ПО в компании Facebook
Искусственный интеллект – это область науки, которая предоставляет колоссальные возможности. Разве вам не хочется понять, как работают инструменты и системы, с которыми вы имеете дело каждый день? Однако разобраться в этом сможет далеко не каждый. Прежде чем углубиться в то, как компания Google стремится создать квантовый компьютер, вам необходимо разобраться с основами, а именно, с программированием. Для начала изучите хотя бы один язык программирования. К наиболее классным языкам я бы отнес Java , Python, C++, JavaScript и Ruby on Rails. Вот несколько отличных ресурсов, которые помогут вам начать:
Codecademy.com – полностью бесплатный вебсайт с интерактивными курсами, посвященными самым разным языками программирования. Присоединяйтесь к более чем 25-ти миллионам пользователей со всего мира и осваивайте новые знания.
Codeavengers.com – научитесь создавать приложения, игры и вебсайты с помощью Code Avengers | Code Avengers. На этом сайте представлены онлайн-курсы и учебные пособия для множества языков программирования, включая Python, HTML & CSS, JavaScript. Кроме того, здесь можно найти руководство для новичков по освоению программирования.
Udacity – это ресурс со множеством инновационных курсов по программированию. Некоторые обучающие программы бесплатны, поэтому данный сайт отлично подойдет начинающим разработчикам.
«Чистый код» Роберт Мартин («Clean Code», by Robert C. Martin) – для тех, кому больше нравится читать. В данной книге можно найти огромное количество примеров с использование Java, однако они применимы также и к другим языкам программирования. Данное пособие обращает особое внимание на правильную организацию кода, поэтому оно может стать вашим пошаговым руководством в изучении возможностей, которые вам предоставляет программирование.
Далее вам следует научиться работать с ботами. Отличным примером таких ботов являются специализированные поисковые роботы, которыми пользуются поисковые системы, тот же Google. Следующие ресурсы могут дать вам исчерпывающую информацию по этой теме:
Xpath – отличный ресурс, который помогает вам создавать ботов и исследовать HTML.
Regex – онлайн-инструмент, который обучает обработке информации, полученной при помощи ботов.
Requests – упрощенный HTTP; отличная HTTP-библиотека для веб-разработчиков, которые хорошо знакомы с языком программирования Python.
Чат-боты: подробное руководство для начинающих («The Complete Beginner’s Guide to Chatbots») – содержит всю необходимую информацию о чатботах, о том, что это такое и как их создавать.
После того, как вы определитесь с языком программирования, который будет соответствовать вашим способностям и умениям, а также познакомитесь и узнаете достаточно о чатботах, можно переходить к изучению машинного обучения. Однако стоит учесть, что для погружения в данную тему вам необходимо владеть, как минимум, базовым уровнем высшей математики и статистики – это поможет вам разобраться в алгоритмах МО. Ниже представлены некоторые учебные пособия, книги и гайды, которые помогут вам на первых порах:
«Программируем коллективный разум» Тоби Сегаран («Programming Collective Intelligence» by Toby Segaran) – хоть эта книга и была написана задолго до того, как машинное обучение достигло нынешнего уровня популярности, однако в ней эта технология представлена в легко воспринимаемой форме. Ключевые темы: функции поисковой системы, методы совместного фильтрования, метод опорных векторов и байесовская фильтрация. Для описания машинного обучения используется Python.
«Машинное обучение» Том Митчелл ([PDF] «Machine Learning», by Tom Mitchell) – отличное вводное пособие, содержащее подробный обзор алгоритмов машинного обучения. В книге представлены несколько тематических исследований, сопровождаемых простыми примерам, которые облегчают читателю понимание алгоритмов.
«Машинное обучение. Новый искусственный интеллект» Этем Алпайдин («Machine Learning: The New AI», by Ethem Alpaydi) – это книга о том, как с развитием цифровых технологий от базовых мейнфреймов до смарт-девайсов машинное обучение стало одной из передовых технологий в области компьютерных наук. Кроме того, из данного пособия можно узнать базовую информацию о машинном обучении, а также то, каким образом данную технологию можно применять в отношении приложений.
Подводя итог, вот список тех областей, в которых у вас должно быть достаточно знаний, чтобы разобраться с искусственным интеллектом:
- Высшая математика (например, алгоритм расчета коэффициента корреляции) и Статистика
- Язык программирования
- Машинное обучение
- Терпение. Прежде всего вам необходимо просто море терпения.
Для изучения ИИ существует огромное количество курсов как в реальном, так и в онлайн-формате. Udacity.com, mit.edu, edX.org и saylor.org предлагают действительно крутые онлайн-курсы по этой теме:
«Введение в искусственный интеллект» на udacity.com («Intro to Artificial Intelligence») – этот состоящий из 10 уроков онлайн-курс позволяет новичкам окунуться в мир ИИ. Вы познакомитесь с такими понятиями, как компьютерное зрение, машинное обучение, обработка естественного языка, робототехника и теория игр. Чтобы освоить этот курс, необходимо обладать базовыми знаниями по линейной алгебре и теории вероятности.
«Искусственный интеллект» на edX.org («Artificial Intelligence») – для изучения базовых концептов ИИ можно использовать курс, представленный на сайте edX. Данный курс уделяет особое внимание статистической модели и модели теории принятия решений. Необходимы достаточные знания в математике, а также начальные знания и базовый опыт в программировании. В качестве основного языка используется Python. В рамках данного курса студенты научатся создавать автономных интеллектуальных агентов, которые запрограммированы на принятие рандомных решений, а также изучат приложения машинного обучения.
«Искусственный интеллект» от MIT OpenCourseWare («Artificial Intelligence»)– данный курс предоставит своим студентам исчерпывающие знания по методам обучения ИИ. По завершении данного курса вы будете знать основные способы сборки решений. Кроме того, вы взглянете на человеческий интеллект с точки зрения высоких технологий.
«Искусственный интеллект» от Saylor Academy («Artificial Intelligence Course») – в рамках данного курса студенты получат углубленные знания в области ИИ. Особое внимание уделяется таким темам, как машинное обучение, программирование искусственного интеллекта, робототехника, а также понимание естественного языка.
«Искусственный интеллект: Принципы и методы» (Stanford University: «Artificial Intelligence: Principles & Techniques») – прекрасный учебный курс для тех, кто хочет узнать больше об искусственном интеллекте. Данный курс базируется на основополагающих принципах ИИ и включает в себя такие темы, как машинное обучение, Марковский процесс принятия решений, удовлетворение ограничений, а также графические модели. Главная цель курса – позволить студентам освоить различные инструменты, с помощью которых они смогут внедрить ИИ в повседневную практическую деятельность, тем самым решив ряд существующих проблем.
Помимо посвященных ИИ курсов, специалисты в сфере IT, а также изучающие компьютерные науки студенты могут расширить свои знания в данной теме при помощи соответствующей учебной литературы. Область искусственного интеллекта обладает огромным количеством интересных, а иногда и несколько запутанных вопросов и тем для изучения. Вот лишь некоторые из пособий, которые помогут вам разобраться в данной теме:
«Искусственный интеллект: современный подход», Стюарт Рассел и Питер Норвиг ([PDF] «Artificial Intelligence: A Modern Approach», by Stuart J. Russell and Peter Norvig) – в первой части книги рассматриваются интеллектуальные агенты, далее можно найти информацию о теории принятия решений, а также раскрытие таких понятий, как «восприятие» и «рассуждение». В конце книги авторы оценивают общий потенциал данной технологии и дают прогноз на будущее.
«Революция Искусственного интеллекта – путь к Супер-интеллекту», Тим Урбан («The AI Revolution: Road to Superintelligence») – крайне детализированная и взвешенная статья, в которой автор пытается развеять некоторые из наиболее распространенных заблуждений, которые касаются сферы искусственного интеллекта.
«Искусственный интеллект на практике: программирование на Java», Марк Уотсон ([PDF] Practical Artificial Intelligence: Programming in Java , by Mark Watson) – будучи нацеленной как на любителей, так и на профессиональных программистов, данная книга учит читателя тому, как применять ИИ на практике. Каждая глава содержит технику обучения, немного теоретической информации об этой технике и пример на Java, который демонстрирует, как именно эта техника может быть использована.
«На пути к искусственному интеллекту», Нильс Нильсон ([PDF] The Quest for Artificial Intelligence, by Nils J. Nilsson) – в этой книге содержится все, что вам нужно знать об искусственном интеллекте с самого начала существования технологии (когда ИИ существовал еще только в форме концепта) и до наших дней.
Мы упомянули различные курсы, которые могут помочь вам в изучении искусственного интеллекта, а также некоторые книги, способные углубить ваши знания по этой теме. Теперь мы бы хотели обратить внимание на различные точки зрения, имеющиеся касательно ИИ. Один из наиболее удобных способов познакомиться с ними – это посещение различных мероприятий и конференций, а также просмотр видеоконференций. Вот некоторые из наиболее интересных докладов и презентаций:
Илон Маск об Искусственном Интеллекте (Elon Musk talks about Artificial Intelligence at MIT) – это дискуссия длительностью более часа, записанная в 2014 году на праздновании 100-летия со дня основания Кафедры аэронавтики и астронавтики Массачусетского технологического института. Обсуждение охватывает множество тем: от исследования Марса и роли НАСА в этом до предупреждений о существующей опасности со стороны ИИ, а также об электромобилях компании Tesla.
Обсуждение статуса и места искусственного интеллекта в нынешнем мире (Davos 2016, The State of Artificial Intelligence) – обстоятельное обсуждение, главной целью которого было найти ответ на крайне важные вопросы: «Насколько близко передовые технологии подошли к тому, чтобы навсегда изменить человеческий разум?» и «Какое влияние оказывает ИИ на развитие нынешней промышленности?».
Документальный фильм «Искусственный интеллект и робототехника» ([Documentary] Artificial Intelligence and Robotics) – «Внешность может быть обманчива» - и данный документальный фильм расскажет вам, почему этой пословице стоит верить. На протяжении многих десятилетий научная фантастика показывала нам роботов, готовых преданно служить человеку. Однако ИИ и роботы уже давно перестали быть всего лишь темой для научно-фантастических фильмов. Роботы борются за свое место в этом мире, диком и не прощающем ошибок. Современные технологии, такие как машинное обучение, программирование и глубокое обучение, дают нам надежду на то, что в скором времени роботы из лабораторий станут нашими полноправными соседями в реальном мире.
Илон Маск рассказывает об искусственном интеллекте в Стэнфордском университете (Elon Musk talks about artificial intelligence at Stanford University (2015)) – речь посвящена разным вопросам, обсуждение непосредственно ИИ начинается на 27 минуте. Илон Маск рассуждает о передовых технологиях, их месте в будущем, а также делает прогноз, что будет представлять собой искусственный интеллект через 25 лет.
Билл Гейтс и Илон Маск рассуждают о безопасности ИИ (Bill Gates and Elon Musk talk about AI safety) – оба оратора говорят об суперинтеллекте, ИИ, а также о том, что технологии делают для людей. Главная цель обсуждения – это обратить особое внимание на то, что необходимо сделать искусственный интеллект максимально безопасным. Маск уточняет, что создать и выпустить ИИ – это не так уж и сложно. Обеспечить его безопасность в дальнейшем – вот в действительности непростая задача.
Искусственный интеллект давно перестал быть всего лишь плодом нашего воображения. На сегодняшний день данная технология более чем реальна. Мы высоко ценим таких виртуальных помощников, как Cortana, Siri и Google Now, за их вклад в нашу жизнь. Игровая индустрия использует искусственный интеллект для создания впечатляющих онлайн-продуктов, а автопромышленность на сегодняшний день стремится усовершенствовать самоуправляемые машины.
Кроме того, с помощью искусственного интеллекта работают специализированные программы, направленные на выявление случаев мошенничества, а также программы, которые прогнозируют и предугадывают желания покупателя. Говоря простым языком, наш дом, банк, смартфон и машина – все это работает на основе ИИ.
Сридхар Махадеван, член Ассоциации по продвижению искусственного интеллекта
Свой ответ я бы хотел начать с уточнения того, что большую часть своей жизни, то есть, почти 40 лет, я провел за работой над ИИ. Для начала хотелось бы развеять некоторые неверные стереотипы и заблуждения:
ИИ никогда не был и не является подразделом чего-то, на мой взгляд, крайне скучного и повседневного, в том числе и сферы программного обеспечения. Нет никакой необходимости разбираться или уметь писать код, чтобы понять ИИ (по крайней мере, на начальных этапах). По сути, это не только не принесет никакой пользы, а даже наоборот, может озадачить и отбить всякое желание заниматься этим дальше. Что действительно необходимо прежде всего сделать, так это разобраться в проблеме.
ИИ – это одна из величайших задач и загадок человечества, главная цель которой – это создание машины, которая будет в какой-то мере напоминать нас. Эта машина должна будет перенять наши самые впечатляющие и удивительные способности, которые позволяют нам при помощи сенсорных систем воспринимать, фильтровать и распределять огромное количество информации. Каждый раз, когда вы читаете газету или протягиваете руку, чтобы взять чашку кофе, вы проделываете то, на что многие машины совершенно не способны. И даже больше: величайшие умы человечества до сих пор не знают, как сделать так, чтобы машины смогли это делать.
Если вкратце, то ИИ – это попытка воспроизвести процесс возникновения и дальнейшего развития человеческого мозга. Несмотря на все наши усилия, мы до сих пор почти ничего не знаем о том, каким именно образом наш мозг выполняет все те задания, которые отличают нас от остальных видов и делают нас людьми.
Комментарии
Начинать надо с общего образования. А моделировать многие реализации ИИ можно и на Экселе. :)
В статье нет главного: классификации реализаций ИИ. Возможно, есть в нагугленных автором ссылках, не смотрел.
Троечка.