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

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

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


Внимание! Страница в процессе наполнения. Пожалуйста, запишите свою фамилию.



Содержание

Курс

(раздел будет изменен)

Построение эксплуатируемых моделей машинного обучения

Результаты

Автор Тема научной работы Ссылка Консультант Рецензент Доклады Буквы Сумма Оценка
Бочкарев Артем Анализ данных для выявления скрытых закономерностей в петрофизической информации, полученной лабораторными исследованиями керна folder, sysdoc,

problem, slides

Софронов И. Л. Жариков GM L--AICUT-DP-R-V-W
Баяндина Анастасия Построение дерева сценариев дистанционных консультаций с помощью тематической модели коллекции диалогов folder, sysdoc,

problem, slides

В.Сафронов B GA0L0I0C0
Белозерова Анастасия Выбор метода выявления причинно-следственных связей в данных folder

code sysdoc problem, slides

Рябенко Е. А. B G>A>L0I0C0
Владимирова Мария Предсказание временных рядов с помощью многозадачного обучения folder, sysdoc,

problem, slides

Стрижов В. В. B GA0L0I0C0
Володин Сергей Классификация временных рядов при помощи локальной аппроксимации folder, Sysdoc, Statement, Slides Web Стрижов В. В. B GA0L0I0C0
Городницкий Олег G>A>
Иванычев Сергей Regression and feature selection for optimising soil permeability measurement folder,

sysdoc, problem slides source ipynb

И. Л. Софронов B(F) GALICUTDPWR(S)
Ковалева Валерия Macromolecule folding cluster analysis and globule classification folder, sysdoc,

problem slides ipynb

G0A0
Малыгин Виталий Построение регрессионной модели в задаче отбора признаков folder, sysdoc, problem, idef0,

slides

Ш. Ишкина G0A0
Молибог Игорь Traffic splitting problem folder, sysdoc,

problem, idef0, ipynb, slides

Y. V. Chehovich G0A0L0I0C0
Погодин Роман Belief Propagation Approach for Ensemble Clustering folder, sysdoc

problem idef ipynb slides

Ю. Максимов G>A>L0I0C0
Рязанов Андрей Learning the Kernel Matrix with Semidefinite Programming folder, sysdoc

idef0 slides code ipynb

Ю. Максимов G>A>L0I0C0
Сафин Камиль Детектирование парафраз folder, sysdoc

problem slides code ipynb

Кузнецова P. B GA0L0I0C0
Федоряка Дмитрий Визуализация иерархических тематических моделей folder, sysdoc,

problem, slides, website, video

Воронцов К. В. B(F) GALICUTDPWRS 14
Цветкова Ольга Построение скоринговых мультимоделей folder,

ipynb, slides, sysdoc,

G0A0
Чигринский Виктор Исследование движения радужной оболочки глаза методом оптического потока folder

sysdoc slides ipynb

Матвеев И.А. G0A0

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

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

Расписание

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

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

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

Подготовительное задание

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


14 сентября

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


21 сентября

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

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


28 сентября

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

IDEF0 организационный и содержательный.


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. Цель вычислительного эксперимента и описание данных
  • Написать юнит-тесты для каждого модуля.

5 октября

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


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

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

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

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

26 октября

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

2 ноября

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

9 ноября

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

На заметку:

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

16 ноября

Внимание! Рецензия находится в конце файла системдокс в специальном разделе. Нужны только замечания по тем пунктам, которые там приведены.


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

23 ноября

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

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

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

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

Личные инструменты