Как изучить искусственный интеллект самостоятельно
С чего начать изучение искусственного интеллекта?
Простой 1 комментарий
marataziat, часть лиц в возрасте, который соотвествует 8 классу, имеют степень кандидата ф.м. наук
Потому мой прогноз остается в силе
Изучение искусственного интеллекта?
Интересует робототехника, дроны, квадрокоптеры, и т. п
И без русского языка тоже! Страшно представить чему роботов научишь..
Стив Джобс, Бил Гейств были простыми парнями они даже программирования не знали. Я думаю что наш кругозор мышления это и есть творения, что бы что-то создать не обязательно учится в институте, достаточно мысленно понять как это работает.
У самого первого пк не было ОС была Consol’e с не больщим количеством команд, затем ssh, ms, windows. Создайте что-то своё уникальное можно начать работать с готовой чужой заброшенной работой, что в свою юность и сделали Бил и Джобс.
В обще что-бы создать уникальный искусственный интеллект не говоря уже о каких-то алис, гугл и.тд, я думаю нужно поднимать тему создания интеллекта с помощью живого мозга человека и его изучения. Искусственный интеллект это набор созданный функций с помощью которых робот или бот выполняют свою задачу на ту или иную человеческую функцию.
Наука о данных, искусственный интеллект, машинное обучение: путь самоучки
Не каждый может найти время и деньги на то, чтобы получить очное образование в сферах Data Science (DS, наука о данных), AI (Artificial Intelligence, искусственный интеллект), ML (Machine Learning, машинное обучение). Недостаток времени и нехватка денег — это серьёзные препятствия. Преодолеть эти препятствия можно, занявшись самообучением. Но и тут не всё так просто. Для того чтобы успешно учиться самостоятельно, нужны дисциплина, сосредоточенность и правильный подбор учебных предметов. Самообучение в выбранной области, при правильном подходе, можно свободно совмещать с обычной жизнью или с учёбой в общеобразовательных учреждениях. Но в некоторых областях знаний, в таких, как DS, AI, ML, очень сложно начать учиться самостоятельно. Однако, прошу поверить мне на слово, сложности стоят того, что можно получить в результате. Ключ к успеху в самообучении лежит в том, чтобы учиться в собственном темпе.
В этом материале я хочу рассказать о том, как можно действовать тому, кто хочет самостоятельно обрести знания в областях DS, AI и ML. Применение предложенных здесь методов учёбы способно привести к хорошему прогрессу в изучении нового. Здесь, кроме того, я собираюсь поделиться ссылками на ресурсы, которыми я пользуюсь, и которые я без тени сомнения готов порекомендовать другим.
Изучите некоторые математические дисциплины
Математика, даже если это кому-то и не нравится, очень важна в интересующей нас области. Я думаю, что можно с достаточной уверенностью говорить о том, что те, кто это читают, уже обладают некоторыми знаниями по математике, которые они получили в школе. Это — хорошая база, но этого и близко недостаточно тому, кто хочет развиваться в сферах DS, AI и ML. А именно, тут понадобится углубиться в математику немного сильнее, чем это делается в школе, придётся изучить некоторые вещи из статистики, алгебры и других математических дисциплин. Я собрал бы список полезных ресурсов по математике для DS, но это уже сделали за меня в этой статье. И сделали очень хорошо.
Научитесь программировать
Если вы только начинаете самообучение — не стоит сразу бросаться в изучение того, как писать код для целей машинного обучения. Вместо этого стоит изучить основные концепции программирования, не привязанные к какой-либо предметной области. Узнайте о том, что такое программирование, ознакомьтесь с разными существующими типами кода, разберитесь с тем, как правильно писать программы. Это очень важно, так как в процессе освоения программирования вы изучите множество базовых идей, которые сослужат вам хорошую службу на протяжении всей вашей DS-карьеры.
Не спешите, не стремитесь сразу изучить что-то сложное. То, насколько хорошо вы поймёте основы, скажется на всей вашей будущей профессиональной деятельности. Здесь вы можете найти очень хорошие видеоуроки, которые познакомят вас с программированием и информатикой. А именно, в них разбираются самые важные вещи, в которых вам нужно разбираться. Уделите этому вопросу достаточно времени и постарайтесь дойти до понимания всего, что узнаете.
Выберите один язык программирования и как следует в нём разберитесь
Существует много языков программирования, используемых теми, кто работает в областях DS, AI и ML. Чаще всего здесь используются Python, R, Java, Julia и SQL. В данных сферах могут применяться и другие языки, но те, которые я перечислил, применяются чаще других не без причины:
Научитесь собирать данные
Чаще всего вам никто не будет давать данные, предназначенные специально для вас, а иногда в вашем распоряжении может не быть вообще никаких данных. Но, в любом случае, вам нужно найти способ сбора данных, с которыми вы будете работать. У организации, в которой вы трудитесь, может быть хорошая система сбора данных. Если это так, для вас это — большой плюс. Если такой системы в организации нет, то вам придётся найти способ сбора данных. Но речь идёт не о любых данных, а о качественной информации, с который вы сможете продуктивно работать, достигая поставленных целей. Сбор данных не имеет прямой связи с «добычей данных», с их глубинным анализом. Сбор данных — это шаг работы, который предшествует анализу.
Открытые данные, которыми можно пользоваться бесплатно, можно найти во многих местах интернета. Иногда же нужные данные можно собрать с веб-сайтов, применяя методы веб-скрапинга. Владение веб-скрапингом — это очень важный навык дата-сайентиста, поэтому я очень прошу всех, кто собирается работать в областях DS, AI и ML, освоить этот навык. Вот хорошее руководство по веб-скрапингу.
Данные, кроме того, могут храниться в базах данных, поэтому вам очень пригодятся начальные сведения по администрированию БД и умения по взаимодействию с базами данных. В частности, здесь очень важны знания SQL. Поучиться SQL можно здесь.
Научитесь обрабатывать данные
То, о чём я будут тут говорить, часто называют «первичной обработкой данных» (Data Wrangling). Этот процесс включает в себя очистку имеющихся данных. Здесь применяется разведочный анализ данных и удаление из них всего ненужного. Этот процесс так же включает в себя структурирование данных, приведение их к такой форме, с которой можно будет работать. Эта стадия работы с данными является самой тяжёлой и изматывающей. Те данные, с которыми вы столкнётесь в процессе обучения, будут уже подготовлены к анализу. Но данные, с которыми вы встретитесь в реальном мире, могут быть совершенно «сырыми». Если вы и правда стремитесь стать специалистом в области обработки и анализа данных, вам стоит найти настоящие данные и отыскать способы приведения их в пристойный вид.
Реальные данные можно найти практически повсюду. Например — на Kaggle. На этой замечательной платформе имеются данные от множества компаний со всего мира. Первичная обработка данных — это очень утомительное занятие, но если вы будете заниматься этим регулярно и настойчиво, вы, постепенно, поймёте, что занятие это ещё и очень интересное. Вот хорошие лекции по первичной обработке данных.
Научитесь визуализировать данные
Если вы — специалист по DS, AI или ML, и хорошо разбираетесь в своём деле, вы не должны забывать о том, что то, что кажется вам очевидным, может быть совершенно непонятно окружающим. Не ждите от них того, что они, например, смогут сделать выводы, глядя на колонки цифр. Научиться визуализировать данные нужно для того чтобы результатами вашей работы могли бы воспользоваться специалисты из других областей. «Визуализацией данных» обычно называют процесс представления данных в графическом виде. Такое представление данных позволит извлечь их них пользу даже тем, кто не имеет специальных знаний в сферах DS, AI и ML.
Существует множество способов визуализации данных. Так как мы, всё же, программисты, нашим основным методом визуализации данных должно быть написание соответствующего кода. Это быстро и не требует покупки специализированных инструментов. При написании кода для визуализации данных можно пользоваться множеством бесплатных и опенсорсных библиотек, созданных для используемых нами языков программирования. Например, существуют библиотеки такого рода для Python. Это — Matplotlib, Seaborn и Bokeh. Вот видеоурок по Matplotlib.
Ещё один способ визуализации данных предусматривает использование инструментов с закрытым кодом. Например — Tableau. Существует много таких средств, они позволяют добиваться весьма привлекательных результатов, но они не бесплатны. Tableau — один из самых распространённых подобных инструментов, им я пользуюсь очень часто. Я посоветовал бы всем, кто занимается анализом и визуализацией данных, изучить Tableau. Вот хорошее руководство по этому инструменту.
Искусственный интеллект и машинное обучение
AI и ML можно рассматривать как подразделы DS, так как они основаны на данных. AI и ML — это технологии, которые основаны на обучении машин поведению, сходному с поведением людей. Для этого используются специально подготовленные данные, передаваемые машинам. Компьютерные модели можно научить многому такому, на что способны люди. Для этого их обучают и направляют к нужному результату. В данном случае «машины» можно воспринимать как маленьких детей, не имеющих совершенно никаких знаний. Этих детей постепенно обучают идентифицировать объекты, говорить. Они учатся на своих ошибках и, по мере обучения, начинают всё лучше решать поставленные перед ними задачи. Так происходит и с машинами.
Технологии AI и ML — это то, что «оживляет» машины с использованием множества математических алгоритмов. Человечеству до сих пор не известны границы возможностей этих постоянно совершенствующихся технологий. В наши дни технологии AI и ML широко используются для решения когнитивных задач. Это — обнаружение и распознавание объектов, распознавание лиц и речи, обработка естественного языка, выявление спама и обнаружение мошенничества. Этот список можно ещё очень долго продолжать.
Более подробный рассказ об AI и ML достоин отдельной публикации. Пока же я могу порекомендовать это видео, касающееся общих вопросов применения данных технологий. А вот — многочасовой видеоурок, посвящённый машинному обучению. Проработав эти видео, вы можете приобрести знания в сфере ML, соответствующие начальному или даже среднему уровню. Вы узнаете о множестве существующих алгоритмов машинного обучения, о том, как они устроены, и о том, как ими пользоваться. После этого у вас должно быть достаточно знаний для того чтобы приступить к созданию собственных простых ML-моделей. О том, как это сделать, можно почитать здесь.
Изучите способы публикации ML-моделей в интернете
Существуют инструменты, позволяющие публиковать ML-модели в интернете. Это позволяет дать к ним доступ всем желающим. Для того чтобы публиковать модели в интернете, нужно хорошее понимание процессов веб-разработки. Дело в том, что под «публикацией модели» понимается создание веб-страницы (или группы страниц), обеспечивающей возможность работы с моделью в браузере. Кроме того, нужно учитывать то, что фронтенд проекта, его интерфейс, должен обмениваться данными с бэкендом, с серверной частью проекта, где расположена сама модель. Для того чтобы строить подобные проекты, вы должны уметь создавать серверные API и пользоваться этими API в клиентской части приложений.
В том случае, если вы планируете публиковать модели в облачных средах, если собираетесь использовать технологию Docker, вам пригодится хорошее знание сферы облачных вычислений и DevOps.
На самом деле, существует множество способов развёртывания моделей в интернете. Я посоветовал бы начать с изучения того, как это делается с использованием веб-фреймворка Flask, основанного на Python. Вот хорошее учебное руководство об этом.
Найдите наставника
Самообучение — это прекрасно, но ничто не сравнится с обучением у профессионалов. Дело в том, что при таком подходе усваивается то, что используется в реальности, и в том, что так обучение идёт через практику. Многие вещи можно изучить только на практике. Обучение с наставником имеет множество сильных сторон, но надо учитывать то, что не каждый наставник способен оказать существенное влияние на вашу карьеру или жизнь. Именно поэтому очень важно найти хорошего наставника.
Например, эту задачу можно попытаться решить с помощью платформы Notitia AI. Здесь учащимся назначают персональных наставников, которые делают личный и профессиональный вклад в развитие учеников. Наставники доводят тех, кто хочет учиться, от начального до экспертного уровня в сферах DS, AI и ML. Notia AI, это, кроме того, самая доступная платформа такого рода.
Итоги
Учтите, что изучение курсов, чтение статей и просмотр видео не сделают из вас специалиста по работе с данными. Вам понадобится пройти сертификацию в специализированном учреждении. Кроме того, некоторые вакансии требуют наличия определённых документов об образовании. Вложите время в самообучение, сертифицируйтесь или получите документы об образовании, и вы будете готовы к реальной работе.
Как вы думаете, что нужно знать и уметь тому, кто стремится стать ценным специалистом в сферах искусственного интеллекта или машинного обучения?
Искусственный интеллект: как и где изучать — отвечают эксперты
Искусственный интеллект — это та сфера в мире IT, которая активно развивается и имеет как огромную популярность, так и много вопросов. Многие программисты хотят заниматься разработкой ИИ, но не знают с чего начать, поэтому мы решили поделиться с вами вопросом, который пришел от нашего подписчика:
«Хочу заниматься ИИ. Что стоит изучить? Какие языки использовать? В каких организациях учиться и работать?»
Мы обратились за разъяснением к нашим экспертам, а полученные ответы представляем вашему вниманию.
ведущий аналитик Avito
Это зависит от Вашей базовой подготовки. Прежде всего, необходима математическая культура (знание статистики, теории вероятностей, дискретной математики, линейной алгебры, анализа и др.) и готовность многому быстро учиться. При реализации методов ИИ потребуется программирование (алгоритмы, структуры данных, ООП и др.).
Разные проекты требуют владения разными языками программирования. Я бы рекомендовал знать как минимум Python, Java и любой функциональный язык. Нелишним будет опыт работы с различными базами данных и распределёнными системами. Чтобы быстро изучать лучшие подходы, применяемые в индустрии, требуется знание английского языка.
Учиться рекомендую в хороших российских вузах! Например, в МФТИ, МГУ, ВШЭ есть соответствующие кафедры. Большое разнообразие тематических курсов доступно на Coursera, edX, Udacity, Udemy и других MOOC площадках. Некоторые ведущие организации имеют собственные программы подготовки в области ИИ (например, Школа анализа данных у Яндекса).
Прикладные задачи, решаемые методами ИИ, можно найти в самых разнообразных местах. Банки, финансовый сектор, консалтинг, ритейл, e-commerce, поисковые системы, почтовые сервисы, игровая индустрия, индустрия систем безопасности и, конечно, Avito — все нуждаются в специалистах различной квалификации.
CEO Mad Devs
У нас есть проект по финтеху, связанный с машинным обучением и компьютерным зрением, в котором первый его разработчик писал все на C++, далее пришел разработчик, который все переписал на Python. Так что язык тут не самое главное, так как язык — это прежде всего инструмент, и от вас зависит, как его использовать. Просто на каких-то языках задачи решать быстрее, а на других более медленно.
Где учиться, сказать сложно — все наши ребята учились сами, благо есть интернет и Google.
начальник группы цифровых технологий компании Nexign
Могу посоветовать с самого начала готовить себя к тому, что учиться придётся много. Вне зависимости от того, что подразумевается под «заниматься ИИ» — работа с большими данными либо нейросети; развитие технологии или поддержка и обучение некой определённой уже разработанной системы.
Давайте ради конкретики возьмём трендовую профессию Data Scientist. Что делает этот человек? В общем и целом — собирает, анализирует и готовит к употреблению большие данные. Именно те, на которых растёт и тренируется ИИ. А что должен знать и уметь Data Scientist? Статический анализ и математическое моделирование – по умолчанию, причём на уровне свободного владения. Языки – скажем, R, SAS, Python. Также хорошо бы иметь какой-никакой опыт разработки. Ну и, вообще говоря, хороший дата-сайнтист должен уверенно себя чувствовать в БД, алгоритмике, визуализации данных.
Не сказать, чтобы такой набор знаний можно было получить в каждом втором техническом вузе страны. Крупные компании, у которых в приоритете разработка ИИ, это понимают и разрабатывают под себя соответствующие учебные программы — существует, например, Школа анализа данных от Яндекса. Но вы должны отдавать себе отчёт, что это не тот масштаб, где ты приходишь на курсы «с улицы», а выходишь с них готовым джуниором. Пласт большой, и идти учиться по дисциплине имеет смысл тогда, когда уже охвачена база (математика, статистика) хотя бы в рамках вузовской программы.
Да, времени уйдёт порядочно. Но игра стоит свеч, потому что хороший Data Scientist – это очень перспективно. И очень дорого. Есть ещё и другой момент. Искусственный интеллект – это, с одной стороны, уже не просто объект ажиотажа, а вполне себе вышедшая на виток продуктивности технология. С другой стороны, ИИ всё ещё только развивается. Для этого развития требуется много ресурсов, много навыков и много денег. Пока это уровень высшей лиги. Я сейчас скажу очевидную вещь, но, если вы хотите оказаться на острие атаки и своими руками двигать прогресс, цельтесь в компании уровня Facebook или Amazon.
В то же время в ряде областей технологию уже применяют: в банковской сфере, в телекоме, на промышленных предприятиях-гигантах, в ритейле. И там уже нужны люди, способные её поддерживать. Gartner прогнозирует, что к 2020 году 20% всех предприятий в развитых странах будут нанимать специальных сотрудников для тренировки нейронных сетей, используемых в этих компаниях. Так что пока ещё есть немного времени, чтобы подучиться самому.
CTO компании Exness
ИИ сейчас активно развивается, и предсказывать на десять лет вперед сложно. На ближайшие два-три года будут доминировать подходы на базе нейросетей и вычислений на основе GPU. Лидером в этой области является Python с интерактивной средой Jupyter и библиотеками numpy, scipy, tensorflow.
Есть много онлайн-курсов, которые дают базовое представление об этих технологиях и общих принципах ИИ, например курс Andrew Ng. И в плане обучения этой теме сейчас в России эффективнее всего самостоятельное обучение или в локальной группе по интересам (например, в Москве я знаю о существовании как минимум пары групп, где люди делятся опытом и знаниями).
технический директор Heads and Hands
Начать нужно с теории: почитать профильную литературу и статьи. Из языков для изучения наиболее подходит Python. Организации — все, которые используют ИИ в своих наработках.
технический директор группы компаний «ХайТэк»
На сегодняшний день самая быстро прогрессирующая часть искусственного интеллекта — это, пожалуй, нейронные сети.
Изучение нейросетей и ИИ стоит начать с освоения двух разделов математики — линейной алгебры и теории вероятности. Это обязательный минимум, незыблемые столпы искусственного интеллекта. Абитуриентам, желающим постичь основы ИИ, при выборе вуза, на мой взгляд, стоит обратить внимание на факультеты с сильной математической школой.
Следующий шаг — изучение проблематики вопроса. Существует огромное количество литературы, как учебной, так и специальной. Большинство публикаций по теме искусственного интеллекта и нейросетей написаны на английском языке, однако русскоязычные материалы тоже публикуются. Полезную литературу можно найти, например, в общедоступной цифровой библиотеке arxiv.org.
Если говорить о направлениях деятельности, то здесь можно выделить обучение прикладных нейронных сетей и разработку совершенно новых вариантов нейросетей. Яркий пример: существует такая очень востребованная сейчас специальность — «дата-сайентист» (Data Scientist). Это разработчики, которые, как правило, занимаются изучением и подготовкой неких наборов данных для обучения нейросетей в конкретных, прикладных областях. Резюмируя, подчеркну, что каждая специализация требует отдельного пути подготовки.
Team Leader Java-разработки в Voximplant
Прежде чем приступать к узкопрофильным курсам, нужно изучить линейную алгебру и статистику. Погружение в ИИ я бы посоветовал начать с учебника «Машинное обучение. Наука и искусство построения алгоритмов, которые извлекают знания из данных», это неплохое пособие для начинающих. На 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), правда, цена таких курсов от нескольких десятков тысяч рублей.
Из компаний, которые занимаются разработкой Искусственного Интеллекта, вы наверняка знаете Яндекс и Сбербанк, но есть и многие другие разных размеров. Например, на этой неделе Минобороны открыло в Анапе Военный инновационный технополис ЭРА, одной из тем которого является разработка ИИ для военных нужд.
директор по развитию бизнеса IТ-компании Navicon
Прежде чем изучать искусственный интеллект, надо решить принципиальный вопрос: красную таблетку взять или синюю.
Красная таблетка — стать разработчиком и окунуться в жестокий мир статистических методов, алгоритмов и постоянного постижения непознанного. С другой стороны, не обязательно сразу кидаться в «кроличью нору»: можно стать управленцем и создавать ИИ, например, как менеджер проекта. Это два принципиально разных пути.
Первый отлично подходит, если вы уже решили, что будете писать алгоритмы искусственного интеллекта. Тогда вам надо начать с самого популярного направления на сегодняшний день – машинного обучения. Для этого нужно знать классические статистические методы классификации, кластеризации и регрессии. Полезно будет также познакомиться с основными мерами оценки качества решения, их свойствами… и всем, что попадется вам по пути.
Только после того, как база освоена, стоит проштудировать более специальные методы: деревья принятия решений и ансамбли из них. На этом этапе нужно глубоко погрузиться в основные способы построения и обучения моделей — они скрываются за едва приличными словами беггинг, бустинг, стекинг или блендинг.
Тут же стоит познать методы контроля переобучения моделей (еще один «инг» — overfitting).
И, наконец, совсем уж джедайский уровень — получение узкоспециальных знаний. Например, для глубокого обучения потребуется овладеть основными архитектурами и алгоритмами градиентного спуска. Если интересны задачи обработки естественного языка, то рекомендую изучить рекуррентные нейронные сети. А будущим создателям алгоритмов для обработки картинок и видео стоит хорошенько углубиться в свёрточные нейронные сети.
Две последние упомянутые структуры — кирпичики популярных сегодня архитектур: состязательных сетей (GAN), реляционных сетей, комбинированных сетей. Поэтому изучить их будет нелишним, даже если вы не планируете учить компьютер видеть или слышать.
Совсем другой подход к изучению ИИ — он же «синяя таблетка» — начинается с поиска себя. Искусственный интеллект рождает кучу задач и целых профессий: от руководителей ИИ-проектов до дата-инженеров, способных готовить данные, чистить их и строить масштабируемые, нагруженные и отказоустойчивые системы.
Так что при «менеджерском» подходе сначала стоит оценить свои способности и бэкграунд, а уже потом выбирать, где и чему учиться. Например, даже без математического склада ума можно заниматься дизайном ИИ-интерфейсов и визуализациями для умных алгоритмов. Но приготовьтесь: уже через 5 лет искусственный интеллект начнет вас троллить и называть «гуманитарием».
Основные методы ML реализованы в виде готовых библиотек, доступных к подключению на разных языках. Наиболее популярными языками в ML сегодня являются: C++, Python и R.
Есть множество курсов как на русском, так и английском языках, таких как Школа анализа данных Яндекса, курсы SkillFactory и OTUS. Но прежде чем инвестировать время и деньги в специализированное обучение, думаю, стоит «проникнуться темой»: посмотреть открытые лекции на YouTube с конференций DataFest за прошлые годы, пройти бесплатные курсы от Coursera и «Хабрахабра».
И когда все описанные знания будут усвоены, мы с нетерпением ждем юных падаванов к нам в команду Navicon, где поможем и научим, как подружиться с «искусственными интеллектуалами» в реальной жизни.