Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Группа 274, осень 2015

Материал из MachineLearning.

Перейти к: навигация, поиск


Внимание! В домашнем задании "код" изложен план вычислительного эксперимента с анализом ошибки



Курс

Построение эксплуатируемых моделей

Автор Тема научной работы Ссылка Консультант Рецензент Доклады Буквы Сумма Оценка
Бочкарев Артем Анализ данных для выявления скрытых закономерностей в петрофизической информации, полученной лабораторными исследованиями керна [1], [2] Софронов И. Л. GM L0A0I0C0
Гончаров Алексей Алгоритм построения центроидов нескольких классов сегментированных временных рядов [3], [4]

[5]

Стрижов В. В. GM L0A+I0C
Двинских Дарина Выбор и исследование свойств суперпозиции моделей при прогнозировании грузовых железнодорожных перевозок. [6],

[7]

Стрижов В. В. GM LAI0C0
Жариков Илья Устойчивость диагностических эталонов в информационном анализе электрокардиосигналов. [8]

[9] [10]

Ишкина Ш. Х. GM LAIC>
Задаянчук Андрей Определение оптимальной структуры нейронной сети в задаче многоклассовой классификации временных рядов [11]

[12]

Попова М. С. M L-A+I0C0
Златов Александр Порождение признаков и выбор метрического пространства в задачах классификации электроэнцефалограмм [13]

[14]

Стрижов В. В. 0
Исаченко Роман Метрическое обучение и отбор признаков в задачах мультиклассовой классификации временных рядов [15]

[16][17]

Стрижов В. В. GM LAI0C0
Нейчев Радослав Многоиндексная ковариационная матрица как спооб построеня многообразий в пространстве признаков. [18] Стрижов В. В. M LA0I0C
Подкопаев Александр Time Complexity of Structural Risk Minimization [19] Максимов Ю. В. GM L0A0I0C0
Решетова Дарья Метод зеркального спуска в задаче многоклассовой классификации. Максимов Ю. В. GM L0A0I0C0
Камзолов Дмитрий Fast computation Wasserstein Barycenters Гасников А. В., Максимов Ю. В. L0A0I0C0
Смирнов Евгений Воронцов К. В. G L0A0I0C0
Черных Владимир Воронцов К. В. G L0A0I0C0
Чинаев Николай Распознавание дорожных знаков [20] Матвеев И. А. G LAI0C0
Шишковец Светлана Аддитивная регуляризация наивного линейного байесовского классификатора [21] Усков М. О., Воронцов К. В. GM LAI0C0
Королев Николай Зайцев А. L0A0I0C0
Ахтямов Азат Relational matrix factorization using logistic loss for recommender systems [22] Кулунчаков А. С., Плавин А. В. LAIC>
Якубовский Илья Multi-class classification with features vectorization based on word2vec model [23] Кузнецова М. В. L0A+I0C0

Расписание

Дата Что сделано Результат для обсуждения Буква
Сентябрь 9 Первая лекция. Представление нового курса, мотивация, организация работ. Две вводные лекции для новых студентов (по возможности).
16 Выбрана задача, рецензент. Доклад на 45 секунд о своем проекте. Запись в ML. Доклад B Go
23 Собрана литература. Собрана и описана выборка, сделано описание данных в текстовом виде или в IDEF0. Доклад 2й подгруппы. Список литературы. Описание данных. Literature
30 Поставлена задача. Написаны математическая постановка в формате TeX и описание базового алгоритма. Постановка задачи и алгоритм. Algorithm
Октябрь 7 Разработана архитектура и интерфейс ядра системы. Описание архитектуры в IDEF0. Idef
21 Детализирован интерфейс, написан код. Код для реальных данных. Code
28 Написаны юнит-тесты и модуль, их запускающий. Подготовлен доклад с обоснованием интерфейсов и IDEF-описания. Юнит-тесты, доклад Unit
Ноябрь 4 Собраны и подготовлены данные, необходимые для тестирования. Доработана схема IDEF0 в части подготовки данных. Написаны и запущены системные тесты. Тесты, данные, доработанная схема IDEF0. Tests, Data
11 Код оптимизирован. Отчет профайлера до и после. Profiler
18 Сделан визуальный отчет. По результатам доработки кода написана рецензия на работу. Завершенный тех.отчет, рецензия. Report, Review
25 Сделан пользовательский интерфейс и неcколько примеров использования системы. Код на сайте, доклад F первой группы. Web
Декабрь 2 Подготовлен доклад, приведены в порядок документация и код. Обсуждение результатов, доклад F второй группы. Slides

Доклады обозначаются буквами B, M, F.

Работа и консультации

  1. Работы сдаются в течение недели.
  2. Желательна итеративная сдача работ, начинать показ лучше в выходные.
  3. Дедлайн последней версии работы: среда 6:00am (проверка занимает всю среду).
  4. В отчет будет добавлен пункт об учете времени, затраченном на выполнение проекта по неделям.
  5. Каждый этап работ + 1 балл по системе (А--, А-, А, А+, А++). Несделанная работа — A0. Мотивированный перенос работы — знак «A>».

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

16 сентября

  • Выбрать задачу и подготовить доклад о выбранной задаче на 45 секунд (первая часть группы). Содержание доклада включает:
  1. Существо и цели проекта.
  2. Важность и применимость задачи.
  3. Описание предполагаемых методов решения.
  • Создать описание проекта, заполнить разделы «Мотивация» (1.1.2) и «Литература» (1.1.3) в SystemDocs

Дополнительно для студентов Сколтеха:

  1. Получить доступ к проекту MLalgorithms на SourceForge через старосту группы, прочитать статью, загрузить MLalgorithms.
  2. Зарегистрироваться на сайте machinelearning.ru, послать логин старосте.
  3. В папке Group174 создать папку Surname2014PrijectName (См. Численные методы обучения по прецедентам (практика, В.В. Стрижов), раздел "Работа с репозиторием".)


23 сентября

  • Получить четкую постановку задачи, зафиксировать базовый алгоритм. При необходимости, расширить список литературы.
  • Собрать выборку и описать форматы и структуры данных в разделе 1.4 SystemDocs: состав выборки, основные статистики, гипотезу порождение данных. Создать описание процедуры порождения выборки в формате IDEF0.
    • Скачать и установить Ramus, разобраться с нотацией IDEF0
  • Заполнить раздел Выполнимость задачи/Feasibility. Уточнить границы применимости предлагаемых методов, прописать условия отказа от классификации.
  • Подготовить доклад о выбранной задаче на 45 секунд (вторая часть группы).


30 сентября

Создать отдельный файл LaTeX c постановкой задачи и базовым описанием алгоритма, включающими

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


7 октября

  • При необходимости, доработать постановку задачи. Сделать окончательное описание базового алгоритма.
  • Создать двухуровневую схему в IDEF0 (разделы 1.2.2 и 1.2.3), желательно, разделяя стадии обучения и использования модели.
  • Описать интерфейсы (раздел 2 SystemDocs).


14 октября Написать код.

Анализ ошибки в вычислительных экспериментах как анализ изменения функции ошибки при изменении состава выборки

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

  1. Анализ состава выборки:
    1. анализ простоты выборки по отдельным признакам (гистограммы признаков),
    2. анализ мультикоррелированности признаков, в частности анализ корреляционных или ковариационных матриц (визуализация результатов факторного анализа, метода Белсли, VIF, в частности, при изменении состава признаков),
    3. тест наличия выбросов в выборке (визуализация изменения функции ошибки при исключении выбросов),
    4. тест наличия мультимоделей (снижение ошибки при, например, использовании стратегии бустинга)
    5. оценка необходимой мощности выборки (по оси абсцисс - число объектов, по оси ординат - ошибка на обучении и ее стандартное отклонение),
    6. оценка необходимого числа признаков (по оси абсцисс - последовательно добавляемые признаки; признаки добавляются, например, по убыванию скорости изменения ошибки - т.н. ускорение и торможение ошибки)).
  2. Анализ дисперсии параметров и функции ошибки
    1. анализ стандартного отклонения функции ошибки (внутреннего критерия) и внешних критериев (в частности, визуализация ROC - обучение и контроль на каждом из разбиений),
    2. анализ изменения функции ошибки на итерациях оптимизации (ось абсцисс - итерации, ось ординат функция ошибки на обучении, контроле и ее стандартное отклонение),
    3. анализ изменения параметров и гиперпараметров модели (по оси абсцисс - итерации, по оси ординат - набор параметров, лапша и их стандартные отклонения или гиперпараметры),
    4. анализ изменения параметров и функций ошибки при из изменении структурных параметров или регуляризаторов (они по оси абсцисс, по оси ординат - не забываем о стандартном отклонении, получаемом скользящим контролем).
  3. Сложность алгоритма оптимизации функции ошибки в зависимости от объема выборки
    1. теоретическая,
    2. эмпирическая,
    3. аппроксимация эмпирической функции теоретической (по оси абсцисс - объем выборки, число признаков, число кластеров).
  4. Анализ свойств модели с помощью внешних критериев, учет возможных ограничений на параметры и структуру модели
    1. построение парето-оптимального фронта множества моделей, из которых производится выбор.

21 октября

  • Подготовить доклад, в котором обосновываются предлагаемые интерфейсы и IDEF-описания системы. Примерный план доклада.
    1. Титульный лист, см. пример и исходный код.
    2. Цель, мотивация и описание решаемой проблемы
    3. Проблема и вся работа в одном слайде
    4. Литература, какие методы развиваются
    5. Постановка задачи и, при необходимости, обозначения
    6. Теория в прямом или в теоремном (обратном) изложении
    7. Цель вычислительного эксперимента и описание данных
  • Написать юнит-тесты для каждого модуля.

4 ноября

  • Доделать IDEF0: детализировать блок обработки пользовательских данных, сделать второй уровень детализации. Второй уровень посвящен проверке адекватности пользовательских данных на:
  1. наличие вирусов в теле загружаемых данных (воздерживаться от выполнения команд, находящихся в теле файлов, например, mpeg),
  2. тип загружаемого файла,
  3. величину загружаемого файла,
  4. допустимость времени расчетов, сложности алгоритма распознавания (не более 15 сек, в противном случае обсуждается вариант фонового выполнения алгоритма или отправка результатов по почте),
  5. допустимость объема памяти (желательно не более 200 МБ),
  6. адекватность структуры входных данных (алгоритм не должен возвращать неадекватные результаты получив неадекватные данные, желательно сообщать о таком случае).
  • В папке data собрать реальные данные, предназначенные для демонстрации работы алгоритма (и, возможно, для тестирования, если объем данных невелик). При большом объеме данных в эту папку записываются файлы со ссылками в интернет, где можно скачать большую выборку. Вариант: ссылка находится в загрузчике данных. Подготовить описание данных в systemdocs.
  • Подготовить модель загрузки и проверки пользовательских данных. Модуль должен загружать один пользовательский файл.
  • Создать системные тесты: протестировать входные данные и запускаемый модуль. Поместить ссылку на него в раздел 5.2 SystemDocs

11 ноября

  • Используя профайлер, оптимизировать узкие места в коде. Проделанную работу описать в секции 5.3 systemdocs, используя отчеты профайлера и вставляя комментарии о проделанной работе.

На заметку:

  • Узкие места - те фрагменты кода, которые занимают значительное время при выполнении вычислительного эксперимента. Требуется показать, что при достигнуты улучшения кода при замене циклов на матричные операции или показать, что код достаточно хорошо оптимизирован. При этом необходимо в отчет вставить наиболее значимые строки из отчета профайлера. Это как правило, первые 10-15 строк. Копировать можно из html-отчета профайлера или воспользоваться функцией profile. В ней есть пример, как сохранить отчет профайлера в удобном формате. При оптимизации кода можно вставить в отчет те измерения кода, которые вы считаете удачными.
  • Также при оптимизации рекомендуется пользоваться функцией parfor - параллельный for. См. документацию "doc parfor" и пример, где показано как включать параллельный режим. Совет: конструкции вида x = x+1 или x(end+1) = y и подобные конструкции не распараллеливаются. Чтобы избежать таких конструкций, надо заранее создавать структуры/матрицы требуемого размера. Параллельные вычисления работают в Матлабе начиная с версии 2012.

18 ноября

  • Написать рецензию, назвать файл YourSurname2014Review. В заголовке рецензии - название работы, имя автора работы. В рецензии отражается, насколько качественно сделана система; удобно ли пользоваться документацией. План рецензии:
  1. Введение и мотивация:
    • мотивация автора глазами рецензента
    • альтернативные источники информации
    • место работы в области
    • резюме по мотивации (актуальность и новизна)
  2. Техническая часть.
    1. Постановка задачи: подтвердить или предложить альтернативу с обоснованием
    2. IDEF: выразить мнение об организации структуры интерфейса, пояснениях, именовании переменных, детализации.
    3. Составлено ли описание структуры данных, списка модулей.
    4. Код:
      • читаемость,
      • наличие комментариев и вспомогательных файлов,
      • отступы и структура,
      • код работает отдельно от автора.
    5. Профилирование и SystemDocs.
    6. Вычислительный эксперимент.
      • Иллюстрации оформлены в соответствии с JMLDA/Figs.
  3. Резюме в целом, мнение рецензента о работе.
  • Подготовить доклад на 1-1,5 минуты о рецензируемой работе. Рецензией можно поделиться с автором и консультантом.
  • Используя результаты вычислительного эксперимента и системного тестирования, создать поясняющие графики и таблицы и поместить их в раздел 5.2. При оформления отчета желательно разделять текст по содержанию на адекватно поименованные параграфы. В отчет должны входить:
    • Визуализация процесса выбора модели и оптимизиции структурных параметров
    • Визуализации зависимости функции потерь от уровня шума или других факторов
    • ...

25 ноября

Создать папку «web», содержащую следующие файлы:

  1. Файл "config.json" (именно с такими именем и расширением). Заполнить файл, следуя примеру, представленному в папке "Group074/Kuznetsov2013SSAForecasting/web/"
  2. Файл "main.m". Функция main должна быть единственный аргумент funcname и возвращать только строку html: html = main(filname). filename - текстовая строка, содержащая имя обрабатываемого файла, html - текстовая строка, содержащая "web" отчет в формате html.
  3. Файл "test.csv" (можно использовать другие расширения). Этот файл должен содержать тестовые данные (текст, временные ряды, изображение, звук, видео, etc.) для анализа.
  4. Другие файлы, необходимые для корректной работы функции "main" (например, файл, содержащий структурные параметры

алгоритма прогнозирования)

В целях тестирования, рекомендуется использовать функцию writeHTML. Она вызывает функцию "main('test.csv')" сохраняет результаты в "out.html". В этом файле должны содержаться либо "web"-отчет, либо сообщение об ошибке (см. типы ошибок, перечисленные в задании Tests, Data).

Задачи

Шаблон описания научной статьи

  • Название: Название, под которым статья подается в журнал.
  • Задача: Описание или постановка задачи. Желательна постановка в виде задачи оптимизации (в формате argmin). Также возможна ссылка на классическую постановку задачи.
  • Данные: Краткое описание данных, используемых в вычислительном эксперименте, и ссылка на выборку.
  • Литература: Список научных работ, дополненный 1) формулировкой решаемой задачи, 2) ссылками на новые результаты, 3) основной информацией об исследуемой проблеме.
  • Базовой алгоритм: Ссылка на алгоритм, с которым проводится сравнение или на ближайшую по теме работу.
  • Решение: Предлагаемое решение задачи и способы проведения исследования. Способы представления и визуализации данных и проведения анализа ошибок, анализа качества алгоритма.
  • Новизна: Обоснование новизны и значимости идей (для редколлегии и рецензентов журнала).


Список проектов

Задача 1

  • Название: Анализ данных для выявления скрытых закономерностей в петрофизической информации, полученной лабораторными исследованиями керна
  • Задача: Имеются результаты измерений параметров керна скважины в некотором интервале по глубине, содержащим породу с газовой и нефтяной частями. Измерения имеют типичную лабораторную погрешность и возможные отскоки. Часть данных продублирована измерениями другой лаборатории. Требуется отсеять недостоверные данные, оценить достоверность отобранных данных, выявить подмножества определяющих параметров, с оценкой дисперсий. Построение соответствующих методов, учитывающих физику данных и типы пород, является составной частью задачи.
  • Данные: таблица с данными измерений керна по глубине, содержащими теплофизические свойства, плотность, пористость и проницаемость породы. Возможно добавление аналогичных таблиц с другими глубинами и/или скважинами.
  • Литература:
    1. У консультанта имеются полезные учебники по основам лабораторных исследований керна и свойствам пород (djvu)
    2. Математический инструментарий ожидается от научного руководителя
    3. Литературный обзор применяемых в нефтянке методик (см. следующий пункт) предлагается выполнить студенту самостоятельно, как одну из целей проекта.
  • Базовой алгоритм: Необходимо предварительное литературное исследование имеющихся в нефтегазовой науке методик с целью выявления их возможностей, сильных и слабых сторон. Ожидается либо усовершенствование известных подходов, либо успешное применение некоторого нового алгоритма.
  • Решение: ??
  • Новизна: Информационное обеспечение разведки и разработки нефтяных и газовых месторождений содержит большие массивы данных, включающих случайную и систематическую составляющую. Для задач интерпретации и прогноза необходима, как первая цель, общая математическая методика, позволяющая выявить систематическую составляющую вместе с оценкой достоверности и статистическими параметрами вклада случайной составляющей. Следующей, и основной целью, является разработка непосредственно самих методов интерпретации отфильтрованных достоверных данных и оценки коллекторских свойств продуктивных пластов (пористости, проницаемости, начальной нефтенасыщенности).


  • Консультант: И.Л. Софронов, Московский научно-исследовательский центр Шлюмберже.

Задача 2

  • Название: Определение области обоснованности регрессионной модели
  • Задача: Для молекул строятся регрессионные модели, которые по описанию молекулы предсказывают ее свойства (свободная энергия и т.д.). Нужно построить классификатор, который будет оценивать насколько стоит доверять предсказанным свойствам для новой молекулы: ошибается ли модель более чем на 30% (относительная ошибка) в оценке свободной энергии молекулы.
  • Данные: открытые данные с PubMed и других источников, явные ссылки на источники есть у консультанта.
  • Литература:
    1. У консультанта имеются статьи, в которых рассматриваются похожие задачи в хемоинформатике.
    2. Существует хорошая книга по регрессии на основе гауссовских процессов http://www.gaussianprocess.org/gpml/


  • Базовой алгоритм: Предполагается, что для построения регрессионной модели будет использоваться алгоритм построения регрессионной модели на основе гауссовских процессов. В качестве дополнительного признака для классификации качества модели в точке можно использовать оценку неопределенности модели (апостериорную дисперсию).
  • Решение: ??
  • Новизна: Предполагается, что использование оценок неопределенности модели позволит улучшить классификацию точек на те, на которых модель достаточно точна и не очень точна. Предполагается, что студент предложит самостоятельно и другие признаки и оценит их полезность на практике.
  • Консультант: А.А. Зайцев, ИППИ РАН.

Задача 3

  • Название: Задача об изоморфизме множеств эмпирических зависимостей, порождаемых из двух обучающих выборок прецедентов
  • Задача: Предлагается исследовать ряд вопросов, связанных теоретико-множественным представлением данных. На множестве объектов определяется функция сходства - бинарная алгебраическая операция ⊗, зависящая от способа представления данных. С помощью функции близости вводится оператор \text{Clos}^V: 2^\Omega \rightarrow 2^\Omega, порождающий частичный порядок на множестве объектов: по заданной исходной выборке Ω оператор Clos порождает множество специальных ее подмножеств, каждое из которых содержит те и только те прецеденты из Ω, сходство которых совпадает с заданным V. Требуется проверить и доказать ряд утверждений о свойствах диаграмм частичного порядка.
  • Данные: Вопрос обсуждается.
  • Литература: Список вопросов и задач, предлагаемых к решению в рамках проекта pdf.
  • Базовой алгоритм: -
  • Решение: Предлагаются различные виды функций сходства и исходных данных.
  • Новизна: ??
Личные инструменты