Обзор курсов по Deep Learning
Привет, Хабр! Последнее время все больше и больше достижений в области искусственного интеллекта связано с инструментами глубокого обучения или deep learning. Мы решили разобраться, где же можно научиться необходимым навыкам, чтобы стать специалистом в этой области.
1. “Deep Learning” от Google
Лектор: Vincent Vanhoucke, ведущий научный сотрудник Google, руководитель по технологиям проекта Google Brain
Платформа: Udacity
Стоимость: бесплатно
Язык: английский
Длительность: приблизительно 3 месяца (можно проходить в собственном темпе)
Сроки проведения: свободные, постоянный курс
Ссылка на курс: www.udacity.com/course/deep-learning--ud730
Программа
Машинное обучение: основы машинного обучения, логистическая регрессия, стохастическая оптимизация, загрузка и предобработка данных, подбор параметров, кросс-валидация, оценка качества.
Глубокие нейронные сети: введение в нейронные сети, архитектура глубоких нейронных сетей, подбор гиперпараметров, регуляризация.
Сверточные нейронные сети: введение и основные принципы работы, архитектура сверточных нейронных сетей, регуляризация и подбор параметров, обработка изображений и другие приложения.
Глубокие нейронные сети для работы с текстами: основные подходы к обработке текстов в машинном обучении, мешки слов, word2vec, рекуррентные нейронные сети, LSTM, регуляризация.
Преимущества
- Курс от лидеров индустрии Google, в котором они широко используют свою библиотеку глубокого обучения TensorFlow — активно развивающийся и один из лучших доступных на сегодняшний день инструментов.
- Большое количество интерактивных опросов и интересных практических заданий в формате iPython notebook + курсовой проект: разработка мобильного приложения, распознающего цифры на изображениях с камеры телефона в реальном времени.
- Активные форумы курса, возможность обсуждения заданий с преподавателями и другими студентами.
- Программа не перегружена, покрывает как общую теорию нейронный сетей, так и их основные типы, используемые в глубоком обучении: сверточные и рекуррентные.
Недостатки
- Курс на английском языке.
- Достаточно высокая сложность: насыщенный курс продвинутого уровня, имеет ограниченную вводную часть, которая охватывает только часть базовых тем машинного обучения, не включает математику и основы Python.
- В практических заданиях использованы стандартные учебные задачи распознавания изображений и обработки текстов, практические приложения изученных моделей к задачам бизнеса в заданиях отсутствуют и в курсе не обсуждаются.
- В бесплатной версии все практические задания проверяются самим учащимся на основе результатов работы моделей и метрик качества, получение комментариев от преподавателей или других студентов не предусмотрено.
2. Neural Networks for Machine Learning от Университета Торонто
Лектор: Geoffrey Hinton, профессор университета Торонто, известный британский информатик и когнитивный психолог, внесший большой вклад в теорию искусственных нейронных сетей.
Платформа: Coursera
Стоимость: бесплатно
Язык: английский
Длительность: 4 месяца
Сроки проведения: сейчас стартует перезапуск после перерыва с 2012 года
Ссылка на курс: www.coursera.org/learn/neural-networks
Программа
Введение, обучение персептронов, процедура обратного распространения ошибки, получение векторов признаков для слов, распознавание объектов с помощью нейронных сетей, оптимизация: ускорение процесса обучения, рекуррентные нейронные сети, улучшение обобщающей способности нейронных сетей, комбинирование нейронных сетей, сети Хопфилда и машины Больцмана, ограниченные машины Больцмана, нейронные сети Deep Belief, глубокие нейронные сети с генеративным предобучением, моделирование иерархических структур, новые приложения глубоких нейронных сетей.
Преимущества
- Автор курса – выдающийся ученый, один из пионеров в области искусственных нейронных сетей.
- Курс покрывает как общие принципы построения и работы нейронных сетей, так и их современное развитие вплоть в рамках глубокого обучения с приложениями к распознаванию речи и визуальных объектов, сегментации изображений, моделированию естественных языков и человеческих движений и т.д. Нейронные сети здесь изучаются очень глубоко, многие темы в других курсах не рассматриваются.
- После рассмотрения каждого из алгоритмов даются практические советы по его применению для решения задач машинного обучения, построению архитектуры и подбору параметров.
- Доступны лабораторные задания и тесты.
- Данный курс имеет очень большое количество слушателей и проводится не в первый раз, имеет обширные форумы, где можно задать вопросы и обсудить задания.
Недостатки
- Высокая сложность: много математики, достаточно сложные задания для самостоятельной работы, обширная теоретическая часть, насыщенная программа.
- Задания выполняются в Octave, а не в Python, современные библиотеки глубокого обучения не используются.
- Высокий порог вхождения: для прохождения курса будет достаточно хороших знаний математики, однако перед этим курсом рекомендуется сначала пройти курс по машинному обучению от Andrew Ng на той же платформе, иначе будет слишком много новой информации и курс будет тяжело воспринимать.
3. “Нейронные сети” от Института биоинформатики
Лекторы: Анатолий Карпов, аспирант кафедры общей психологии СПбГУ, читает курс математической статистики и анализ данных в R для биологов в Институте биоинформатики; Арсений Москвичев, инженер-исследователь, выпускник биологического факультета СПбГУ; Анастасия Миллер, математико-механический факультет СПбГУ, JetBrains.
Платформа: Stepik
Стоимость: бесплатно
Язык: русский
Длительность: приблизительно 3 месяца (можно проходить в собственном темпе)
Сроки проведения: курс завершен, но сохранен свободный доступ к материалам
Ссылка на курс: stepik.org/course/Нейронные-сети-401
Программа
Основы линейной алгебры, перцептрон и градиентный спуск, алгоритм обратного распространения ошибки, мониторинг состояния сети, заключение.
Преимущества
- Курс на русском языке.
- Не очень высокая сложность, будет понятен не только выпускникам технических и физико-математических специальностей, но даже школьникам.
- Невысокий порог вхождения: требуется только знание Python и школьной математики.
- В лекции встроено большое число практических заданий и тестов, также курс содержит ряд полноценных практических заданий в формате iPython Notebook.
Недостатки
- Не используются современные библиотеки и фреймворки глубокого обучения.
- Вводный курс: посвящен собственно нейронным сетям, составляющим основу глубокого обучения, но конкретные видов нейронных сетей, используемых в глубоком обучении, и их приложения в программе курса отсутствуют.
- Курс ориентирован на академическое сообщество, в том числе на школьников и студентов, бизнес-приложения не обсуждаются.
4. “Convolutional Neural Networks for Visual Recognition” от Стэнфорда
Лекторы: профессор и руководитель лабораторий компьютерного зрения и искусственного интеллекта Стенфордского университета Fei-Fei Li и ее ученики Justin Johnson и Andrej Karpathy (PhD студенты)
Платформа: Stanford University
Стоимость: бесплатно
Язык: английский
Длительность: приблизительно 3 месяца (можно проходить в собственном темпе)
Сроки проведения: свободные
Ссылка на курс: cs231n.stanford.edu
Программа
Введение в компьютерное зрение, линейная классификация изображений, оптимизация, стохастический градиентный спуск, введение в нейронные сети, обучение нейронных сетей, введение в сверточные нейронные сети, сверточные нейронные сети для локализации объектов, визуализация сверточных нейронных сетей и построение изображений, рекуррентные нейронные сети, длинные сети короткой памяти, обзор библиотек глубокого обучения, практика обучения сетей: мультипроцессность, использование GPU/CPU, эффективные свертки, курсовой проект.
Преимущества
- Высокая академическая репутация университета.
- Полнота программы: программа охватывает как общие принципы работы нейронных сетей и их обучения, так и основные виды нейронных сетей, используемых не только в компьютерном зрении, но и в глубоком обучении в целом.
- Обсуждаются практические вопросы обучения нейронных сетей на GPU/CPU, современные библиотеки глубокого обучения.
- Для внешних слушателей курса создано сообщество в reddit, где можно обсудить задания и задать вопросы.
Недостатки
- Курс на английском языке.
- Высокая сложность, ориентация на академическое сообщество: это оригинальный курс Стэндфордского университета, ориентирован на его студентов.
- Больше теории, чем практики, конкретным библиотекам и программным реализациям уделяется меньше времени, чем теоретической части, курс не привязан к конкретной библиотеке.
- Высокие входные требования: необходимы прочные знания математики, машинного обучения, Python и его библиотек.
- Это не массовый онлайн курс, а опубликованные в открытом доступе материалы университетского курса.
5. “Deep Learning for Natural Language Processing” от Стэнфорда
Лекторы: Richard Socher, профессор Стенфордского университета и ведущий научный сотрудник Salesforce.
Платформа: Stanford University
Стоимость: бесплатно
Язык: английский
Длительность: приблизительно 3 месяца (можно проходить в собственном темпе)
Сроки проведения: свободные, но не все лекции есть
Ссылка на курс: cs224d.stanford.edu
Программа
Введение в обработку естественных языков и глубокое обучение, простые векторные представления слов: word2vec, GloVe, продвинутые векторные представления слов, нейронные сети для распознавания именованных сущностей, практические вопросы конструирования сетей, обучения и подбора параметров, введение в TensorFlow, рекуррентные нейронные сети, сети GRU и LSTM и их использование в машинном переводе, рекурсивные нейронные сети их применение в парсинге и анализе тональности, сверточные нейронные сети в классификации текстов, распознавание речи, машинный перевод, модели seq2seq, будущее нейронных сетей для обработки естественных языков: сети динамической памяти, курсовой проект.
Преимущества
- Высокая академическая репутация университета.
- Полнота программы: охвачены все основные модели и виды нейронных сетей, используемых в глубоком обучении для анализа текстов, в том числе перспективные и развивающиеся.
- Используется современная библиотека глубокого обучения TensorFlow, охвачены практические вопросы обучения сетей, построения их архитектуры и подбора параметров.
- Курс имеет отдельный форум на платформе Piazza, где можно обсудить задания и задать вопросы.
Недостатки
- Курс на английском языке.
- Высокая сложность, ориентация на академическое сообщество: это оригинальный курс Стэндфордского университета, ориентирован на его студентов.
- Больше теории, чем практики, конкретным библиотекам и программным реализациям уделяется меньше времени, чем теоретической части.
- Высокие входные требования: необходимы прочные знания математики, машинного обучения, Python и его библиотек.
- Это не массовый онлайн курс, а опубликованные в открытом доступе материалы университетского курса.
6. “Data Science: Deep Learning in Python” от Lazy Programmer
Автор курса: аналитик данных, разработчик и big data инженер с широким академическим опытом (преподавал математический анализ, статистику, машинное обучение, алгоритмы, компьютерную графику и физику в университетах Columbia University, NYU, Humber College и The New School) и опытом работы с онлайн рекламе и digital media, скрывающийся под именем Lazy Programmer. Помимо данного курса ведет еще ряд курсов по глубокому обучению.
Платформа: Udemy
Стоимость: 120$
Язык: английский
Длительность: не указана, курс содержит 37 лекций, объединенных в 7 разделов
Сроки проведения: свободный, постоянный курс
Ссылка на курс: www.udemy.com/data-science-deep-learning-in-python
Программа
Введение в нейронные сети, многоклассовая классификация, обучение нейронных сетей, настройка гиперпараметров, кросс-валидация, регуляризация, работа с TensorFlow, проекты: распознавание выражение лица и предсказание поведения пользователя сайта.
Преимущества
- Большое количество тестов и практических заданий, в том числе 2 курсовых проекта.
- Низкий порог вхождения: требуются только некоторые сведения из высшей математики и основы Python.
- Практико-ориентированный курс, не перегруженный математикой и сложной теорией, однако содержащий все необходимые теоретические сведения.
- Курс охватывает как основы теории нейронных сетей, так и конкретные виды нейронных сетей, применяемые в глубоком обучении.
- Курс ориентирован в том числе и на практические приложения в бизнесе, содержит курсовой проект в области, в котором студенты будут предсказывать поведение пользователя на сайте Интернет-магазина.
- Используются современные библиотеки анализа данных и глубокого обучения, в том числе TensorFlow.
Недостатки
- Курс на английском языке.
- Не бесплатный, имеет достаточно высокую цену для онлайн-курсов.
- Ограниченная программа: курс покрывает только часть основных тем глубокого обучения, например, обработка текстов и рекуррентные нейронные сети оставлены за рамками этого курса, но их можно найти в других курсах автора.
7. “Reinforcement Learning” от Georgia Institute of Technology
Лекторы: Charles L. Isbell, Georgia Institute of Technology, профессор, специалист в области искусственного интеллекта. Michael L. Littman, Brown University, профессор, специалист в области обучения с подкреплением.
Платформа: Udacity
Стоимость: бесплатно
Язык: английский
Длительность: приблизительно 4 месяца (можно проходить в собственном темпе)
Сроки проведения: свободные, постоянный курс
Ссылка на курс: www.udacity.com/course/reinforcement-learning--ud600
Программа (неполная)
Введение в обучение с подкреплением, марковские процессы принятия решений, в т.ч. обобщенные и частично наблюдаемые, вознаграждения и их последовательности, политики и их поиск, поведенческие структуры, оценка политик и агентов, TD-обучение (temporal difference), Q-обучение, сходимость, продвинутый алгоритмический анализ, стратегия исследования (разведки), теория игр и ее связь с машинным обучением.
Преимущества
- Курс подготовлен ведущими исследователями в области обучения с подкреплением.
- Очень широкий охват тем, включая смежные области, такие как теория игр.
- Большое количество интересных практических заданий.
- Несмотря на то, что в сфере глубокого обучения с подкреплением были получены выдающиеся результаты (например, AlphaGo от Google DeepMind) и это направление достаточно перспективно, в других курсах, представленных в данном обзоре, тема обучения с подкреплением не раскрывается.
Недостатки
- Курс на английском языке.
- Высокий порог вхождения: необходимы знания машинного обучения и математики на уровне выпускника западного университета. Также требуется знать язык Java, введение в Java в курсе отсутствует.
- Высокая сложность: много математики, обширная теоретическая часть.
- Охватывает только одно направление достаточно специфичное направление машинного обучения, применяющееся в области искусственного интеллекта.
- Не все разделы курса посвящены именно глубокому обучению. Для глубокого обучения с подкреплением вы можете дополнительно использовать материалы курса Deep Reinforcement Learning, Berkley.
- Курс ориентирован на академическое сообщество, бизнес-приложения не рассматриваются.
Список других онлайн-курсов по глубокому обучению есть в подборке Eclass.cc
TL:DR В сухом остатке преимущества большинства онлайн-курсов заключаются в их стоимости, удобстве (можно учиться из любого места в любое время), хорошем охвате теоретических тем. Основные недостатки: ориентация на академическое сообщество и недостаточное внимание практическим вопросам, большинство программ на английском языке.
Недавно на Data Science Week мы анонсировали свою очную программу по deep learning.
“Deep learning” от New Professions Lab
Преподаватель: Григорий Сапунов, CTO и сооснователь Intento, экс-руководитель разработки сервиса Яндекс.Новости. Программирует более 20 лет, из них около 15 лет занимается анализом данных, искусственным интеллектом и машинным обучением, с 2011 года занимается Deep Learning, участвовал в проектах RoadAR (нейросетевое распознавание объектов на дороге), Icon8 (нейросетевые фильтры) и др.
Площадка: Москва, м. Краснопресненская
Стоимость: 60 тыс. руб.
Язык: русский
Длительность: очный день + неделя лабораторной работы + очный день
Сроки проведения: с 26 ноября по 3 декабря
Ссылка на курс
Программа
День 1
Обзор современных возможностей нейронных сетей
Основы нейронных сетей
Принципы классификации изображений. Сверточные сети (CNN)
Case studies. Разбор известных моделей: LeNet, AlexNet, …
Практика: Библиотека Caffe. Создание собственного нейросетевого классификатора с нуля
Использование свёрточных сетей для других задач (перенос стиля, детекция/сегментация, классификация текстов, …)
Case studies: Перенос стиля изображения. Как работают алгоритмы, стоящие за сервисами типа Prisma
Недельная лабораторная работа по классификации изображений.
День 2
Разбор лабораторной работы и награждение победителей
Основы рекуррентных сетей (RNN)
Классификация текстов с помощью нейросетей. Word2vec, doc2vec. Полносвязные сети, свёрточные сети, рекуррентные сети для классификации
Практика: Библиотека Keras/Theano. Работа по сентимент-анализу текстов с использованием RNN
Sequence Learning и парадигма seq2seq. Примеры задач, решаемые с помощью seq2seq: перевод, генерация текстов, распознавание речи, …
Case study: “Создаем чат-бота”. Генерация текстов в диалогах
Мультимодальное обучение. Связь свёрточных и рекуррентных сетей. Case study: генерация описаний картинок
Мастер-класс применения deep learning в бизнесе
Особенности программы:
- Упор на решение практических задач
- Разбор бизнес-кейсов
- Теории ровно столько, чтобы начать становиться специалистом в области глубокого обучения
- Лабораторная работа на выданной GPU-машине в облаке
- Возможность задавать вопросы преподавателю
- Отсутствие удаленного участия (на текущий момент)
- Теоретическим вопросам не уделяется такого же внимания, как в онлайн-курсах
Почитать подробнее о нашей программе можно здесь, а по коду HABR-DL (его нужно сказать менеджеру) вы получите скидку 10%.
Будем рады вашим комментариям и вопросам.