• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Бакалаврская программа «Прикладная математика и информатика»

Специализация Распределенные системы

Руководитель специализации --
Сухорослов Олег Викторович, кандидат технических наук, преподаватель ШАД, старший научный сотрудник Центра распределённых вычислений ИППИ РАН. Занимается разработкой распределённых вычислительных систем и их практическим использованием в различных сферах. Сейчас работает над облачной платформой Everest, позволяющей создавать вычислительные сервисы и автоматизировать проведение расчётов на распределённых ресурсах

Современные прикладные задачи анализа данных требуют быстро обработать крупные массивы информации. Для достижения этой цели необходимо уметь эффективно использовать растущие в количестве (а не в скорости) вычислительные мощности: основным драйвером развития индустрии в течение последней декады является параллелизация и распределение вычислительной нагрузки по множеству независимых процессоров и сопутствующий перенос тяжелых расчетов «в облако». Соответственно, также необходимо уметь анализировать и проектировать эффективные в новом вычислительном окружении алгоритмы обработки данных. В совокупности данные два тренда определяют переход от работы с одним компьютером к работе с распределенной системой компьютеров.

Целью специализации «Распределенные системы» является получение навыков анализа, проектирования и имплементации распределенных систем (distributed systems); изучение методов структурирования и обработки информации (data management). Ожидается, что выпускник специализации будет уметь и эффективно использовать существующие программные решения (SQL/NoSQL/NewSQL базы данных, распределенные базы данных, Hadoop-стек), так и уметь создавать новые программные решения для конкретных задач.


Базовые курсы 3 года обучения 
Курсы специализации 3 года обучения
Научно-исследовательский семинар "Распределенные системы"
Темы курсовых работ и ВКР 2018 
Курсы специализации 4 года обучения 


базовые курсы учебного плана 3 курса ПМИ (Major): 

1. Машинное обучение 1 
Лектор: Соколов Евгений Андреевич

Департамент больших данных и информационного поиска: Старший преподаватель

 
курс читается: 1-2 модули 
Задача курса — научить слушателей находить скрытые закономерности в данных с помощью методов машинного обучения. На лекциях разбираются все основные модели (линейные, логические, метрические, байесовские) и постановки задач машинного обучения. Большое внимание уделяется прикладным аспектам анализа данных: метрикам качества, оцениванию обобщающей способности, подготовке данных и работе со сложными типами признаков. В курсе изучаются современные технологии и библиотеки, используемые в анализе данных. Все темы сопровождаются практическими заданиями на языке Python и соревнованиями по анализу данных.

2.   Непрерывная оптимизация
курс читается: 3 модуль
Настройка модели алгоритмов по данным — это задача оптимизации, от эффективности решения которой зависит практическая применимость метода машинного обучения. В эпоху больших данных многие классические алгоритмы оптимизации становятся неприменимы, т.к. здесь требуется решать задачи оптимизации функций за время меньшее, чем необходимо для вычисления значения функции в одной точке. Таким требованиям можно удовлетворить в случае грамотного комбинирования известных подходов в оптимизации с учётом конкретной специфики решаемой задачи. Курс посвящен изучению классических и современных методов решения задач непрерывной оптимизации (в том числе невыпуклой), а также особенностям применения этих методов в задачах оптимизации, возникающих в машинном обучении. Наличие у слушателей каких-либо предварительных знаний по оптимизации не предполагается, все необходимые понятия разбираются в ходе занятий. Основной акцент в изложении делается на практические аспекты реализации и использования методов. Целью курса является выработка у слушателей навыков по подбору подходящего метода для своей задачи, наиболее полно учитывающего её особенности.

3. Дискретная оптимизация
курс читается: 4 модуль
Настройка модели алгоритмов по данным — это задача оптимизации, от эффективности решения которой зависит практическая применимость метода машинного обучения. В эпоху больших данных многие классические алгоритмы оптимизации становятся неприменимы, т.к. здесь требуется решать задачи оптимизации функций за время меньшее, чем необходимо для вычисления значения функции в одной точке. Таким требованиям можно удовлетворить в случае грамотного комбинирования известных подходов в оптимизации с учётом конкретной специфики решаемой задачи. Курс посвящен изучению классических и современных методов решения задач непрерывной оптимизации (в том числе невыпуклой), а также особенностям применения этих методов в задачах оптимизации, возникающих в машинном обучении. Наличие у слушателей каких-либо предварительных знаний по оптимизации не предполагается, все необходимые понятия разбираются в ходе занятий. Основной акцент в изложении делается на практические аспекты реализации и использования методов. Целью курса является выработка у слушателей навыков по подбору подходящего метода для своей задачи, наиболее полно учитывающего её особенности.

4. Введение в глубинное обучение  |  Introduction to Deep Learning
курс читается: 3 модуль | в формате blended на английском языке
The goal of this course is to give learners basic understanding of modern neural networks and their applications in computer vision and natural language understanding. The course starts with a recap of linear models and discussion of stochastic optimization methods that are crucial for training deep neural networks. Learners will study all popular building blocks of neural networks including fully connected layers, convolutional and recurrent layers. Learners will use these building blocks to define complex modern architectures in TensorFlow and Keras frameworks. In the course project a learner will implement deep neural network for the task of image captioning which solves the problem of giving a text description for an input image.The course is based on MOOC “Introduction to Deep Learning”  (Coursera.org, Developer – HSE).




курсы специализации 3 года обучения: 

1.  Параллельное и распределенное программирование
Лектор: Сухорослов Олег Викторович

Департамент больших данных и информационного поиска: Доцент

 

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


2. Компьютерные сети и базы данных
курс читается: 3-4 модули
“Базы данных”
В рамках данного курса слушатели познакомятся с основными понятиями теории баз данных в приложении к моделированию реальных информационных систем. В курсе будут рассмотрены элементы реляционной алгебры, операторы преобразования данных, типичные способы моделирования данных. В практическую часть курса входит практикум по работе с современными СУБД, включая как ручное составление запросов, так и использование более высокоуровневых ORM-фреймворков.


3. 
Машинное обучение на больших данных
Лектор: Зимовнов Андрей Вадимович

Департамент больших данных и информационного поиска: Преподаватель

 
курс читается: 4 модуль
В рамках курса "Машинное обучение на больших данных" студенты познакомятся с методами машинного обучения, применимыми к большим массивам данных разного вида, включая тексты и изображения. Студенты научатся применять их в реальных задачах, с которыми сегодня сталкиваются специалисты по анализу данных. Будут рассмотрены как способы распараллеливания и ускорения работы известных методов, так и новые подходы, основанные на наличии большой обучающей выборки. В курсе изучаются современные подходы к обработке больших данных на языке Python с использованием таких инструментов как IPython, Apache Spark, vowpal wabbit, xgboost, word2vec и TensorFlow. 



курсы специализации 4 года обучения :

1. Методы и системы обработки больших данных

Лектор: Пузыревский Иван Витальевич

Базовая кафедра Яндекс: Преподаватель

 
Курс посвящен методам построения систем обработки больших данных и существующим инструментам в этой области. Цель курса -- дать понимание внутреннего устройства, механики работы, области применимости существующих решений, осветить сильные и слабые стороны, научить практическим навыкам анализа больших массивов информации.
В лекционной части курса рассматриваются такие технологии как HDFS, Hadoop MapReduce, HBase, Cassandra, Spark, Kafka, Spark Streaming, Storm. Последовательность рассказа повторяет историю появления и развития данных технологий обработки данных. В начале мы познакомимся с HDFS и MapReduce, разберем основные архитектурные решения и ограничения в применимости данных систем (в том числе с учетом десятилетнего опыта эксплуатации). Следом разберем задачу хранения данных по ключу, познакомимся с различными трейд-оффами в построении систем типа "ключ-значение" на примере HBase & Cassandra. Постепенно перейдем к изучению устройства Spark, современной системе кластерной обработки данных. Узнаем принципиальные отличия в пакетной и потоковой обработке данных, изучим Kafka -- шину для доставки данных с минимальными задержками -- и Storm вместе с Spark Streaming -- системами потоковых вычислений. В дополнение разберем сопроводительные технологии (типа ZooKeeper, Hive), которые порой упрощают жизнь при разработке приложений.
Практическая часть курса состоит из нескольких заданий, подчиненных одной сквозной модельной бизнес-задаче. Вашей главной целью будет построение контура непрерывной обработки данных для расчета аудиторных статистик модельной соцсети, сбора и хранения пользовательских профилей, решения ad-hoc задач аналитики. Оценка за практическую часть формируется из корректности и стабильности вашего решения.



2. Алгоритмы для иерархий памяти

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

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



3. Функциональное программирование

Слушатели курса познакомятся с функциональными языками программирования на примере языка программирования Haskell, изучат отличия функционального подхода к программированию от традиционного императивного, познакомятся с лямбда-исчислением как теоретической основой функционального программирования, познакомятся с системами типов функциональных языков и алгоритмом вывода типов Хиндли-Дамаса-Милнера.



4. Дополнительные главы баз данных

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



↑ вернуться