Численные методы обучения по прецедентам (практика, В.В. Стрижов)
Материал из MachineLearning.
Строка 4: | Строка 4: | ||
'''Московский физико-технический институт, Факультет управления и прикладной математики''' | '''Московский физико-технический институт, Факультет управления и прикладной математики''' | ||
- | ’’Численные методы обучения по прецедентам’’ — практические занятия, посвященные исследованию свойств алгоритмов машинного обучения. Семестровый курс содержит 36 | + | ’’Численные методы обучения по прецедентам’’ — практические занятия, посвященные исследованию свойств алгоритмов машинного обучения. Семестровый курс содержит 36 часов практических занятий. Результатом практики являются отчеты о выполнении заданий. |
Данный курс является первой частью трилогии | Данный курс является первой частью трилогии | ||
Строка 30: | Строка 30: | ||
== Содержание отчета == | == Содержание отчета == | ||
Отчет состоит из следующих материалов: | Отчет состоит из следующих материалов: | ||
- | # статья | + | # статья - технический отчет, |
# исходный код алгоритма, | # исходный код алгоритма, | ||
# рецензия на работу, | # рецензия на работу, | ||
Строка 57: | Строка 57: | ||
# Поставить текстовый редактор [http://www.winedt.com/ WinEdt] или [http://www.texniccenter.org/ TeXnic Center]. | # Поставить текстовый редактор [http://www.winedt.com/ WinEdt] или [http://www.texniccenter.org/ TeXnic Center]. | ||
# Поставить библиографическую систему [http://jabref.sourceforge.net/ JabRef]. | # Поставить библиографическую систему [http://jabref.sourceforge.net/ JabRef]. | ||
- | # Зарегистрироваться [[SourceForge|сайте-репозитории]] открытого кода [http://sourceforge.net/ SourceForge.net], послать логин координатору | + | # Зарегистрироваться [[SourceForge|сайте-репозитории]] открытого кода [http://sourceforge.net/ SourceForge.net], послать логин координатору. |
# Скачать программу-оболочку для обмена кодом [http://tortoisesvn.net/downloads.html TortoiseSVN]. | # Скачать программу-оболочку для обмена кодом [http://tortoisesvn.net/downloads.html TortoiseSVN]. | ||
# Прочитать статью про [[SourceForge]], загрузить MLAlgorithms. | # Прочитать статью про [[SourceForge]], загрузить MLAlgorithms. | ||
Строка 71: | Строка 71: | ||
# Загрузить [[шаблон статьи LaTeX (Здесь будет ссылка)]] и скомпилировать. | # Загрузить [[шаблон статьи LaTeX (Здесь будет ссылка)]] и скомпилировать. | ||
# Прочитать про [http://en.wikipedia.org/wiki/Bibtex BibTeX]. | # Прочитать про [http://en.wikipedia.org/wiki/Bibtex BibTeX]. | ||
- | + | * [Пример библиографической базы http://liinwww.ira.uka.de/csbib?strijov%20nonlinear] | |
- | + | * [Пример библиографической записи http://liinwww.ira.uka.de/cgi-bin/bibshow?e=Njtd0ECMQ03121/fyqboefe%7d81352582&r=bibtex&mode=intra] | |
+ | * [Список баз и поисковых машин http://en.wikipedia.org/wiki/List_of_academic_databases_and_search_engines] | ||
== Домашнее задание-2 (вторая часть) == | == Домашнее задание-2 (вторая часть) == | ||
Строка 82: | Строка 83: | ||
Доклад по результатам постановки задач и исследованию литературы | Доклад по результатам постановки задач и исследованию литературы | ||
на пять минут. Требуется: | на пять минут. Требуется: | ||
- | * Список литературы | + | * Список литературы, посвященной решаемой задаче |
* Черновик аннотации работы | * Черновик аннотации работы | ||
* Черновик постановки задачи | * Черновик постановки задачи | ||
Строка 90: | Строка 91: | ||
* Как, где и что искать? (на лекции) | * Как, где и что искать? (на лекции) | ||
* Ключевые слова для поиска | * Ключевые слова для поиска | ||
+ | |||
+ | === Написание отчета === | ||
+ | * Техника, основные ошибки, типографика и русский язык (на лекции) | ||
== Технический отчет == | == Технический отчет == | ||
Строка 121: | Строка 125: | ||
** Выводы, сравнение результатов, полученных альтернативным путем | ** Выводы, сравнение результатов, полученных альтернативным путем | ||
* Заключение (пишется в последнюю очередь) | * Заключение (пишется в последнюю очередь) | ||
- | ** Вставить ссылку на mlalgorithms/ваша_папка для того, чтобы другие исследователи могли проверить результаты или использовать их в дальнейшей работе | + | ** Вставить ссылку на mlalgorithms/ваша_папка для того, чтобы другие исследователи могли проверить результаты или использовать их в дальнейшей работе. |
* Литература | * Литература | ||
- | ** Литература должна у вас уже быть по результатам доклада-1 | + | ** Литература должна у вас уже быть по результатам доклада-1. |
- | + | ||
=== [[Написание отчётов и статей (рекомендации)|Технический отчет]]: еще раз, сжато === | === [[Написание отчётов и статей (рекомендации)|Технический отчет]]: еще раз, сжато === | ||
Строка 165: | Строка 168: | ||
=== Рецензирование работы === | === Рецензирование работы === | ||
- | После написания текста статьи, кода алгоритмов и кода вычислительного эксперимента, студент должен написать рецензенту письмо о готовности к получению рецензии. После этого | + | После написания текста статьи, кода алгоритмов и кода вычислительного эксперимента, студент должен написать рецензенту письмо о готовности к получению рецензии. После этого: |
====Рецензент==== | ====Рецензент==== | ||
- | * В статье на ML ставит пометки <nowiki> | + | * В статье на ML ставит пометки \footnote<nowiki>{Замечание к статье}</nowiki>. |
* В m-файлах ставит пометки <nowiki>% FIXIT Замечание к коду</nowiki>. | * В m-файлах ставит пометки <nowiki>% FIXIT Замечание к коду</nowiki>. | ||
+ | |||
+ | Рецензенту желательно сохранить список найденных ошибок, чтобы показать качество своей работы на экзамене. | ||
====Исполнитель==== | ====Исполнитель==== | ||
- | * В статье на ML вносит требуемые исправления и снимает пометки <nowiki><ref>Замечание к статье</ref></nowiki> | + | * В статье на ML вносит требуемые исправления и снимает пометки <nowiki><ref>Замечание к статье</ref></nowiki>. |
* В m-файлах вносит требуемые исправления и исправляет пометки<nowiki> % FIXIT на %FIXED</nowiki>. | * В m-файлах вносит требуемые исправления и исправляет пометки<nowiki> % FIXIT на %FIXED</nowiki>. | ||
{{tip|Рецензент отвечает за качество работы, но должен быть благожелателен к исполнителю. Критерий качества работы: рецензент с удовольствием готов использовать рецензируемую работу для решения своих задач.}} | {{tip|Рецензент отвечает за качество работы, но должен быть благожелателен к исполнителю. Критерий качества работы: рецензент с удовольствием готов использовать рецензируемую работу для решения своих задач.}} | ||
Строка 182: | Строка 187: | ||
% NOTE - комментарий для обмена мнениями, | % NOTE - комментарий для обмена мнениями, | ||
% TODO - желательно выполнить работу. | % TODO - желательно выполнить работу. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
</source> | </source> | ||
Строка 211: | Строка 195: | ||
# Результат важнее процесса. | # Результат важнее процесса. | ||
- | + | ====NB заметки о карьере на лекции==== | |
+ | |||
Карьера: | Карьера: | ||
# Академическая (исследования и преподавание) | # Академическая (исследования и преподавание) | ||
Строка 217: | Строка 202: | ||
# Финансовая (анализ и разработки) | # Финансовая (анализ и разработки) | ||
# Управление (анализ и принятие решений) | # Управление (анализ и принятие решений) | ||
- | |||
== Подготовка к зачету == | == Подготовка к зачету == | ||
Строка 232: | Строка 216: | ||
* Проанализировать свойства алгоритма | * Проанализировать свойства алгоритма | ||
- | На презентации | + | На презентации нужны: |
* Отчет | * Отчет | ||
- | * Код | + | * Код на sourceforge.net |
- | + | ||
Советы: | Советы: | ||
Строка 249: | Строка 232: | ||
# Глубина анализа свойств алгоритма | # Глубина анализа свойств алгоритма | ||
# Качество рецензирования (чужой работы) | # Качество рецензирования (чужой работы) | ||
+ | |||
== Полезные материалы == | == Полезные материалы == |
Версия 19:33, 11 февраля 2011
Чтобы получать новости об изменении этой страницы, выберите вкладку "править" и поставьте галочку "Включить эту страницу в список наблюдения". |
|
Московский физико-технический институт, Факультет управления и прикладной математики
’’Численные методы обучения по прецедентам’’ — практические занятия, посвященные исследованию свойств алгоритмов машинного обучения. Семестровый курс содержит 36 часов практических занятий. Результатом практики являются отчеты о выполнении заданий.
Данный курс является первой частью трилогии
- Численные методы обучения по прецедентам
- Выполнение исследовательских проектов
- Автоматизация и стандартизация научных исследований
и подготовкой к основному теоретическому курсу
См. также версию этого курса 2009-2010.
Задачи
Включены задачи всех трех семестров
- Группа 474, весна 2011
- Группа 574, осень 2010
- Группа 774, осень 2010
- Группа 774, весна 2010
- Группа 674, весна 2010
- Группа 674, осень 2009
- Группа 674, весна 2009
Содержание отчета
Отчет состоит из следующих материалов:
- статья - технический отчет,
- исходный код алгоритма,
- рецензия на работу,
- доклад.
План работы
- Домашнее задание-1
- Домашнее задание-2
- Изучение литературы
- Постановка задачи
- Доклад-1 (о том, что будет сделано) включает список литературы
- Написание введения и постановочной части
- Создание алгоритма
- Вычислительные эксперименты на тестовых данных
- Исследование свойств алгорита
- Тестирование алгоритма на реальных данных
- Проверка работы рецензентом
- Контрольная точка (с возможными доработками)
- Доклад-2 (экзамен)
Результат: технический отчет.
Домашнее задание-1
- Зарегистрироваться на сайте MachineLearning.ru.
- Поставить систему верстки MikTeX.
- Поставить текстовый редактор WinEdt или TeXnic Center.
- Поставить библиографическую систему JabRef.
- Зарегистрироваться сайте-репозитории открытого кода SourceForge.net, послать логин координатору.
- Скачать программу-оболочку для обмена кодом TortoiseSVN.
- Прочитать статью про SourceForge, загрузить MLAlgorithms.
- Поставить систему компьютерной алгебры Scilab или Octave или Matlab.
Посмотреть все, что поставили, понять, как этим пользоваться на уровне интерфейсов.
- Поставить Скайп, прочитать соглашение.
Домашнее задание-2
- Прочитать статью про LaTeX.
- Прочитать основные главы Львовский С.М. Набор и верстка в системе LaTeX.
- Настроить русский язык (Start->Programs->MikTeX 2.9->Maitenance->Setteings->Languages->Russian->General->Refresh/Update).
- Загрузить шаблон статьи LaTeX (Здесь будет ссылка) и скомпилировать.
- Прочитать про BibTeX.
- [Пример библиографической базы http://liinwww.ira.uka.de/csbib?strijov%20nonlinear]
- [Пример библиографической записи http://liinwww.ira.uka.de/cgi-bin/bibshow?e=Njtd0ECMQ03121/fyqboefe%7d81352582&r=bibtex&mode=intra]
- [Список баз и поисковых машин http://en.wikipedia.org/wiki/List_of_academic_databases_and_search_engines]
Домашнее задание-2 (вторая часть)
- Прочитать статью Введение в Матлаб.
- Прочитать Документирование функций Matlab, соглашение об именах переменных и создание отчетов о вычислительных экспериментах.
- Прочитать 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 промежуточными рисунками (рисунки и черновики отчетов вместе с кодом хранить нежелательно).
Работа с репозиторием
- Адрес репозитория https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms.
- Совет: не загружайте в репозиторий вспомогательный файлы Thumbs.db, .asv они будут мешать.
Вычислительный эксперимент
Вычислительный эксперимент состоит следующих шагов:
- Порождение модельных данных или загрузка реальных данных
- Предобработка данных (если требуется)
- Визуализация данных (если требуется)
- Выполнение алгоритма, получение результатов
- Визуализация результатов
- Исследование свойств алгоритма
- Выводы
Рецензирование работы
После написания текста статьи, кода алгоритмов и кода вычислительного эксперимента, студент должен написать рецензенту письмо о готовности к получению рецензии. После этого:
Рецензент
- В статье на ML ставит пометки \footnote{Замечание к статье}.
- В m-файлах ставит пометки % FIXIT Замечание к коду.
Рецензенту желательно сохранить список найденных ошибок, чтобы показать качество своей работы на экзамене.
Исполнитель
- В статье на ML вносит требуемые исправления и снимает пометки <ref>Замечание к статье</ref>.
- В m-файлах вносит требуемые исправления и исправляет пометки % FIXIT на %FIXED.
Соглашение о комментировании
Приняты следующие комментарии, добавляемые в код при его проверке:
% FIXIT - желательно изменить код (улучшить структуру кода или устранить ошибку), % FIXED - устраненные ошибки или улучшенный код, % NOTE - комментарий для обмена мнениями, % TODO - желательно выполнить работу.
Политика
- На лекции ходить необязательно, при этом повторных или персональных разъяснений и не будет.
- Списывание приветствуется; использование чужого кода приветствуется вдвойне. При этом следует корректно указывать оригинального автора.
- Изобретать велосипед грешно; усовершенствовать почетно.
- Результат важнее процесса.
NB заметки о карьере на лекции
Карьера:
- Академическая (исследования и преподавание)
- Промышленная (исследования и разработки)
- Финансовая (анализ и разработки)
- Управление (анализ и принятие решений)
Подготовка к зачету
Экзамен будет проходить в доклада. Продолжительность 5-10 минут и три дополнительные минуты на вопросы. Цель - показать, что результаты работы понятны специалисту, и могут быть им использованы в дальнейшем. Под специалистами понимаются ваши одногруппники и преподаватели кафедры.
Во время презентации требуется:
- Поставить задачу
- Осветить основные принципы работы алгоритма (кратко, без деталей)
- Описать интерфейсы модулей алгоритма
- Показать работу алгоритма на примерах
- Проанализировать свойства алгоритма
На презентации нужны:
- Отчет
- Код на sourceforge.net
Советы:
- Подготовьте доклад с секундомером в руках
- Расскажите его другу, ответьте на его вопросы
На экзамене оценивается:
- Корректность математической постановки задачи
- Полнота описания алгоритма
- Продуманность интерфейсов
- Соответствие стандартам программирования
- Ясность изложения результатов
- Глубина анализа свойств алгоритма
- Качество рецензирования (чужой работы)
Полезные материалы
Список пока в доработке
- Заготовка для статьи на machinelearning.ru
- Образец статьи о выполненном практическом задании
- Как написать статью на сайт machinelearning.ru
- Как работать с репозиторием алгоритмов
- Введение в Матлаб
- Документирование функций Matlab, соглашение об именах переменных и создание отчетов о вычислительных экспериментах
- Matlab Programming Style Guidelines
- Описание архитектуры системы, стандарт IDEF0
- Содержимое корневой папки репозитория MLAlgorithms SourceForge
- Пример отчета с загрузкой модельных данных, который разбирался на лекции
- UCI Machine Learning Repository
- Стандарт библиографического описания, см. Приложение А
- Индекс цитирования (инструменты)