Преподавание машинного обучения
Материал из MachineLearning.
м |
(→Некоторые удачные методические приёмы) |
||
(27 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | Данный [[:Категория:Виртуальные семинары|виртуальный семинар]] предназначен для обсуждения методических вопросов, связанных с преподаванием машинного обучения и смежных дисциплин в российских вузах. | + | {{TOCright}} |
+ | Данный [[:Категория:Виртуальные семинары|виртуальный семинар]] предназначен для обсуждения методических вопросов, связанных с преподаванием [[Машинное обучение|машинного обучения]] и смежных дисциплин в российских вузах. | ||
- | + | На данную страницу выносятся основные положения, результаты дискуссии и прочая хорошо структурированная информация. | |
- | + | Споры, как обычно, ведутся в [[Обсуждение:Преподавание машинного обучения|обсуждении]]. | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | == | + | Поскольку это семинар, на основной странице также можно высказывать личные мнения; |
+ | желательно сопровождать их подписью участника. | ||
+ | |||
+ | == Машинное обучение — математический или инженерный курс? == | ||
+ | |||
+ | Согласно международным рекомендациям по преподаванию информатики в университетах | ||
+ | ACM/IEEE Computing Curricula 2001 | ||
+ | [[информатика]] (computer science) | ||
+ | подразделяется на 14 областей, одна из которых — | ||
+ | [[интеллектуальные системы]] (intelligent systems). | ||
+ | Эта область, в свою очередь, имеет 10 разделов, один из них — | ||
+ | '''машинное обучение и нейронные сети''' (machine learning and neural networks). | ||
+ | Для непрофильных специальностей этот курс считается факультативным. | ||
+ | |||
+ | Типовые программы этого курса рассчитаны на расширение кругозора будущих IT-специалистов и, мягко говоря, поверхностны. | ||
+ | Они ни в коей мере не рассчитаны на будущего научного работника или разработчика новых методов машинного обучения. | ||
+ | Они лишь дают представление о том, | ||
+ | какие задачи возникают на практике, | ||
+ | какими методами их можно решать, | ||
+ | в чём их основные принципы, | ||
+ | какие существуют инструментальные средства, | ||
+ | иногда — какие подводные камни ждут будущего BI-аналитика. | ||
+ | Далеко не все методы освещаются. | ||
+ | Теория вообще не рассматривается. | ||
+ | |||
+ | '''Вопрос:''' стоит ли ориентироваться на этот международный стандарт? | ||
+ | |||
+ | Стандарт оставляет большую свободу творчества преподавателю. | ||
+ | Формально оставаясь в рамках стандарта, можно сделать и полную профанацию, и удачный курс для инженеров, | ||
+ | показывающий нетривиальные примеры реальных задач и процесс их решения с помощью доступного инструментария. | ||
+ | Заодно можно зацепить действительно глубокие проблемы, | ||
+ | с одной стороны возникающие из нужд практики, | ||
+ | с другой требующие хорошей математики. | ||
+ | Однако сделать такой курс на порядок сложнее, чем скомпилировать материал нескольких книжек. | ||
+ | |||
+ | '''Математический курс''' нужен узкому кругу специалистов, которые предположительно будут заниматься разработкой новых методов и решением принципиально новых задач. Потребность в таких специалистах — около 5%. | ||
+ | '''Инженерный курс''' нужен широкому кругу специалистов, которые предположительно будут заниматься применением стандартных методов для решения более-менее типичных задач. Он также нужен будущим IT-руководителям, которые обязаны не только знать о возможностях современных методов анализа данных, но и уметь доносить своё понимание до лиц, принимающих решения. Потребность в таких специалистах — около 95%. Кстати, без этих 95% инженеров, бизнес-аналитиков и IT-менеджеров (фильтрующих задачи на стандартные и нестандартные) те 5% математиков вообще не имеют шансов найти работу по специальности. (''[[Участник:Vokov|К.В.Воронцов]] 22:33, 10 июля 2008 (MSD)'') | ||
+ | |||
+ | Курсов машинного обучения «для инженеров» в мире очень много. | ||
+ | Математических курсов сравнительно мало, и они очень разные; | ||
+ | каждый несёт на себе отпечаток конкретной школы. | ||
+ | Обычно это спецкурсы на кафедрах соотвествующего профиля. | ||
+ | Попытки найти «золотую середину» предпринимаются в тех университетах, где даётся хорошее базовое математическое образование. Пример — курс [http://courses.csail.mit.edu/6.867/lectures.html Machine Learning] в MIT, разработанный [http://people.csail.mit.edu/tommi Tommi Jaakkola]. (''[[Участник:Vokov|К.В.Воронцов]] 22:33, 10 июля 2008 (MSD)'') | ||
+ | |||
+ | Думаю, что каждая [[Интеллектуальные системы (кафедра МФТИ)|кафедра]] решает вопрос, поставленный выше, исходя из уровня подготовки собственных студентов. Если у студентов хорошая математическая подготовка, зачем нужно читать им инженерный курс, который покажется им слишком простым и доступным для '''самостоятельного''' изучения? (''[[Участник:Strijov|Strijov]] 16:38, 11 июля 2008 (MSD)'') | ||
+ | |||
+ | Вряд ли возможно сделать хороший математический курс, не пройдя предварительно или не «встроив внутрь» элементы инженерного курса. Иначе получится обсуждение интересных, но оторванных от жизни проблем. Отрицательный пример — курс математической статистики в лучших вузах страны — [[МФТИ]] и [[ВМиК]] МГУ, после прослушивания которых студент может доказать теорему Пирсона и вывести неравенство Рао-Крамера, но не понимает, какие статистические тесты и в каких задачах надо применять. Этому должен учить инженерный курс прикладной статистики (которого математикам вообще не читают). Об этом много сказано у проф. [http://orlovs.pp.ru А. И. Орлова]. Моё мнение — прикладной курс, как более простой, должен идти раньше, давая мощную мотивацию для изучения математического курса. В 2008-9 году, читая по сути инженерный курс [[Машинное обучение (курс лекций, К.В.Воронцов)|ММРО]] на ВМиК, попробую параллельно вести математический спецкурс [[Теория надёжности обучения по прецедентам (курс лекций, К. В. Воронцов)|COLT]]. — ''[[Участник:Vokov|К.В.Воронцов]] 11:12, 13 июля 2008 (MSD)'' | ||
+ | |||
+ | Полностью согласен с К.В.Воронцовым: математический курс не должен быть оторван от прикладного. На ВМК ННГУ мы разработали и начали чтение [[Машинное обучение (курс лекций, Н.Ю.Золотых)|вводного курса по машинному обучению]]. Сделан упор на описание конкретных практических задач и алгоритмов. Даются основы [[теория Вапника-Червоненкиса|теории Вапника–Червоненкиса]]. После такого курса, считаю, студенты готовы к тому, чтобы прослушать и усвоить более углубленный математический курс. — [[Участник:K-3|K-3]] 18:38, 4 августа 2008 (MSD) | ||
+ | |||
+ | == Методика преподавания == | ||
+ | |||
+ | Предлагается здесь ставить вопросы, а ниже в подразделах обсуждать удачный и неудачный опыт. | ||
+ | |||
+ | ''Авторам предложений желательно представляться''. | ||
+ | |||
+ | * '''Культура анализа данных''' | ||
+ | ** Как эффективно передать студентам культуру анализа данных? | ||
+ | ** Как продемонстрировать процесс решения реальных задач? | ||
+ | ** Какие реальные прикладные задачи использовать для демонстрации? | ||
+ | ** Как организовать совместную работу преподавателей по накоплению общедоступного репозитория демонстрационных задач? ''Предполагаемый ответ — с помощью нашего Ресурса'' ;) | ||
+ | |||
+ | * '''Слайды''' | ||
+ | ** Как мотивировать студентов писать конспект, и надо ли вообще это делать? | ||
+ | ** Надо ли использовать наряду со слайдами раздаточные материалы? | ||
+ | |||
+ | * '''Практикум''' | ||
+ | ** Как организовать практикум, чтобы исключить возможность несамостоятельного выполнения заданий (плагиата)? | ||
+ | ** Делать проекты индивидуальные или командные? | ||
+ | ** Командный практикум позволяет каждому студенту проявить свои способности в тех ролях, которые ему более свойственны (руководитель, бизнес-аналитик, алгоритмист, разработчик, тестировщик, технический писатель). Требовать ли от каждого студента побывать в каждой роли? Или поощрять специализацию? Или вообще не управлять процессом выбора ролей? | ||
+ | ** Делать упор на разработку или на применение методов? | ||
+ | ** Какое средство взять за основу: [[Matlab]] или [[C++]] или [[R]] или [[WEKA]] или [[RapidMiner]] или ещё что-то? | ||
+ | |||
+ | * '''Контроль знаний''' | ||
+ | ** Что такое «учебная задача по машинному обучению», которую предполагается решать на семинарах, контрольных, экзаменах, то есть без компьютера? | ||
+ | ** Как организовать совместную работу преподавателей по созданию репозитория таких задач? | ||
+ | ** Возможно ли сделать этот репозиторий недоступным для студентов? | ||
+ | |||
+ | * '''Стандартизация''' | ||
+ | ** С точки зрения российских образовательных стандартов дисциплины «Машинное обучение» не существует. Формально не существует ни одной дисциплины, которая хотя бы на половину покрывала тематику стандартных курсов Machine Learning зарубежных университетов. | ||
+ | ** Имеет ли смысл стремиться к унификации курсов машинного обучения в российских вузах? | ||
+ | ** Интернет способствует снижению разобщённости учёных — это хорошо. Лекционные курсы по всему миру становятся похожими друг на друга, как близнецы-братья. В этих условиях научным школам становится труднее оставаться «инкубаторами новых идей», обилие общеизвестных результатов парализует фантазию — это плохо. Можно ли рекомендовать пропорцию, в которой должны быть представлены в стандартном курсе общеизвестный и оригинальный материал? | ||
+ | |||
+ | === Некоторые удачные методические приёмы === | ||
+ | Предлагается пополнять коллекцию. | ||
+ | |||
+ | * В начале курса посвятить одну лекцию рассказу о разнообразных прикладных задачах «из жизни», от 3 до 10. (''[[Участник:Vokov|К.В.Воронцов]] 22:33, 10 июля 2008 (MSD)'') | ||
+ | * В конце курса (например, на консультации перед экзаменом) нарисовать «карту курса», где показать взаимосвязи и сходство различных методов. (''[[Участник:Vokov|К.В.Воронцов]] 22:33, 10 июля 2008 (MSD)'') | ||
+ | * Рассказав метод, в явном виде перечислить его достоинства и недостатки; затем рассказать о путях устранения недостатков. (''[[Участник:Vokov|К.В.Воронцов]] 22:33, 10 июля 2008 (MSD)'') | ||
+ | * Спецкурс для небольшой аудитории (5–20 человек) хорошо проводить в режиме лекции со слайдами, время от времени вызывая к доске студента с просьбой доказать вспомогательное утверждение, рассмотреть пример или частный случай. Для ускорения процесса преподаватель может немного подсказывать студенту. Аудитория вынуждена внимательно следить и писать конспект, несмотря на доступность слайдов в Интернете. | ||
+ | * Проведение конкурса на лучшее решение практической задачи машинного обучения по правилам, обычным для такого вида конкурсов. См., например, [http://www.modelselect.inf.ethz.ch Performance Prediction Challenge]. В начале семестра становится доступной некоторая обучающая выборка. В конце семестра студентам предоставляется возможность проверить построенные ими классификаторы на проверочной выборке. Далее студенты загружают тестовые данные (без значений выходной переменной) и посылают организаторам найденные значения выходной переменной. Предложено В. Ерухимовым и И. Чикаловым. Испытано в [[Машинное обучение (курс лекций, Н.Ю.Золотых)|курсе машинного обучения в ННГУ]]. [[Участник:K-3|K-3]] 19:16, 4 августа 2008 (MSD) | ||
+ | * Чтобы не «парализовать фантазию», можно в явном виде отмечать в лекциях, какие постановки задач до сих пор остаются открытыми. Это требует от рядового преподавателя почти невозможного — всё время оставаться в курсе. Снова чувствуется необходимость в постоянном обмене информацией. Для этого, собственно, и задумывалась [[:Категория:Открытые проблемы и полемика]], но пока она не используется в таком качестве — ''[[Участник:Vokov|К.В.Воронцов]] 21:28, 15 сентября 2008 (MSD)'' | ||
+ | |||
+ | === От проблемы к методу, а не наоборот === | ||
+ | Выдержки из статьи | ||
+ | :'''[http://www.nickart.spb.ru/clause/text_19.php Статистическое мышление]'''. [http://www.nickart.spb.ru Центр Статистических Технологий], Санкт-Петербург. | ||
+ | |||
+ | Основные идеи в полной мере относятся к преподаванию не только статистики, но и машинного обучения. | ||
+ | |||
+ | * Классический подход к обучению статистике по схеме «название метода → алгоритм расчета → интерпретация результатов → примеры» не годится. Получение знаний в области прикладной статистики должно проходить от проблемы к методу, а не наоборот. Осознав прикладную значимость, гораздо легче перейти к теории. Когда 20-летниему человеку говорят про дисперсионный анализ на абстрактных примерах, 99,9% полученных знаний уходят в пустоту. | ||
+ | * Предлагаемый подход: «прикладная задача → постановки проблем → выбор метода(ов) → применение и интерпретация с использованием стандартного инструментария → формулы и алгоритмы». | ||
+ | * Далеко не многие понимают, что в 80% случаев статистические методы используются как средство доказательства своих идей или проверки гипотез. | ||
+ | |||
+ | == Практикум == | ||
+ | Невозможно научить анализу данных, не анализируя данные. | ||
+ | |||
+ | === Коллекция учебных задач === | ||
+ | Предлагается создавать на нашем Ресурсе страницы прикладных учебных задач. | ||
+ | В отличие от [[:Категория:Конкурсы|конкурсов]], | ||
+ | они могут (и должны) содержать решения, упражнения, открытые постановки вспомогательных подзадач. | ||
+ | |||
+ | В типичном случае страница учебной задачи содержит сделующие разделы: | ||
+ | * описание предметной области и содержательная постановки задачи; | ||
+ | * класс задачи (интересно всё: от простого анализа выборок и тестирования статистических гипотез до прогнозирования, распознавания, понимания изображений, сигналов, текстов); | ||
+ | * набор(ы) данных (возможно, как сырые, так и предобработанные); | ||
+ | * описания существующих подходов к решению; | ||
+ | * описание пути (возможно, нескольких путей) решения задачи, включая пробы и ошибки, гипотезы, идеи, наводящие соображения, промежуточные данные, отчёты, выводы; | ||
+ | * ссылки и литературу. | ||
+ | |||
+ | Предлагается заносить эти статьи в [[:Категория:Учебные задачи]]. | ||
+ | Основная статья: [[коллекция учебных задач]]. | ||
+ | |||
+ | '''Мотивация''' | ||
+ | * Проблема в том, что каждый преподаватель подбирает задачи, которые он решал, или о которых он слышал от коллег, или которые кочуют из учебника в учебник. В любом случае у студентов формируется довольно узкое представление о спектре приложений. | ||
+ | * Студентам надо показывать, что наука анализа данных и сферы её приложений огромны, нетривиальны и приносят ощутимую пользу. Ни одному отдельно взятому преподавателю такое нед силу. Вики-ресурс позволяет сконцентрировать усилия. | ||
+ | * От решения прикладных задач должно быть сразу две пользы: (1) студент узнаёт о тонкостях анализа данных и (2) студент узнаёт об интересных реальных приложениях и расширяет свой кругозор. | ||
+ | * Это должны быть реальные прикладные задачи, которые кем-то уже решены; этим кем-то накоплен поучительный опыт; и этот кто-то нашёл достаточно времени и энтузиазма, чтобы описать свой путь решения, включая как подтвердившиеся, так и отвергнутые гипотезы. При этом что-то можно упрощать и идеализировать, не в ущерб реалистичности и поучительности. | ||
+ | * Каждый преподаватель, создавая ''хороший'' практикум, всё равно делает нечно подобное, но наработанные материалы остаются неизвестными и недоступными, даже если институт выпустил методичку. Снова о пользе коллективного вики-Ресурса. | ||
+ | * Искусственные модельные задачи уже не интересуют. Они только всё запутывают. Под любой принцип в машинном обучении можно легко подобрать пример и контрпример. Жалко терять на это время, когда есть возможность учиться живому Делу. | ||
+ | |||
+ | — ''[[Участник:Vokov|К.В.Воронцов]] 21:28, 15 сентября 2008 (MSD)'' | ||
+ | |||
+ | === Практикум в рамках курса [[Прикладная регрессия и оптимизация (курс лекций, B.В.Стрижов)|Прикладная регрессия и оптимизация]] === | ||
+ | * Студентам назначаются [http://strijov.com/teaching/index.php задания] из расчета 32-36 часов самостоятельной работы в семестр. | ||
+ | * Предполагается, что они программируют на С/++/# и им достаточно одной лекции ([[Matlab|с иллюстрацией основных приемов]]), чтобы разобраться в программировании Matlab ([http://strijov.ru/blog/2008-01-31-17 SciLab, Octave]). NB: Mathematica и Gap потребуют две лекции, одна из них -- введение в функциональное программирование и компьютерную алгебру. | ||
+ | * Выставляются рекомендации по организации выполнения работы и проведения вычислительных экспериментов (в частности, пожелания пользоваться обозначениями, [[:Категория:Регрессионный анализ|введенными в лекциях]]). NB: план лекций, вопросы на экзамене, задачи для самостоятельного решения [http://strijov.com/teaching/article3.php доступны]. | ||
+ | * Доступны примеры программ и вычислительных экспериментов, это мотивирует к написанию красивого кода (сейчас идет подготовка к сезону 2008-осень, но все равно можно посмотреть, [http://strijov.ru/blog/2008-05-05-41 инструкции здесь]). | ||
+ | * Результаты самостоятельной работы и докумениация к ним [http://strijov.ru/blog/2008-07-11-51 складывается на ftp-сервер] до начала экзаменов так, чтобы оставалась возможность написать рецензию и указать, что надо доработать. NB: вариант с flash memory stick очень утомляет, т.к. по опыту, 4 из 5 студентов несут вирусы, на убиение которых уходит время. | ||
+ | |||
+ | Есть три варианта выполнения студентами «инженерного курса». | ||
+ | # Он не делается вообще (к счастью, такого еще не случалось). | ||
+ | # Студенты работают первые 4 недели, потом не работают, потом работают последние две недели. | ||
+ | # Работа делается в последние две недели (при этом число фактически отработанных часов уменьшается). | ||
+ | |||
+ | Основная проблема, которая не решена: | ||
+ | * как организовать работу, чтобы кроме лекций, несколько часов '''каждую''' неделю было посвящено практике (которая, по моему мнению, и есть «инженерный курс»)? | ||
+ | — ''[[Участник:Strijov|Strijov]] 16:38, 11 июля 2008 (MSD)'' | ||
+ | |||
+ | === Гибкий практикум === | ||
+ | Абстрактные учебные примеры скучны и не интересны ни студентам, ни преподавателям. | ||
+ | На старших курсах многие студенты уже имеют собственные профессиональные интересы | ||
+ | и сами понимают, какие задания им будут более полезны для профессионального роста. | ||
+ | В этом случае имеет смысл предлагать на выбор разнообразные варианты индивидуальных заданий. | ||
+ | |||
+ | * Программирование алгоритмов. Реализовать и протестировать какой-нибудь стандартный метод, плюс его модификацию, «заточенную» под какой-нибудь частный случай. Студент пишет отчёт, содержащий результаты сравнения качества работы стандартного и модифицированного методов на стандартных и нестандартных задачах. Работает ли модифицированный метод лучше в нужных частных случаях, как предполагалось?. Исходные данные могут быть как модельными, так и реальными, но «рафинированными». | ||
+ | * «Технологическое» программирование. Разработать и реализовать среду для тестирования совокупности алгоритмов на совокупности задач (см. [[Полигон алгоритмов]]). Возможны ограничения на класс задач, например: [[классификация]] с большим числом классов, [[прогнозирование временных рядов]], [[коллаборативная фильтрация]]. Можно предусмотреть веб-интерфейс и/или распределённые вычисления. В данном случае целесообразны коллективные проекты с распределением ролей. | ||
+ | * Бизнес-аналитика (для тех, кто стремится быть «ближе к жизни»). Обработать реальные «нерафинированные» данные какой-нибудь практической задачи. Разрешается пользоваться любыми средствами, включая готовые реализации методов. Постановку задачи также сформулировать «от лица заказчика», то есть не задавать чёткого функционала качества. Студент должен самостоятельно разобраться в предметной области и сформулировать критерии качества, постановку задачи, обоснованно выбрать методы решения, воспользоваться стандартным инструментарием. | ||
+ | * Для теоретиков и прочих не-любителей программировать и решать реальные задачи. Написать для '''MachineLearning.ru''' обзорную статью, либо несколько статей про конкретные методы, либо несколько рефератов в виде [[MachineLearning:Публикации и библиографии|страниц публикаций]]. Критерии: объём, полнота раскрытия темы, число использованных источников, наличие иллюстративных примеров, и т.д. | ||
+ | * Для троечников и прочих слабо мотивированных. Выполнить задание, близкое к теме дипломной работы, по согласованию с научным руководителем. Однако в таком случае оценка не может быть выше 4. | ||
+ | |||
+ | Во всех случаях объём работ должен быть примерно одинаковым, чтобы не было слишком лёгких заданий. | ||
+ | |||
+ | Во всех случаях должны быть заранее объяснены «правила игры», критерии оценивания заданий. | ||
+ | Варианты заданий должны быть известны заранее, чтобы у студентов было время подумать и выбрать задание. | ||
+ | |||
+ | — ''[[Участник:Vokov|К.В.Воронцов]] 22:36, 16 июля 2008 (MSD)'' | ||
+ | |||
+ | == Применение информационных технологий в учебном процессе == | ||
+ | |||
+ | * [http://www.microsoft.com/Rus/Download.aspx?file=/Msdnaa/Curricula/64fe96e2-2177-45cf-937d-8c69bb46c062/cc7c8323-c06b-40f2-b15a-640e9d041073.pdf Путеводитель для преподавателей по миру современных информационных технологий. 18 июня 2008 г. (файл PDF,10Мб)] — документ, подготовленный авторским коллективом Международного Консорциума «Электронный университет» и LBS Education при поддержке Microsoft. Представлен обзор возможностей информационных технологий для преподавателей вузов. Путеводитель состоит из двух основных разделов — «Использование современных технологий в учебном процессе» и «Научная работа и разработка УМК». В первом разделе рассматривается процесс преподавания в такой последовательности: подготовка к занятиям, проведение обучения, проведение контрольных мероприятий, а также планирование и организационный контроль. Второй раздел, представляет собой совокупность следующих блоков: организация научной работы, поиск и работа с источниками, работа с документацией НИР и организация НИР в распределенном университете. | ||
+ | * [http://www.microsoft.com/rus/msdnaa/curricula Библиотека учебных курсов Microsoft], в том числе ''Методические пособия курсов повышения квалификации преподавательского состава'' в помощь преподавателям по обновлению курсов и внедрению новейших технологий в процесс обучения студентов. | ||
+ | * [http://www.e-teaching.ru www.e-teaching.ru] — портал «Эффективная работа преподавателя» о программных продуктах и информационных технологиях, с примерами их практического применения. | ||
+ | |||
+ | == Терминология == | ||
+ | Предлагается обсуждать список терминов, которые либо не понятно как переводить на русский, либо «де факто» они уже переведены разными авторами по-разному, и необходимо приходить к единству. | ||
+ | Возможно, для этого обсуждения лучше завести отдельную страницу... | ||
+ | |||
+ | * Business-intelligence — интеллектуальные бизнес-системы или бизнес-интеллект? | ||
+ | * Data mining — [[интеллектуальный анализ данных]] | ||
+ | * Optimal brain damage — ? | ||
+ | * Optimal brain surgery — [[оптимальное прореживание нейронных сетей]] | ||
+ | * Shatter coeffiсient — [[коэффициент разнообразия]] | ||
+ | * Target function — [[целевая зависимость]] или [[восстанавливаемая зависимость]]? [[Целевая функция]] вызывает ненужные ассоциации с оптимизируемым функционалом. | ||
+ | |||
+ | == Книги, которые можно выбрать за «скелет» курса == | ||
# {{П:Hastie 2001 The Elements of Statistical Learning}} | # {{П:Hastie 2001 The Elements of Statistical Learning}} | ||
+ | |||
+ | == Дополнительная литература == | ||
# {{П:Загоруйко 1999 Прикладные методы анализа данных и знаний}} | # {{П:Загоруйко 1999 Прикладные методы анализа данных и знаний}} | ||
# {{П:Журавлёв 2006 Распознавание}} | # {{П:Журавлёв 2006 Распознавание}} | ||
== Курсы == | == Курсы == | ||
+ | * [http://courses.csail.mit.edu/6.867/lectures.html Machine Learning (Fall 2007)] [http://people.csail.mit.edu/tommi Prof. Tommi Jaakkola], MIT. | ||
+ | * [http://see.stanford.edu/SEE/courseinfo.aspx?coll=348ca38a-3a6d-4052-937d-cb017338d7b1 Machine Learning] Andrew Ng, Stanford University. | ||
+ | * [http://www.rpi.edu/~bennek/class/mmld/index.html Math Models for Learning and Discovery (Spring 2005)] [http://www.rpi.edu/~bennek Prof. Kristin P. Bennett], Rensselaer Polytechnic Institute, Troy, New York | ||
+ | * [https://www.seas.upenn.edu/~cis520/schedule.html Machine Learning (Fall 2007)] Prof. Lyle Ungar, University of Pennsylvania - School of Engineering & Applied Science. | ||
* [[Машинное обучение (курс лекций, К.В.Воронцов)]] | * [[Машинное обучение (курс лекций, К.В.Воронцов)]] | ||
* [[Машинное обучение (курс лекций, Н.Ю.Золотых)]] | * [[Машинное обучение (курс лекций, Н.Ю.Золотых)]] | ||
+ | * [[Математические методы распознавания образов (курс лекций, А.Е.Лепский, А.Г.Броневич)]] | ||
+ | * [[Прикладная регрессия и оптимизация (курс лекций, B.В.Стрижов)]] | ||
+ | |||
+ | == Ссылки по преподаванию машинного обучения == | ||
+ | * [http://labh-curien.univ-st-etienne.fr/informatique/tml08/ TML workshop 2008] — семинар «Teaching Machine Learning», Laboratoire Hubert Curien, Pôle Optique Rhône-Alpes, Saint-Étienne, France, May 6-7, 2008. Доступны презентации и полные версии докладов семинара. | ||
+ | * [http://videolectures.net/learning06_guyon_tmle Teaching Machine Learning from Examples] — видеолекция и презентация Isabelle Guyon, Clopinet. | ||
- | |||
[[Категория:Виртуальные семинары]] | [[Категория:Виртуальные семинары]] | ||
- | [[Категория:Учебные | + | [[Категория:Учебные материалы]] |
Текущая версия
|
Данный виртуальный семинар предназначен для обсуждения методических вопросов, связанных с преподаванием машинного обучения и смежных дисциплин в российских вузах.
На данную страницу выносятся основные положения, результаты дискуссии и прочая хорошо структурированная информация. Споры, как обычно, ведутся в обсуждении.
Поскольку это семинар, на основной странице также можно высказывать личные мнения; желательно сопровождать их подписью участника.
Машинное обучение — математический или инженерный курс?
Согласно международным рекомендациям по преподаванию информатики в университетах ACM/IEEE Computing Curricula 2001 информатика (computer science) подразделяется на 14 областей, одна из которых — интеллектуальные системы (intelligent systems). Эта область, в свою очередь, имеет 10 разделов, один из них — машинное обучение и нейронные сети (machine learning and neural networks). Для непрофильных специальностей этот курс считается факультативным.
Типовые программы этого курса рассчитаны на расширение кругозора будущих IT-специалистов и, мягко говоря, поверхностны. Они ни в коей мере не рассчитаны на будущего научного работника или разработчика новых методов машинного обучения. Они лишь дают представление о том, какие задачи возникают на практике, какими методами их можно решать, в чём их основные принципы, какие существуют инструментальные средства, иногда — какие подводные камни ждут будущего BI-аналитика. Далеко не все методы освещаются. Теория вообще не рассматривается.
Вопрос: стоит ли ориентироваться на этот международный стандарт?
Стандарт оставляет большую свободу творчества преподавателю. Формально оставаясь в рамках стандарта, можно сделать и полную профанацию, и удачный курс для инженеров, показывающий нетривиальные примеры реальных задач и процесс их решения с помощью доступного инструментария. Заодно можно зацепить действительно глубокие проблемы, с одной стороны возникающие из нужд практики, с другой требующие хорошей математики. Однако сделать такой курс на порядок сложнее, чем скомпилировать материал нескольких книжек.
Математический курс нужен узкому кругу специалистов, которые предположительно будут заниматься разработкой новых методов и решением принципиально новых задач. Потребность в таких специалистах — около 5%. Инженерный курс нужен широкому кругу специалистов, которые предположительно будут заниматься применением стандартных методов для решения более-менее типичных задач. Он также нужен будущим IT-руководителям, которые обязаны не только знать о возможностях современных методов анализа данных, но и уметь доносить своё понимание до лиц, принимающих решения. Потребность в таких специалистах — около 95%. Кстати, без этих 95% инженеров, бизнес-аналитиков и IT-менеджеров (фильтрующих задачи на стандартные и нестандартные) те 5% математиков вообще не имеют шансов найти работу по специальности. (К.В.Воронцов 22:33, 10 июля 2008 (MSD))
Курсов машинного обучения «для инженеров» в мире очень много. Математических курсов сравнительно мало, и они очень разные; каждый несёт на себе отпечаток конкретной школы. Обычно это спецкурсы на кафедрах соотвествующего профиля. Попытки найти «золотую середину» предпринимаются в тех университетах, где даётся хорошее базовое математическое образование. Пример — курс Machine Learning в MIT, разработанный Tommi Jaakkola. (К.В.Воронцов 22:33, 10 июля 2008 (MSD))
Думаю, что каждая кафедра решает вопрос, поставленный выше, исходя из уровня подготовки собственных студентов. Если у студентов хорошая математическая подготовка, зачем нужно читать им инженерный курс, который покажется им слишком простым и доступным для самостоятельного изучения? (Strijov 16:38, 11 июля 2008 (MSD))
Вряд ли возможно сделать хороший математический курс, не пройдя предварительно или не «встроив внутрь» элементы инженерного курса. Иначе получится обсуждение интересных, но оторванных от жизни проблем. Отрицательный пример — курс математической статистики в лучших вузах страны — МФТИ и ВМиК МГУ, после прослушивания которых студент может доказать теорему Пирсона и вывести неравенство Рао-Крамера, но не понимает, какие статистические тесты и в каких задачах надо применять. Этому должен учить инженерный курс прикладной статистики (которого математикам вообще не читают). Об этом много сказано у проф. А. И. Орлова. Моё мнение — прикладной курс, как более простой, должен идти раньше, давая мощную мотивацию для изучения математического курса. В 2008-9 году, читая по сути инженерный курс ММРО на ВМиК, попробую параллельно вести математический спецкурс COLT. — К.В.Воронцов 11:12, 13 июля 2008 (MSD)
Полностью согласен с К.В.Воронцовым: математический курс не должен быть оторван от прикладного. На ВМК ННГУ мы разработали и начали чтение вводного курса по машинному обучению. Сделан упор на описание конкретных практических задач и алгоритмов. Даются основы теории Вапника–Червоненкиса. После такого курса, считаю, студенты готовы к тому, чтобы прослушать и усвоить более углубленный математический курс. — K-3 18:38, 4 августа 2008 (MSD)
Методика преподавания
Предлагается здесь ставить вопросы, а ниже в подразделах обсуждать удачный и неудачный опыт.
Авторам предложений желательно представляться.
- Культура анализа данных
- Как эффективно передать студентам культуру анализа данных?
- Как продемонстрировать процесс решения реальных задач?
- Какие реальные прикладные задачи использовать для демонстрации?
- Как организовать совместную работу преподавателей по накоплению общедоступного репозитория демонстрационных задач? Предполагаемый ответ — с помощью нашего Ресурса ;)
- Слайды
- Как мотивировать студентов писать конспект, и надо ли вообще это делать?
- Надо ли использовать наряду со слайдами раздаточные материалы?
- Практикум
- Как организовать практикум, чтобы исключить возможность несамостоятельного выполнения заданий (плагиата)?
- Делать проекты индивидуальные или командные?
- Командный практикум позволяет каждому студенту проявить свои способности в тех ролях, которые ему более свойственны (руководитель, бизнес-аналитик, алгоритмист, разработчик, тестировщик, технический писатель). Требовать ли от каждого студента побывать в каждой роли? Или поощрять специализацию? Или вообще не управлять процессом выбора ролей?
- Делать упор на разработку или на применение методов?
- Какое средство взять за основу: Matlab или C++ или R или WEKA или RapidMiner или ещё что-то?
- Контроль знаний
- Что такое «учебная задача по машинному обучению», которую предполагается решать на семинарах, контрольных, экзаменах, то есть без компьютера?
- Как организовать совместную работу преподавателей по созданию репозитория таких задач?
- Возможно ли сделать этот репозиторий недоступным для студентов?
- Стандартизация
- С точки зрения российских образовательных стандартов дисциплины «Машинное обучение» не существует. Формально не существует ни одной дисциплины, которая хотя бы на половину покрывала тематику стандартных курсов Machine Learning зарубежных университетов.
- Имеет ли смысл стремиться к унификации курсов машинного обучения в российских вузах?
- Интернет способствует снижению разобщённости учёных — это хорошо. Лекционные курсы по всему миру становятся похожими друг на друга, как близнецы-братья. В этих условиях научным школам становится труднее оставаться «инкубаторами новых идей», обилие общеизвестных результатов парализует фантазию — это плохо. Можно ли рекомендовать пропорцию, в которой должны быть представлены в стандартном курсе общеизвестный и оригинальный материал?
Некоторые удачные методические приёмы
Предлагается пополнять коллекцию.
- В начале курса посвятить одну лекцию рассказу о разнообразных прикладных задачах «из жизни», от 3 до 10. (К.В.Воронцов 22:33, 10 июля 2008 (MSD))
- В конце курса (например, на консультации перед экзаменом) нарисовать «карту курса», где показать взаимосвязи и сходство различных методов. (К.В.Воронцов 22:33, 10 июля 2008 (MSD))
- Рассказав метод, в явном виде перечислить его достоинства и недостатки; затем рассказать о путях устранения недостатков. (К.В.Воронцов 22:33, 10 июля 2008 (MSD))
- Спецкурс для небольшой аудитории (5–20 человек) хорошо проводить в режиме лекции со слайдами, время от времени вызывая к доске студента с просьбой доказать вспомогательное утверждение, рассмотреть пример или частный случай. Для ускорения процесса преподаватель может немного подсказывать студенту. Аудитория вынуждена внимательно следить и писать конспект, несмотря на доступность слайдов в Интернете.
- Проведение конкурса на лучшее решение практической задачи машинного обучения по правилам, обычным для такого вида конкурсов. См., например, Performance Prediction Challenge. В начале семестра становится доступной некоторая обучающая выборка. В конце семестра студентам предоставляется возможность проверить построенные ими классификаторы на проверочной выборке. Далее студенты загружают тестовые данные (без значений выходной переменной) и посылают организаторам найденные значения выходной переменной. Предложено В. Ерухимовым и И. Чикаловым. Испытано в курсе машинного обучения в ННГУ. K-3 19:16, 4 августа 2008 (MSD)
- Чтобы не «парализовать фантазию», можно в явном виде отмечать в лекциях, какие постановки задач до сих пор остаются открытыми. Это требует от рядового преподавателя почти невозможного — всё время оставаться в курсе. Снова чувствуется необходимость в постоянном обмене информацией. Для этого, собственно, и задумывалась Категория:Открытые проблемы и полемика, но пока она не используется в таком качестве — К.В.Воронцов 21:28, 15 сентября 2008 (MSD)
От проблемы к методу, а не наоборот
Выдержки из статьи
- Статистическое мышление. Центр Статистических Технологий, Санкт-Петербург.
Основные идеи в полной мере относятся к преподаванию не только статистики, но и машинного обучения.
- Классический подход к обучению статистике по схеме «название метода → алгоритм расчета → интерпретация результатов → примеры» не годится. Получение знаний в области прикладной статистики должно проходить от проблемы к методу, а не наоборот. Осознав прикладную значимость, гораздо легче перейти к теории. Когда 20-летниему человеку говорят про дисперсионный анализ на абстрактных примерах, 99,9% полученных знаний уходят в пустоту.
- Предлагаемый подход: «прикладная задача → постановки проблем → выбор метода(ов) → применение и интерпретация с использованием стандартного инструментария → формулы и алгоритмы».
- Далеко не многие понимают, что в 80% случаев статистические методы используются как средство доказательства своих идей или проверки гипотез.
Практикум
Невозможно научить анализу данных, не анализируя данные.
Коллекция учебных задач
Предлагается создавать на нашем Ресурсе страницы прикладных учебных задач. В отличие от конкурсов, они могут (и должны) содержать решения, упражнения, открытые постановки вспомогательных подзадач.
В типичном случае страница учебной задачи содержит сделующие разделы:
- описание предметной области и содержательная постановки задачи;
- класс задачи (интересно всё: от простого анализа выборок и тестирования статистических гипотез до прогнозирования, распознавания, понимания изображений, сигналов, текстов);
- набор(ы) данных (возможно, как сырые, так и предобработанные);
- описания существующих подходов к решению;
- описание пути (возможно, нескольких путей) решения задачи, включая пробы и ошибки, гипотезы, идеи, наводящие соображения, промежуточные данные, отчёты, выводы;
- ссылки и литературу.
Предлагается заносить эти статьи в Категория:Учебные задачи. Основная статья: коллекция учебных задач.
Мотивация
- Проблема в том, что каждый преподаватель подбирает задачи, которые он решал, или о которых он слышал от коллег, или которые кочуют из учебника в учебник. В любом случае у студентов формируется довольно узкое представление о спектре приложений.
- Студентам надо показывать, что наука анализа данных и сферы её приложений огромны, нетривиальны и приносят ощутимую пользу. Ни одному отдельно взятому преподавателю такое нед силу. Вики-ресурс позволяет сконцентрировать усилия.
- От решения прикладных задач должно быть сразу две пользы: (1) студент узнаёт о тонкостях анализа данных и (2) студент узнаёт об интересных реальных приложениях и расширяет свой кругозор.
- Это должны быть реальные прикладные задачи, которые кем-то уже решены; этим кем-то накоплен поучительный опыт; и этот кто-то нашёл достаточно времени и энтузиазма, чтобы описать свой путь решения, включая как подтвердившиеся, так и отвергнутые гипотезы. При этом что-то можно упрощать и идеализировать, не в ущерб реалистичности и поучительности.
- Каждый преподаватель, создавая хороший практикум, всё равно делает нечно подобное, но наработанные материалы остаются неизвестными и недоступными, даже если институт выпустил методичку. Снова о пользе коллективного вики-Ресурса.
- Искусственные модельные задачи уже не интересуют. Они только всё запутывают. Под любой принцип в машинном обучении можно легко подобрать пример и контрпример. Жалко терять на это время, когда есть возможность учиться живому Делу.
— К.В.Воронцов 21:28, 15 сентября 2008 (MSD)
Практикум в рамках курса Прикладная регрессия и оптимизация
- Студентам назначаются задания из расчета 32-36 часов самостоятельной работы в семестр.
- Предполагается, что они программируют на С/++/# и им достаточно одной лекции (с иллюстрацией основных приемов), чтобы разобраться в программировании Matlab (SciLab, Octave). NB: Mathematica и Gap потребуют две лекции, одна из них -- введение в функциональное программирование и компьютерную алгебру.
- Выставляются рекомендации по организации выполнения работы и проведения вычислительных экспериментов (в частности, пожелания пользоваться обозначениями, введенными в лекциях). NB: план лекций, вопросы на экзамене, задачи для самостоятельного решения доступны.
- Доступны примеры программ и вычислительных экспериментов, это мотивирует к написанию красивого кода (сейчас идет подготовка к сезону 2008-осень, но все равно можно посмотреть, инструкции здесь).
- Результаты самостоятельной работы и докумениация к ним складывается на ftp-сервер до начала экзаменов так, чтобы оставалась возможность написать рецензию и указать, что надо доработать. NB: вариант с flash memory stick очень утомляет, т.к. по опыту, 4 из 5 студентов несут вирусы, на убиение которых уходит время.
Есть три варианта выполнения студентами «инженерного курса».
- Он не делается вообще (к счастью, такого еще не случалось).
- Студенты работают первые 4 недели, потом не работают, потом работают последние две недели.
- Работа делается в последние две недели (при этом число фактически отработанных часов уменьшается).
Основная проблема, которая не решена:
- как организовать работу, чтобы кроме лекций, несколько часов каждую неделю было посвящено практике (которая, по моему мнению, и есть «инженерный курс»)?
— Strijov 16:38, 11 июля 2008 (MSD)
Гибкий практикум
Абстрактные учебные примеры скучны и не интересны ни студентам, ни преподавателям. На старших курсах многие студенты уже имеют собственные профессиональные интересы и сами понимают, какие задания им будут более полезны для профессионального роста. В этом случае имеет смысл предлагать на выбор разнообразные варианты индивидуальных заданий.
- Программирование алгоритмов. Реализовать и протестировать какой-нибудь стандартный метод, плюс его модификацию, «заточенную» под какой-нибудь частный случай. Студент пишет отчёт, содержащий результаты сравнения качества работы стандартного и модифицированного методов на стандартных и нестандартных задачах. Работает ли модифицированный метод лучше в нужных частных случаях, как предполагалось?. Исходные данные могут быть как модельными, так и реальными, но «рафинированными».
- «Технологическое» программирование. Разработать и реализовать среду для тестирования совокупности алгоритмов на совокупности задач (см. Полигон алгоритмов). Возможны ограничения на класс задач, например: классификация с большим числом классов, прогнозирование временных рядов, коллаборативная фильтрация. Можно предусмотреть веб-интерфейс и/или распределённые вычисления. В данном случае целесообразны коллективные проекты с распределением ролей.
- Бизнес-аналитика (для тех, кто стремится быть «ближе к жизни»). Обработать реальные «нерафинированные» данные какой-нибудь практической задачи. Разрешается пользоваться любыми средствами, включая готовые реализации методов. Постановку задачи также сформулировать «от лица заказчика», то есть не задавать чёткого функционала качества. Студент должен самостоятельно разобраться в предметной области и сформулировать критерии качества, постановку задачи, обоснованно выбрать методы решения, воспользоваться стандартным инструментарием.
- Для теоретиков и прочих не-любителей программировать и решать реальные задачи. Написать для MachineLearning.ru обзорную статью, либо несколько статей про конкретные методы, либо несколько рефератов в виде страниц публикаций. Критерии: объём, полнота раскрытия темы, число использованных источников, наличие иллюстративных примеров, и т.д.
- Для троечников и прочих слабо мотивированных. Выполнить задание, близкое к теме дипломной работы, по согласованию с научным руководителем. Однако в таком случае оценка не может быть выше 4.
Во всех случаях объём работ должен быть примерно одинаковым, чтобы не было слишком лёгких заданий.
Во всех случаях должны быть заранее объяснены «правила игры», критерии оценивания заданий. Варианты заданий должны быть известны заранее, чтобы у студентов было время подумать и выбрать задание.
— К.В.Воронцов 22:36, 16 июля 2008 (MSD)
Применение информационных технологий в учебном процессе
- Путеводитель для преподавателей по миру современных информационных технологий. 18 июня 2008 г. (файл PDF,10Мб) — документ, подготовленный авторским коллективом Международного Консорциума «Электронный университет» и LBS Education при поддержке Microsoft. Представлен обзор возможностей информационных технологий для преподавателей вузов. Путеводитель состоит из двух основных разделов — «Использование современных технологий в учебном процессе» и «Научная работа и разработка УМК». В первом разделе рассматривается процесс преподавания в такой последовательности: подготовка к занятиям, проведение обучения, проведение контрольных мероприятий, а также планирование и организационный контроль. Второй раздел, представляет собой совокупность следующих блоков: организация научной работы, поиск и работа с источниками, работа с документацией НИР и организация НИР в распределенном университете.
- Библиотека учебных курсов Microsoft, в том числе Методические пособия курсов повышения квалификации преподавательского состава в помощь преподавателям по обновлению курсов и внедрению новейших технологий в процесс обучения студентов.
- www.e-teaching.ru — портал «Эффективная работа преподавателя» о программных продуктах и информационных технологиях, с примерами их практического применения.
Терминология
Предлагается обсуждать список терминов, которые либо не понятно как переводить на русский, либо «де факто» они уже переведены разными авторами по-разному, и необходимо приходить к единству. Возможно, для этого обсуждения лучше завести отдельную страницу...
- Business-intelligence — интеллектуальные бизнес-системы или бизнес-интеллект?
- Data mining — интеллектуальный анализ данных
- Optimal brain damage — ?
- Optimal brain surgery — оптимальное прореживание нейронных сетей
- Shatter coeffiсient — коэффициент разнообразия
- Target function — целевая зависимость или восстанавливаемая зависимость? Целевая функция вызывает ненужные ассоциации с оптимизируемым функционалом.
Книги, которые можно выбрать за «скелет» курса
- Hastie, T., Tibshirani, R., Friedman, J. The Elements of Statistical Learning, 2nd edition. — Springer, 2009. — 533 p. (подробнее)
Дополнительная литература
- Загоруйко Н. Г. Прикладные методы анализа данных и знаний. — Новосибирск: ИМ СО РАН, 1999. — 270 с. — ISBN 5-86134-060-9 (подробнее)
- Журавлёв, Ю. И., Рязанов, В. В., Сенько, О. В. «Распознавание». Математические методы. Программная система. Практические применения. — М.: ФАЗИС, 2006. — 176 с. (подробнее)
Курсы
- Machine Learning (Fall 2007) Prof. Tommi Jaakkola, MIT.
- Machine Learning Andrew Ng, Stanford University.
- Math Models for Learning and Discovery (Spring 2005) Prof. Kristin P. Bennett, Rensselaer Polytechnic Institute, Troy, New York
- Machine Learning (Fall 2007) Prof. Lyle Ungar, University of Pennsylvania - School of Engineering & Applied Science.
- Машинное обучение (курс лекций, К.В.Воронцов)
- Машинное обучение (курс лекций, Н.Ю.Золотых)
- Математические методы распознавания образов (курс лекций, А.Е.Лепский, А.Г.Броневич)
- Прикладная регрессия и оптимизация (курс лекций, B.В.Стрижов)
Ссылки по преподаванию машинного обучения
- TML workshop 2008 — семинар «Teaching Machine Learning», Laboratoire Hubert Curien, Pôle Optique Rhône-Alpes, Saint-Étienne, France, May 6-7, 2008. Доступны презентации и полные версии докладов семинара.
- Teaching Machine Learning from Examples — видеолекция и презентация Isabelle Guyon, Clopinet.