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

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

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


Содержание

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

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

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

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

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

См. также версию этого курса 2009-2010.

Задачи

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

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

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

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

План работы

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

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

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

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

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

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

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

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

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

Доклад-1

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

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

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

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

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

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

Технический отчет

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рецензент

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

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

Исполнитель

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


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

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

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

Политика

  1. На лекции ходить необязательно, при этом повторных или персональных разъяснений и не будет.
  2. Списывание приветствуется; использование чужого кода приветствуется вдвойне. При этом следует корректно указывать оригинального автора.
  3. Изобретать велосипед грешно; усовершенствовать почетно.
  4. Результат важнее процесса.

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

Карьера:

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

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

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

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

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

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

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

Советы:

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

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

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


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

Список пока в доработке

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