Байесовские методы машинного обучения (курс лекций, Д.П. Ветров, Д.А. Кропотов)/Задание 1

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

Перейти к: навигация, поиск


Перейти к основной странице спецкурса

Начало выполнения задания: 12 октября 2010 г.
Срок сдачи: 25 октября 2010 г., 23:59.

Рассмотрим модель посещаемости студентами одного курса лекции по спецкурсу. Пусть аудитория данного спецкурса состоит из студентов профильной кафедры, а также студентов других кафедр. Обозначим через a количество студентов, распределившихся на профильную кафедру, а через b — количество студентов других кафедр на курсе. Пусть студенты профильной кафедры посещают спецкурс с некоторой вероятностью p_1, а студенты остальных кафедр — с вероятностью p_2. Обозначим через c количество студентов на данной лекции. Тогда случайная величина c|a,b есть сумма двух случайных величин, распределенных по биномиальному закону B(a,p_1) и B(b,p_2) соответственно. Пусть далее на лекции по спецкурсу ведется запись студентов. При этом каждый студент записывается сам, а также, быть может, записывает своего товарища, которого на лекции на самом деле нет (просьба не воспринимать это как руководство к действию в реальности!!). Пусть студент записывает своего товарища с некоторой вероятностью p_3. Обозначим через d общее количество записавшихся на данной лекции. Тогда случайная величина d|c представляет собой сумму c и случайной величины, распределенной по биномиальному закону B(c,p_3). Для завершения задания вероятностной модели осталось определить априорные вероятности для a и для b. Пусть обе эти величины распределены равномерно в своих интервалах [a_{min},a_{max}] и [b_{min},b_{max}]. Таким образом, мы определили следующую вероятностную модель:
Модель 1

p(a,b,c,d)=p(d|c)p(c|a,b)p(a)p(b),

d|c \sim c + B(c,p_3),
c|a,b \sim B(a,p_1) + B(b,p_2),
a \sim R[a_{min},a_{max}],
b \sim R[b_{min},b_{max}].

Графическая модель для вероятностной модели 1
Графическая модель для вероятностной модели 1


Рассмотрим несколько упрощенную версию модели 1. Известно, что биномиальное распределение B(n,p) при большом количестве испытаний и маленькой вероятности успеха может быть с высокой точностью приближено пуассоновским распределением Poiss(\lambda) с \lambda = np. Известно также, что сумма двух пуассоновских распределений с параметрами \lambda_1 и \lambda_2 есть пуассоновское распределение с параметром \lambda_1+\lambda_2. Таким образом, мы можем сформулировать вероятностную модель, которая является приближенной версией модели 1:
Модель 2
p(a,b,c,d)=p(d|c)p(c|a,b)p(a)p(b),
d|c \sim c + B(c,p_3),
c|a,b \sim Poiss(ap_1+bp_2),
a \sim R[a_{min},a_{max}],
b \sim R[b_{min},b_{max}].


Рассмотрим теперь модель посещаемости нескольких лекций спецкурса. Будем считать, что посещаемости отдельных лекций являются независимыми. Тогда:
Модель 3

p(a,b,c_1,\dots,c_N,d_1,\dots,d_N)=\prod_{n=1}^Np(d_n|c_n)p(c_n|a,b)p(a)p(b),

d_n|c_n \sim c_n + B(c_n,p_3),
c_n|a,b \sim B(a,p_1) + B(b,p_2),
a \sim R[a_{min},a_{max}],
b \sim R[b_{min},b_{max}].

Графическая модель для вероятностной модели 3
Графическая модель для вероятностной модели 3


По аналогии с моделью 2 можно сформулировать упрощенную модель для модели 3:
Модель 4
p(a,b,c_1,\dots,c_N,d_1,\dots,d_N)=\prod_{n=1}^Np(d_n|c_n)p(c_n|a,b)p(a)p(b),
d_n|c_n \sim c_n + B(c_n,p_3),
c_n|a,b \sim Poiss(ap_1+bp_2),
a \sim R[a_{min},a_{max}],
b \sim R[b_{min},b_{max}].


Задание состоит из трех вариантов. Распределение студентов по вариантам см. ниже.

Вариант 1

Рассматривается модель 2 с параметрами a_{min}=15, a_{max}=30, b_{min}=250, b_{max}=350, p_1 = 0.5, p_2 = 0.05, p_3 = 0.5. Провести на компьютере следующие исследования:

  1. Найти математические ожидания и дисперсии априорных распределений для всех параметров a, b, c, d.
  2. Пронаблюдать, как происходит уточнение прогноза для величины c по мере прихода новой косвенной информации. Для этого построить графики и найти мат.ожидание и дисперсию для распределений p(c), p(c|b), p(c|a,b), p(c|a,b,d) при параметрах a,b,d, равных мат.ожиданиям своих априорных распределений, округленных до ближайшего целого.
  3. Определить, какая из величин a,b,d вносит больший вклад в уточнение прогноза для величины c (в смысле дисперсии распределения). Для этого убедиться в том, что \mathbb{D}[c|d]<\mathbb{D}[c|b] и \mathbb{D}[c|d]<\mathbb{D}[c|a] для любых допустимых значений a,b,d. Найти множество точек (a,b) таких, что \mathbb{D}[c|b]<\mathbb{D}[c|a]. Являются ли множества \{(a,b)|\mathbb{D}[c|b]<\mathbb{D}[c|a]\} и \{(a,b)|\mathbb{D}[c|b]\ge\mathbb{D}[c|a]\} линейно разделимыми?
  4. Провести временные замеры по оценке всех необходимых распределений p(c),p(c|a),p(c|b),p(c|d),p(c|a,b),p(c|a,b,d),p(d).

Взять в качестве диапазона допустимых значений для величины c интервал [0,a_{max}+b_{max}], а для величины d — интервал [0,2*(a_{max}+b_{max})].

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

Для студентов 4 курса и выше: необходимо дополнительно провести все исследования для точной модели 1 и сравнить результаты с аналогичными для модели 2. Привести пример оценки параметра, в котором разница между моделью 1 и 2 проявляется в большой степени.

Вариант 2

Рассматривается модель 2 с параметрами a_{min}=15, a_{max}=30, b_{min}=250, b_{max}=350, p_1 = 0.5, p_2 = 0.05, p_3 = 0.5. Провести на компьютере следующие исследования:

  1. Найти математические ожидания и дисперсии априорных распределений для всех параметров a, b, c, d.
  2. Пронаблюдать, как происходит уточнение прогноза для величины b по мере прихода новой косвенной информации. Для этого построить графики и найти мат.ожидание и дисперсию для распределений p(b), p(b|a), p(b|a,d) при параметрах a,d, равных мат.ожиданиям своих априорных распределений, округленных до ближайшего целого.
  3. Определить, при каких соотношениях параметров p_1,p_2 изменяется относительная важность параметров a,b для оценки величины c. Для этого найти множество точек \{(p_1,p_2)|\mathbb{D}[c|b]<\mathbb{D}[c|a]\} при a,b, равных мат.ожиданиям своих априорных распределений, округленных до ближайшего целого. Являются ли множества \{(p_1,p_2)|\mathbb{D}[c|b]<\mathbb{D}[c|a]\} и \{(p_1,p_2)|\mathbb{D}[c|b]\ge\mathbb{D}[c|a]\} линейно разделимыми?
  4. Провести временные замеры по оценке всех необходимых распределений p(c),p(c|a),p(c|b),p(b|a),p(b|a,d),p(d).

Взять в качестве диапазона допустимых значений для величины c интервал [0,a_{max}+b_{max}], а для величины d — интервал [0,2*(a_{max}+b_{max})].

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

Для студентов 4 курса и выше: необходимо дополнительно провести все исследования для точной модели 1 и сравнить результаты с аналогичными для модели 2. Привести пример оценки параметра, в котором разница между моделью 1 и 2 проявляется в большой степени.

Вариант 3

Рассматривается модель 4 с параметрами a_{min}=15, a_{max}=30, b_{min}=250, b_{max}=350, p_1 = 0.5, p_2 = 0.05, p_3 = 0.5, N = 50. Провести на компьютере следующие исследования:

  1. Найти математические ожидания и дисперсии априорных распределений для всех параметров a, b, c_n, d_n.
  2. Реализовать генератор выборки d_1,\dots,d_N из модели при заданных значениях параметров a,b.
  3. Пронаблюдать, как происходит уточнение прогноза для величины b по мере прихода новой косвенной информации. Для этого построить графики и найти мат.ожидание и дисперсию для распределений p(b), p(b|d_1), \dots, p(b|d_1,\dots,d_N), где выборка d_1,\dots,d_N 1) сгенерирована из модели при параметрах a,b, равных мат.ожиданиям своих априорных распределений, округленных до ближайшего целого и 2) d_1=\dots=d_N, где d_n равно мат.ожиданию своего априорного распределения, округленного до ближайшего целого. Провести аналогичный эксперимент, если дополнительно известно значение a. Сравнить результаты двух экспериментов.
  4. Провести временные замеры по оценке всех необходимых распределений p(c_n),p(d_n),p(b|d_1,\dots,d_n),p(b|a,d_1,\dots,d_n).

Взять в качестве диапазона допустимых значений для величины c интервал [0,a_{max}+b_{max}], а для величины d — интервал [0,2*(a_{max}+b_{max})].

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

Для студентов 4 курса и выше: необходимо дополнительно провести все исследования для точной модели 3 и сравнить результаты с аналогичными для модели 4.

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

Выполненное задание следует отправить письмом по адресу bayesml@gmail.com с заголовком письма «Задание 1 <Номер_группы> <ФИО>». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом. Новые версии будут рассматриваться только в самом крайнем случае.

В качестве программной среды реализации настоятельно рекомендуется использовать MATLAB. Тем не менее, никаких ограничений на выбор среды реализации не накладывается.

Присланный вариант задания должен содержать в себе:

  • ФИО исполнителя, номер группы и номер варианта задания.
  • Текстовый файл в формате PDF, содержащий описание проведенных исследований.
  • Все исходные коды с необходимыми комментариями.
  • Дополнительные комментарии или материалы, если необходимо.

Исходные коды должны включать в себя реализацию оценки распределений в виде отдельных функций. Прототип для функции оценки распределения p(c|a,d) для модели 2 имеет следующий вид:

Оценка распределения p(c|a,d) для модели 2
[p, c, m, v] = p2c_ad(a, d, params)
ВХОД
a — значение параметра a;
d — значение параметра d;
params — набор параметров вероятностной модели, структура с полями 'amin', 'amax', 'bmin', 'bmax', 'p1', 'p2', 'p3';
ВЫХОД
p — распределение вероятности, одномерный массив длины length(c);
c — носитель распределения, одномерный массив;
m — математическое ожидание распределения;
v — дисперсия распределения.

Прототипы функций для других распределений выглядят аналогично. Если в распределении переменных до или после | несколько, то в названии функции они идут в алфавитном порядке. Функция для оценки распределения p(b|a,d_1,\dots,d_N) для модели 3 имеет название p3b_ad, а входной параметр d является одномерным массивом длины N.

Генерация из распределения p(d_1,\dots,d_N|a,b) для модели 3
d = m3_generate(N, a, b, params)
ВХОД
N — количество лекций;
a — значение параметра a;
b — значение параметра b;
params — набор параметров вероятностной модели, структура с полями 'amin', 'amax', 'bmin', 'bmax', 'p1', 'p2', 'p3';
ВЫХОД
d — значения d_1,\dots,d_N, одномерный массив длины N.

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

Студентам, которые не нашли себя в этом списке, следует написать письмо по адресу bayesml@gmail.com с запросом номера варианта. В этом письме не забудьте указать свою фамилию и номер группы.

2-ой курс   3-ий курс   4-ый курс   5-ый курс и др.
 Участник   Группа   Вариант     Участник   Группа   Вариант     Участник   Группа   Вариант     Участник   Группа   Вариант 
Иванов Петр202 1   Карнаухов Денис315 1   Головин Антон417 2   Логачев Ю.М.517 1
Ромов Петр202 2   Елшин Денис317 2   Ермишин Федор421 3   Нокель Михаил520 2
Стефонишин Даниил202 3   Соколов Евгений317 3   Кухаренко А.И.421 1   Потапов Даниил521 2
Гавриков Михаил202 3   Мытрова Марина317 1   Третьяков А.И.431 1   Петров Александр521 3
Дворяков Кирилл202 1   Некрасов Константин317 2   Понамарев Д.И.431 2   Матюнин С.Б.521 1
Никитин М.Ю.202 2   Новиков Павел317 3   Астахов А.Н.431 3   Светличный Дмитрийв/о-2 1
Любич Илья205 3   Крючков Станислав319 1   Лихобабин С.М.431 2   Шаповалов Роман622 2
Подорога Анастасия205 1     Казаков Илья432 3  
Грачев Артем206 1
Гайнуллин А.Ф.207 3
Потапенко Анна207 2
Фонарев Александр208 2
Карев Александр209 1
Борисов Алексей209 3
Лобачева Е.М.209 1
Маллачиев К.А.209 2
Кузнецов Арсений209 2
Маянцев Кирилл213 3
Нимак Владимир215 1
Иванов Николай215 2
Баранов Виталий215 3
Борисов Михаил216 1
Личные инструменты