Численные методы обучения по прецедентам (практика, В.В. Стрижов)
Материал из MachineLearning.
Строка 5: | Строка 5: | ||
{{TOCright}} | {{TOCright}} | ||
- | ''' | + | '''Введение''' |
- | ’’Численные методы обучения по | + | ’’Численные методы обучения по прецедентам’’ — практические занятия, посвященные исследованию свойств алгоритмов машинного обучения. Задачей третьекурсников является исследование свойств алгоритмов прогнозирования. В процессе работы студенты изучают методы и технику написания научных статей и проведения вычислительных экспериментов, а также сопутствующие этому процессу технологии — язык разметки научных текстов LaTeX, формат представления библиографической записи BibTeX, язык программирования высокого уровня m-code. Были использованы следующие инструменты: WinEdit/TeXnicCenter — набор текста, MikTex — компиляция статьи, JabRef — создание библиографический базы, SciLab/Octave/Matlab — проведение вычислительных экспериментов. |
+ | |||
+ | Работа включает следующие этапы: сбор и анализ литературы, математическая постановка задачи, описание метода решения задачи и исследование его свойств, | ||
+ | проведение вычислительного эксперимента. Каждому студенту предлагается персональная тема, по которой он анализирует публикации отечественных и зарубежных исследователей за последние десять лет, ставит задачу и делает доклад для группы о полученных результатах. Далее выполняется математическое описание метода, делается промежуточный доклад о состоянии работ. Последним шагом работы становится вычислительный эксперимент, иллюстрирующий свойства метода и использующий синтетические или реальные данные. Каждая статья рецензируется одногруппниками автора, работы синхронизируются на сайте SourceForge.org, проект «MLAlgorithms». | ||
Данный курс является первой частью цикла | Данный курс является первой частью цикла | ||
Строка 14: | Строка 17: | ||
# [[Отчет о выполнении исследовательского проекта (практика, В.В. Стрижов)|Выполнение исследовательских проектов]] | # [[Отчет о выполнении исследовательского проекта (практика, В.В. Стрижов)|Выполнение исследовательских проектов]] | ||
# [[Руководство исследовательскими проектами (практика, В.В. Стрижов)|Руководство исследовательскими проектами]] | # [[Руководство исследовательскими проектами (практика, В.В. Стрижов)|Руководство исследовательскими проектами]] | ||
- | и подготовкой к основному теоретическому курсу | + | и подготовкой к основному теоретическому курсу |
* [[Прикладной регрессионный анализ (курс лекций, B.В. Стрижов)]] | * [[Прикладной регрессионный анализ (курс лекций, B.В. Стрижов)]] | ||
Строка 23: | Строка 26: | ||
* [[Временной ряд (библиотека примеров)]] | * [[Временной ряд (библиотека примеров)]] | ||
- | См. также | + | См. также |
- | *[[Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Версия 2010|версию этого курса | + | * [[Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Версия 2010|версию этого курса 2009—2010]], |
- | *[[Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Версия 2013|версию этого курса | + | * [[Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Версия 2013|версию этого курса 2010—2013]]. |
== Задачи == | == Задачи == | ||
Строка 56: | Строка 59: | ||
* См. [http://strijov.ru/uploads/ThePractice2010MIPT.pdf Работы групп 774, 674 за 2009 и 2010 годы в одном файле PDF, 18MB] | * См. [http://strijov.ru/uploads/ThePractice2010MIPT.pdf Работы групп 774, 674 за 2009 и 2010 годы в одном файле PDF, 18MB] | ||
- | == Журнал [[Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Машинное обучение и анализ данных| | + | == Журнал [[Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Машинное обучение и анализ данных|«Машинное обучение и анализ данных»]] == |
- | [http://jmlda.org/?page_id=35 Начиная с весны 2011 избранные работы по этому курсу публикуются в специальном журнале]. Цель | + | [http://jmlda.org/?page_id=35 Начиная с весны 2011 избранные работы по этому курсу публикуются в специальном журнале]. Цель журнала — развитие методов проведения вычислительных экспериментов в области машинного обучения и интеллектуального анализа данных. |
- | * [http://strijov.ru/uploads/ThePractice2010MIPT.pdf Пилотный выпуск, 2010] | + | * [http://strijov.ru/uploads/ThePractice2010MIPT.pdf Пилотный выпуск, 2010] |
* [[Media:JMLDA2011no1.pdf|Номер 1, Май 2011]] | * [[Media:JMLDA2011no1.pdf|Номер 1, Май 2011]] | ||
* [[Media:JMLDA2011no2.pdf|Номер 2, Декабрь 2011]] | * [[Media:JMLDA2011no2.pdf|Номер 2, Декабрь 2011]] | ||
Строка 68: | Строка 71: | ||
# научная статья, | # научная статья, | ||
# исходный код алгоритма, | # исходный код алгоритма, | ||
- | # рецензия на работу, | + | # рецензия на работу, |
# доклад. | # доклад. | ||
Строка 88: | Строка 91: | ||
Результат: технический отчет. | Результат: технический отчет. | ||
- | == Домашнее задание-1== | + | == Домашнее задание-1 == |
- | # Поставить систему компьютерной алгебры [[Matlab]] (класс есть на факультете) или реруцированный заменитель | + | # Поставить систему компьютерной алгебры [[Matlab]] (класс есть на факультете) или реруцированный заменитель [http://www.gnu.org/software/octave/ Octave]. |
# Поставить систему верстки TeX [http://miktex.org MikTeX]. | # Поставить систему верстки TeX [http://miktex.org MikTeX]. | ||
# Поставить текстовый редактор [http://www.texniccenter.org/ TeXnic Center], или его вариант [http://www.winedt.com/ WinEdt]. | # Поставить текстовый редактор [http://www.texniccenter.org/ TeXnic Center], или его вариант [http://www.winedt.com/ WinEdt]. | ||
Строка 104: | Строка 107: | ||
== Домашнее задание-2 == | == Домашнее задание-2 == | ||
# Прочитать статью про [http://ru.wikipedia.org/wiki/LaTeX LaTeX]. | # Прочитать статью про [http://ru.wikipedia.org/wiki/LaTeX LaTeX]. | ||
- | # Прочитать основные главы ''Львовский С.М.'' [http://www.mccme.ru/free-books/llang/newllang.pdf Набор и верстка в системе LaTeX]. | + | # Прочитать основные главы ''Львовский С. М.'' [http://www.mccme.ru/free-books/llang/newllang.pdf Набор и верстка в системе LaTeX]. |
# Настроить русский язык (Start->Programs->MikTeX 2.9->Maitenance->Setteings->Languages->Russian->General->Refresh/Update). | # Настроить русский язык (Start->Programs->MikTeX 2.9->Maitenance->Setteings->Languages->Russian->General->Refresh/Update). | ||
# Загрузить [[Media:PaperExample2011.zip|шаблон статьи, ZIP]] и скомпилировать. | # Загрузить [[Media:PaperExample2011.zip|шаблон статьи, ZIP]] и скомпилировать. | ||
# Прочитать про [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/csbib?strijov%20nonlinear Пример библиографической базы] |
* [http://liinwww.ira.uka.de/cgi-bin/bibshow?e=Njtd0ECMQ03121/fyqboefe%7d81352582&r=bibtex&mode=intra Пример библиографической записи] | * [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 Список баз и поисковых машин ] | * [http://en.wikipedia.org/wiki/List_of_academic_databases_and_search_engines Список баз и поисковых машин ] | ||
Строка 123: | Строка 126: | ||
# Сохранить туда код и графики (если задача предполагает). | # Сохранить туда код и графики (если задача предполагает). | ||
# Графики оформлять в соответствии с [[JMLDA/Fig|рекомендациями]] (достаточно файла PNG). | # Графики оформлять в соответствии с [[JMLDA/Fig|рекомендациями]] (достаточно файла PNG). | ||
- | # Предлагается руководствоваться стилевыми рекомендациями (в частности, назвать первый файл main или demoTitle) | + | # Предлагается руководствоваться стилевыми рекомендациями (в частности, назвать первый файл main или demoTitle) — [[Документирование функций Matlab|этими]] и [[Media: MatlabStyle1p5.pdf||этими]]. |
- | # Срок выполнения | + | # Срок выполнения работ — до следующей лекции. |
== Домашнее задание-4 == | == Домашнее задание-4 == | ||
# Выбрать задание, записать название, <s>автора и рецензента (с его согласия)</s> в таблицу ([[Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Группа 074, весна 2013 | см. группа 074, весна 2013]]). | # Выбрать задание, записать название, <s>автора и рецензента (с его согласия)</s> в таблицу ([[Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Группа 074, весна 2013 | см. группа 074, весна 2013]]). | ||
- | # Найти базовую литературу, занести ее в BibTeX ( | + | # Найти базовую литературу, занести ее в BibTeX (вариант — в список). Посмотреть данные. |
# Написать аннотацию задания, поместить его в шаблон статьи (взять по ссылке тут).<s> под задачей, там где черновой список.</s> Обсуждаем аннотацию. | # Написать аннотацию задания, поместить его в шаблон статьи (взять по ссылке тут).<s> под задачей, там где черновой список.</s> Обсуждаем аннотацию. | ||
# Подготовить вопросы предложения по задаче. | # Подготовить вопросы предложения по задаче. | ||
=== Аннотация === | === Аннотация === | ||
- | Не более 600 символов. Строится по плану: | + | Не более 600 символов. Строится по плану: |
* чему посвящена работа в целом, | * чему посвящена работа в целом, | ||
- | * на чем сконцентрировано исследование, | + | * на чем сконцентрировано исследование, |
* в чем особенности исследования, | * в чем особенности исследования, | ||
* что новое предлагается, | * что новое предлагается, | ||
Строка 141: | Строка 144: | ||
== Доклад-1 == | == Доклад-1 == | ||
- | Доклад по | + | Доклад по исследованию литературы и результатам постановки задач на пять минут. Требуется: |
* Список литературы, посвященной решаемой задаче | * Список литературы, посвященной решаемой задаче | ||
* Аннотация работы, исправленная | * Аннотация работы, исправленная | ||
Строка 149: | Строка 152: | ||
- | === Шаблон статьи для сайта ML === | + | === Шаблон статьи для сайта ML === |
<pre>'''Название проекта''' и его аннотация, не более 600 символов | <pre>'''Название проекта''' и его аннотация, не более 600 символов | ||
== Постановка задачи == | == Постановка задачи == | ||
Строка 175: | Строка 178: | ||
== План научной статьи == | == План научной статьи == | ||
- | '''Пункт плана | + | '''Пункт плана «Написание введения и постановочной части»''' |
* Название | * Название | ||
* Аннотация (пишется в последнюю очередь) | * Аннотация (пишется в последнюю очередь) | ||
* Ключевые слова (используются те, которые дали хорошие результаты поиска) | * Ключевые слова (используются те, которые дали хорошие результаты поиска) | ||
- | * Введение (около страницы); | + | * Введение (около страницы); ниже — по абзацам, примерный план) |
- | ** Основное | + | ** Основное сообщение — чему посвящена работа (одна-две фразы) |
- | ** Обзор | + | ** Обзор литературы — развитие предлагаемой идеи (не более двух абзацев) |
** Современное состояние области (два-четыре абзаца) | ** Современное состояние области (два-четыре абзаца) | ||
** Что предлагается (два абзаца) | ** Что предлагается (два абзаца) | ||
Строка 196: | Строка 199: | ||
* Другие разделы (если есть) | * Другие разделы (если есть) | ||
* Решение: алгоритмическая часть (часто уходит в следующий раздел) | * Решение: алгоритмическая часть (часто уходит в следующий раздел) | ||
- | * Вычислительный эксперимент | + | * Вычислительный эксперимент |
** Описание задачи, кратко | ** Описание задачи, кратко | ||
** Описание данных, достаточное, чтобы воспроизвести эксперимент самостоятельно | ** Описание данных, достаточное, чтобы воспроизвести эксперимент самостоятельно | ||
Строка 204: | Строка 207: | ||
* Заключение (пишется в последнюю очередь) | * Заключение (пишется в последнюю очередь) | ||
** Вставить ссылку на mlalgorithms/ваша_папка для того, чтобы другие исследователи могли проверить результаты или использовать их в дальнейшей работе. | ** Вставить ссылку на mlalgorithms/ваша_папка для того, чтобы другие исследователи могли проверить результаты или использовать их в дальнейшей работе. | ||
- | * Литература | + | * Литература |
** Литература должна у вас уже быть по результатам доклада-1. | ** Литература должна у вас уже быть по результатам доклада-1. | ||
Строка 217: | Строка 220: | ||
== Создание алгоритма == | == Создание алгоритма == | ||
- | Основные приемы | + | Основные приемы программирования — на лекции. |
- | === Папки проекта === | + | === Папки проекта === |
В репозитории MLAlgorithms должны лежать следующие файлы и папки: | В репозитории MLAlgorithms должны лежать следующие файлы и папки: | ||
- | * | + | * папка — название проекта, |
* (необязательно) в ее корне файл plan_Ivan_Ivanov.tex с текущими замечаниями и договоренностями, | * (необязательно) в ее корне файл plan_Ivan_Ivanov.tex с текущими замечаниями и договоренностями, | ||
* папка '''code''' с кодом проекта, | * папка '''code''' с кодом проекта, | ||
Строка 229: | Строка 232: | ||
* (необязательно) папка '''report''' c промежуточными рисунками (рисунки и черновики отчетов вместе с кодом хранить нежелательно). | * (необязательно) папка '''report''' c промежуточными рисунками (рисунки и черновики отчетов вместе с кодом хранить нежелательно). | ||
- | === Работа с репозиторием === | + | === Работа с репозиторием === |
* Адрес репозитория [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms]. | * Адрес репозитория [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms]. | ||
* Совет: не загружайте в репозиторий вспомогательный файлы '''Thumbs.db''', '''.asv''' они будут мешать. | * Совет: не загружайте в репозиторий вспомогательный файлы '''Thumbs.db''', '''.asv''' они будут мешать. | ||
Строка 238: | Строка 241: | ||
# Порождение модельных данных или загрузка реальных данных | # Порождение модельных данных или загрузка реальных данных | ||
# Предобработка данных (если требуется) | # Предобработка данных (если требуется) | ||
- | # Визуализация данных | + | # Визуализация данных (если требуется) |
# Выполнение алгоритма, получение результатов | # Выполнение алгоритма, получение результатов | ||
# Визуализация результатов | # Визуализация результатов | ||
Строка 245: | Строка 248: | ||
=== Рецензирование работы === | === Рецензирование работы === | ||
- | После написания текста статьи, кода алгоритмов и кода вычислительного эксперимента, студент должен написать рецензенту письмо о готовности к получению рецензии. После этого: | + | После написания текста статьи, кода алгоритмов и кода вычислительного эксперимента, студент должен написать рецензенту письмо о готовности к получению рецензии. После этого: |
- | ====Рецензент==== | + | |
- | * В статье на ML ставит пометки \footnote<nowiki>{Замечание к статье}</nowiki>. | + | ==== Рецензент ==== |
+ | * В статье на ML ставит пометки \footnote<nowiki>{Замечание к статье}</nowiki>. | ||
* В m-файлах ставит пометки <nowiki>% FIXIT Замечание к коду</nowiki>. | * В m-файлах ставит пометки <nowiki>% FIXIT Замечание к коду</nowiki>. | ||
Рецензенту желательно сохранить список найденных ошибок, чтобы показать качество своей работы на экзамене. | Рецензенту желательно сохранить список найденных ошибок, чтобы показать качество своей работы на экзамене. | ||
- | ====Исполнитель==== | + | ==== Исполнитель ==== |
- | * В статье на ML вносит требуемые исправления и снимает пометки \footnote{Замечание к статье}. | + | * В статье на ML вносит требуемые исправления и снимает пометки \footnote{Замечание к статье}. |
* В m-файлах вносит требуемые исправления и исправляет пометки<nowiki> % FIXIT на %FIXED</nowiki>. | * В m-файлах вносит требуемые исправления и исправляет пометки<nowiki> % FIXIT на %FIXED</nowiki>. | ||
{{tip|Рецензент отвечает за качество работы, но должен быть благожелателен к исполнителю. Критерий качества работы: рецензент с удовольствием готов использовать рецензируемую работу для решения своих задач.}} | {{tip|Рецензент отвечает за качество работы, но должен быть благожелателен к исполнителю. Критерий качества работы: рецензент с удовольствием готов использовать рецензируемую работу для решения своих задач.}} | ||
Строка 271: | Строка 275: | ||
== Политика == | == Политика == | ||
- | # Списывание (то есть цитирование) приветствуется; использование чужого кода приветствуется вдвойне. При этом следует корректно указывать оригинального автора. Цитаты следует заключать в кавычки, например: '' | + | # Списывание (то есть цитирование) приветствуется; использование чужого кода приветствуется вдвойне. При этом следует корректно указывать оригинального автора. Цитаты следует заключать в кавычки, например: ''«Мера~--- превыше всего»~\cite{Gasparov2004Greece}''. |
- | # Изобретать велосипед грешно; усовершенствовать почетно. | + | # Изобретать велосипед грешно; усовершенствовать почетно. |
# Результат важнее процесса. | # Результат важнее процесса. | ||
- | ====NB лекционные заметки о карьере ==== | + | ==== NB лекционные заметки о карьере ==== |
Карьера: | Карьера: | ||
Строка 285: | Строка 289: | ||
== Подготовка к зачету == | == Подготовка к зачету == | ||
- | Экзамен будет проходить в виде доклада. Продолжительность '''5-10 минут''' и три дополнительные минуты на вопросы. | + | Экзамен будет проходить в виде доклада. Продолжительность '''5-10 минут''' и три дополнительные минуты на вопросы. |
- | + | Цель — показать, что результаты работы понятны специалисту, и могут быть им использованы в дальнейшем. | |
Под специалистами понимаются ваши одногруппники и преподаватели кафедры. | Под специалистами понимаются ваши одногруппники и преподаватели кафедры. | ||
Во время презентации требуется: | Во время презентации требуется: | ||
- | * Поставить задачу | + | * Поставить задачу |
* Осветить основные принципы работы алгоритма (кратко, без деталей) | * Осветить основные принципы работы алгоритма (кратко, без деталей) | ||
* Описать интерфейсы модулей алгоритма | * Описать интерфейсы модулей алгоритма | ||
Строка 297: | Строка 301: | ||
На презентации нужны: | На презентации нужны: | ||
- | * Отчет | + | * Отчет |
* Код на sourceforge.net | * Код на sourceforge.net | ||
- | Советы: | + | Советы: |
# Подготовьте доклад с секундомером в руках | # Подготовьте доклад с секундомером в руках | ||
# Расскажите его другу, ответьте на его вопросы | # Расскажите его другу, ответьте на его вопросы | ||
Строка 315: | Строка 319: | ||
== Полезные материалы == | == Полезные материалы == | ||
* [[Media:PracticeStrijovTemplate1.rtf| Заготовка для статьи на machinelearning.ru]] | * [[Media:PracticeStrijovTemplate1.rtf| Заготовка для статьи на machinelearning.ru]] | ||
- | *[[Логистическая регрессия (пример)|Образец статьи о выполненном практическом задании]] | + | * [[Логистическая регрессия (пример)|Образец статьи о выполненном практическом задании]] |
- | *[[machinelearning:Инструктаж| Как написать статью на сайт machinelearning.ru]] | + | * [[machinelearning:Инструктаж| Как написать статью на сайт machinelearning.ru]] |
- | *[[SourceForge|Как работать с репозиторием алгоритмов]] | + | * [[SourceForge|Как работать с репозиторием алгоритмов]] |
- | *[[Matlab|Введение в Матлаб]] | + | * [[Matlab|Введение в Матлаб]] |
- | *[[Документирование функций Matlab|Документирование функций Matlab, соглашение об именах переменных и создание отчетов о вычислительных экспериментах]] | + | * [[Документирование функций Matlab|Документирование функций Matlab, соглашение об именах переменных и создание отчетов о вычислительных экспериментах]] |
- | *[[Media: MatlabStyle1p5.pdf|Matlab Programming Style Guidelines]] | + | * [[Media: MatlabStyle1p5.pdf|Matlab Programming Style Guidelines]] |
- | *[[Media: P_50-IDEF0.pdf| Описание архитектуры системы, стандарт IDEF0]] | + | * [[Media: P_50-IDEF0.pdf| Описание архитектуры системы, стандарт IDEF0]] |
- | *[https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/ Содержимое корневой папки репозитория MLAlgorithms SourceForge] | + | * [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/ Содержимое корневой папки репозитория MLAlgorithms SourceForge] |
- | *[http://strijov.com/sources/demoDataGen.php Пример отчета с загрузкой модельных данных, который разбирался на лекции] | + | * [http://strijov.com/sources/demoDataGen.php Пример отчета с загрузкой модельных данных, который разбирался на лекции] |
- | *[http://archive.ics.uci.edu/ml/ UCI Machine Learning Repository] | + | * [http://archive.ics.uci.edu/ml/ UCI Machine Learning Repository] |
- | *[http://gsnti-norms.ru/norms/common/doc.asp?0&/norms/stands/7_80.htm Стандарт библиографического описания], см. Приложение А | + | * [http://gsnti-norms.ru/norms/common/doc.asp?0&/norms/stands/7_80.htm Стандарт библиографического описания], см. Приложение А |
- | *[[Индекс цитирования (инструменты)]] | + | * [[Индекс цитирования (инструменты)]] |
- | *[[CRISP-DM|CRoss Industry Standard Process for Data Mining]] | + | * [[CRISP-DM|CRoss Industry Standard Process for Data Mining]] |
- | *[http://www.ml-class.org/course/video/preview_list Машинное обучение и Octave (Stanford Uni.)] | + | * [http://www.ml-class.org/course/video/preview_list Машинное обучение и Octave (Stanford Uni.)] |
== Заметки == | == Заметки == | ||
Строка 336: | Строка 340: | ||
4 лекция: проверка и обсуждение написанного кода (все работы) | 4 лекция: проверка и обсуждение написанного кода (все работы) | ||
5 или 6 лекция: постановка задач. | 5 или 6 лекция: постановка задач. | ||
- | Резюме. Сократить материал не получается даже для ровной группы, курс стабилизировался. | + | Резюме. Сократить материал не получается даже для ровной группы, курс стабилизировался. |
== История развития курса == | == История развития курса == | ||
Ранние версии: | Ранние версии: | ||
- | *[[Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Версия 2010|версия этой страницы | + | * [[Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Версия 2010|версия этой страницы 2009—2010]], |
- | *[[Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Версия 2013|версия этой страницы | + | * [[Численные методы обучения по прецедентам (практика, В.В. Стрижов)/Версия 2013|версия этой страницы 2010—2013]]. |
[[Категория:Учебные курсы]] | [[Категория:Учебные курсы]] |
Версия 11:03, 10 февраля 2014
Идут ремонтные работы! Действующая страница по этой ссылке: версия этой страницы 2010-2013. Окончание работ 20 февраля. |
Чтобы получать новости об изменении этой страницы, выберите вкладку "править" и поставьте галочку "Включить эту страницу в список наблюдения". |
Введение
’’Численные методы обучения по прецедентам’’ — практические занятия, посвященные исследованию свойств алгоритмов машинного обучения. Задачей третьекурсников является исследование свойств алгоритмов прогнозирования. В процессе работы студенты изучают методы и технику написания научных статей и проведения вычислительных экспериментов, а также сопутствующие этому процессу технологии — язык разметки научных текстов LaTeX, формат представления библиографической записи BibTeX, язык программирования высокого уровня m-code. Были использованы следующие инструменты: WinEdit/TeXnicCenter — набор текста, MikTex — компиляция статьи, JabRef — создание библиографический базы, SciLab/Octave/Matlab — проведение вычислительных экспериментов.
Работа включает следующие этапы: сбор и анализ литературы, математическая постановка задачи, описание метода решения задачи и исследование его свойств, проведение вычислительного эксперимента. Каждому студенту предлагается персональная тема, по которой он анализирует публикации отечественных и зарубежных исследователей за последние десять лет, ставит задачу и делает доклад для группы о полученных результатах. Далее выполняется математическое описание метода, делается промежуточный доклад о состоянии работ. Последним шагом работы становится вычислительный эксперимент, иллюстрирующий свойства метода и использующий синтетические или реальные данные. Каждая статья рецензируется одногруппниками автора, работы синхронизируются на сайте SourceForge.org, проект «MLAlgorithms».
Данный курс является первой частью цикла
- Численные методы обучения по прецедентам
- Автоматизация и стандартизация научных исследований
- Выполнение исследовательских проектов
- Руководство исследовательскими проектами
и подготовкой к основному теоретическому курсу
Элементы цикла и полезные страницы
- Подготовка статьи к публикации на английском языке
- Коллекция реальных данных
- Учебные примеры
- Временной ряд (библиотека примеров)
См. также
Задачи
- Группа 174, весна 2014
- Группа 074, весна 2014
- Группа 074, осень 2013
- Группа 874, осень 2013
- Группа 074, весна 2013
- Группа 974, весна 2013
- Группа 974, осень 2012
- Группа 774, осень 2012
- Группа 974, весна 2012
- Группа 874, весна 2012
- Группа 674, осень 2011
- Группа 874, осень 2011
- Группа 874, весна 2011
- Группа 774, весна 2011
- Группа 574, осень 2010
- Группа 774, осень 2010
- Группа 774, весна 2010
- Группа 674, весна 2010
- Группа 674, осень 2009
- Группа 674, весна 2009
- Группа 474, осень 2009
- Группа 374, осень 2008
- Группа 274, осень 2007
- Группа 175, осень 2006
Журнал «Машинное обучение и анализ данных»
Начиная с весны 2011 избранные работы по этому курсу публикуются в специальном журнале. Цель журнала — развитие методов проведения вычислительных экспериментов в области машинного обучения и интеллектуального анализа данных.
- Пилотный выпуск, 2010
- Номер 1, Май 2011
- Номер 2, Декабрь 2011
- Номер 3, Май 2012
- Номер 4, Декабрь 2012
Содержание отчета
Отчет состоит из следующих материалов:
- научная статья,
- исходный код алгоритма,
- рецензия на работу,
- доклад.
План работы
- Домашнее задание-1
- Домашнее задание-2
- Изучение литературы
- Постановка задачи
- Доклад-1 (о том, что будет сделано) включает список литературы
- Написание введения и постановочной части
- Создание алгоритма
- Вычислительные эксперименты на тестовых данных
- Исследование свойств алгорита
- Тестирование алгоритма на реальных данных
- Проверка работы рецензентом
- Контрольная точка (с возможными доработками)
- Доклад-2 (экзамен)
Результат: технический отчет.
Домашнее задание-1
- Поставить систему компьютерной алгебры Matlab (класс есть на факультете) или реруцированный заменитель Octave.
- Поставить систему верстки TeX MikTeX.
- Поставить текстовый редактор TeXnic Center, или его вариант WinEdt.
- Поставить библиографическую систему JabRef.
- Зарегистрироваться сайте-репозитории открытого кода SourceForge.net, послать логин координатору (по умолчанию это староста группы). Вводные слайды: (см. слайды по CVS).
- Скачать программу-оболочку для обмена кодом TortoiseSVN.
- Прочитать статью про SourceForge, загрузить MLAlgorithms.
Посмотреть все, что поставили, понять, как этим пользоваться на уровне интерфейсов.
- Поставить Скайп, прочитать соглашение.
[Пока недоступно] Зарегистрироваться на сайте MachineLearning.ru.
Домашнее задание-2
- Прочитать статью про LaTeX.
- Прочитать основные главы Львовский С. М. Набор и верстка в системе LaTeX.
- Настроить русский язык (Start->Programs->MikTeX 2.9->Maitenance->Setteings->Languages->Russian->General->Refresh/Update).
- Загрузить шаблон статьи, ZIP и скомпилировать.
- Прочитать про BibTeX.
Домашнее задание-2 (вторая часть)
- Прочитать статью Введение в Матлаб.
- Прочитать Документирование функций Matlab, соглашение об именах переменных и создание отчетов о вычислительных экспериментах.
- Прочитать Matlab Programming Style Guidelines.
- Оформить свой график согласно рекомендациям журнала.
Домашнее задание-3 (пробное программирование)
- Выбрать одну из задач, написать свою фамилию напротив задачи.
- В папке MLAlgorithms/Example2013Code cоздать папку Surmame2013Title.
- Сохранить туда код и графики (если задача предполагает).
- Графики оформлять в соответствии с рекомендациями (достаточно файла PNG).
- Предлагается руководствоваться стилевыми рекомендациями (в частности, назвать первый файл main или demoTitle) — этими и |этими.
- Срок выполнения работ — до следующей лекции.
Домашнее задание-4
- Выбрать задание, записать название,
автора и рецензента (с его согласия)в таблицу ( см. группа 074, весна 2013). - Найти базовую литературу, занести ее в BibTeX (вариант — в список). Посмотреть данные.
- Написать аннотацию задания, поместить его в шаблон статьи (взять по ссылке тут).
под задачей, там где черновой список.Обсуждаем аннотацию. - Подготовить вопросы предложения по задаче.
Аннотация
Не более 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 промежуточными рисунками (рисунки и черновики отчетов вместе с кодом хранить нежелательно).
Работа с репозиторием
- Адрес репозитория https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms.
- Совет: не загружайте в репозиторий вспомогательный файлы Thumbs.db, .asv они будут мешать.
Вычислительный эксперимент
Вычислительный эксперимент состоит следующих шагов:
- Порождение модельных данных или загрузка реальных данных
- Предобработка данных (если требуется)
- Визуализация данных (если требуется)
- Выполнение алгоритма, получение результатов
- Визуализация результатов
- Исследование свойств алгоритма
- Выводы
Рецензирование работы
После написания текста статьи, кода алгоритмов и кода вычислительного эксперимента, студент должен написать рецензенту письмо о готовности к получению рецензии. После этого:
Рецензент
- В статье на ML ставит пометки \footnote{Замечание к статье}.
- В m-файлах ставит пометки % FIXIT Замечание к коду.
Рецензенту желательно сохранить список найденных ошибок, чтобы показать качество своей работы на экзамене.
Исполнитель
- В статье на ML вносит требуемые исправления и снимает пометки \footnote{Замечание к статье}.
- В m-файлах вносит требуемые исправления и исправляет пометки % FIXIT на %FIXED.
Рецензент отвечает за качество работы, но должен быть благожелателен к исполнителю. Критерий качества работы: рецензент с удовольствием готов использовать рецензируемую работу для решения своих задач. |
Соглашение о комментировании
Приняты следующие комментарии, добавляемые в код при его проверке:
% FIXIT - желательно изменить код (улучшить структуру кода или устранить ошибку), % FIXED - устраненные ошибки или улучшенный код, % NOTE - комментарий для обмена мнениями, % TODO - желательно выполнить работу.
Рецензирование статьей
Примеры рецензий, который обсуждались на лекции, находятся здесь.
Политика
- Списывание (то есть цитирование) приветствуется; использование чужого кода приветствуется вдвойне. При этом следует корректно указывать оригинального автора. Цитаты следует заключать в кавычки, например: «Мера~--- превыше всего»~\cite{Gasparov2004Greece}.
- Изобретать велосипед грешно; усовершенствовать почетно.
- Результат важнее процесса.
NB лекционные заметки о карьере
Карьера:
- Академическая (исследования и преподавание)
- Промышленная (исследования и разработки)
- Финансовая (анализ и разработки)
- Управление (анализ и принятие решений)
Подготовка к зачету
Экзамен будет проходить в виде доклада. Продолжительность 5-10 минут и три дополнительные минуты на вопросы. Цель — показать, что результаты работы понятны специалисту, и могут быть им использованы в дальнейшем. Под специалистами понимаются ваши одногруппники и преподаватели кафедры.
Во время презентации требуется:
- Поставить задачу
- Осветить основные принципы работы алгоритма (кратко, без деталей)
- Описать интерфейсы модулей алгоритма
- Показать работу алгоритма на примерах
- Проанализировать свойства алгоритма
На презентации нужны:
- Отчет
- Код на sourceforge.net
Советы:
- Подготовьте доклад с секундомером в руках
- Расскажите его другу, ответьте на его вопросы
На экзамене оценивается:
- Корректность математической постановки задачи
- Полнота описания алгоритма
- Продуманность интерфейсов
- Соответствие стандартам программирования
- Ясность изложения результатов
- Глубина анализа свойств алгоритма
- Качество рецензирования (чужой работы)
Полезные материалы
- Заготовка для статьи на machinelearning.ru
- Образец статьи о выполненном практическом задании
- Как написать статью на сайт machinelearning.ru
- Как работать с репозиторием алгоритмов
- Введение в Матлаб
- Документирование функций Matlab, соглашение об именах переменных и создание отчетов о вычислительных экспериментах
- Matlab Programming Style Guidelines
- Описание архитектуры системы, стандарт IDEF0
- Содержимое корневой папки репозитория MLAlgorithms SourceForge
- Пример отчета с загрузкой модельных данных, который разбирался на лекции
- UCI Machine Learning Repository
- Стандарт библиографического описания, см. Приложение А
- Индекс цитирования (инструменты)
- CRoss Industry Standard Process for Data Mining
- Машинное обучение и Octave (Stanford Uni.)
Заметки
1 лекция: вводная, плюс показ инструментов. 2 лекция: введение в Матлаб (общий рассказ о роли Матлаба в программировании) / проверить как поставился софт. 3 лекция: структура научной статьи, плюс легкие задачи на программирование / проверить ДЗ2 + конструкции Матлаб и ТеХ. 4 лекция: проверка и обсуждение написанного кода (все работы) 5 или 6 лекция: постановка задач. Резюме. Сократить материал не получается даже для ровной группы, курс стабилизировался.
История развития курса
Ранние версии: