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

Обучение
Содержание

Кто такой разработчик нейронных сетей?

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

Что делают разработчики нейронных сетей и чем занимаются?

Обязанности на примере одной из вакансий:

  • Разработка программного обеспечения на основе алгоритмов компьютерного зрения и развитие существующего ПО
  • Интеграция алгоритмов в существующую программную платформу системы видеонаблюдения
  • Взаимодействие с командами тестирования, аналитики и техподдержки

Что должен знать и уметь разработчик нейронных сетей? 

Требования к разработчикам нейронных сетей:

  • знание популярных нейросетевых архитектур, применяющихся в области computer vision, и понимание метрик для оценки качества предсказаний сетей
  • работа с PyTorch и tensorflow
  • хорошее владение Python
  • умение пользоваться git, dvc
  • владение linux

Востребованность и зарплаты разработчиков нейронных сетей

На сайте поиска работы в данный момент открыто 102 вакансии, с каждым месяцем спрос на разработчиков нейронных сетей растет.

Количество вакансий с указанной зарплатой разработчика нейронных сетей по всей России:

  • от 70 000 руб. – 32
  • от 125 000 руб. – 22
  • от 180 000 руб. – 16
  • от 235 000 руб. – 7
  • от 290 000 руб. – 5

Вакансий с указанным уровнем дохода по Москве:

  • от 115 000 руб. – 9
  • от 190 000 руб. – 5
  • от 345 000 руб. – 2
  • от 420 000 руб. – 1

Вакансий с указанным уровнем дохода по Санкт-Петербургу:

  • от 200 000 руб. – 1

Как стать разработчиком нейронных сетей и где учиться?

Варианты обучения для разработчика нейронных сетей с нуля:

  • Самостоятельное обучение – всевозможные видео на YouTube, книги, форумы, самоучители и т.д. Плюсы – дешево или очень недорого. Минусы – нет системности, самостоятельное обучение может оказаться неэффективным, полученные навыки могут оказаться невостребованными у работодателя;
  • Онлайн-обучение. Пройти курс можно на одной из образовательных платформ. Такие курсы рассчитаны на людей без особой подготовки, поэтому подойдут большинству людей. Обычно упор в онлайн-обучении делается на практику – это позволяет быстро пополнить портфолио и устроиться на работу сразу после обучения.

Ниже сделали обзор 15+ лучших онлайн-курсов.

15+ лучших курсов для обучения разработчика нейронных сетей: подробный обзор

Стоимость: 36 900 ₽, возможна рассрочка

В рамках курса вы пройдете полный путь от аренды GPU-сервера, который подходит для Deep Learning, вплоть до создания полноценной рабочей модели для компьютерного зрения, анализа естественного языка и рекомендательных систем.

Программа курса

  1. Введение в искусственные нейронные сети
    Создаем нейронную сеть для распознавания рукописных цифр на языке Python
  2. Фреймворки для глубокого обучения (TensorFlow, Keras)
    Создаем модель распознавания изображений на базе датасета FashionMNIST и фреймворка Keras
  3. Сверточные нейронные сети
    Распознаем изображения в датасете CIFAR-10 с помощью сверточной нейронной сети
  4. Оптимизация нейронной сети
    Улучшаем скорость и производительность сетей для кейса предыдущего модуля
  5. Transfer learning & Fine-tuning
    Дообучение нейронной сети ImageNET для решения задачи классификации изображений
  6. Обработка естественного языка (NLP)
    Создаем нейронную сеть для распознавания рукописных цифр на языке Python
  7. Сегментация и Детектирование объектов
    Проектируем нейронную сеть для сегментации и обучаем нейросеть решать задачу детекции
  8. Обучение с подкреплением (Reinforcement Learning)
    Создаем агента для игры в Pong на основе DQN алгоритма
  9. What’s next? Продвинутые нейронные сети
    Знакомимся с другими областями применения нейросетей. Создаем нейросеть GAN для генерации изображений.

Преимущества курса:

  • Для обучения deep learning вам понадобится знание Python и базовое понимание машинного обучения. Курс предназначен для людей, которые решили углубить свои знания в области Data Science.
  • Обучение на курсе — отработка практических навыков программирования глубоких нейронных сетей. Используйте силу machine learning для решения задач бизнеса!
  • Курс даст полное понимание алгоритмов и знание необходимых библиотек при использовании Deep Learning.
Стоимость: Рассрочка на 36 месяцев – от 4 989 ₽ / мес

После учебы вы сможете работать по специальностям:

  • Data Scientist
  • Data Analyst
  • Machine Learning Engineer
  • Computer Vision-специалист
  • NLP-специалист.

Программа обучения:

Подготовительные курсы

  • Видеокурс: как учиться эффективно
  • Основы математики
  • Основы программирования
  • Основы языка Python
  • Базовый курс.

I четверть. Программирование
Научитесь работать в Linux и создавать сервера в облачных сервисах AWS, проводить поиск информации и основные операции с файлами, выполнять мониторинг работы сервера. Научитесь использовать язык запросов SQL, создавать и оптимизировать сложные запросы. Освоите библиотеки языка Python, предназначенные для Data Science: Numpy, Pandas, Matplotlib, SciKit-Learn.

  • Встреча декана со студентами
  • Основы языка Python
  • Рабочая станция
  • Основы реляционных баз данных и MySQL
  • Библиотеки Python для Data Science: Numpy, Matplotlib, Scikit-learn.

II четверть. Сбор данных и статистическое исследование
Познакомитесь с теорией вероятностей и математической статистикой. Изучите методы проведения корреляционного, дисперсионного и регрессионного анализа. Научитесь работать с RESTful/SOAP-сервисами, форматами XML и JSON в Python, а также познакомитесь с особенностями открытых данных (OpenData).

  • Библиотеки Python для Data Science: продолжение
  • Методы сбора и обработки данных из сети Интернет
  • Введение в математический анализ
  • Теория вероятностей и математической статистике.

III четверть. Математика для Data Scientist
Рассмотрите математические аспекты алгоритмов, применяемых в Data Science: линейная и логистическая регрессия, градиентный спуск, метод ближайших соседей, кластеризация, деревья решений, случайный лес, градиентный бустинг. Поймете, как устроены алгоритмы на уровне математики.

  • Линейная алгебра
  • Алгоритмы анализа данных

IV четверть. Машинное обучение
Освоите Python: от основ программирования до автоматизации, сбора, обработки, анализа и визуализации данных.

  • Машинное обучение в бизнесе
  • Рекомендательные системы
  • Видеокурс от Мегафон + курсовой проект.

V четверть. Нейронные сети
Научитесь решать задачи Machne Learning с данными из соцсетей, геоданными, применением графов, а также познакомитесь с нейронными сетями. На практике познакомитесь с фреймворками для разработки нейронных сетей: Tensorflow, Keras, PyTorch.

  • Введение в нейронные сети
  • Фреймворк PyTorch для разработки искусственных нейронных сетей.

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

  • Введение в обработку естественного языка
  • Глубокое обучение в компьютерном зрении

II четверть. Специализация
Изучите фреймворк PyTorch и углубитесь в работу с компьютерным зрением и обработкой естественного языка.

  • Введение в компьютерное зрение от Nvidia
  • Фреймворк PyTorch для разработки искусственных нейронных сетей
  • Введение в обработку естественного языка

Курсы вне четверти. Предметы с индивидуальным выбором даты старта

  • Подготовка к поиску работы
  • История развития искусственного интеллекта
  • Алгоритмы и структуры данных на Python
  • Введение в высшую математику
  • Спортивный анализ данных. Платформа Kaggle
  • Язык R для анализа данных
  • Визуализация данных в Tableau
  • Сверточные нейронные сети в компьютерном зрении.

Вы получите диплом о профессиональной переподготовке.

Стоимость: нет информации

Что даст вам этот курс:

  • Повторим с вами необходимые области математики: теорию информации, теорию вероятности, линейную алгебру и основы анализа.
  • Изучим основные библиотеки и фреймворки для машинного обучения работы с нейронными сетями: от NumPy до TensorFlow.
  • Решим классические задачи глубокого обучения по всем основным направлениям: “Компьютерное зрение”, “Обработка естественных языков”, “Обучение с подкреплением”, “Генеративные сети”.

После прохождения курса вы:

  • Сможете пройти собеседование на должность Junior Deep Learning Engineer;
  • Научитесь решать задачи машинного обучения с помощью нейронных сетей, такие как: генерация рукописных цифр, самообучающийся бот для игры в крестики-нолики, классификация изображений и т. д.;
  • Будете знать теорию, необходимую для прохождения продвинутых курсов.

Программа обучения

Модуль 1. Пререквизиты

  • Тема 1. Обзорное занятие
  • Тема 2. Градиентный спуск. Математика
  • Тема 3. Градиентный спуск. Вывод
  • Тема 4. Numpy
  • Тема 5. PyTorch
  • Тема 6. TensorFlow
  • Тема 7. Распределения и информация

Модуль 2. Нейронные сети

  • Тема 8. Взрыв и затухание градиентов
  • Тема 9. Логрегрессия на pytorch
  • Тема 10. Линейная регрессия на TensorFlow
  • Тема 11. Переобучение и регуляризация
  • Тема 12. Автокодирование
  • Тема 13. Вариационный автокодировщик
  • Тема 14. AutoML

Модуль 3. Глубокое обучение

  • Тема 15. Сверточные сети. Классифицируем MNIST
  • Тема 16. Сверточные сети, fine-tunning
  • Тема 17. Методы оптимизации сетей: prunning, mixint, quatization
  • Тема 18. Обучение с подкреплением. Q-learning для TicTacToe
  • Тема Generative Adversarial Networks (GANs)
  • Тема Рекуррентные сети
  • Тема 21. Transformers
  • Тема 22. Графовые модели

Модуль 4. Проектный модуль

  • Тема 23. Выбор темы и организация проектной работы
  • Тема 24. Консультация по проектам и домашним заданиям
  • Тема 25. Защита проектных работ.

Выпускной проект

В рамках курса предусмотрена защита проекта. Он представляет собой генеративную модель для порождения текста заданного стиля или изображений заданной тематики.

Работа над проектом проходит поэтапно:

  1. Выбор тематики.
  2. Сбор и подготовка соответствующих данных.
  3. Построение и обучение генеративной модели.

Проект выполняется программистом в течение двух недель после прохождения курса. Готовое решение должно включать в себя код модели и ее обучения на Python, описание архитектуры модели, отчет об обучении модели и примеры генерации.

Стоимость: 39 900 ₽ – 154 900 ₽

Программа обучения:

Основы Python

  1. Синтаксис Python
  2. Numpy
  3. Часть 1
  4. Часть 2
  5. Matplotlib и Seaborn
  6. Функции и модули

Базовая математика

  1. Матрицы и функции
  2. Множества, бинарная логика, комбинаторика
  3. Теория вероятностей и статистика. Часть 1
  4. Теория вероятностей и статистика. Часть 2

Нейронные сети

  1. Введение в нейронные сети
  2. Полносвязные сети, обучающая и тестовая выборки
  3. Свёрточные нейронные сети
  4. Обработка текстов с помощью нейросетей
  5. Рекуррентные нейронные сети и одномерные свёрточные сети для обработки текстов
  6. Нейронные сети для решения задачи регрессии
  7. Полносвязные и рекуррентные нейронные сети для прогнозирования временных рядов
  8. Прямые и свёрточные нейронные сети для обработки аудио сигналов
  9. Автокодировщики
  10. Вариационные автокодировщики, генеративные модели на базе автокодировщиков
  11. Генеративные состязательные сети
  12. Введение в генетические алгоритмы
  13. Генетические алгоритмы для обучения нейронных сетей
  14. Сегментация изображений
  15. Алгоритмы кластеризации данных
  16. Обучение с подкреплением
  17. Генерация текста
  18. Cегментация текста
  19. Object Detection (обнаружение объектов)
  20. Распознавание речи

Интеграция в Production

  1. Описание основных источников данных
  2. Варианты хранения данных (структурированные, неструктурированные, бинарные)
  3. Типы хранения данных
  4. Методы получения данных из систем источников
  5. Web-scrapping
  6. Вторая и третья нормальные формы
  7. Key-value структура данных
  8. Схема данных
  9. Витрины данных
  10. Инструменты построения моделей данных.

Вы научитесь:

  • Работать с библиотекой Keras
  • Работать с полносвязной нейронной сетью
  • Решать задачи сверточных нейронных сетей
  • Решать задачи классификации, регрессии и построения временных рядов
  • Внедрять нейронные сети в продакшн.

Программа курса:

  1. Введение в библиотеку Keras
  • Глубинное обучение.
  • Микросервисы глубинного изучения.
  • Назначение Keras.
  • Основной функционал.
  • Установка и настройка.
  • Методы написания нейронных сетей.
  • Основные разделы библиотеки.
  • Два основных типа моделей: последовательная модель Sequential и класс Model.
  • Слои в Keras.
  1. Архитектуры нейронных сетей: Dense слои (полносвязные)
  • Понятие нейронная сеть. История развития.
  • Решаемые задачи.
  • Полносвязные нейронные сети Dense слои (перцептрон).
  • Разбор кода, решение задачи с помощью полносвязной нейронной сети.
  1. Архитектуры нейронных сетей: conv слои (сверточные)
  • Свёрточные нейронные сети.
  • Задачи распознавания изображений.
  • Архитектура свёрточной нейронной сети.
  • Разбор кода – решение задач распознавания изображений с помощью свёрточных нейронных сетей.
  1. Архитектуры нейронных сетей: метрики и функции потерь. Проблема переобучения
  • Метрики и функции потерь.
  • Проблема переобучения.
  • Метрики, используемые в нейронных сетях и функции потерь.
  • Оптимизаторы.
  • Понятие переобучения и способы решения проблем с переобучением.
  1. Решение задач с помощью нейронных сетей: классификация
  • Классификация.
  • Решение задач классификации с использованием нейронных сетей.
  1. Решение задач с помощью нейронных сетей: регрессия
  • Решение задач регрессии с использованием нейронных сетей.
  1. Решение задач с помощью нейронных сетей: прогнозирование временных рядов
  • Прогнозирование временных рядов.
  • Проблемы временных рядов, трудности и пути решения.
  • Особенности разделения обучающей и тестовой выборки.
  • Разбор кода и решение задачи прогнозирования временных рядов с помощью нейронных сетей.
  1. Решение задач с помощью нейронных сетей: обработка аудио при помощи нейронных сетей
  • Особенности работы с аудио.
  • Параметризация аудио.
  • Архитектуры нейронных сетей.
  • Разбор кода и решение задачи классификации аудиофайлов.
  1. Решение задач с помощью нейронных сетей: классификация изображений
  • Задача сегментации изображений.
  • Сложности, области применения.
  • Метрики качества.
  • Разбор кода – сегментация изображений для автопилота.
  1. Решение задач с помощью нейронных сетей: внедрение в Production
  • Особенности внедрения нейронных сетей в продакшн.
  1. Построение модели нейронной сети и внедрение в Production
  • Обучение нейронной сети – классификация изображений.
  • Создание веб – приложения.
  • Загрузка на heroku.

Курс представляет собой прикладные основы наиболее популярного метода Machine Learning, включая всю необходимую теорию и практику по этой области искусственного интеллекта. В программе рассмотрена математическая база современных нейросетевых алгоритмов.

 В курсе приведены базовые задачи, которые могут быть решены с помощью методов нейросетей: классификация изображений и другие прикладные кейсы распознавания образов. Большое внимание уделено практическому решению задач с использованием нейросетевых методов на языке Python. Курсы по нейронным сетям также содержат материалы по применению сверточных нейросетей в production, в т.ч. обучение нейронной сети и ее интеграция с другими программными алгоритмами.

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

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

Программа курса:

  1. Простейшие нейронные сети
  • Теоретическая часть: основные понятия; классификация задач, решаемых с помощью методов машинного обучения; виды данных, понятие датасета; полносвязные нейронные сети.
  • Практическая часть: первичный анализ датасета, предобработка данных, построение полносвязной нейронной сети.
  1. Математические основы нейронных сетей
  • Теоретическая часть: метрики качества работы нейронной сети, градиентный спуск, алгоритм обратного распространения ошибки, эффект переобучения.
  • Практическая часть: тонкая настройка нейронной сети на примере задачи классификации изображений.
  1. Свёрточные нейронные сети
  • Теоретическая часть: параметры сверточных нейронных сетей, предобученные нейронные сети.
  • Практическая часть: использование предобученных нейронных сетей на примере задачи классификации изображений.
  1. Решение кейса: “Классификация изображений”
  • Теоретическая часть: построение набора данных, фильтрация и предобработка данных.
  • Практическая часть: решение кейса.
  1. Использование нейронных сетей в production
  • Теоретическая часть: сериализация/десериализация объектов в Python, фреймворк Flask.
  • Практическая часть: создание веб-сервиса на фреймворке Flask.

УЧЕБНЫЕ ПРОГРАММЫ:

  1. Введение в искусственные нейронные сети
  • Современное применение нейронных сетей. Основные задачи.
  • Виды нейронных сетей: прямого распространения, сверточные, рекуррентные, генеративные и другие архитектуры
  • Обучение нейронных сетей
  1. Фреймворки для глубокого обучения (Keras.TensorFLOW)
  • Введение в фреймворк TensorFlow
  • Графы вычислений
  • Операции с тензорами
  • Цепное правило
  • Оптимизация в TensorFlow
  • Логирование для TensorBoard
  • Работа TensorFlow в Google. Colab
  • Практика
  1. Сверточные нейронные сети
  • Введение в сверточные нейронные сети
  • Операция свертки
  • Простой сверточный слой
  • Усложнение сверточного слоя
  • Пулинг слой
  • Архитектура первой сверточной сети
  • Современные архитектуры
  • Inception V3
  • Практика
  1. Оптимизация нейронной сети
  • Пути оптимизации нейронной сети
  • Функции активации
  • Инициализация весов
  • Влияние learning rate на сходимость
  • Batch нормализация
  • Dropout регуляризация
  • Стохастический градиентный спуск
  • Adam: Adaptive Moment Estimation
  • Матричные операции
  • Практика
  1. Transfer learning & Fine-tuning
  • Transfer learning
  • Архитектура сети ImageNET
  • Оптимизация сети при помощи back propagation
  • Автокодировщики:понятия encoder и decoder
  • Архитектура автокодировщика
  • Практика
  1. Обработка естественного языка (NLP)
  • Задачи Natural Language Processing (NLP)
  • Векторизация текстовых данных
  • Сравнение сетей прямого распространения и рекуррентных нейросетей
  • Архитектура рекуррентной нейросети. LSTM (Long Short-Term Memory), GRU (Gated Recurrent Unit)
  • Обработки последовательностей: Many-to-One, One-to-Many, Many-to-Many
  • Many-to-One в классификации текстов, анализе временных рядов и отображении текста в картинку
  • One-to-Many в генерации текстов. Языковая модель
  • SEQ 2 SEQ: Encoder-Decoder
  • Механизм внимания (Attention). Вычисление весов. Отказ от рекуррентов
  • Архитектура TRANSFORMER
  • Практика
  1. Сегментация и детектирование объектов
  • Практическое применение сегментации
  • Классическая сегментация и сегментация на базе нейросетей
  • Методы улучшения производительности модели
  • Дилатационная свертка
  • Введение в детектирование объектов
  • Задача локализации
  • Регрессия, классификация и локализация в детектировании объектов
  • Region R-CNN и FAST R-CNN
  • Методы SSD/YOLO
  • Сравнение методов детекции
  • Практика
  1. Reinforcement learning (обучение с подкреплением)
  • Классы задач: обучение с учителем, без учителя,обучение с подкреплением
  • Применение: игровые агенты, self-driving агенты, робототехника
  • Состояния, действия, награды
  • Понятие оптимальной политики
  • Оценка состояния и действий. Оптимальная Q-функция
  • Q-Learning. Уравнение Беллмана
  • Exploration vs.Exploitation: исследование и эксплуатация оптимальной стратегии
  • Deep Q-Learning (DQN)
  • Другие методы RL: Policy Gradients, Actor-Critic
  • Практика
  1. What`s next?
  • Другие области применения нейронных сетей
  • Self-driving и AI
  • GAN: Generative Adversarial Networks
  • Перспективыразвитияобласти
  • Советы по профессиональному развитию
  • Практика.
Стоимость: 22 000 ₽ – 26 990 ₽

Вы научитесь:

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

Программа курса:

Модуль 1. Введение в Pytorch и тензоры (4 ак. ч.)

  • Введение в курс
  • Введение в нейронные сети
  • Что такое PyTorch?
  • Зачем использовать тензоры?
  • Технические требования
  • Облачные возможности
  • Что такое тензоры
  • Операции с тензорами
  • Практикум по теме

Модуль 2. Классификация изображений (4 ак. ч.)

  • Средства загрузки и обработки данных в PyTorch
  • Создание тренировочного набора данных
  • Создание проверочного и тестового набора данных
  • Нейронная сеть как тензоры
  • Активационная функция
  • Создание сети
  • Функция потерь
  • Оптимизация
  • Практикум, реализация на GPU

Модуль 3. Cверточные нейронные сети (6 ак. ч.)

  • Построение простейшей сверточной нейронной сети в PyTorch
  • Объединение слоев в сети (Pooling)
  • Регуляризация нейронной сети (Dropout)
  • Использование натренированных нейронных сетей
  • Исследование структуры нейросети
  • Пакетная нормализация (Batchnorm)
  • Практикум по теме

Модуль 4. Использование и передача обученных моделей  (5 ак. ч.)

  • Использование ResNet
  • Отбор по скорости обучения
  • Градиент скорости обучения
  • Расширение данных для переобучения
  • Использование преобразователей Torchvision
  • Цветовые и лямда преобразователи
  • Пользовательские преобразователи
  • Ансамбли
  • Практикум по теме

Модуль 5. Классификация текста  (5 ак. ч.)

  • Рекуррентные нейронные сети
  • Нейронные сети с памятью
  • Библиотека Torchtext.
Стоимость: нет информации

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

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

Программа курса

Module 1. Introduction.

  • Artificial neural networks as biologically inspired models.
  • The structure of a neuron.
  • Brief history of artificial neural networks.
  • AI, ML and ANNs.
  • An overview of neural network architectures.

Module 2. Multilayer neural networks.

  • Lesson 1. Activation functions.
  • Lesson 2. Mathematical model of multilayer neural network. Lesson 3. Loss functions.
  • Lesson 4. Backpropagation algorithm.

Module 3. Neural Network Training algorithms.

  • Lesson 1. Gradient descent methods.
  • Lesson 2. Per-parameter adaptive learning rate methods.
  • Lesson 3. Stochastic gradient descent.
  • Lesson 4. Second order methods.
  • Lesson 5. Weight initialization.

Module 4. Generalization in Neural Networks.

  • Lesson 1. Generalization capability.
  • Lesson 2. Bias-variance decomposition.
  • Lesson 3. Cross-validation techniques.
  • Lesson 4. Regularization techniques.
  • Lesson 5. Dropout and batch-normalization.

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

Стоимость: нет информации

Цель курса — предоставить аспирантам разных факультетов МГУ имени М. В. Ломоносова, имеющих базовые знания программирования и математики, возможность использовать методы искусственных нейронных сетей для анализа больших данных в их научных исследованиях.

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

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

Стоимость: нет информации

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

Программа курса (осенний семестр):

  • Занятие 1 – Введение
    Постановка задач обучения по прецедентам. Объекты и признаки с примерами. Устройство нейронной сети. Слои, функция активации. Метод градиентного спуска. Метод стохастического градиента. Шаг оптимизатора, тип оптимизатора, функция потерь. Переобучение. Обучающая и тестовая выборка. Типы нейронных сетей (линейные, DNN, бинарные, сверточные, GAN, рекуррентные).
  • Занятие 2 – Системы контроля версий
    Зачем нужно контролировать версии. Понятие коммита, ветви в version control system (VCS). Проблема коллективной разработки без VCS. Синхронизация с центральным сервером. Понятие затягивания и проталкивания изменений. Слияние ветвей. Разрешение конфликтов. Ресурсы для VCS. Проблема бинарных файлов. Примеры VCS: git, mercurial, subversion, CVS. Github, клонирование репозиториев и пул-реквесты. Readme.md и формат markdown.
  • Занятие 3 – Многослойный персептрон
    Готовые обучающие выборки и их важность (MNIST, ImageNet, CIFAR-10, CIFAR-100, FashionMNIST, COCO, …). Tensorflow и Python. Способы ускорения вычисления нейронных сетей. Примеры применения нейронных сетей в науке.
    Многослойная сеть. Алгоритм обратного распространения ошибки и его ограничения. Глубинное обучение. Выбор функции активации: сигмоида, ReLU, гиперболический тангенс, функция Хевисайда. Преимущества ReLU. Проблема исчезающего градиента и паралич сети. Проблема инициализации сети. Нормировка выборки.
    Измерение качества обучения. Кроссвалидация. Бинарная кроссэнтропия как функция потерь. Понятия эпох, итераций, бэтча в обучении нейронной сети. Методы борьбы с переобучением: прореживание выходов, стохастические выборки, искусственные выборки. Выбросы в обучающей выборке. Причины появления выбросов. Фильтрация выбросов. Метод регулировки весов обучающей выборки.
  • Занятие 4 – Сверточные сети
    Анализ изображений. Как животные видят. Трансляционная инвариантность свёрточных нейронных сетей. Определение свёртки. Строительные блоки для сверточных сетей: свёртка, активация, субдискретизация. Maxpooling, padding. Какие параметры подбираются при обучении сверточных сетей. Как работает свёртка с набором изображений на выходе предыдущего свёрточного слоя. Визуализация выходов скрытых слоёв в tensorflow. Автоэнкодеры. Две фазы обучения сверточных сетей.
  • Занятие 5 – Генеративно-соревновательные сети GAN
    Принцип работы соревновательных генеративных сетей. Структурная схема. Генератор и дискриминатор. Латентное пространство. Виды GAN: cвёрточный DCGAN, условный CGAN, цикличный CycleGAN, парные CoGAN, ProGAN устойчивого роста, Вассерштейновские WGAN. Повышение качества распознования за счет дообучения.
  • Занятие 6 – Условные генеративно-соревновательные сети CGAN
    Использование gan для генерации изображений. Зачем нужен условный GAN. Сложности обучения GAN, проблемы сходимости, проблемы устойчивости, проблемы коллапса распределения. Эмпирические трюки, позволяющие бороться с этими проблемами: использование leakyReLU; downsampling и upsampling с использованием strided convolution; нормализация данных (и преобразование пикселей исходных картинок к диапазону [-1,1]), использование момента в градиентном спуске.
  • Занятие 7 – Использование обученных сетей
    Вычислительная сложность обучения против вычислительной сложности использования. Типы готовых сетей: классификаторы, поиск объектов, распознавание лиц, семантическая сегментация, семантическое описание. Готовые нейронные сети: YOLO, VGG16, R-CNN, (Mask R-CNN, Fast R-CNN, Faster R-CNN), AlexNet, Resnet50/101/152/200…, DenseNet121/169/201, MobileNet25/50/… Связь ResNet с решением системы линейных дифференциальных уравнений. Библиотека tensornets.
  • Занятие 8 – Рекуррентные сети
    Устройство и область применения рекуррентных сетей. Сети Элмана и Джордана. Расчет количества параметров слоя. Долгая краткосрочная память (LSTM) и принцип её работы. Экспоненциальное сглаживание в блоке памяти LSTM. Функции активации LSTM. Управляемый рекуррентный блок (GRU). Машинный перевод, как частный случай задачи Seq2Seq. Архитектура Transformer и Universal transformer.
  • Занятие 9 – Автоэнкодеры
    Структура и обучение автоэнкодера. Очищение изображения от шумов. Регуляризация: лассо-регрессия и гребневая регрессия. Вариативность в латентном пространстве. Плавная интерполяция. Сжатие данных.
  • Занятие 10 – Обучение с подкреплением
    Обучение с подкреплением (RL). OpenAI и gym. Обучение без учителя. Агент, функция награды, состояние среды. Типовые среды: Atari, шахматы, Go, gym. Классификация алгоритмов RL. Q-learning. Reward shaping. Типовые ошибки при обучении с подкреплением и их причины. Важность отсутствия априорных знаний при обучении. Experience replay. Double DQN. Эпсилон-жадный алгоритм. Выборки случайных фрагментов записей для обучения.Занятие 12 – Перенос обучения
  • Занятие 11 – Перенос обучения
    Зачем нужен перенос обучения. Примеры переноса обучения: изображения, работа с естественным языком. Тонкая настройка.
  • Занятие 12 – Отбор и генерация признаков
    Зачем нужен отбор признаков. Методы отбора признаков: фильтрация, построение семейств, регуляризация. Хэширование признаков для больших таблиц. Почему можно генерировать признаки. Аугментация. Примеры неинформативных признаков. Работа с событиями во времени. Библиотека featuretools для генерации признаков.

Весенний семестр:

Выполняется курсовая работа. Она может быть совмещена с обязательной курсовой работой по физике, выполняемой в лаборатории физического факультета МГУ на втором курсе. Примерные темы работ представлены ниже. Жирным отмечены работы, совмещенные с курсовой по физике:

  • Машинное обучение антропоморфных робототехнических систем на примере модели роботизированной руки с тактильной обратной связью
  • Предсказание сейсмической активности на основе сейсмических журналов и нейронных сетей
  • Генерация изображений шельфовых доломитов с помощью генеративно-состязательных сетей
  • Методы применения нейронных сетей к анализу данных современных коллайдеров
  • Автоматический подсчёт эритроцитов на микрофотографии крови
  • Поиск и распознавание компонентов на печатной плате
  • Создание торгового бота на основе нейронных сетей
  • Предсказание отказов блоков питания РЛС дальнего обнаружения по температурным измерениям
  • Бинаризация нейронных сети для переноса их в интегральную схему
  • Определение параметров эквивалентной электрической цепи по вольамперной характеристике
  • Предсказание пульсаров на основе датасета HTRU2
  • Восстановление цвета в чернобелых фильмах и фотографиях
  • Генерация сверхразрешения в изображениях на основе нейронных сетей
  • Перенос стиля изображения с использованием нейронных сетей
  • Атака вредоносного примера на нейронные сети и защита от него
  • Поиск раковых метастаз по гистологическим микроснимкам
  • Поиск новой физики (распад таурона на 3 мюона) в экспериментальных данных с большого адронного коллайдера (LHC)
  • Дообучение нейронных сетей на одном объекте.
Стоимость: нет информации

Цель освоения дисциплины:

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

Планируемые результаты обучения:

  1. Знание возможностей интеллектуальных систем на базе нейронных сетей, технологии их создания.
  2. Умение выделять входные (управляющие) и выходные (управляемые) параметры нейросетевой интеллектуальной системы.
  3. Умение формализовать предметную область программного продукта.
  4. Умение применять полученные знания при решении практических задач.
  5. Обладание навыками нейросетевого моделирования.

Содержание учебной дисциплины:

Раздел 1. Теоретическая часть

  • Тема 1. Персептрон и его развитие Биологический и математический нейрон. Персептрон, распознающий цифры и буквы. Правила Хебба, дельта-правило, обобщенное дельта-правило. Проблема «исключающего ИЛИ», многослойный персептрон и алгоритм обратного распространения ошибки. Алгоритмы обучения второго порядка, эвристические алгоритмы, обучение с помощью генетического алгоритма. Проблема переобучения и теорема Арнльда-Колмогорова-Хехт-Нильсена. Обобщенная блок-схема создания нейросетевой интеллектуальной системы.
  • Тема 2. Неклассические нейронные сети. Радиально-базисные сети, рекуррентные сети, самообучающиеся сети, сверточные сети.

Раздел 2. Практическая часть

  • Тема 3. Выполнение индивидуальных заданий. Применение нейронных сетей для решения задач распознавания образов, извлечения знаний, оптимизации, прогнозирования, управления, поддержки принятия решений.
Стоимость: бесплатно

Уроки:

  1. Нейронные сети для самых маленьких, разбираемся в основах
    Мы разберёмся что такое искусственные нейронные сети и какие задачи они призваны решать. В чём причина их популярности? В чём их принципиальное отличие от обычных программ и алгоритмов. Разберёмся с математическими принципами их обучения и использования: прямым и обратным распространением ошибки.
  2. Как обучается нейронная сеть?
    Разберём задачу линейной регрессии, принцип обратного распространения ошибки и поговорим про градиентный спуск.
    Вы узнаете, каким образом нейронная сеть подбирает весовые коэффициенты в процессе обучения, и поймёте, как влияют некоторые гиперпараметры на скорость обучения.
  3. Google Colab и первая нейронная сеть. 1 часть
    Соберём небольшую нейронную сеть с помощью Google Colab и обучим её.
    Вы научитесь пользоваться интернет-сервисомGoogle Colab, который даёт доступ к GPU и позволяет обучать нейронные сети. Получите первые практические навыки в обучении нейронных сетей на Python.
  4. Google Colab и первая нейронная сеть. 2 часть
    Обучим классифкатор, посмотрим какие параметры обученя влияют на результат. И рассмотрим возможности, предоставляемые keras.
  5. Свёрточная нейронная сеть
    Мы добавим в нашу нейронную сеть свёрточные слои. Разберёмся что это такое и как они работают. Получим свёрточную нейронную сеть гораздо точнее решающую задачу.
  6. Свёрточная нейронная сеть и датасеты из интернета
    Пришло время применить свёрточную нейронную сеть для классификации нескольких классов и воспользоваться набором данных из интернета, а не собственноручно собранным.
  7. Нейронная сеть и работа с камерой в реальном времени
    Применяем наши сети к видеопотоку с камеры. Разбираем полезные инструменты для кодирования меток на изображениях и повышаем универсальность сети, чтобы в неё можно было добавлять дополнительные классы.
  8. От классификации к детектированию
    Разбор видов детекторов и принципов их работы. Собираем и обучаем собственный детектор. Посмотрим, как детектор будет работать с видеопотоком с камеры. Анализируем возможность применения детекторов в школьных проектах
  9. Пишем SSD
    Задаём архитектуру нашей сети: послойно собираем детектор, разбираясь какой слой для чего нужен.
  10. Пишем SSD: Single Shot MultiBox Detector. (Часть 2)
    Пишем алгоритмы вокруг сети. Генерация априорных ограничивающих рамок, отсев лишних, задание функции потерь и шага обучения сети.
Стоимость: бесплатно

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

Программа курса

  1. Основы линейной алгебры
  • Общая информация о курсе
  • Введение
  • Надо ли вам смотреть эту неделю? (урок с задачами)
  • Ликбез по линейной алгебре: векторы
  • Ликбез по линейной алгебре: матрицы
  • NumPy: основы
  • Линейная алгебра в деле
  1. Перцептрон и градиентный спуск
  • Нейроны: настоящие и искусственные
  • Перцептрон
  • Перцептрон: обучение
  • Больше искусственных нейронов!
  • Градиентный спуск
  • Больше градиентного спуска!
  • Однослойные модели
  1. Алгоритм обратного распространения ошибки
  • Многослойный перцептрон
  • Алгоритм обратного распространения ошибки
  • Алгоритм обратного распространения ошибки: продолжение
  • Целевые функции
  1. Мониторинг состояния сети
  • Мониторинг состояния сети
  • Визуализация
  • Тест
  • Практика
  1. Сюрприз и заключение
  • Сюрприз!
  • Заключение.

Сертификат – Институт биоинформатики.

Стоимость: бесплатно

Курс посвящен именно практическому применению нейронных сетей с использованием готовых библиотек Keras и TensorFlow. Вы научитесь применять эти библиотеки для решения задач анализа изображений и текстов.

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

Основы обучения глубоких нейросетей

  • Введение.
  • Лекция “Искусственные нейронные сети”.
  • Лекция “Обучение нейронных сетей”.
  • Лекция “Библиотеки для глубокого обучения”.
  • Лекция “Распознавание предметов одежды”.
  • Лекция “Анализ качества обучения нейронной сети”.
  • Практическая работа “Распознавание предметов одежды на Keras” (ноутбук в Colaboratory).
  • Лекция “Бесплатная облачная платформа для обучения нейросетей Google Colab” (ноутбук в Colaboratory).
  • Лекция “Сохранение обученной нейронной сети”.
  • Лекция “Используем обученную нейросеть для распознавания изображений” (ноутбук в Colaboratory).
  • Лекция “Решение задачи регрессии” (ноутбук в Colaboratory).
  • Лекция “Автоматическая оптимизация гиперпараметров нейросети с Keras Tuner” (ноутбук в Colaboratory)

Нейросети для компьютерного зрения

  • Лекция “Сверточные нейронные сети”.
  • Лекция “Распознавание объектов на изображениях”.
  • Практическая работа “Распознавание объектов на изображениях с помощью Keras” (ноутбук в Colaboratory).
  • Лекция “Анализируем изображения с помощью нейронных сетей”.
  • Лекция “Предварительно обученные нейронные сети в Keras”.
  • Лекция “Как подготовить собственный набор изображений для обучения нейронной сети в Keras”.
  • Лекция “Перенос обучения (Transfer Learning)”.
  • Практика “Распознавание собак и кошек на изображениях”.
  • Лекция “Тонкая настройка нейронной сети (Fine Tuning)”.
  • Лекция “Анализ признаков, извлеченных нейросетью”.
  • Лекция “Дополнение данных (Data Augmentation)”.
  • Лекция “Визуализация сверточной нейронной сети”.
  • Проект “Распознавание человека по лицу на фотографии”.
  • Проект “Поиск объектов на изображениях”.

Нейросети для анализа текстов

  • Введение в курс “Нейросети для анализа текстов” (презентация).
  • Лекция “Представление текста в цифровом виде для обработки нейронной сетью” (презентация).
  • Лекция “Анализ тональности отзывов на фильмы из базы IMDB” (ноутбук в Colaboratory).
  • Лекция “Представление текста в формате one hot encoding” (ноутбук в Colaboratory).
  • Лекция “Представление текста плотными векторами (embeddings)” (ноутбук в Colaboratory).
  • Лекция “Рекуррентные нейронные сети” (презентация).
  • Лекция “Анализ тональности текста рекуррентной нейросетью” (ноутбук в Colaboratory).
  • Лекция “Сети LSTM и GRU” (презентация).
  • Лекция “Сети LSTM и GRU для определение тональности отзывов IMDB” (ноутбуки в Colaboratory: сеть LSTM, сеть GRU).
  • Лекция “Анализ тональности отзывов YELP сетью LSTM”. Рассматривается подготовка текстового набора данных к обработке нейронной сетью (ноутбук в Colaboratory).
  • Лекция “Одномерные сверточные нейросети” (презентация, нотбук в Colaboratory).
  • Лекция “Анализируем тональность отзывов YELP одномерной сверточнной нейросетью” (ноутбук в Colaboratory).
  • Лекция “Классификация текстов нейросетями” (ноутбук в Collaboratory).
  • Лекция “Многозначная классификация текстов” (презентация, ноутбук в Collaboratory).

Работа с платформой Google Colaboratory

  • Основы работы с Google Colaboratory.
  • Использование команд Linux в Colab.
  • Использование бесплатных тензорных процессоров TPU в Colab.
  • Участвуем в соревнованиях на Kaggle с помощью Colab.
Стоимость: бесплатно

План занятий:

  1. Основы искусственных нейронных сетей
    В лекции рассматриваются общие положения теории искусственных нейронных сетей. Описана структура однослойных и многослойных нейронных сетей, введено понятие обучения нейронной сети и дана классификация алгоритмов обучения.
  2. Персептроны. Представимость и разделимость
    В лекции дается определение персептрона, рассматривается его архитектура. Описывается класс задач, решаемых с помощью персептрона, доказывается, какие задачи невозможно решить с его помощью.
  3. Персептроны. Обучение персептрона
    В лекции рассматриваются алгоритм обучения персептрона, вопросы сходимости алгоритма обучения и подбора количественных характеристик весовых коэффициентов. Исследуются многослойные персептроны и возможности их обучения.
  4. Процедура обратного распространения (описание алгоритма)
    В лекции рассматривается архитектура многослойного обобщенного персептрона, описывается процедура обратного распространения – алгоритм обучения многослойного персептрона с учителем.
  5. Процедура обратного распространения (анализ алгоритма)
    В лекции анализируются слабые места алгоритма обратного распространения и предлагаются методы решения некоторых связанных с этим проблем.
  6. Сети встречного распространения
    В лекции изложены архитектура, функционирование и методы обучения сетей встречного распространения. В качестве примера использования данной сети рассматриваются методы сжатия данных.
  7. Стохастические методы обучения нейронных сетей
    В лекции дается обзор основных стохастических методов, используемых для обучения нейронных сетей: метод отжига металла, больцмановское обучение, обучение Коши, метод искусственной теплоемкости.
  8. Нейронные сети Хопфилда и Хэмминга
    В лекции рассматривается архитектура сети Хопфилда и ее модификация – сеть Хэмминга, затрагиваются вопросы устойчивости сети Хопфилда. В заключении лекции рассматриваются понятие ассоциативности памяти и задача распознавания образов.
  9. Обобщения и применения модели Хопфилда
    В лекции рассматриваются вероятностные обобщения модели Хопфилда и статистическая машина. Описывается аналого-цифровой преобразователь – как модель сети с обратным распределением. В качестве примера приводится представление информации в сети Хопфилда, решающей задачу коммивояжера.
  10. Двунаправленная ассоциативная память
    В лекции рассматриваются архитектура и принципы работы нейронной сети ДАП. Затронуты вопросы емкости данной сети. Дается обзор некоторых модификаций этой сети.
  11. Адаптивная резонансная теория. Архитектура
    В лекции рассматривается проблема стабильности—пластичности при распознавании образов. Изучаются нейросетевые архитектуры AРT.
  12. Теория адаптивного резонанса. Реализация
    В лекции рассматривается процесс функционирования АРТ. Приводится пример обучения сети АРТ. Обсуждаются основные характеристики АРТ. Дается обзор модификаций сети АРТ.
  13. Когнитрон
    В лекции рассматривается архитектура, процедура обучения и функционирование когнитрона. Описан пример функционирования четырехслойного когнитрона распознавания образов.
  14. Неокогнитрон
    В лекции рассматривается архитектура, процедура обучения и функционирования неокогнитрона. Отмечается его сходство и отличие от когнитрона.
  15. Алгоритмы обучения
    В данной лекции рассматриваются различные методы обучения нейронных сетей. Некоторые из этих методов частично приводились на предыдущих лекциях, но отмечены снова для создания у слушателей целостного представления об изучаемой области.
  16. Экзамен.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Автор статьи. Ответственный за актуальный контент, текст и редактуру сайта. Эксперт по выбору профессии, курсов и профессий с 2016 года. Делюсь личным практическим опытом.

Оцените автора
Добавить комментарий