Как программисту стать специалистом по искусственному интеллекту
CTO в LoyaltyLab и спикер курсов Binary District Александр Кондрашкин составил поэтапный гид по изучению AI, вокруг которого сейчас много ажионтажа.
22К открытий22К показов
Рассказывает CTO в LoyaltyLab испикер курсов Binary DistrictАлександр Кондрашкин
Согласно отчёту McKinsey в США наблюдается устойчивый дефицит специалистов по машинному обучению: спрос растёт на 12% в год, а предложение — лишь на 7%, в итоге в ближайшем будущем открытых вакансий будет на 250 000 больше, чем потенциальных претендентов. В России, по оценкам HeadHunter, число позиций для специалистов по машинному обучению и искусственному интеллекту в 2017 году выросло почти в 11 раз.
CTO в LoyaltyLab и спикер курсов Binary District Александр Кондрашкин составил поэтапный гид по изучению AI. Александр утверждает: «Вокруг машинного обучения сформировался ореол дикой сложности. Это так, если вы хотите делать открытия, разрабатывать новые алгоритмы и войти в историю науки, но если просто применять известные решения на практике — порог входа вовсе не большой». Практически все программисты обладают необходимой базой для построения карьеры специалиста по искусственному интеллекту.
Что нужно для старта
Абстрактное мышление
Машинное обучение вращается вокруг поиска закономерностей в данных. Data Scientist посвящает куда больше времени генерации гипотез, подготовке и проведению бесконечных экспериментов над массивами данных, чем проектированию архитектур сервисов и их отладке. В сознании специалиста дороги и перекрестки Яндекс.Карт превращаются в графы, а статистика по снятиям наличных в банкоматах — во временной ряд в аналитической системе. Без навыка представления обыденных вещей в абстрактном виде тут не обойтись.
Общая грамотность в математических дисциплинах
Карьера в машинном обучении требует общей грамотности в математических дисциплинах. Теория вероятности, линейная алгебра, математический анализ — предметы, которые преподают на первом курсе любой технической специальности — ещё один краеугольный камень Data Science.
Знание Python и основ backend-разработки
Третий базовый навык — программирование. Большую часть работы по Machine Learning выполняют на Python, но знание любого языка ускорит обучение.
На этапе работы с подготовленными моделями пригодятся навыки backend-разработки. Даже с поверхностными знаниями в этой области нейронную сеть куда легче превратить в удобный для использования микросервис.
Если у вас уже есть эта база, можно смело отправляться учить машины.
С чего начать
Путь будущего специалиста по Machine Learning отчасти повторяет историю развития отрасли и начинается с классических алгоритмов обучения с учителем и без, созданных ещё в прошлом веке.
Для начала годится и байесовский классификатор, и линейная регрессия, и деревья решений — простые, интуитивно понятные методы автоматической сортировки объектов. В отличие от капризных нейросетей, от них проще добиться положительной обратной связи, увидеть: «Ух ты, машинное обучение и правда работает!» — и получить мотивацию разбираться в теме дальше.
Через два-три месяца изучения основ синтаксиса и классических алгоритмов самое время перейти к нейронным сетям простой архитектуры — однослойным перцептронам. Следующий логичный шаг — заставить работать многослойную нейронную сеть, а после стоит обратить внимание на обучение с подкреплением.
Как, где и на чём учиться
Чтобы освоить базовые методы, из оборудования достаточно надёжного ноутбука с доступом в интернет. Начинающим редко требуется по-настоящему быстрое железо, а на крайний случай остаются сервисы Google, Amazon, Microsoft и других облачных провайдеров, сдающих мощности в аренду.
Курсы и тренинги
На образовательных площадках в сети опубликовано множество комплексных учебных программ на английском и русском языках.
Среди общедоступных выделяются курсы Яндекса, например, совместный проект с МФТИ: специализация «Машинное обучение и анализ данных» или «Advanced Machine Learning».
Один из самых популярных англоязычных курсов — «Machine Learning» Стэнфордского университета. Не так известны, но так же полезны и бесплатные программы «Intro to Machine Learning» и «Become a Machine Learning Engineer», которые предлагаются в Udacity.
Тем, кто хочет разобраться в нюансах применения Python для машинного обучения, стоит заплатить за «Data Science, Deep Learning and Machine Learning with Python» или «Python for Data Science and Machine Learning Bootcamp» на площадке Udemy. А для всех тех, кто хочет наладить обратную связь с преподавателями и получать знания очно, в Binary District открыт интенсивный практический курс по AI.
Практические задачи
Практиковаться можно и на самостоятельно придуманных задачах, но для учёбы такие эксперименты неэффективны. На то, чтобы собрать данные через API, очистить их и подготовить, уйдёт огромное количество времени и сил, которые можно потратить на усвоение знаний. Гораздо удобнее, когда всё придумано и сделано до вас. На образовательной платформе Kaggle публикуются задачи по машинному обучению с подробным описанием, заранее определёнными условиями и подготовленными датасетами.
Например, ставшие классикой задачи по предсказанию выживаемости пассажиров Титаника или цен на недвижимость в городе Эймс, штат Айова помогут досконально разобраться в классификации и регрессии, а распознавание рукописных цифр позволит погрузиться в работу с картинками через классическую проблему.
Что делать дальше
Стартовав почти с нулевого уровня, через полгода вполне реально устроиться на стажировку, а вскоре и на работу. Освоить нейросети сложных архитектур и ансамбли на рабочих задачах при поддержке коллег будет не так сложно, как в одиночку.
Впрочем, это не единственный способ проверить приобретённые навыки в бою. Если в вашей компании собрано достаточно много данных, стоит развивать культуру машинного обучения внутри, извлекать из баз дополнительную пользу и, вполне возможно, деньги.
Практикуйтесь, читайте, экспериментируйте и делитесь опытом — потолка в этой сфере нет. Дальнейший профессиональный рост в Data Science — результат ежедневного труда, следствие усложнения задач, общения с коллегами, участия в конференциях и погружения в бизнес-метрики. Любую модель можно сделать ещё немного лучше, но со временем придёт понимание того, когда дополнительный процент точности не стоит затраченных усилий и не принесёт пользы компании.
Конечно, ИИ не решит все проблемы человечества, и не отберёт у программистов работу. Но уже сейчас машинное обучение открывает широкие возможности, технологические и профессиональные перспективы.
22К открытий22К показов