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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Журнал «Машинное обучение и анализ данных»)
(План работы)
Строка 121: Строка 121:
# Корректировка согласованности статьи. Результатом должна являться рукопись, доступная для понимания.
# Корректировка согласованности статьи. Результатом должна являться рукопись, доступная для понимания.
# Выбор журнала, подача статьи в журнал.
# Выбор журнала, подача статьи в журнал.
 +
 +
== Консультации и оценивание ==
 +
* На выполнение каждого пункта плана отводится одна неделя.
 +
* Крайний срок предоставления результатов очередного этапа работы на проверку - ''Четверг, 6 утра''.
 +
* Желательно предоставление результатов заранее.
 +
* Для просроченных заданий будет учитываться время задержки.
== Журнал [[Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Машинное обучение и анализ данных|«Машинное обучение и анализ данных»]] ==
== Журнал [[Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Машинное обучение и анализ данных|«Машинное обучение и анализ данных»]] ==

Версия 13:41, 10 февраля 2014

Идут ремонтные работы! Действующая страница по этой ссылке: версия этой страницы 2010-2013. Окончание работ 20 февраля.



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


Содержание

Введение

’’Численные методы обучения по прецедентам’’ — практические занятия, посвященные исследованию свойств алгоритмов машинного обучения. Задачей третьекурсников является исследование свойств алгоритмов прогнозирования. В процессе работы студенты изучают методы и технику написания научных статей и проведения вычислительных экспериментов, а также сопутствующие этому процессу технологии — язык разметки научных текстов LaTeX, формат представления библиографической записи BibTeX, язык программирования высокого уровня m-code. Были использованы следующие инструменты: WinEdit/TeXnicCenter — набор текста, MikTex — компиляция статьи, JabRef — создание библиографический базы, SciLab/Octave/Matlab — проведение вычислительных экспериментов.

Работа включает следующие этапы: сбор и анализ литературы, математическая постановка задачи, описание метода решения задачи и исследование его свойств, проведение вычислительного эксперимента. Каждому студенту предлагается персональная тема, по которой он анализирует публикации отечественных и зарубежных исследователей за последние десять лет, ставит задачу и делает доклад для группы о полученных результатах. Далее выполняется математическое описание метода, делается промежуточный доклад о состоянии работ. Последним шагом работы становится вычислительный эксперимент, иллюстрирующий свойства метода и использующий синтетические или реальные данные. Каждая статья рецензируется одногруппниками автора, работы синхронизируются на сайте SourceForge.org, проект «MLAlgorithms».

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

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

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

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

См. также

Задачи


Цели

Абстрактная

Научиться точно, ясно, красиво излагать свои и чужие идеи.

Конкретная

Написать научную статью, которая была бы принята другими исследователями, работающими в нашей области; сделать доклад.

Результат

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

Требования к студентам

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

  • Математический анализ.

О.В. Бесов - лекции ч. 1-2.

  • Аналитическия геометрия.

Д.В. Беклемишев. Курс аналитической геометрии и линейной алгебры

  • Дискретный анализ. Алгебра логики, комбинаторика, теория графов.

Пособие Ю.А. Флерова, Ю.И. Журавлева «Дискретный анализ»

  • Дискретный анализ. Основы высшей алгебры и теории кодирования

Ю.И. Журавлев, Ю.А. Флеров. Основы высшей алгебры

  • Дискретный анализ. Теория формальных систем и алгоритмов.

Ю.И. Журавлев, Ю.А. Флеров, М.Н. Вялый. Дискретный анализ. Основы высшей алгебры

  • Дифференциальные уравнения.

В.К. Романко. Курс дифференциальных уравнений и вариационного исчисления

  • Уравнения математической физики.
  • Теория функций комплексного переменного.

Е.С. Половинкин. Курс лекций по теории функций комплексного переменного

  • Функциональный анализ.

Р.В. Константинов. Лекции по функциональному анализу

  • Теория вероятностей.

А.А. Натан, О.Г. Горбачев, С.А. Гуз. Теория вероятностей

  • Случайные процессы

А.А. Натан, О.Г. Горбачев, С.А. Гуз. Основы теории случайных процессов

  • Математическая статистика

А.А. Натан, О.Г. Горбачев, С.А. Гуз. Математическая статистика

  • Методы оптимизации.

А.Г. Сухарев, А.В. Тимохов, В.В. Федоров. Курс методов оптимизации

  • Методы оптимального управления.

Л.А. Бекларян. Методы оптимального управления

  • Колмогоровская сложность.

В.В.Вьюгин. Колмогоровская сложность и алгоритмическая случайность

  • Прикладная статистика.

К.В. Воронцов. Прикладной статистический анализ данных

План работы

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

Консультации и оценивание

  • На выполнение каждого пункта плана отводится одна неделя.
  • Крайний срок предоставления результатов очередного этапа работы на проверку - Четверг, 6 утра.
  • Желательно предоставление результатов заранее.
  • Для просроченных заданий будет учитываться время задержки.

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

Начиная с весны 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 лекция: постановка задач. Резюме. Сократить материал не получается даже для ровной группы, курс стабилизировался.

История развития курса

Ранние версии:

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