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

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

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

Старая версия: 2010-2013.

Содержание

Московский физико-технический институт, Факультет управления и прикладной математики

’’Численные методы обучения по прецедентам’’ — практические занятия, посвященные исследованию свойств алгоритмов машинного обучения. Семестровый курс содержит 36 часов практических занятий. Результатом практики являются отчеты о выполнении заданий.

Данный курс является первой частью цикла

  1. Численные методы обучения по прецедентам
  2. Автоматизация и стандартизация научных исследований
  3. Выполнение исследовательских проектов
  4. Руководство исследовательскими проектами

и подготовкой к основному теоретическому курсу

Элементы цикла и полезные страницы

См. также

Задачи

Включены задачи всех трех семестров

Журнал "Машинное обучение и анализ данных"

Начиная с весны 2011 избранные работы по этому курсу публикуются в специальном журнале. Цель журнала – развитие методов проведения вычислительных экспериментов в области машинного обучения и интеллектуального анализа данных.

Содержание отчета

Отчет состоит из следующих материалов:

  1. научная статья,
  2. исходный код алгоритма,
  3. рецензия на работу,
  4. доклад.

План работы

  1. Домашнее задание-1
  2. Домашнее задание-2
  3. Изучение литературы
  4. Постановка задачи
  5. Доклад-1 (о том, что будет сделано) включает список литературы
  6. Написание введения и постановочной части
  7. Создание алгоритма
  8. Вычислительные эксперименты на тестовых данных
  9. Исследование свойств алгорита
  10. Тестирование алгоритма на реальных данных
  11. Проверка работы рецензентом
  12. Контрольная точка (с возможными доработками)
  13. Доклад-2 (экзамен)

Результат: технический отчет.

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

  1. Поставить систему компьютерной алгебры Matlab (класс есть на факультете) или реруцированный заменитель Octave.
  2. Поставить систему верстки TeX MikTeX.
  3. Поставить текстовый редактор TeXnic Center, или его вариант WinEdt.
  4. Поставить библиографическую систему JabRef.
  5. Зарегистрироваться сайте-репозитории открытого кода SourceForge.net, послать логин координатору (по умолчанию это староста группы). Вводные слайды: (см. слайды по CVS).
  6. Скачать программу-оболочку для обмена кодом TortoiseSVN.
  7. Прочитать статью про SourceForge, загрузить MLAlgorithms.

Посмотреть все, что поставили, понять, как этим пользоваться на уровне интерфейсов.

[Пока недоступно] Зарегистрироваться на сайте MachineLearning.ru.

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

  1. Прочитать статью про LaTeX.
  2. Прочитать основные главы Львовский С.М. Набор и верстка в системе LaTeX.
  3. Настроить русский язык (Start->Programs->MikTeX 2.9->Maitenance->Setteings->Languages->Russian->General->Refresh/Update).
  4. Загрузить шаблон статьи, ZIP и скомпилировать.
  5. Прочитать про BibTeX.

Домашнее задание-2 (вторая часть)

  1. Прочитать статью Введение в Матлаб.
  2. Прочитать Документирование функций Matlab, соглашение об именах переменных и создание отчетов о вычислительных экспериментах.
  3. Прочитать Matlab Programming Style Guidelines.
  4. Оформить свой график согласно рекомендациям журнала.

Домашнее задание-3 (пробное программирование)

  1. Выбрать одну из задач, написать свою фамилию напротив задачи.
  2. В папке MLAlgorithms/Example2013Code cоздать папку Surmame2013Title.
  3. Сохранить туда код и графики (если задача предполагает).
  4. Графики оформлять в соответствии с рекомендациями (достаточно файла PNG).
  5. Предлагается руководствоваться стилевыми рекомендациями (в частности, назвать первый файл main или demoTitle) -- этими и |этими.
  6. Срок выполнения работ - до следующей лекции.

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

  1. Выбрать задание, записать название, автора и рецензента (с его согласия) в таблицу ( см. группа 074, весна 2013).
  2. Найти базовую литературу, занести ее в BibTeX (вариант - в список). Посмотреть данные.
  3. Написать аннотацию задания, поместить его в шаблон статьи (взять по ссылке тут). под задачей, там где черновой список. Обсуждаем аннотацию.
  4. Подготовить вопросы предложения по задаче.

Аннотация

Не более 600 символов. Строится по плану:

  • чему посвящена работа в целом,
  • на чем сконцентрировано исследование,
  • в чем особенности исследования,
  • что новое предлагается,
  • какими примерами проиллюстрирована?

Доклад-1

Доклад по исследованию литературы и результатам постановки задач на пять минут. Требуется:

  • Список литературы, посвященной решаемой задаче
  • Аннотация работы, исправленная
  • Введение, примерно страница со ссылками на литературу
  • Желателен черновик постановки задачи и пути решения задачи


Шаблон статьи для сайта ML

'''Название проекта''' и его аннотация, не более 600 символов
== Постановка задачи ==

== Описание алгоритма ==
И другие разделы

== Смотри также == 
* Полный текст этой работы [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/electricity%20forcasting/doc/Dzhamtyrova10forecasting.pdf PDF]
* Ссылка на код [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/electricity%20forcasting/doc/Dzhamtyrova10forecasting.pdf PDF]

== Литература ==
{{Задание|Иван Иванов|В.В.Стрижов|24 декабря 2010|Ivanov|Strijov}}
[[Категория:Практика и вычислительные эксперименты]]


Поиск литературы

  • Как, где и что искать? (на лекции)
  • Ключевые слова для поиска

Написание отчета

  • Техника, основные ошибки, типографика и русский язык (на лекции)

План научной статьи

Пункт плана "Написание введения и постановочной части"

  • Название
  • Аннотация (пишется в последнюю очередь)
  • Ключевые слова (используются те, которые дали хорошие результаты поиска)
  • Введение (около страницы); ниже — по абзацам, примерный план)
    • Основное сообщение — чему посвящена работа (одна-две фразы)
    • Обзор литературы — развитие предлагаемой идеи (не более двух абзацев)
    • Современное состояние области (два-четыре абзаца)
    • Что предлагается (два абзаца)
  • Постановка задачи (примерно страница)
    • Дано (как устроена выборка)
    • Предполагается, что (статистические гипотезы, гипотезы порождения данных)
    • Ограничения и другие предположения о характере данных
    • Функционал или критерий качества искомой модели, решения (часто вытекает из гипотезы порождения данных)
    • Дополнительные требования (разбиения выборки, скользящий контроль, требования к мультиколлинеарности и подобное)
  • Решение: математическая часть (тут название первого раздела)
    • Описание алгоритма
    • Исследуемые свойства алгоритма
  • Другие разделы (если есть)
  • Решение: алгоритмическая часть (часто уходит в следующий раздел)
  • Вычислительный эксперимент
    • Описание задачи, кратко
    • Описание данных, достаточное, чтобы воспроизвести эксперимент самостоятельно
    • Описание алгоритма или ход эксперимента
    • Описание полученных результатов
    • Выводы, сравнение результатов, полученных альтернативным путем
  • Заключение (пишется в последнюю очередь)
    • Вставить ссылку на mlalgorithms/ваша_папка для того, чтобы другие исследователи могли проверить результаты или использовать их в дальнейшей работе.
  • Литература
    • Литература должна у вас уже быть по результатам доклада-1.

Технический отчет: еще раз, сжато

  • Аннотация: изложение краткого содержания и основных результатов (не более 600 знаков).
  • Введение: раскрытие темы статьи, общая постановка задачи, обзор литературы, описание подхода к решению задачи.
  • Постановка задачи: полная формальная постановка, введение обозначений, принятие необходимых гипотез, задание функционалов качества.
  • Описание алгоритма (возможно несколько разделов): математическое описание предлагаемого алгоритма, исследование его свойств, доказательство необходимых теорем.
  • Вычислительный эксперимент: описание исходных и производных данных, описание технической части алгоритма (если необходимо), описание результатов, сравнение их с результатами других алгоритмов; крайне желательны иллюстрации.
  • Заключение: сжатое изложение результатов (1/4 страницы).
  • Список литературы: желательно найти опорные статьи за последние 10 лет, максимально покрывающие тематику.

Создание алгоритма

Основные приемы программирования - на лекции.

Папки проекта

В репозитории MLAlgorithms должны лежать следующие файлы и папки:

  • папка — название проекта,
  • (необязательно) в ее корне файл plan_Ivan_Ivanov.tex с текущими замечаниями и договоренностями,
  • папка code с кодом проекта,
    • в этой папке выделить файл, который нужно запустить, чтобы посмотреть отчет, например demoProjectName.mat,
  • папка data с данными по проекту (исходными и производными в .mat),
  • папка doc с документацией и со статьей (обязательно хранить там .pdf, .tex, финальные версии рисунков .eps/.pdf; удалять все временные файлы),
  • (необязательно) папка report c промежуточными рисунками (рисунки и черновики отчетов вместе с кодом хранить нежелательно).

Работа с репозиторием

Вычислительный эксперимент

Вычислительный эксперимент состоит следующих шагов:

  1. Порождение модельных данных или загрузка реальных данных
  2. Предобработка данных (если требуется)
  3. Визуализация данных (если требуется)
  4. Выполнение алгоритма, получение результатов
  5. Визуализация результатов
  6. Исследование свойств алгоритма
  7. Выводы

Рецензирование работы

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

Рецензент

  • В статье на ML ставит пометки \footnote{Замечание к статье}.
  • В m-файлах ставит пометки % FIXIT Замечание к коду.

Рецензенту желательно сохранить список найденных ошибок, чтобы показать качество своей работы на экзамене.

Исполнитель

  • В статье на ML вносит требуемые исправления и снимает пометки \footnote{Замечание к статье}.
  • В m-файлах вносит требуемые исправления и исправляет пометки % FIXIT на %FIXED.
Рецензент отвечает за качество работы, но должен быть благожелателен к исполнителю. Критерий качества работы: рецензент с удовольствием готов использовать рецензируемую работу для решения своих задач.


Соглашение о комментировании

Приняты следующие комментарии, добавляемые в код при его проверке:

% FIXIT - желательно изменить код (улучшить структуру кода или устранить ошибку), 
% FIXED - устраненные ошибки или улучшенный код, 
% NOTE - комментарий для обмена мнениями,
% TODO - желательно выполнить работу.

Рецензирование статьей

Примеры рецензий, который обсуждались на лекции, находятся здесь.


Политика

  1. Списывание (то есть цитирование) приветствуется; использование чужого кода приветствуется вдвойне. При этом следует корректно указывать оригинального автора. Цитаты следует заключать в кавычки, например: <<Мера~--- превыше всего>>~\cite{Gasparov2004Greece}.
  2. Изобретать велосипед грешно; усовершенствовать почетно.
  3. Результат важнее процесса.

NB лекционные заметки о карьере

Карьера:

  1. Академическая (исследования и преподавание)
  2. Промышленная (исследования и разработки)
  3. Финансовая (анализ и разработки)
  4. Управление (анализ и принятие решений)

Подготовка к зачету

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

Во время презентации требуется:

  • Поставить задачу
  • Осветить основные принципы работы алгоритма (кратко, без деталей)
  • Описать интерфейсы модулей алгоритма
  • Показать работу алгоритма на примерах
  • Проанализировать свойства алгоритма

На презентации нужны:

  • Отчет
  • Код на sourceforge.net

Советы:

  1. Подготовьте доклад с секундомером в руках
  2. Расскажите его другу, ответьте на его вопросы

На экзамене оценивается:

  1. Корректность математической постановки задачи
  2. Полнота описания алгоритма
  3. Продуманность интерфейсов
  4. Соответствие стандартам программирования
  5. Ясность изложения результатов
  6. Глубина анализа свойств алгоритма
  7. Качество рецензирования (чужой работы)

Полезные материалы

Заметки

1 лекция: вводная, плюс показ инструментов. 2 лекция: введение в Матлаб (общий рассказ о роли Матлаба в программировании) / проверить как поставился софт. 3 лекция: структура научной статьи, плюс легкие задачи на программирование / проверить ДЗ2 + конструкции Матлаб и ТеХ. 4 лекция: проверка и обсуждение написанного кода (все работы) 5 или 6 лекция: постановка задач. Резюме. Сократить материал не получается даже для ровной группы, курс стабилизировался.

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