БММО (курс лекций)/2013осень/Задание 2

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

(Различия между версиями)
Перейти к: навигация, поиск
Текущая версия (10:35, 13 сентября 2014) (править) (отменить)
 
(10 промежуточных версий не показаны.)
Строка 1: Строка 1:
-
{{well|Описание задания завершено. Можно приступать к выполнению}}
+
{{well|Задание проверено}}
 +
{{Notice|Внимание! Изменились сроки сдачи задания.}}
 +
{{Notice|Внимание! В связи с возникшими у некоторых студентов проблемами с mallet, были внесены изменения в текст задания (опциональные, если у вас не возникло проблем, то не нужно ничего переделывать), а также срок сдачи был также перенесен на 2-е суток. }}
-
{{Main|Байесовские методы машинного обучения (курс лекций, Д.П. Ветров, Д.А. Кропотов)}}
+
{{Main|Байесовские методы машинного обучения (курс лекций, Д.П. Ветров, Д.А. Кропотов)/осень 2013}}
__TOC__
__TOC__
'''Начало выполнения задания''': 3 ноября 2013 г.<br>
'''Начало выполнения задания''': 3 ноября 2013 г.<br>
-
'''Срок сдачи''': {{важно|18 декабря 2013 г., 23:59.}} За каждый день просрочки оценка за задание будет снижаться на 0.1 балла.
+
'''Срок сдачи''': {{важно|23 декабря 2013 г., 23:59.}} За каждый день просрочки оценка за задание будет снижаться на 0.1 балла.
{{важно|ПРЕДУПРЕЖДЕНИЕ}}. Настоятельно рекомендуется не затягивать с выполнением задания, так как на обучение модели LDA уходит некоторое ненулевое время, зависящее от мощности вашего компьютера, количества ядер и т.д.
{{важно|ПРЕДУПРЕЖДЕНИЕ}}. Настоятельно рекомендуется не затягивать с выполнением задания, так как на обучение модели LDA уходит некоторое ненулевое время, зависящее от мощности вашего компьютера, количества ядер и т.д.
Строка 21: Строка 23:
Исследование должно включать в себя следующие пункты:
Исследование должно включать в себя следующие пункты:
-
# Зависимость качества модели от числа тем при фиксируемых значениях <tex>\alpha = 0.1</tex> и <tex>\beta = 0.01</tex>. Необходимо построить график, а также привести качественные выводы о полученной зависимости. Удалось ли с помощью данного критерия уверенно определить оптимальное число тем в модели? Допускается перебор числа тем не через 1, а с большим интервалом, если это позволяет сделать все необходимые выводы.
+
# Зависимость качества модели от числа тем при фиксируемых значениях <tex>\alpha = 0.1</tex> и <tex>\beta = 0.01</tex>. Необходимо построить график, а также привести качественные выводы о полученной зависимости. Удалось ли с помощью данного критерия уверенно определить оптимальное число тем в модели? Допускается перебор числа тем не через 1, а с большим интервалом, если это позволяет сделать все необходимые выводы. '''Опционально''': студенты могут также выполнить исследование и с параметром <tex>\alpha</tex>, задаваемым как <tex>50 / T</tex>, где <tex>T</tex> - это число топиков.
# Зависимость качества модели от параметров одного из априорных распределений (в зависимости от варианта) при различном количестве тем, включая оптимальное из предыдущего пункта (в случае если оно было найдено). Можно ли сделать вывод о том, что какие-то значения параметров на данном корпусе текстов достаточно стабильно дают лучшую модель по сравнению с другими значениями? Чем можно объяснить оптимальность этих значений?
# Зависимость качества модели от параметров одного из априорных распределений (в зависимости от варианта) при различном количестве тем, включая оптимальное из предыдущего пункта (в случае если оно было найдено). Можно ли сделать вывод о том, что какие-то значения параметров на данном корпусе текстов достаточно стабильно дают лучшую модель по сравнению с другими значениями? Чем можно объяснить оптимальность этих значений?
-
# Как изменяется зависимость, исследуемая в пункте 1, при оптимизируемых параметрах <tex>\alpha</tex> и <tex>\beta</tex>? Можно ли объяснить оптимальные значения параметров при оптимальном числе тем? В отчете следует привести темы, полученные при оптимальном наборе параметров.
+
# Как изменяется зависимость, исследуемая в пункте 1, при оптимизируемых параметрах <tex>\alpha</tex> и <tex>\beta</tex>? Можно ли объяснить оптимальные значения параметров при оптимальном числе тем? В отчете следует привести темы, полученные при оптимальном наборе параметров. '''Уточнение''': допускается оптимизация как симметричных параметров <tex>\alpha</tex>, так и несимметричных.
# Выводы о том, подходит ли, в целом, LDA для анализа данного корпуса текстов, и какие задачи можно было бы решать с помощью этого инструмента на данном корпусе?
# Выводы о том, подходит ли, в целом, LDA для анализа данного корпуса текстов, и какие задачи можно было бы решать с помощью этого инструмента на данном корпусе?
Для каждого из пунктов необходимо также прокомментировать согласованность формального критерия качества с субъективной интерпретируемостью тем. В отчете должно содержаться подробное описание каждого из поставленных экспериментов, значения используемых параметров и т.д.
Для каждого из пунктов необходимо также прокомментировать согласованность формального критерия качества с субъективной интерпретируемостью тем. В отчете должно содержаться подробное описание каждого из поставленных экспериментов, значения используемых параметров и т.д.
-
'''Вопросы''' по выполнению задания можно оставлять на [[БММО (курс лекций)/2013осень/Задание 2/Вопросы | специальной странице]].
+
'''Вопросы''' по выполнению задания можно задать в [https://groups.google.com/forum/?hl=ru#!forum/task-2-bmmo-2013-fall списке рассылки].
=== Памятка по использованию Mallet ===
=== Памятка по использованию Mallet ===
Пакет Mallet содержит достаточно хорошую документацию (см. раздел, посвященный [http://mallet.cs.umass.edu/topics.php тематическому моделированию]) на английском языке, все команды имеют параметр <code>--help</code> для вывода краткой справочной информации. Тем не менее, здесь приводятся некоторые параметры и команды, полезные при выполнения задания.
Пакет Mallet содержит достаточно хорошую документацию (см. раздел, посвященный [http://mallet.cs.umass.edu/topics.php тематическому моделированию]) на английском языке, все команды имеют параметр <code>--help</code> для вывода краткой справочной информации. Тем не менее, здесь приводятся некоторые параметры и команды, полезные при выполнения задания.
-
* Задать значения гиперпараметров <tex>\alpha</tex> и <tex>\beta</tex> можно, соответственно, с помощью параметров <code>--alpha ЗНАЧЕНИЕ</code> и <code>--alpha ЗНАЧЕНИЕ</code> при выполнении команды <code>mallet train-topics</code>
+
* Задать значения гиперпараметров <tex>\alpha</tex> и <tex>\beta</tex> можно, соответственно, с помощью параметров <code>--alpha ЗНАЧЕНИЕ</code> и <code>--alpha ЗНАЧЕНИЕ</code> при выполнении команды <code>mallet train-topics</code>. '''ВАЖНО''': значение параметра <code>---alpha</code> разделяется на число тем, таким образом, при передаче данного параметра следует предварительно умножать нужное вам значение <tex>\alpha</tex> на число тем.
* Команда <code>mallet train-topics</code> имеет также параметр <code>--optimize-interval ЗНАЧЕНИЕ</code>, позволяющий указать число итераций, после которых будет произведена автоматическая оптимизация гиперпараметров. Разумно выбирать значение 5-10 итераций. По умолчанию оптимизации гиперпараметров не проводится.
* Команда <code>mallet train-topics</code> имеет также параметр <code>--optimize-interval ЗНАЧЕНИЕ</code>, позволяющий указать число итераций, после которых будет произведена автоматическая оптимизация гиперпараметров. Разумно выбирать значение 5-10 итераций. По умолчанию оптимизации гиперпараметров не проводится.
* Для последующего измерения тестовой выборки при обучении модели с помощью команды <code>mallet train-topics</code> следует сохранить специальное представление модели с помощью параметра <code>--evaluator-file ФАЙЛ</code>, после чего указывать путь к данному файлу в параметре <code>--evaluator ФАЙЛ</code> команды <code>mallet evaluate topics</code>. Рекомендуется также устанавливать число итераций при подсчете тестовой выборки <code>--num-iterations ЗНАЧЕНИЕ</code> в районе 200-500.
* Для последующего измерения тестовой выборки при обучении модели с помощью команды <code>mallet train-topics</code> следует сохранить специальное представление модели с помощью параметра <code>--evaluator-file ФАЙЛ</code>, после чего указывать путь к данному файлу в параметре <code>--evaluator ФАЙЛ</code> команды <code>mallet evaluate topics</code>. Рекомендуется также устанавливать число итераций при подсчете тестовой выборки <code>--num-iterations ЗНАЧЕНИЕ</code> в районе 200-500.
Строка 51: Строка 53:
| align="center"|2 || Коняхин - 203|| 2 ||
| align="center"|2 || Коняхин - 203|| 2 ||
|-
|-
-
| align="center"|3 || Молчанов - 203 || 1 ||
+
| align="center"|3 || Молчанов - 203 || 1 || 5
|-
|-
-
| align="center"|4 || Юкова - 203|| 2 ||
+
| align="center"|4 || Юкова - 203|| 2 || 5
|-
|-
| align="center"|5 || Швец - 416|| 1 ||
| align="center"|5 || Швец - 416|| 1 ||
Строка 59: Строка 61:
| align="center"|6 || Кульпинов - 202 || 2 ||
| align="center"|6 || Кульпинов - 202 || 2 ||
|-
|-
-
| align="center"|7 || Чабаненко - 204|| 1 ||
+
| align="center"|7 || Чабаненко - 204|| 1 || 5
|-
|-
| align="center"|8 || Галков - 205|| 2 ||
| align="center"|8 || Галков - 205|| 2 ||
Строка 77: Строка 79:
| align="center"|15 || Даулбаев - 205 || 1 ||
| align="center"|15 || Даулбаев - 205 || 1 ||
|-
|-
-
| align="center"|16 || Иванов - 203|| 2 ||
+
| align="center"|16 || Иванов - 203|| 2 || 5
|-
|-
-
| align="center"|17 || Кондрашкин - 517 || 1 ||
+
| align="center"|17 || Кондрашкин - 517 || 1 || 4.9
|-
|-
| align="center"|18 || Ибадов - 420|| 2 ||
| align="center"|18 || Ибадов - 420|| 2 ||
Строка 93: Строка 95:
| align="center"|23 || Щемирова - 205|| 1 ||
| align="center"|23 || Щемирова - 205|| 1 ||
|-
|-
-
| align="center"|24 || Нижибицкий - 517|| 2 ||
+
| align="center"|24 || Нижибицкий - 517|| 2 || 5
|-
|-
| align="center"|25 || Горячих - 210|| 1 ||
| align="center"|25 || Горячих - 210|| 1 ||
|-
|-
| align="center"|26 || Захаров - 317|| 2 ||
| align="center"|26 || Захаров - 317|| 2 ||
 +
|-
 +
| align="center"|27 || Ямшинин - ВВО|| 1 ||
|-
|-
|}
|}

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

Задание проверено


Внимание! Изменились сроки сдачи задания.


Внимание! В связи с возникшими у некоторых студентов проблемами с mallet, были внесены изменения в текст задания (опциональные, если у вас не возникло проблем, то не нужно ничего переделывать), а также срок сдачи был также перенесен на 2-е суток.


Содержание


Начало выполнения задания: 3 ноября 2013 г.
Срок сдачи: 23 декабря 2013 г., 23:59. За каждый день просрочки оценка за задание будет снижаться на 0.1 балла.

ПРЕДУПРЕЖДЕНИЕ. Настоятельно рекомендуется не затягивать с выполнением задания, так как на обучение модели LDA уходит некоторое ненулевое время, зависящее от мощности вашего компьютера, количества ядер и т.д.

Анализ текстов на естественном языке с помощью скрытого размещения Дирихле

В рамках данного задания студентам предлагается самостоятельно провести исследование по применению метода скрытого размещения Дирихле (LDA) на реальном корпусе текстов и получить интерпретируемые результаты в виде описаний тем (топиков). Используя готовую реализацию LDA, необходимо изучить зависимость меры качества от параметров модели и получить качественные выводы об их влиянии как на формальные критерии качества, так и на субъективные, подразумевающие интерпретируемость полученных тем с точки зрения человека.

В качестве формального критерия качества используется правдоподобие тестовой выборки p(\mathbf{w}_{\text{test}} | \mathbf{w}_{\text{train}}) (см. напр. конспект лекции). Рекомендуется выбрать реализацию LDA, входящую в состав пакета Mallet, однако студент может выбрать и любую другую на свой страх и риск, если ее функциональности достаточно для проведения данного исследования.

В дальнейшем используются обозначения, совместимые, как с конспектом, так и с документацией Mallet: \alpha обозначает значение параметра априорного распределения, отвечающего за пропорции тем в документе; \beta аналогично обозначает параметр априорного распределения для тем. Оба априорных распределения полагаются симметричными (все соответствующие параметры равны между собой), если не указано обратное.

Вариант задания определяет корпус текстов, на котором должно проводиться исследование. Корпус доступен, как в первоначальной форме, так и в обработанной (с нормализацией и удалением стоп-слов), уже готовой для работы в Mallet. По желанию студент может самостоятельно предобработать входные данные.

Исследование должно включать в себя следующие пункты:

  1. Зависимость качества модели от числа тем при фиксируемых значениях \alpha = 0.1 и \beta = 0.01. Необходимо построить график, а также привести качественные выводы о полученной зависимости. Удалось ли с помощью данного критерия уверенно определить оптимальное число тем в модели? Допускается перебор числа тем не через 1, а с большим интервалом, если это позволяет сделать все необходимые выводы. Опционально: студенты могут также выполнить исследование и с параметром \alpha, задаваемым как 50 / T, где T - это число топиков.
  2. Зависимость качества модели от параметров одного из априорных распределений (в зависимости от варианта) при различном количестве тем, включая оптимальное из предыдущего пункта (в случае если оно было найдено). Можно ли сделать вывод о том, что какие-то значения параметров на данном корпусе текстов достаточно стабильно дают лучшую модель по сравнению с другими значениями? Чем можно объяснить оптимальность этих значений?
  3. Как изменяется зависимость, исследуемая в пункте 1, при оптимизируемых параметрах \alpha и \beta? Можно ли объяснить оптимальные значения параметров при оптимальном числе тем? В отчете следует привести темы, полученные при оптимальном наборе параметров. Уточнение: допускается оптимизация как симметричных параметров \alpha, так и несимметричных.
  4. Выводы о том, подходит ли, в целом, LDA для анализа данного корпуса текстов, и какие задачи можно было бы решать с помощью этого инструмента на данном корпусе?

Для каждого из пунктов необходимо также прокомментировать согласованность формального критерия качества с субъективной интерпретируемостью тем. В отчете должно содержаться подробное описание каждого из поставленных экспериментов, значения используемых параметров и т.д.

Вопросы по выполнению задания можно задать в списке рассылки.

Памятка по использованию Mallet

Пакет Mallet содержит достаточно хорошую документацию (см. раздел, посвященный тематическому моделированию) на английском языке, все команды имеют параметр --help для вывода краткой справочной информации. Тем не менее, здесь приводятся некоторые параметры и команды, полезные при выполнения задания.

  • Задать значения гиперпараметров \alpha и \beta можно, соответственно, с помощью параметров --alpha ЗНАЧЕНИЕ и --alpha ЗНАЧЕНИЕ при выполнении команды mallet train-topics. ВАЖНО: значение параметра ---alpha разделяется на число тем, таким образом, при передаче данного параметра следует предварительно умножать нужное вам значение \alpha на число тем.
  • Команда mallet train-topics имеет также параметр --optimize-interval ЗНАЧЕНИЕ, позволяющий указать число итераций, после которых будет произведена автоматическая оптимизация гиперпараметров. Разумно выбирать значение 5-10 итераций. По умолчанию оптимизации гиперпараметров не проводится.
  • Для последующего измерения тестовой выборки при обучении модели с помощью команды mallet train-topics следует сохранить специальное представление модели с помощью параметра --evaluator-file ФАЙЛ, после чего указывать путь к данному файлу в параметре --evaluator ФАЙЛ команды mallet evaluate topics. Рекомендуется также устанавливать число итераций при подсчете тестовой выборки --num-iterations ЗНАЧЕНИЕ в районе 200-500.
  • С помощью параметра --output-topic-keys ФАЙЛ можно сохранить наиболее важные слова для каждой темы, порог важности и максимальное число слов можно так же проконтролировать соответствующими параметрами.
  • Команда mallet infer-topics --inferencer ФАЙЛ --input ФАЙЛ строит для каждого входного документа (упакованного во один входной файл в специальном формате) его профиль (распределение по темам, \theta). Для использования этой команды при построении модели необходимо указать параметр --inferencer-file ФАЙЛ.
  • При обучении модели рекомендуется использовать число итераций не менее 1000 (значение по умолчанию). Большее число итераций позволяет получить более надежные результаты. С помощью параметра --num-threads ЗНАЧЕНИЕ можно распараллелить процесс обучения на несколько потоков.

Распределение студентов по вариантам

Первый вариант использует набор данных NIPS (оригинальные данные входят в комплект) и настраивает параметр \beta. Второй вариант использует набор данных 20 newsgroups (оригинальные данные доступны здесь) и настраивает параметр \alpha.

№ п/п Студент Вариант Оценка
1 Жмудь - 203 1
2 Коняхин - 203 2
3 Молчанов - 203 1 5
4 Юкова - 203 2 5
5 Швец - 416 1
6 Кульпинов - 202 2
7 Чабаненко - 204 1 5
8 Галков - 205 2
9 Тавыриков - 205 1
10 Казорин - ВВО 2
11 Колосков - 204 1
12 Комалов - 210 2
13 Белоусов - 210 1
14 Чиркова - 210 2
15 Даулбаев - 205 1
16 Иванов - 203 2 5
17 Кондрашкин - 517 1 4.9
18 Ибадов - 420 2
19 Чепарухин - 214 1
20 Панкратов - 205 2
21 Борисов - 525 1
22 Дремов - 205 2
23 Щемирова - 205 1
24 Нижибицкий - 517 2 5
25 Горячих - 210 1
26 Захаров - 317 2
27 Ямшинин - ВВО 1

Кто не обнаружил себя в списках, пожалуйста, отпишитесь нам (bayesml@gmail.com). Если чью-то фамилию не разобрал, не взыщите - сообщите и мы исправим :)

Оформление задания

Результаты выполнения задания в виде отчета в формате PDF следует присылать на адрес bayesml@gmail.com с темой «[БММО13] Задание 2 <ФИО>». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом.

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