23
2010

2010 - koi.nsu.rukoi.nsu.ru/new/website/koi/var/custom/File/students_booklet_sept... · О.В. Сухорослов Теория информации и распознавание

Embed Size (px)

Citation preview

2 010

2

3

В этой брошюре мы собрали информацию о программах для студен-тов, которые предлагает компания Яндекс: Школа анализа данных, стажировка, интернет-математика. В конце мы рассказываем о проектах, которые были успешно выполнены стажерами и студентами Школы анализа данных.

Если вам это интересно, приходите к нам!

Оглавление

Школа анализа данных 4

Обязательные курсы 6

Специальные курсы 8

Набор в ШАД 9

Преподаватели и руководители 10

Дипломы 12

Стажировка в Яндексе 14

Требования к стажерам 16

Примеры проектов наших стажеров 18

Конкурс «Интернет-математика» 20

Если вас заинтересовали

наши программы 22

4

Школа анализа данных

5

Школа анализа данных открыта в 2007 году. Инициатором созда-ния выступила компания «Яндекс». Она же взяла на себя финан-сирование Школы. Главной целью Школы является подготовка специалистов в области обработки и анализа данных и извле-чения информации из интернета – как для Яндекса, так и для IT-индустрии в целом.

Школа Яндекса представляет собой бесплатные двухгодичные очные вечерние курсы, которые ведут преподаватели отече-ственных и зарубежных университетов. Школа дает возможность получить образование по таким разделам computer science, которые обычно не входят в программу университетов.

В Школе Яндекса есть два отделения: анализа данных и computer science.

На отделении анализа данных студенты изучают: — базовые разделы анализа данных (методы построения класси-фикаторов, методы вычисления мер сходства между объектами, кластерный анализ, методы визуализации и сокращения размер-ностей); — методы анализа специальных данных (изображений, символь-ных последовательностей, текстов на естественных языках и других структурных объектов); — методы оптимизации, необходимые для построения основных вычислительных процедур (как для базовых задач, так и для специальных).

Тематика основных курсов отделения computer science такова: — дополнительные главы дискретного анализа, теории графов, комбинаторики и теории вероятностей; — методы построения и анализа эффективных алгоритмов и структур данных; — современные методы машинного обучения, обработки текстовой информации и распределенных вычислений.

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

Занятия проходят по вечерам (с 1800 до 2100) с понедельника по субботу по адресу: Климентовский пер., д. 1, стр. 18 (Московский корпус МФТИ).

6

Обязательные курсы

Отделение анализа данных

Первый семестр Восстановление функциональных закономерностей из эмпирических данных А.Я. Червоненкис

Основы стохастики. Стохастические модели А.Н. Ширяев

Алгоритмы и структуры данных поиска, часть 1 М.А. Бабенко

Второй семестр Алгоритмы и структуры данных поиска, часть 2 М.А. Бабенко

Вероятностно-статистические методы. Обнаружение скрытых редких событий А.Н. Ширяев

Машинное обучение для построения классификаторов и регрессионных моделей А.Я. Червоненкис

Третий семестр Выпуклый анализ и оптимизация Б.Т. Поляк

Машинное обучение, часть 2 К.В. Воронцов

Четвертый семестр Биоинформатические методы в анализе символьных последовательностей М.А. Ройтберг

Отделение computer science

Первый семестр Алгоритмы и структуры данных поиска, часть 1 М.А. Бабенко

Дискретный анализ и теория вероятностей А.М. Райгородский

Второй семестр Алгоритмы и структуры данных поиска, часть 2 М.А. Бабенко

Машинное обучение, часть 1 К.В. Воронцов

Третий семестр Машинное обучение, часть 2 К.В. Воронцов

Введение в лингвистику и автоматическая обработка текстов, часть 1 М.А. Бабенко, Б.Л. Иомдин

Четвертый семестр Введение в лингвистику и автоматическая обработка текстов, часть 2 М.А. Бабенко, Б.Л. Иомдин

7

Одна из областей computer science и анализа данных, активно изучае-мых в ШАД, называется «Машинное обучение». Это огромная, бурно развивающаяся в последние деся-тилетия область, активно приме-няющаяся в программировании. Машинное обучение используют крупнейшие поисковые, медицин-ские, финансовые компании. Оно применяется для решения таких задач, как улучшение ранжирования результатов поиска, фильтрация порнографии в поиске по картин-кам, фильтрация спама в почте и веб-поиске, алгоритмы игры на бирже, распознавание людей на фотографиях и многих других.

Что такое машинное обучение в целом? Это попытка научить компьютер решать задачи, которые обычно легко даются человеку, но формализовать их сложно. Напри-мер, узнавание других людей или понимание смысла и цели письма, пришедшего на электронную почту, и затем решение, является и это письмо спамом или нет. При этом, конечно, нужно учитывать, что человек хорошо решает эти задачи по одной за раз, а компьютер необ-ходимо научить решать тысячи или миллионы таких задач в секунду. Оказывается, что человек может обучить компьютер так, что он почти не будет ошибаться - во многих из перечисленных задач уровень качества работы выше 90%.

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

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

Есть и другие методы — некоторые из них не предполагают, что для обучающей выборки есть ответы, а другим и вообще не нужна обучающая выборка, они работают сразу с поступающими данными в реальном времени. О том, как строятся такие классификаторы, как выбираются хорошие признаки и как оценивается качество того или иного классификатора, и рассказывается на нескольких курсах ШАД, посвященных машин-ному обучению.

Курс «Машинное обучение»Пример одного из курсов Школы анализа данных

8

Специальные курсы обоих отделений

Первый семестр

Теория расписаний Е.В. Щепин

Вычислительная теория интерполяции Е.В. Щепин

Теория игр и функций выбора В.И. Данилов

Обучение языку С++ А.И. Зобнин

Основы программирования на Java Ф. Андронов

Второй семестр

Параллельные и распределенные вычисления О.В. Сухорослов

Теория информации и распознавание образов Е.В. Щепин

Сложность вычислений Н.К. Верещагин

Вероятностно-статистические методы в теории принятия решений, часть 2 А.Н. Ширяев

Комбинаторика и вероятность, часть 2 А.М. Райгородский

Обучение программированию А.И. Зобнин

Третий семестр

Теория информации Н.К. Верещагин

Процедурные и декларативные языки А.С. Тарасов

Промышленное программирование В.С. Лысенков, В.Е. Шорин

Анализ изображений и видео, часть 1 А.С. Конушин

Четвертый семестр

Веб-графы и поиск А.М. Райгородский

Кластеры и количественные структуры в данных: выявление, описание, визуализация Б.Г. Миркин

Основы статистики в машинном обучении Е.В. Бурнаев

Избранные прикладные задачи информационного поиска П.И. Браславский

Введение в статистические методы распознавания А.Б. Мерков

Анализ изображений и видео, часть 2 А.С. Конушин

9

Третий семестр

Теория информации Н.К. Верещагин

Процедурные и декларативные языки А.С. Тарасов

Промышленное программирование В.С. Лысенков, В.Е. Шорин

Анализ изображений и видео, часть 1 А.С. Конушин

Четвертый семестр

Веб-графы и поиск А.М. Райгородский

Кластеры и количественные структуры в данных: выявление, описание, визуализация Б.Г. Миркин

Основы статистики в машинном обучении Е.В. Бурнаев

Избранные прикладные задачи информационного поиска П.И. Браславский

Введение в статистические методы распознавания А.Б. Мерков

Анализ изображений и видео, часть 2 А.С. Конушин

Набор в Школу анализа данных

Поступление в Школу состоит из двух этапов: интерактивного теста (с одновременным заполнением анкеты) и очного собеседования. И тест, и собеседование проходят в рамках программы, опублико-ванной на странице http://shad.yandex.ru/matriculation/.

Информация о новом наборе появится 15 марта 2011 года на том же сайте.

Все вопросы вы можете задать по адресу [email protected].

У студентов Школы анализа данных есть возможность обучаться в очной магистратуре Московского физико-технического инсти-тута (МФТИ) или Высшей школы экономики (ГУ-ВШЭ): в сентябре 2007 года компания «Яндекс» открыла кафедру анализа данных в МФТИ. Подготовка студентов ведется в бака-лавриате и магистратуре. Основное внимание в бакалавриате уделяется математике и программированию. В процессе обуче-ния студенты кафедры проходят практику в Яндексе. Магистер-ская программа кафедры построена на основе курсов ШАД. Совместно с МФТИ проводятся летние и зимние школы для старшеклассников по комбинаторной математике и алгоритмам.

С сентября 2008 года ШАД совместно с отделением приклад-ной математики и информатики ГУ-ВШЭ ведет подго-товку в рамках магистерской программы «Математическое моделирование». Обучение проводится на бюджетной основе, а для иногородних предоставляется общежитие.

10

Преподаватели и руководители Школы анализа данных — известные ученые, сотрудники лучших московских вузов, разработчики Яндекса.

Вот некоторые из них:

Илья Борисович Мучник Научный руководитель Школы Яндекса, директор отделения анализа данных, профессор Ратгерского университета.

Елена Игоревна Бунина Директор отделения computer science, старший научный сотрудник кафедры высшей алгебры механико-математического факультета МГУ им. М. В. Ломоносова, заместитель заведующего кафедрой анализа данных МФТИ. Кандидат физико-математических наук.

Григорий Вячеславович Кондаков Заместитель директора отделения анализа данных, заведующий отделом математики и компьютерных методов МГДД(Ю)Т. Кандидат физико-математических наук.

Максим Александрович Бабенко Заместитель директора отделения computer science, ассистент кафедры математической логики и теории алгоритмов механико-математического факультета МГУ им. М.В. Ломоносова. Кандидат физико-математических наук.

Алексей Яковлевич Червоненкис Профессор Лондонского Университета, ведущий сотрудник Инсти-тута проблем управления им. В. А. Трапезникова РАН. Автор фунда-ментальных работ в теории обучения машин, в частности, концепций

VC-размерности и VC-энтропии.

11

Альберт Николаевич Ширяев Член-корреспондент РАН, заведующий кафедрой теории вероятно-стей механико-математического факультета МГУ им. М. В. Ломоносова. Ему принадлежит заслуга внедрения теории мартингалов в инженерную практику анализа данных. Автор фундаментальных работ по нелинейной фильтрации и теории оптимальной остановки.

Андрей Михайлович Райгородский Доктор физико-математических наук. Профессор кафедры математи-ческой статистики и случайных процессов механико-математического факультета МГУ им. М. В. Ломоносова. Профессор и научный руково-дитель бакалавриата кафедры анализа данных факультета инноваций и высоких технологий МФТИ. Руководитель исследовательской группы «Лаборатория комбинаторных и вероятностных методов» в компании Яндекс.

Николай Константинович Верещагин Профессор кафедры математической логики и теории алгоритмов МГУ, д.ф.м.н. Специалист в области сложности вычислений и алгоритмической теории информации.

Константин Вячеславович Воронцов Старший научный сотрудник Вычислительного центра РАН. Замести-тель директора по науке ЗАО «Форексис». Заместитель заведующего кафедрой «Интеллектуальные системы» ФУПМ МФТИ. Доцент кафедры «Математические методы прогнозирования» ВМиК МГУ. Доктор физико-математических наук.

Алексей Игоревич Зобнин Доцент кафедры высшей алгебры механико-математического факультета МГУ им. М. В. Ломоносова. Разработчик компании Яндекс. Кандидат физико-математических наук.

Борис Леонидович Иомдин Научный сотрудник Института русского языка им. В. В. Виноградова РАН, старший преподаватель кафедры русского языка Института лингвистики Российского государственного гуманитарного университета. Секретарь оргкомитета Московской традиционной олимпиады по лингвистике, член жюри всех прошедших Международных лингвистических олимпиад. Кандидат филологических наук.

12

Дипломы, которые получают выпускники Школы анализа данных

Сертификат Яндекса получают все выпускники Школы

13

Диплом о дополнительном образовании по специальности «Анализ данных»получают все выпускники Школы анализа данных с высшим образованием

14

Стажировка в Яндексе

15

Яндекс – большая и быстро растущая компания, лидер россий-ского интернета.

Нам постоянно приходится решать нетривиальные алгоритми-ческие и математические задачи, разрабатывать эффективные программы, которые работают в режиме 24×7. Яндекс запускает множество сервисов, которыми пользуются миллионы поль-зователей. Мы работаем на постоянно развивающемся рынке, поэтому должны создавать новые и улучшать существующие продукты быстро и качественно, и для этого нам нужны вы. Мы все время ищем таланты.

Программа стажировок в департаменте разработки существует уже более двух лет. За это время к нам пришло более 70 чело-век. Большинство стажеров успешно справились с поставлен-ными задачами и впоследствии стали разработчиками компании «Яндекс». Стажировка – это взаимовыгодный проект: мы полу-чаем ценных сотрудников, а вы – опыт работы.

Анкета на сайте

Домашнее задание

Предварительное собеседование

Собеседование с руководителями проекта

Стажировка

Работа в Яндексе

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

16

Требования к стажерам

Стажировка в Яндексе с каждым годом становится все более популярной, поэтому мы становимся все более требовательными к кандидатам.

Мы ищем людей с хорошей математической и алгоритмической подготовкой, которые знакомы с программированием.

Если вы уверены в своих силах, смело присылайте нам заявку:

http://company.yandex.ru/job/intern/

Обязательные требования — Хорошие аналитические способности, математическая куль-тура, умение решать задачи, содержащие нетривиальные идеи. — Понимание основ computer science, таких как сложность алгоритмов, структуры данных, методы сортировки, алгоритмы на графах, алгоритмы на строках, динамическое программирова-ние. Умение применять эти знания при решении задач. — Умение программировать на C++ с применением объектно-ориентированного подхода. Опыт использования STL. Опыт написания больших программ, состоящих из нескольких файлов.

Желательно — Базовый опыт работы в Linux. Умение пользоваться утилитами командной строки. — Понимание основных принципов дизайна. Знание шаблонов проектирования, опыт их использования. — Понимание целей и принципов тестирования программ. Unit-тестирование. — Навыки профилирования и отладки программ. — Владение каким-нибудь скриптовым языком программирова-ния (Perl, Python, Bash). — Знакомство с регулярными выражениями. — Представление о базах данных, о языке SQL.

Необязательно, но полезно, и нас этим можно удивить — Работа с сетью на низком уровне. — Разработка многопоточных программ. — Умение решать исследовательские задачи. Для примера можно посмотреть задачи с конкурса «Интернет-математика». — Знакомство с машинным обучением: основные классифика-

17

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

Примеры задач и вопросов на собеседовании — Модернизируйте очередь так, чтобы помимо операций добав-ления и извлечения элементов можно было узнавать минимальный элемент. Все операции должны выполняться за O(1) в среднем. — Какой из способов хранения строк более эффективный: хеш-таблица или бор? — Подбрасывают несимметричную монетку до тех пор, пока не выпадет два орла подряд. Найдите математическое ожидание количества бросков монеты, если известно, что орел выпадает с вероятностью p. — Напишите шаблонную функцию, параметризованную целым числом, которая вычисляет числа Фибоначчи на этапе компиляции. — Почему под Windows объект синхронизации «критическая секция» работает быстрее, чем аналог, построенный на взаио-моисключениях (мьютексах)? — Почему под Linux есть функция fork (создание копии процесса), а под Windows нет?

Рекомендуем почитать по программированию

Бьёрн Страуструп Язык C++

Scott Meyers Effective C++: 55 Specific Ways to Improve Your Programs and Designs, 3rd Edition

Martin Fowler Refactoring: Improving the Design of Existing Code

Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides Design Patterns: Elements of Reusable Object-Oriented Software

Steve McConnell Code Complete

Scott Meyers More Effective C++: 35 New Ways to Improve Your Programs and Designs

Scott Meyers Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library

Andrew Hunt, David Thomas The Pragmatic Programmer: From Journeyman to Master

Рекомендуем почитать по алгоритмам

Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн Алгоритмы: построение и анализ

http://e-maxx.ru, http://algolist.ru

18

Примеры проектов наших стажеров

Фильтрация порнографии в Яндекс.Картинках

В 2007 году Яндекс.Картинки по запросу [Киски] предлагали вот такую выдачу:

Позиция Яндекса состоит в том, что, если в поисковом запросе явно не выражено намерение найти именно порнографию, то поисковая машина не должна предлагать в результатах поиска ссылки на ресурсы с порнографическим содержанием. Таким образом, задача заключалась в фильтрации порногра-фии в поиске Яндекса по картинкам. Этот проект был успешно реализован в 2008-2009 гг.

Пример работы другой поисковой системы по запросу [Киски] в 2009 году:

Выдача Яндекс.Картинок в 2009 году по запросу [Киски]:

19

Стихолюб

Идея проекта состояла в том, чтобы сделать быстрый поиск по цитатам из стихотворений. Теперь, когда вы задаёте Яндексу запрос [чем меньше женщину мы любим тем легче нравимся мы ей], вы можете увидеть над основной поисковой выдачей эпиграф с известным стихотворением:

При реализации проекта необходимо было решать несколько сложных проблем. Во-первых, поиск должен быть быстрым – результаты должны выдаваться за миллисекунды. Во-вторых, поиск должен быть приближённым – даже если пользователь пропустил или перепутал слово в запросе (например, [чем меньше женщину мы любим тем больше нравимся мы ей]), Стихолюб должен понять, что имелось в виду:

Процесс решения состоял из нескольких этапов. Сначала была собрана база стихотворений из открытых источников. Для каждого источника был написан скрипт, который конвертирует данные в общий формат. При построении индекса использова-лись суффиксные массивы. Они позволяют быстро искать слова запроса в текстах и названиях стихотворений. Чтобы учитывать опечатки и неточные цитаты, использовалось редакторское расстояние, также известное как расстояние Левенштейна. Для поиска упоминания автора в запросе, использовался алгоритм Ахо-Корасик.

20

Конкурс «Интернет-математика»

21

«Интернет-математика» — это серия конкурсов, организованных Яндексом. Конкурсы проводились уже четырежды: в 2004-2005, 2006-2007, 2009 и 2010 годах. Интернет-математика» ориенти-рована на студентов, аспирантов, программистов и молодых ученых. Победитель награждается денежным призом.

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

В 2010 году задача состояла в прогнозировании загруженно-сти автомобильных дорог на основе предыдущих наблюдений. Участники получили граф дорог мегаполиса и данные наблюде-ний – скорость транспортного потока на отрезках улиц в часы пик в течение месяца. Необходимо было предсказать загружен-ность дорог в последний день месяца.

Свои работы прислали почти 200 команд.

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

Подробное описание задач и условий конкурсов можно прочитать на сайте http://company.yandex.ru/academic/grant. C любыми вопросами и пожеланиями, касающимися конкурса, можно обра-щаться по адресу [email protected].

22

Информация о новом наборе в Школу анализа данных Яндекса появится 15 марта 2011 года на сайте

http://shad.yandex.ru

Все вопросы вы можете задать по адресу [email protected].

Чтобы участвовать в программе стажировок Яндекса, нужно заполнить анкету на сайте

http://company.yandex.ru/job/intern/

С любыми вопросами обращайтесь по адресу [email protected].

Информация о конкурсах «Интернет-математика» представлена на сайте

http://company.yandex.ru/academic/grant/

С любыми вопросами и пожеланиями по поводу конкурса можно обращаться по адресу [email protected].

Если вас заинтересовали наши программы

23