Графические модели (курс лекций)/2013/Задание 2

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

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{stop|Формулировка задания находится в стадии разработки. Убедительная просьба не приступать к выполн...)
Строка 3: Строка 3:
{{Main|Графические модели (курс лекций)}}
{{Main|Графические модели (курс лекций)}}
-
__TOC__
+
__NOTOC__
 +
 
 +
[[Изображение:GM13_task2_intro.jpg|600px]]
'''Начало выполнения задания''': 1 марта 2013 г.<br>
'''Начало выполнения задания''': 1 марта 2013 г.<br>
Строка 10: Строка 12:
Среда для выполнения задания — MATLAB.
Среда для выполнения задания — MATLAB.
-
== Вероятностные модели посещаемости курса ==
+
== Низкоплотностные коды ==
-
 
+
-
Рассмотрим модель посещаемости студентами одного курса лекции. Пусть аудитория данного курса состоит из студентов профильной кафедры, а также студентов других кафедр. Обозначим через <tex>a</tex> количество студентов, распределившихся на профильную кафедру, а через <tex>b</tex> — количество студентов других кафедр на курсе. Пусть студенты профильной кафедры посещают курс с некоторой вероятностью <tex>p_1</tex>, а студенты остальных кафедр — с вероятностью <tex>p_2</tex>. Обозначим через <tex>c</tex> количество студентов на данной лекции. Тогда случайная величина <tex>c|a,b</tex> есть сумма двух случайных величин, распределенных по биномиальному закону <tex>B(a,p_1)</tex> и <tex>B(b,p_2)</tex> соответственно. Пусть далее на лекции по курсу ведется запись студентов. При этом каждый студент записывается сам, а также, быть может, записывает своего товарища, которого на лекции на самом деле нет. Пусть студент записывает своего товарища с некоторой вероятностью <tex>p_3</tex>. Обозначим через <tex>d</tex> общее количество записавшихся на данной лекции. Тогда случайная величина <tex>d|c</tex> представляет собой сумму <tex>c</tex> и случайной величины, распределенной по биномиальному закону <tex>B(c,p_3)</tex>. Для завершения задания вероятностной модели осталось определить априорные вероятности для <tex>a</tex> и для <tex>b</tex>. Пусть обе эти величины распределены равномерно в своих интервалах <tex>[a_{min},a_{max}]</tex> и <tex>[b_{min},b_{max}]</tex>. Таким образом, мы определили следующую вероятностную модель:<br>
+
-
'''Модель 1'''<br>
+
-
{| class = "standard"
+
-
|-
+
-
|<tex>p(a,b,c,d)=p(d|c)p(c|a,b)p(a)p(b)</tex>,<br>
+
-
<tex>d|c \sim c + B(c,p_3)</tex>,<br>
+
-
<tex>c|a,b \sim B(a,p_1) + B(b,p_2)</tex>,<br>
+
-
<tex>a \sim R[a_{min},a_{max}]</tex>,<br>
+
-
<tex>b \sim R[b_{min},b_{max}]</tex>.<br>
+
-
| [[Изображение:BayesML2010_gm1.png|100px|thumb|Графическая модель для вероятностной модели 1]]
+
-
|-
+
-
|}
+
-
 
+
-
<br>Рассмотрим несколько упрощенную версию модели 1. Известно, что биномиальное распределение <tex>B(n,p)</tex> при большом количестве испытаний и маленькой вероятности успеха может быть с высокой точностью приближено пуассоновским распределением <tex>Poiss(\lambda)</tex> с <tex>\lambda = np</tex>. Известно также, что сумма двух пуассоновских распределений с параметрами <tex>\lambda_1</tex> и <tex>\lambda_2</tex> есть пуассоновское распределение с параметром <tex>\lambda_1+\lambda_2</tex>. Таким образом, мы можем сформулировать вероятностную модель, которая является приближенной версией модели 1:<br>
+
-
'''Модель 2'''<br>
+
-
<tex>p(a,b,c,d)=p(d|c)p(c|a,b)p(a)p(b)</tex>,<br>
+
-
<tex>d|c \sim c + B(c,p_3)</tex>,<br>
+
-
<tex>c|a,b \sim Poiss(ap_1+bp_2)</tex>,<br>
+
-
<tex>a \sim R[a_{min},a_{max}]</tex>,<br>
+
-
<tex>b \sim R[b_{min},b_{max}]</tex>.<br>
+
-
 
+
-
<br>Рассмотрим теперь модель посещаемости нескольких лекций курса. Будем считать, что посещаемости отдельных лекций являются независимыми. Тогда:<br>
+
-
'''Модель 3'''<br>
+
-
{| class = "standard"
+
-
|-
+
-
|<tex>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)</tex>,<br>
+
-
<tex>d_n|c_n \sim c_n + B(c_n,p_3)</tex>,<br>
+
-
<tex>c_n|a,b \sim B(a,p_1) + B(b,p_2)</tex>,<br>
+
-
<tex>a \sim R[a_{min},a_{max}]</tex>,<br>
+
-
<tex>b \sim R[b_{min},b_{max}]</tex>.<br>
+
-
| [[Изображение:BayesML2010_gm2.png|100px|thumb|Графическая модель для вероятностной модели 3]]
+
-
|-
+
-
|}
+
-
 
+
-
<br>По аналогии с моделью 2 можно сформулировать упрощенную модель для модели 3:<br>
+
-
'''Модель 4'''<br>
+
-
<tex>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)</tex>,<br>
+
-
<tex>d_n|c_n \sim c_n + B(c_n,p_3)</tex>,<br>
+
-
<tex>c_n|a,b \sim Poiss(ap_1+bp_2)</tex>,<br>
+
-
<tex>a \sim R[a_{min},a_{max}]</tex>,<br>
+
-
<tex>b \sim R[b_{min},b_{max}]</tex>.<br>
+
-
 
+
-
<br>Задание состоит из трех вариантов. Распределение студентов по вариантам см. [[Графические модели (курс лекций)/2013/Задание 1#Распределение студентов по вариантам|ниже]].
+
-
 
+
-
== Вариант 1 ==
+
-
Рассматривается модель 2 с параметрами <tex>a_{min}=15, a_{max}=30, b_{min}=250, b_{max}=350, p_1 = 0.5, p_2 = 0.05, p_3 = 0.5</tex>. Провести на компьютере следующие исследования:
+
-
# Найти математические ожидания и дисперсии априорных распределений для всех параметров <tex>a, b, c, d</tex>.
+
-
# Пронаблюдать, как происходит уточнение прогноза для величины <tex>c</tex> по мере прихода новой косвенной информации. Для этого построить графики и найти мат.ожидание и дисперсию для распределений <tex>p(c), p(c|b), p(c|a,b), p(c|a,b,d)</tex> при параметрах <tex>a,b,d</tex>, равных мат.ожиданиям своих априорных распределений, округленных до ближайшего целого.
+
-
# Определить, какая из величин <tex>a,b,d</tex> вносит больший вклад в уточнение прогноза для величины <tex>c</tex> (в смысле дисперсии распределения). Для этого убедиться в том, что <tex>\mathbb{D}[c|d]<\mathbb{D}[c|b]</tex> и <tex>\mathbb{D}[c|d]<\mathbb{D}[c|a]</tex> для любых допустимых значений <tex>a,b,d</tex>. Найти множество точек <tex>(a,b)</tex> таких, что <tex>\mathbb{D}[c|b]<\mathbb{D}[c|a]</tex>. Являются ли множества <tex>\{(a,b)|\mathbb{D}[c|b]<\mathbb{D}[c|a]\}</tex> и <tex>\{(a,b)|\mathbb{D}[c|b]\ge\mathbb{D}[c|a]\}</tex> линейно разделимыми?
+
-
# Провести временные замеры по оценке всех необходимых распределений <tex>p(c),p(c|a),p(c|b),p(c|d),p(c|a,b),p(c|a,b,d),p(d)</tex>.
+
-
# Провести исследования из пп. 1-4 для точной модели 1 и сравнить результаты с аналогичными для модели 2. Привести пример оценки параметра, в котором разница между моделью 1 и 2 проявляется в большой степени.
+
-
 
+
-
Взять в качестве диапазона допустимых значений для величины <tex>c</tex> интервал <tex>[0,a_{max}+b_{max}]</tex>, а для величины <tex>d</tex> — интервал <tex>[0,2*(a_{max}+b_{max})]</tex>.
+
-
 
+
-
При оценке выполнения задания будет учитываться эффективность программного кода. В частности, временные затраты на расчет отдельного распределения не должны превышать одной секунды.
+
-
 
+
-
== Вариант 2 ==
+
-
Рассматривается модель 2 с параметрами <tex>a_{min}=15, a_{max}=30, b_{min}=250, b_{max}=350, p_1 = 0.5, p_2 = 0.05, p_3 = 0.5</tex>. Провести на компьютере следующие исследования:
+
-
# Найти математические ожидания и дисперсии априорных распределений для всех параметров <tex>a, b, c, d</tex>.
+
-
# Пронаблюдать, как происходит уточнение прогноза для величины <tex>b</tex> по мере прихода новой косвенной информации. Для этого построить графики и найти мат.ожидание и дисперсию для распределений <tex>p(b), p(b|a), p(b|a,d)</tex> при параметрах <tex>a,d</tex>, равных мат.ожиданиям своих априорных распределений, округленных до ближайшего целого.
+
-
# Определить, при каких соотношениях параметров <tex>p_1,p_2</tex> изменяется относительная важность параметров <tex>a,b</tex> для оценки величины <tex>c</tex>. Для этого найти множество точек <tex>\{(p_1,p_2)|\mathbb{D}[c|b]<\mathbb{D}[c|a]\}</tex> при <tex>a,b</tex>, равных мат.ожиданиям своих априорных распределений, округленных до ближайшего целого. Являются ли множества <tex>\{(p_1,p_2)|\mathbb{D}[c|b]<\mathbb{D}[c|a]\}</tex> и <tex>\{(p_1,p_2)|\mathbb{D}[c|b]\ge\mathbb{D}[c|a]\}</tex> линейно разделимыми?
+
-
# Провести временные замеры по оценке всех необходимых распределений <tex>p(c),p(c|a),p(c|b),p(b|a),p(b|a,d),p(d)</tex>.
+
-
# Провести исследования из пп. 1-4 для точной модели 1 и сравнить результаты с аналогичными для модели 2. Привести пример оценки параметра, в котором разница между моделью 1 и 2 проявляется в большой степени.
+
-
 
+
-
Взять в качестве диапазона допустимых значений для величины <tex>c</tex> интервал <tex>[0,a_{max}+b_{max}]</tex>, а для величины <tex>d</tex> — интервал <tex>[0,2*(a_{max}+b_{max})]</tex>.
+
-
 
+
-
При оценке выполнения задания будет учитываться эффективность программного кода. В частности, временные затраты на расчет отдельного распределения не должны превышать одной секунды.
+
-
 
+
-
== Вариант 3 ==
+
-
Рассматривается модель 4 с параметрами <tex>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</tex>. Провести на компьютере следующие исследования:
+
-
# Найти математические ожидания и дисперсии априорных распределений для всех параметров <tex>a, b, c_n, d_n</tex>.
+
-
# Реализовать генератор выборки <tex>d_1,\dots,d_N</tex> из модели при заданных значениях параметров <tex>a,b</tex>.
+
-
# Пронаблюдать, как происходит уточнение прогноза для величины <tex>b</tex> по мере прихода новой косвенной информации. Для этого построить графики и найти мат.ожидание и дисперсию для распределений <tex>p(b), p(b|d_1), \dots, p(b|d_1,\dots,d_N)</tex>, где выборка <tex>d_1,\dots,d_N</tex> 1) сгенерирована из модели при параметрах <tex>a,b</tex>, равных мат.ожиданиям своих априорных распределений, округленных до ближайшего целого и 2) <tex>d_1=\dots=d_N</tex>, где <tex>d_n</tex> равно мат.ожиданию своего априорного распределения, округленного до ближайшего целого. Провести аналогичный эксперимент, если дополнительно известно значение <tex>a</tex>. Сравнить результаты двух экспериментов.
+
-
# Провести временные замеры по оценке всех необходимых распределений <tex>p(c_n),p(d_n),p(b|d_1,\dots,d_n),p(b|a,d_1,\dots,d_n)</tex>.
+
-
# Провести исследования из пп. 1-4 для точной модели 3 и сравнить результаты с аналогичными для модели 4.
+
-
 
+
-
Взять в качестве диапазона допустимых значений для величины <tex>c</tex> интервал <tex>[0,a_{max}+b_{max}]</tex>, а для величины <tex>d</tex> — интервал <tex>[0,2*(a_{max}+b_{max})]</tex>.
+
-
При оценке выполнения задания будет учитываться эффективность программного кода. В частности, временные затраты на расчет отдельного распределения не должны превышать одной секунды.
+
== Формулировка задания ==
== Оформление задания ==
== Оформление задания ==
-
Выполненное задание следует отправить письмом по адресу ''bayesml@gmail.com'' с заголовком письма «[ГМ13] Задание 1 <ФИО>». Убедительная просьба присылать выполненное задание '''только один раз''' с окончательным вариантом. Также убедительная просьба строго придерживаться заданных ниже прототипов реализуемых функций.
+
Выполненное задание следует отправить письмом по адресу ''bayesml@gmail.com'' с заголовком письма «[ГМ13] Задание 2 <ФИО>». Убедительная просьба присылать выполненное задание '''только один раз''' с окончательным вариантом. Также убедительная просьба строго придерживаться заданных ниже прототипов реализуемых функций.
Присланный вариант задания должен содержать в себе:
Присланный вариант задания должен содержать в себе:
-
* Текстовый файл в формате PDF с указанием ФИО и номера варианта, содержащий описание всех проведенных исследований.
+
* Текстовый файл в формате PDF с указанием ФИО, содержащий описание всех проведенных исследований.
* Все исходные коды с необходимыми комментариями.
* Все исходные коды с необходимыми комментариями.
Строка 159: Строка 83:
|d — значения <tex>d_1,\dots,d_N</tex>, вектор-столбец длины N.
|d — значения <tex>d_1,\dots,d_N</tex>, вектор-столбец длины N.
|}
|}
-
|}
 
-
 
-
== Распределение студентов по вариантам ==
 
-
 
-
{|class = "standard sortable"
 
-
! class="unsortable"|№ п/п !! Студент !! Вариант
 
-
|-
 
-
| align="center"|1 || Березин Алексей Андреевич || 1
 
-
|-
 
-
| align="center"|2 || [[Участник:Borman|Борисов Михаил Викторович]] || 3
 
-
|-
 
-
| align="center"|3 || Гавриков Михаил Игоревич || 3
 
-
|-
 
-
| align="center"|4 || Зак Евгений Михайлович || 3
 
-
|-
 
-
| align="center"|5 || Исмагилов Тимур Ниязович || 2
 
-
|-
 
-
| align="center"|6 || Кондрашкин Дмитрий Андреевич || 1
 
-
|-
 
-
| align="center"|7 || [[Участник:Kuraga|Куракин Александр Владимирович]] || 1
 
-
|-
 
-
| align="center"|8 || Лобачева Екатерина Максимовна || 2
 
-
|-
 
-
| align="center"|9 || Любимцева Мария Михайловна || 2
 
-
|-
 
-
| align="center"|10 || Малышева Екатерина Константиновна || 1
 
-
|-
 
-
| align="center"|11 || Морозова Дарья Юрьевна || 2
 
-
|-
 
-
| align="center"|12 || [[Участник:Nizhibitsky|Нижибицкий Евгений Алексеевич]] || 2
 
-
|-
 
-
| align="center"|13 || [[Участник:Novikov|Новиков Максим Сергеевич]] || 3
 
-
|-
 
-
| align="center"|14 || Огнева Дарья Сергеевна || 2
 
-
|-
 
-
| align="center"|15 || [[Участник:MoRandi91|Остапец Андрей Александрович]] || 3
 
-
|-
 
-
| align="center"|16 || Потапенко Анна Александровна || 1
 
-
|-
 
-
| align="center"|17 || [[Участник:Peter Romov|Ромов Петр Алексеевич]] || 1
 
-
|-
 
-
| align="center"|18 || [[Участник:Newo|Фонарев Александр Юрьевич]] || 1
 
-
|-
 
-
| align="center"|19 || Шаймарданов Ильдар Рифарович || 3
 
-
|-
 
|}
|}

Версия 18:42, 26 февраля 2013

Формулировка задания находится в стадии разработки. Убедительная просьба не приступать к выполнению задания до тех пор, пока это предупреждение не будет удалено.



Начало выполнения задания: 1 марта 2013 г.
Срок сдачи: 15 марта 2013 г., 23:59.

Среда для выполнения задания — MATLAB.

Низкоплотностные коды

Формулировка задания

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

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

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

  • Текстовый файл в формате 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.
Личные инструменты