На сегодняшний день развитие искусственного интеллекта - Artificial intelligence (AI) является одним из важнейших направлений не только в Российской, но и мировой экономике, к которому приковано внимание правительств ведущих государств.
Каждый год количество цифровых данных возрастает в несколько сотен раз. Каждую секунду мы создаем данные. Мы общаемся в мессенджерах, оплачиваем покупки, фотографируем, пользуемся навигаторами. Вся генерируемая в этих процессах информация накапливается, сохраняется и используется. Системы искусственного интеллекта отслеживают ваши запросы, чтобы предложить вам товар или услугу. Вся эта информация становится востребованной, если ее удается расшифровать, обработать и интерпретировать.
В основе Data Science (наука о данных) лежит работа с большими данными (Big Data). Big Data - это действительно огромные массивы неструктурированной информации, для работы с которыми используются методы машинного обучения и математическая статистика. Основное отличие методов науки о данных от классических методов бизнес-аналитики - это поиск связей и закономерностей в массивах информации, для разработки моделей нейронных сетей, предсказывающих результат.
Нейронные сети меняют мир. Они применяются в медицине для обнаружения опухолей, в спорте и трейдинге для выявления закономерностей в данных, для управления автономными системами (Self Driving Cars), для генерации 3D контента. Некоторые задачи невозможно было решить без нейронных сетей. Врачам становится проще работать, генерация изображений снизит нагрузку на 2D художников и 3D модельеров, аналитики получают больше времени на принятие решений, а не на поиск взаимозависимостей.
Задача исследователя данных (DataScientist): быстро и точно проводить первичный анализ данных, а также применять алгоритмы машинного обучения для решения прикладных задач с помощью библиотек на языке программирования Python: Pandas, Numpy, Seaborn, Matplotlib, etc, строить модели нейронных сетей, которые позволяют выявлять скрытые взаимосвязи в огромных массивах информации. Data Scientist помогает создавать продукты и решения, повышающие эффективность бизнес-решений, социальных взаимодействий, научных исследований и производственных процессов на основе выявленных неявных закономерностей.
Данная программа обучения позволяет обеспечить получение компетенций, необходимой для профессиональной деятельности Data Scientist, который, благодаря полученным знаниям и навыкам работы с большими данными, сможет выявить скрытые зависимости и тренды в потоке информации и обеспечить успешное решение задач во всех отраслях науки и техники.
Программа дополнительного профессионального образования разработана на основе профессионального стандарта «Бизнес-аналитик», утвержденного приказом Министерства труда и социальной защиты РФ от 25.09.2018 № 592н; и профессионального стандарта "Специалист по большим данным", утвержденного приказом Министерства труда и социальной защиты РФ от 6 июля 2020 года N 405н., а также на основе анализа требований рынка труда и обобщения зарубежного опыта.
Курс не требует специальных начальных навыков, доступен тем, кто является пользователем ПК, имеет навык работы с операционной системой Windows, владеет пакетом офисных программ, умеет искать информацию в сети Internet. Навыки программирования желательны, но необязательны. Курс носит практикоориентированный характер. В качестве упражнений пользователи будут обрабатывать наборы данных при помощи инструментов: алгоритмов и библиотек языка программирования Python, а также облачного инструмента GoogleColaboratory. Для работы с курсом требуется компьютер с выходом в интернет.
Для выполнения упражнений не потребуется установка программных средств на свой компьютер, все рекомендуемые в курсе инструменты доступны удаленно. Программа обучения построена по модульному принципу, включает вопросы, раскрывающие содержание науки о данных и методах машинного обучения нейронных сетей.
Программа «Data Science, нейронные сети, искусственный интеллект. Алгоритмы машинного обучения на языке Python» имеет целью формирование у слушателей профессиональных компетенций, необходимых для выполнения профессиональной деятельности в области создания информационных технологий нового поколения, обеспечивающих экономически эффективное извлечение полезной информации из больших объемов разнообразных данных путем высокой скорости их сбора, обработки и анализа, и применение этих технологий в информационно-аналитической деятельности, в системах управления и принятия решений, а также для разработки на их основе новых продуктов и услуг.
1. Базовые понятия и операции языка Python
Понятие программирование, язык программирования, преимущества языка программирования Python. Базовые функции и операции языка Python для ввода и вывода данных. Основные типы данных. Логические выражения, комбинирование выражений. Условный оператор, циклы while и for. Функция range. Базовые структуры list и dict. Списки и кортежи.
2. Функции и модули Python для обработки данных
Понятия функции и модуля в языке python, функции и их аргументы, применение функций в программном коде. Технологии упаковки функций в модули, использование модулей в программе. Подключение модулей из пакетов. Основные инструменты и объекты библиотеки numpy. Способы обработки данных в многомерных массивах, использования векторных и матричных операций, а также операций с размерностями массивов. Инструменты библиотеки pandas. Загрузка, обработка и трансформация данных в таблицах pandas. Операции конкатенации, группировки и объединения данных, использование временных индексов, статистических и агрегирующих функций.
3. Теория вероятностей, статистика и генетические алгоритмы
Теория вероятностей и статистика. Вычисление характеристик случайных событий и величин. Понятие о функции распределения вероятностей и плотности распределения. Примеры распределений и статистических характеристик распределений, визуальный образ функций распределения и плотности для различных распределений. Введение в генетические алгоритмы. Генетические алгоритмы для обучения нейронных сетей. Принципы подбора, корректировки и оптимизации гиперпараметров для нейронной сети с помощью генетических алгоритмов.
4. Парсинг и анализ данных
Парсинг данных. Основные методики разбора сырых данных, приведения их к виду для отправки на вход алгоритмов машинного обучения и нейронных сетей. Техники подготовки категориальных и числовых данных, обобщение результатов в таблицах pandas. Анализ данных. Методы получения значимой информации из набора данных, выявления закономерностей и взаимосвязей в данных. Визуализация в разрезе аналитических метрик, адекватных природе исследуемых данных. Примеры количественных и качественных оценок, получаемых на основе данных с помощью графиков и статистических расчетов.
5. Введение в нейронные сети
Введение в нейронные сети. Создание простейшей нейронной сети с помощью библиотеки Keras. Полносвязные сети, обучающая и тестовая выборки. Оценка качества обучения нейросети. Принципы работы свёрточных нейронных сетей. Задачи обработки текстов естественного языка с помощью нейронных сетей. Принцип работы рекуррентных нейронных сетей.
6. Архитектуры нейронных сетей
Применение функционального программирования к построению нейронных сетей. Архитектуры нейронных сетей для получения прогноза в задаче регрессии. Полносвязные и рекуррентные нейронные сети для прогнозирования временных рядов. Прямые и свёрточные нейронные сети для обработки аудиосигналов. Архитектура автокодировщиков. Обучение без учителя при использовании метода обратного распространения ошибки. Снижение размерности исходного пространства. Вариационные автокодировщики. Генеративные модели на базе автокодировщиков. Генеративные состязательные сети. Модель GAN, генератор и дискриминатор.
7. Сегментация изображений, кластеризация данных
Анализ различных архитектур для сегментации изображений, функции ошибок и метрики. Модели Unet. Кластеризация данных, метод K-Means (К-средних) для решения практических задач. Основные концепции обучения с подкреплением (RL, reinforcement learning). Отличие задачи "обучение с подкреплением" от задач "обучение с учителем" и "обучение без учителя". Область применения обучения с подкреплением. Алгоритмы Policy Gradient и DQN. Обучение агентов в виртуальном окружении от Open AI Gym.
8. Обработка текста, анализ аудио- и видеосигналов
Генерация текстового контента. Генерация текста с помощью LSTM рекуррентных нейронных сетей в Python с Keras. Сегментация текста. Сегментация текстовых данных с помощью сверточных и рекуррентных нейронных сетей. Обработка сигналов: понятия сигнала, его спектра и гармоник. Понятие о дискретизации сигнала, примеры оцифровки с различным шагом дискретизации. Разложение аудиосигнала на гармонические составляющие, понятие о преобразовании Фурье и его приложениях. Распознавание речи. Распознавание голосовых команд. Подготовка данных нейросети для распознавания речи. Object Detection (обнаружение и распознавание объектов). Формирование выборки на обучение и инференс модели YOLOv5.
9. Создание нейронных сетей на фреймворках
Основные принципы построения нейронных сетей на фреймворке TensorFlow. Создание разных видов тензоров и операции над ними. Расчёт активационной функции. Полносвязные и сверточные модели на фреймворке TensorFlow. Визуализация обучения через TensorBoard. Основные понятия, принципы и инструменты для работы c фреймворком PyTorch.
10. Интеграция в production
Интеграция в production. Базовые принципы фреймворка Flask и запуск локального сервера. Этапы проектирования нейронной сети. Способы сериализации модели, варианты для User Interface. Алгоритмы интеграции нейронной сети с внешними сервисами. Развертывание моделей Keras с использованием Django и Flask.
11. Итоговая аттестация