Автоматизация научных исследований в машинном обучении (практика, В.В. Стрижов)/ФУПМ, осень 2019

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

(Различия между версиями)
Перейти к: навигация, поиск
(Занятие 1 (6-11 сентября))
Текущая версия (15:15, 18 октября 2019) (править) (отменить)
(Занятие 7 (18 октября — 23 октября))
 
(54 промежуточные версии не показаны)
Строка 1: Строка 1:
{{Main|Численные методы обучения по прецедентам (практика, В.В. Стрижов)}}
{{Main|Численные методы обучения по прецедентам (практика, В.В. Стрижов)}}
-
 
+
__NOTOC__
-
{{tip|Дополнительные материалы находятся [[Численные методы обучения по прецедентам (практика, В.В. Стрижов)|на основной странице]]'''
+
=Машинное обучение=
 +
''Постановка задач и выбор моделей в машинном обучении''
 +
* Каждая '''пятница''' семестра в '''18:35'''
 +
* Дополнительные материалы находятся [[Численные методы обучения по прецедентам (практика, В.В. Стрижов)|на основной странице]]
* Короткий адрес этой страницы [http://bit.ly/PS-ML bit.ly/PS-ML]
* Короткий адрес этой страницы [http://bit.ly/PS-ML bit.ly/PS-ML]
-
}}
 
-
== Занятие 1 (6-11 сентября) ==
+
== Занятие 1 (6 11 сентября) ==
# Подготовка инструментов: выполнить (или проверить, что владеете инструментом),
# Подготовка инструментов: выполнить (или проверить, что владеете инструментом),
#* пункты '''1, 2, 4, 6, 7, 9, 11, 12 ,13''' ДЗ-1 из основной страницы,
#* пункты '''1, 2, 4, 6, 7, 9, 11, 12 ,13''' ДЗ-1 из основной страницы,
Строка 20: Строка 22:
## Нарисовать дисперсию прогноза ([https://nbviewer.jupyter.org/github/Intelligent-Systems-Phystech/StartCode/blob/master/Kachkov2018LateProblem2/LateProblem2.ipynb пример полосы]). Дисперсия в каждом значении зависимой переменной вычисляется путем случайного семплирования обучающей выборки, выборка разбивается несколько раз.
## Нарисовать дисперсию прогноза ([https://nbviewer.jupyter.org/github/Intelligent-Systems-Phystech/StartCode/blob/master/Kachkov2018LateProblem2/LateProblem2.ipynb пример полосы]). Дисперсия в каждом значении зависимой переменной вычисляется путем случайного семплирования обучающей выборки, выборка разбивается несколько раз.
## Дополнительно*: предложить способ порождения новых (признаков) моделей.
## Дополнительно*: предложить способ порождения новых (признаков) моделей.
-
'''Анкета'''
+
-
* [https://forms.gle/RCRs2RBJxP8Rv5vD6 Анкета "'''записаться на курс'''"] (стоит отдельно от основной по просьбе робота. Внимание работает только под @phystech.edu и только один раз)
+
-
* [https://forms.gle/EFjLLr27jJdBAheB9 Анкета '''"сдача задания'''"] (стоит отдельно от основной. нужна для того, чтобы собрать название папок GitHub где Вы выполнили задание)
+
-
* [https://forms.gle/YyCBiD852y59QVdC7 Анкета с вопросами на повторение] (основная)
+
-
 
+
'''Материалы'''
'''Материалы'''
* [[Media:Strijov2019PS-Intro.pdf|Вводные слайды]]
* [[Media:Strijov2019PS-Intro.pdf|Вводные слайды]]
Строка 36: Строка 34:
Прочитать, чем '''[https://stackoverflow.com/questions/5009600/difference-between-fork-and-branch-on-github отличается branch от fork]'''
Прочитать, чем '''[https://stackoverflow.com/questions/5009600/difference-between-fork-and-branch-on-github отличается branch от fork]'''
-
== Занятие 2 (13-18 сентября) ==
+
'''Анкета'''
-
{{tip| Тут будут '''в пятницу в 18:35''' ссылки на
+
* [https://forms.gle/RCRs2RBJxP8Rv5vD6 Анкета "'''записаться на курс'''"] (стоит отдельно от основной по просьбе робота. Внимание работает только под @phystech.edu и только один раз)
-
* '''видео-стрим''' семинара
+
* [https://forms.gle/EFjLLr27jJdBAheB9 Анкета '''"сдача задания'''"] (стоит отдельно от основной. нужна для того, чтобы собрать название папок GitHub где Вы выполнили задание)
-
* hangouts для желающих задать вопрос
+
* [https://forms.gle/bAjdzDthU1QcGEpt8 Анкета '''"рецензия'''"] (стоит отдельно от основной. нужна для того, чтобы собрать рецензии людей)
-
* если видео будет значимо отставать, то будет ссылка на телеграм для вопросов}}
+
* [https://forms.gle/YyCBiD852y59QVdC7 Анкета с вопросами на повторение] (основная)
 +
 
 +
 
 +
== Занятие 2 (13 18 сентября) ==
 +
* [https://youtu.be/c7oTaoDgh4Y '''видео-стрим''' семинара]
 +
* [https://t.me/Qs_ML ссылка на телеграм для вопросов]
 +
 
 +
'''Задание'''
 +
# Загрузить выборку (из прежнего задания, или из UCI, или на ваш вкус), нормировать признаки.
 +
# Для линейной модели (на выбор: модель регрессии или классификации)
 +
#* написать генетический алгоритм выбора признаков (или другой, по вашему выбору).
 +
# Построить графики зависимости,
 +
## ось абсцисс: итерации, <!-- x-axis is iteration -->
 +
## ось ординат: функция ошибки ''S'' и ее стандартное отклонение (обучающая и тестовая выборка), <!-- y-axis is the error function S, train test, std-->
 +
## ось ординат: параметны модели "лапша" (желательно стандартное отклонение), <!-- y-axis is “noodle” of the parameters, std -->
 +
## дополнительно, ось ординат: структура модели, индикаторная вектор-функция. <!-- y-axis is the structure indicator function -->
 +
# Задание делать в той же папке [https://github.com/Intelligent-Systems-Phystech/2019-StartCode 2019-StartCode]
 +
# Дополнительно: применить генетический алгоритм к выбору двухслойной нейросети и нарисовать те же графики и кривую обучения нейросети.
 +
 
 +
'''Материалы'''
 +
* [[Media:Strijov2019FeatureSelection.pdf|Выбор признаков]]
 +
* [[Media:Strijov20192NNUniversalModel.pdf|Структура нейросети]]
 +
 
 +
'''Анкета'''
 +
* [https://forms.gle/LdnZSmjJWVTzZTAYA Анкета с вопросами] (основная. дедлайн 19.09.2019 9:00. доступна только с почты @phystech.edu)
 +
* [https://forms.gle/EFjLLr27jJdBAheB9 Анкета '''"сдача задания'''"] (для указание папки на GitHub со 2м заданием. дедлайн 19.09.2019 9:00. доступна только с почты @phystech.edu)
 +
* [https://forms.gle/bAjdzDthU1QcGEpt8 Анкета '''"рецензия'''"] (собрать результаты людей. дедлайн 20.09.2019 9:00. доступна только с почты @phystech.edu)
 +
 
 +
== Занятие 3 (20 — 25 сентября) ==
 +
* [https://youtu.be/snESVZdqY7Q видео-стрим семинара]
 +
* [https://t.me/Qs_ML телеграм для вопросов]
 +
 
 +
'''Задание'''
 +
# Выбрать проект на свой вкус, и записать его план (pdf) в следующем виде:
 +
## название и ответы на вопросы (написать, от лица эксперта или аналитика),
 +
## схема в формате IDEF0.
 +
# Детализация проекта такова, что план понятен непосвященному читателю.
 +
# Рисовать можно любым инструментом, включая карандаш.
 +
# Задание загрузить в папку [https://github.com/Intelligent-Systems-Phystech/2019-IDEF0 2019-IDEF0] в файле '''Surname2019Projname.pdf'''
 +
(В качестве проекта можно взять алгоритм выбора модели NN-AE из второй части этого семинара).
 +
 +
'''Материалы'''
 +
* [[Media:Strijov2019IDEF0.pdf|Стандарт IDEF при планировании проектов]]
 +
* [[Media:Strijov2019Autoencoder.pdf|Автоэнкодер и нейросеть]]
 +
 
 +
'''Анкета'''
 +
* [https://forms.gle/DnwhGLbTSrgrrFaq7 Анкета с вопросами] (основная. дедлайн 26.09.2019 9:00. доступна только с почты @phystech.edu)
 +
* [https://forms.gle/EFjLLr27jJdBAheB9 Анкета '''"сдача задания'''"] (для указание папки на GitHub с 3м заданием. дедлайн 27.09.2019 9:00. доступна только с почты @phystech.edu)
 +
* [https://forms.gle/bAjdzDthU1QcGEpt8 Анкета '''"рецензия'''"] (собрать результаты людей. дедлайн 27.09.2019 16:00. доступна только с почты @phystech.edu)
 +
 
 +
== Занятие 4 (27 сентября — 2 октября) ==
 +
* [https://youtu.be/fSIPU3aZjLs видео-стрим семинара]
 +
* телеграм для вопросов там же
 +
 
 +
'''Задание'''
 +
# В файле main.ipynb от первого задания добавить раздел с новым вычислительным экспериментом "порождение метрических признаков"
 +
## выборка та же, на ваш выбор,
 +
## задача регрессии или классификации, на ваш выбор,
 +
## кластеризовать, вычислить центры кластеров,
 +
## набор признаков: вычислить расстояние от каждого объекта выборки до центра каждого кластера.
 +
# Сравнить качество, полученное линейной моделью по исходным и по метрическим признакам.
 +
# Построить график зависимости качества модели от числа кластеров.
 +
 +
'''Материалы'''
 +
* [[Media:Zhuikov2015MSPresentation.pdf|Построение рекомендательной системы, метрический подход]]
 +
* [[Media:Strijov2019MetricsLearnig.pdf|Метрическое обучение]]
 +
 
 +
'''Анкета'''
 +
* [https://forms.gle/4SVake6dkpLWawPMA Анкета с вопросами] (основная. дедлайн 03.10.2019 9:00. доступна только с почты @phystech.edu)
 +
* [https://forms.gle/EFjLLr27jJdBAheB9 Анкета '''"сдача задания'''"] (для указание папки на GitHub с 4м заданием. дедлайн 03.10.2019 9:00. доступна только с почты @phystech.edu)
 +
* [https://forms.gle/bAjdzDthU1QcGEpt8 Анкета '''"рецензия'''"] (собрать результаты людей. дедлайн 04.10.2019 9:00. доступна только с почты @phystech.edu)
 +
 
 +
== Занятие 5 (4 октября — 9 октября) ==
 +
* [https://youtu.be/pcP2T274Ltw видео-стрим семинара]
 +
* телеграм для вопросов там же
 +
 
 +
'''Задание'''
 +
# В папке от первого задания добавить ноутбук var_analysis.ipynb с вычислительным экспериментом "визуализация пространства параметров"
 +
#* выборка та же, на ваш выбор,
 +
#* задача регрессии или классификации, на ваш выбор,
 +
# написать процедуру bootstrep, которая возвращает К выборок того же объема, что и обучающая,
 +
## для каждой выборки настроить параметры,
 +
## вычислить ожидание параметров, дисперсию и ковариацию параметров, ожидание ошибки, дисперсию ошибки.
 +
# (Дополнительно) для фиксированного числа признаков построить график зависимости ожидания и дисперсии ошибки от объема выборки.
 +
 +
'''Материалы'''
 +
* [[Media:Strijov2019VisualVariance.pdf|Визуальный анализ признакового пространства и объема выборки]]
 +
 
 +
'''Анкета'''
 +
* [https://forms.gle/4J9UEXqZHheHCuW58 Анкета с вопросами] (основная. дедлайн 10.10.2019 9:00. доступна только с почты @phystech.edu)
 +
* [https://forms.gle/EFjLLr27jJdBAheB9 Анкета '''"сдача задания'''"] (для указание папки на GitHub с 4м заданием. дедлайн 10.10.2019 9:00. доступна только с почты @phystech.edu)
 +
* [https://forms.gle/bAjdzDthU1QcGEpt8 Анкета '''"рецензия'''"] (собрать результаты людей. дедлайн 11.10.2019 9:00. доступна только с почты @phystech.edu)
 +
 
 +
== Занятие 6 (11 октября — 16 октября) ==
 +
* [https://youtu.be/CYOaa4_DqlI видео-стрим семинара]
 +
* телеграм для вопросов там же
 +
 
 +
'''Задание'''
 +
# В папке от первого задания добавить ноутбук isotonic.ipynb с вычислительным экспериментом "ранговая регрессия",
 +
#* выборка на ваш выбор, [https://sourceforge.net/p/mvr/code/HEAD/tree/data/HybridCarsComparison.xls?format=raw или эта] (про автомобили),
 +
#* сами, как эксперты, выставьте рейтинг объектов (автомобилей) и признаков (их технических характеристик),
 +
#* требуется решить задачу изотонической регрессии.
 +
# Нарисовать график зависимости вычисленных параметров от выставленных при различных значениях регуляризатора:
 +
## несколько графиков плоских, либо
 +
## один трехмерный, по оси ординат регуляризатор, по оси аппликат - восстановленные веса, по оси абсцисс - выставленные.
 +
 +
'''Материалы'''
 +
* [[Media:Strijov2019Indicators1.pdf|Построение интегральных индикаторов]]
 +
 
 +
'''Анкета'''
 +
* [https://forms.gle/JWFyLEr4QsrrtRtY6 Анкета с вопросами] (основная. дедлайн 17.10.2019 9:00. доступна только с почты @phystech.edu)
 +
* [https://forms.gle/EFjLLr27jJdBAheB9 Анкета '''"сдача задания'''"] (для указание папки на GitHub с заданием. дедлайн 17.10.2019 9:00. доступна только с почты @phystech.edu)
 +
* [https://forms.gle/bAjdzDthU1QcGEpt8 Анкета '''"рецензия'''"] (собрать результаты людей. дедлайн 18.10.2019 9:00. доступна только с почты @phystech.edu)
 +
 
 +
== Занятие 7 (18 октября — 23 октября) ==
 +
{{tip|
 +
Ссылки:
 +
* [https://youtu.be/kseUYk74D0c видео-стрим семинара]
 +
* телеграм для вопросов там же}}
 +
 
 +
'''Задание'''
 +
# Написать эссе-постановку задачи построения монотонной модели классификации
 +
#* задан признак, от которого целевая переменная зависит немонотонно,
 +
#* требуется его изменить так, чтобы зависимость от новых признаков была монотонной,
 +
#* допустимы только кусочно-линейные параметрические отображения.
 +
# Постановка задачи должна включать две подзадачи оптимизации:
 +
## оптимизация параметров кусочно-линейной функции,
 +
## оптимизация параметров монотонной модели (логистическая ререссия, например).
 +
# Дополнительно, с усложнением:
 +
## и еще задан набор признаков, от которых целевая переменная зависит монотонно (и даже выполнено условие tbtb),
 +
## добавить еще одну оптимизационную задачу с выбором оптимального набора признаков.
 +
# Постановка задачи должна быть такова, чтобы по тексту легко и однозначно было бы возможно написать код.
 +
# Ставить задачу можно любым инструментом, включая карандаш (но Latex предпочтителен).
 +
# Задание загрузить в папку [https://github.com/Intelligent-Systems-Phystech/2019-Essay 2019-Essay] в файлах '''Surname2019Picewise.pdf''' и '''.tex'''
 +
 +
'''Материалы'''
 +
* [[Media:Strijov2019ProblemStatement.pdf|Постановка задач, введение]]
 +
* [[Media:Strijov2019Notations.pdf|Система обозначений для постановки задач]]
 +
* [[Media:Strijov2019Symbolic_short.pdf|Символьная регрессиия]]
 +
 
 +
'''Анкета'''
 +
*
 +
*
 +
*

Текущая версия

Машинное обучение

Постановка задач и выбор моделей в машинном обучении

Занятие 1 (6 — 11 сентября)

  1. Подготовка инструментов: выполнить (или проверить, что владеете инструментом),
    • пункты 1, 2, 4, 6, 7, 9, 11, 12 ,13 ДЗ-1 из основной страницы,
    • пункты 4, 5 ДЗ-2.
  2. Получить доступ к https://github.com/Intelligent-Systems-Phystech/
  3. В папке 2019-StartCode создать папку ДЗ Surname2019Linear и файл main.ipynb
    1. В тетради кратко указать название и цель эксперимента.
    2. Загрузить выборку
      1. простую (цена на хлеб),
      2. посложнее (потребление электроэнергии),
      3. совет: лучше загружать по ссылке, а не сохранять в репозиторий.
    3. Построить несколько моделей (пример).
    4. Нарисовать график прогноза (оформление: пример 1, пример 2).
    5. Нарисовать дисперсию прогноза (пример полосы). Дисперсия в каждом значении зависимой переменной вычисляется путем случайного семплирования обучающей выборки, выборка разбивается несколько раз.
    6. Дополнительно*: предложить способ порождения новых (признаков) моделей.

Материалы

Советы по пользованию репозиторием

  • GitHub: клонируйте мастер и заливайте правки в него, если работаете только со своим кодом. См. краткое руководство по работе с GitHub.
    1. Update first, Commit after (Pull first, Push after)
    2. Your own work only, no external publications
    3. No big files (put link to external datasets)
    4. No temporary nor dummy files

Прочитать, чем отличается branch от fork

Анкета


Занятие 2 (13 — 18 сентября)

Задание

  1. Загрузить выборку (из прежнего задания, или из UCI, или на ваш вкус), нормировать признаки.
  2. Для линейной модели (на выбор: модель регрессии или классификации)
    • написать генетический алгоритм выбора признаков (или другой, по вашему выбору).
  3. Построить графики зависимости,
    1. ось абсцисс: итерации,
    2. ось ординат: функция ошибки S и ее стандартное отклонение (обучающая и тестовая выборка),
    3. ось ординат: параметны модели "лапша" (желательно стандартное отклонение),
    4. дополнительно, ось ординат: структура модели, индикаторная вектор-функция.
  4. Задание делать в той же папке 2019-StartCode
  5. Дополнительно: применить генетический алгоритм к выбору двухслойной нейросети и нарисовать те же графики и кривую обучения нейросети.

Материалы

Анкета

  • Анкета с вопросами (основная. дедлайн 19.09.2019 9:00. доступна только с почты @phystech.edu)
  • Анкета "сдача задания" (для указание папки на GitHub со 2м заданием. дедлайн 19.09.2019 9:00. доступна только с почты @phystech.edu)
  • Анкета "рецензия" (собрать результаты людей. дедлайн 20.09.2019 9:00. доступна только с почты @phystech.edu)

Занятие 3 (20 — 25 сентября)

Задание

  1. Выбрать проект на свой вкус, и записать его план (pdf) в следующем виде:
    1. название и ответы на вопросы (написать, от лица эксперта или аналитика),
    2. схема в формате IDEF0.
  2. Детализация проекта такова, что план понятен непосвященному читателю.
  3. Рисовать можно любым инструментом, включая карандаш.
  4. Задание загрузить в папку 2019-IDEF0 в файле Surname2019Projname.pdf

(В качестве проекта можно взять алгоритм выбора модели NN-AE из второй части этого семинара).

Материалы

Анкета

Занятие 4 (27 сентября — 2 октября)

Задание

  1. В файле main.ipynb от первого задания добавить раздел с новым вычислительным экспериментом "порождение метрических признаков"
    1. выборка та же, на ваш выбор,
    2. задача регрессии или классификации, на ваш выбор,
    3. кластеризовать, вычислить центры кластеров,
    4. набор признаков: вычислить расстояние от каждого объекта выборки до центра каждого кластера.
  2. Сравнить качество, полученное линейной моделью по исходным и по метрическим признакам.
  3. Построить график зависимости качества модели от числа кластеров.

Материалы

Анкета

Занятие 5 (4 октября — 9 октября)

Задание

  1. В папке от первого задания добавить ноутбук var_analysis.ipynb с вычислительным экспериментом "визуализация пространства параметров"
    • выборка та же, на ваш выбор,
    • задача регрессии или классификации, на ваш выбор,
  2. написать процедуру bootstrep, которая возвращает К выборок того же объема, что и обучающая,
    1. для каждой выборки настроить параметры,
    2. вычислить ожидание параметров, дисперсию и ковариацию параметров, ожидание ошибки, дисперсию ошибки.
  3. (Дополнительно) для фиксированного числа признаков построить график зависимости ожидания и дисперсии ошибки от объема выборки.

Материалы

Анкета

Занятие 6 (11 октября — 16 октября)

Задание

  1. В папке от первого задания добавить ноутбук isotonic.ipynb с вычислительным экспериментом "ранговая регрессия",
    • выборка на ваш выбор, или эта (про автомобили),
    • сами, как эксперты, выставьте рейтинг объектов (автомобилей) и признаков (их технических характеристик),
    • требуется решить задачу изотонической регрессии.
  2. Нарисовать график зависимости вычисленных параметров от выставленных при различных значениях регуляризатора:
    1. несколько графиков плоских, либо
    2. один трехмерный, по оси ординат регуляризатор, по оси аппликат - восстановленные веса, по оси абсцисс - выставленные.

Материалы

Анкета

Занятие 7 (18 октября — 23 октября)

Ссылки:


Задание

  1. Написать эссе-постановку задачи построения монотонной модели классификации
    • задан признак, от которого целевая переменная зависит немонотонно,
    • требуется его изменить так, чтобы зависимость от новых признаков была монотонной,
    • допустимы только кусочно-линейные параметрические отображения.
  2. Постановка задачи должна включать две подзадачи оптимизации:
    1. оптимизация параметров кусочно-линейной функции,
    2. оптимизация параметров монотонной модели (логистическая ререссия, например).
  3. Дополнительно, с усложнением:
    1. и еще задан набор признаков, от которых целевая переменная зависит монотонно (и даже выполнено условие tbtb),
    2. добавить еще одну оптимизационную задачу с выбором оптимального набора признаков.
  4. Постановка задачи должна быть такова, чтобы по тексту легко и однозначно было бы возможно написать код.
  5. Ставить задачу можно любым инструментом, включая карандаш (но Latex предпочтителен).
  6. Задание загрузить в папку 2019-Essay в файлах Surname2019Picewise.pdf и .tex

Материалы

Анкета

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