С 14 по 28 августа 2016 года факультет компьютерных наук ВШЭ совместно с центром дополнительного образования “Стратегия” проводит летнюю школу по компьютерным наукам, на которой школьники 8-10 классов смогут освоить алгоритмы для решения олимпиадных задач (здесь преподавать будут GlebsHP, pshevchuk, я и Инесса Шуйкова), а также научатся применять машинное обучение.
Машинное обучение — область компьютерных наук, которая изучает методы поиска скрытых зависимостей в массивах данных. Эти методы всё активнее используются как в различных областях науки (в физике, экономике, журналистике, социальных науках и т.д.), так и во многих индустриальных областях. Обнаружение спама, распознавание людей на фотографии, персонализованные рекомендации музыки в социальных сетях или товаров в онлайн-магазинах, определение лучшего хода в игре Го, предсказание эффекта от лекарства с определённой химической формулой — это лишь немногие примеры важных и интересных задач, которые невозможно решить с помощью классических алгоритмов. Тем не менее, все эти задачи могут быть решены с помощью стандартных методов машинного обучения. Потребность в специалистах по машинному обучению растёт с каждым годом, они высоко ценятся и имеют одни из самых высоких зарплат в IT-сфере. Более того, сейчас активно набирают популярность соревнования по машинному обучению (kaggle.com, drivendata.org), которые во многом схожи с олимпиадами по программированию. Они позволяют получать очень ценный опыт в этой области, а размеры призов на них достигают миллионов рублей.
В курсе параллели ML мы расскажем участникам о базовых алгоритмах машинного обучения, научим основным инструментам, решим много прикладных задач и потренируемся участвовать в соревнованиях по машинному обучению. Преподаватели параллели — Евгений Соколов, Михаил Хальман и Тимур Гарипов (timgaripov) — имеют большой практический опыт применения методов машинного обучения, а также принимают участие в научных исследованиях по этой тематике. Евгений ведёт курсы по машинному обучению на ФКН ВШЭ и ВМК МГУ и является автором нескольких курсов на Coursera. Возможно, вы уже слушали его выступление на Всероссийской олимпиаде по информатике, где речь шла о предсказании оценок студентов по их результатам на олимпиадах с помощью методов машинного обучения.
Чтобы поступить в летнюю школу, необходимо заполнить анкету и решить задачи отборочного этапа. Сегодня мы предлагаем еще один способ попасть на параллель ML — решить задачу, посвященную подготовке данных к дальнейшему анализу. В этой задаче фамилии, имена и отчества даны в случайном порядке и нужно записать их в стандартном порядке (фамилия, имя, отчество). Чем больше правильных ответов — тем выше балл. Вход в тур. Тур пройдет с 18:00 27 мая (пятница) до 23:59:59 29 мая (воскресенье) по московскому времени.
По итогам блиц-тура как минимум один из официальных участников будет приглашен принять участие в обучении в параллели ML летней школы. Официальными участниками считаются школьники, заполнившие анкету на сайте школы (там же можно прочитать о школе подробнее). Все остальные могут решить задачу just for fun!
Стоимость участия в школе — 23 000 рублей, но победители и призеры Всероссийских олимпиад по информатике, математике и физике могут принять участие в школе бесплатно. Мы очень хотим провести школу хорошо, чтобы в следующем году спонсоры дали нам столько денег, чтобы мы могли еще и доплатить всем участникам :)
update: Теперь можно посылать решение 100 раз и оценивается лучшая посылка, а не последняя.
Автокомментарий: текст был обновлен пользователем gustokashin (предыдущая версия, новая версия, сравнить).
Мы посмотрели результаты и решили, что зачисления достойны все, кто набрал больше 80 баллов. Сегодня мы опубликуем списки зачисленных по этому туру и по другим тоже (спойлер: отбор будет продлен еще на неделю и будет вторая волна зачисления).
А пока описание лучшего решения от Жени Соколова:
В задаче даётся набор из трёх слов, и требуется определить, какое из них является фамилией, какое именем, и какое — отчеством. Первое наблюдение, которое можно сделать, состоит в том, что возможных имён гораздо меньше, чем фамилий. Более того, в интернете легко можно найти достаточно полные перечни имён. Соответственно, задачу можно решать в два этапа: Выделение имени Отделение фамилии от отчества
Как мы уже отметили, выделять имя можно по спискам. Единственное неудобство, с которым тут можно столкнуться, состоит в необходимости транслитерации имён. Понятно, что списки не могут быть исчерпывающими, и ни одно из трёх входных слов может не найтись в них. В этом случае, остаётся лишь прибегнуть к простым правилам — пытаться найти фамилию по окончаниям “ов”, “ев”, “ский”, “ин” или “ко” (и их женским аналогам), а отчество — по окончаниям “вич”, “вна” и “чна”. Эти перечисления очень неполные, но как показал опыт победителя контеста, их достаточно для достижения высокого качества. Рассмотрим теперь гораздо более частый случай, в котором имя всё-таки удалось найти. Тогда нужно понять, какое из двух оставшихся слов является отчеством. Для определения отчества можно искать слова с окончаниями “ич”, “вна” и “чна”, но такой подход не всегда работает, поскольку фамилия также может заканчиваться на “ич” — например, Прокопович или Абрамович. Чтобы учесть этот случай, хорошо подходит следующая эвристика: отбросить от слова последние 4 буквы и проверить, не является ли этот остаток именем. Если ответ положительный, то данное слово следует считать отчеством. Конечно, могут быть совсем сложные ФИО вроде “Иванович Иван Петрович”, но в таких случаях даже человек не сможет определить, какое именно слово является фамилией.