Участник:Anton/Песочница

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

< Участник:Anton(Различия между версиями)
Перейти к: навигация, поиск
 
(61 промежуточная версия не показана)
Строка 1: Строка 1:
-
{{Задание|Anton|Vokov|8 января 2010}}
+
{{stop|
 +
'''Задание находится в разработке.'''<br/>
 +
Не приступайте к выполнению задания пока не убрано это сообщение.
 +
}}
-
'''Критерии однородности''' - это критерии проверки гипотез о том, что две (или более) выборки взяты из одного распределения вероятностей.
+
{{TOCright|300px}}
-
Рассмотрим такую классификацию критериев:
+
-
# '''Непараметрические (свободные от распределения) критерии однородности''' не предполагают присутствие какой-либо фундаментальной информации о законе распределения. Любое распределение можно описать ''параметром положения'', характеризующим центр группирования случайных величин, и ''параметром масштаба'', характеризующим степень рассеяния случайных величин относительно центра группирования. Когда закон распределения неизвестен, гипотезы о параметрах проверяются при помощи ''специальных критериев сдвига и масштаба''. Также существуют ''двухвыборочные критерии согласия''.
+
-
## Непараметрические критерии сдвига.
+
-
## Непараметрические критерии масштаба.
+
-
## Двухвыборочные критерии согласия.
+
-
# Если же принимаются какие-либо дополнительные предположения о законе распределения вероятностей, то можно применять
+
-
'''параметрические критерии однородности'''.
+
-
= Непараметрические критерии однородности =
+
{{Main|Графические модели (курс лекций)}}
-
== Непараметрические критерии сдвига ==
+
-
Проверяется [[Гипотеза сдвига|гипотеза сдвига]], согласно которой распределения двух выборок имеют одинаковую форму и отличаются только сдвигом на константу.
+
-
Пусть заданы две выборки
+
-
<tex>x^m = (x_1,\ldots,x_m),\; x_i \in \mathbb{R};\;\; y^n = (y_1,\ldots,y_n),\; y_i \in \mathbb{R}</tex>,взятые из неизвестных непрерывных распределений <tex>F(x)</tex> и <tex>G(y)</tex> соответственно.
+
-
'''Нулевая гипотеза:''' <tex>H_0: \quad F(x) = G(y - \mu)</tex>
+
[[Изображение:GM12 task4 intro.png‎ | 600px]]
-
Наиболее частая '''альтернативная гипотеза''': <tex>H_1: \quad F(x) \ne G(y - \mu)</tex>.
+
'''Начало выполнения задания''': 18 апреля 2012
-
Существует большое количество критериев, проверяющих эту гипотезу:
+
'''1-й этап сдачи задания''': {{ins|2 мая 2012, 23:59}}
-
*[[Быстрый критерий Кенуя]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 452 </ref>
+
-
[[Ранговые критерии]] сдвига для двух выборок:
+
'''2-й этап сдачи задания''': {{ins|9 мая 2012, 23:59}}
-
* [[Быстрый ранговый критерий]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 453 </ref>
+
-
* [[Критерий Уилкоксона-Манна-Уитни]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 454 </ref>
+
-
* [[Критерий Фишера-Йэйтса-Терри-Гёфдинга]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 459 </ref>
+
-
* [[Критерий Ван дер Вардена ]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 460 </ref>
+
-
* [[Медианный критерий]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 462</ref>
+
-
* [[Критерий Хаги]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 464 </ref>
+
-
* [[E-Критерий]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 465 </ref>
+
-
[[Ранговые критерии]] сдвига для нескольких (k>2) выборок:
+
Среда реализации для всех вариантов MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.
-
*[[Критерий Краскела-Уоллиса]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 466 </ref>
+
-
* [[Критерий Ван дер Вардена ]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 475 </ref>
+
-
*[[Медианный критерий]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 475</ref>
+
-
*[[Критерий Левиса]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 479</ref>
+
-
*[[Критерий Краузе]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c.481 </ref>
+
-
*[[Критерий Пейджа]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c.482 </ref>
+
-
*[[Критерий Вилкоксона-Вилкокс]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 471 </ref>
+
-
* [[Критерий Фишера-Йэйтса-Терри-Гёфдинга]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 473 </ref>
+
-
*[[Быстрый критерий Кенуя]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 473 </ref>
+
-
*[[Критерий Джонкхиера]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 477 </ref>
+
-
*[[Критерий Неменьи]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 469 </ref>
+
-
*[[Критерий Фридмана|Критерий Фридмена-Кендалла-Бэбингтона-Смита]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 484 </ref>
+
-
*[[Критерий Хеттманспергера]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 476 </ref>
+
-
*[[Критерий Андерсона-Каннемана-Шэча]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 486 </ref>
+
-
*[[Критерий со взвешенными ранжировками Даны Квейд]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 487 </ref>
+
-
*[[Критерий Кендалла-Эренберга]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 489 </ref>
+
-
*[[Критерий Ходжеса-Лемана-Сена]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. М.:&nbsp;Физматлит, 2006, c. 490 </ref>
+
-
== Непараметрические критерии масштаба ==
+
=== Сегментация изображений ===
-
Для двух выборок <tex>x^m = (x_1,\ldots,x_m),\; x_i \in \mathbb{R};\;\; y^n = (y_1,\ldots,y_n),\; y_i \in \mathbb{R}</tex>.
+
В рамках данного задания рассматривается задача сегментации изображений на два класса: машина и фон.
-
проверяется гипотеза о том, что они принадлежат одному и тому же распределению,
+
В дальнейшем работа осуществляется в терминах небольших сегментов изображения суперпикселей.
-
но с разным параметром масштаба.
+
Заметим, что по «суперпиксельной» сегментации изображения можно однозначно построить «попиксельную» сегментацию.
-
Если плотность распределения первой выборки — <tex>f(x)</tex>, а второй выборки
+
-
<tex>\frac{1}{\tau}f( \frac{x}{\tau})</tex>, то нулевая гипотеза <tex>H_0: \quad \tau \ne 1</tex>.
+
-
[[Ранговые критерии]] масштаба для двух выборок:
+
Ответом (сегментацией изображения) является аргминимум бинарной субмодулярной функции совместимости (максимизация супермодулярной функции), состоящей из унарных и парных потенциалов: <tex> E(X, Y, W) </tex>. Здесь X признаки, Y «суперпиксельная» сегментация,
-
*[[Критерий Ансари—Бредли]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 492 </ref>
+
W параметры модели. Функция Е выглядит следующим образом: <br>
-
*[[Критерий Сижела-Тьюки]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 495 </ref>
+
<tex> E(X, Y, W) = \sum_{p \in V} ( \vec{x}_p^T \vec{w}^U) y_p + \sum_{(p, q) \in E} (\vec{x}_{pq}^T \vec{w}^P) [y_p \neq y_q] </tex>
-
*[[Критерий Кейпена]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 496 </ref>
+
-
*[[Критерий Клотца]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 499 </ref>
+
-
*[[Критерий Сэвиджа]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. М.:&nbsp;Физматлит, 2006, c. 502 </ref>
+
-
*[[Критерий Муда]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. М.:&nbsp;Физматлит, 2006, c. 504 </ref>
+
-
*[[Критерий Сукхатме]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 505 </ref>
+
-
*[[Критерий Сэндвика-Олсона]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 507 </ref>
+
-
*[[Критерий Камата]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 509 </ref>
+
-
*[[Комбинированный критерий Буша-Винда]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 511 </ref>
+
-
[[Ранговые критерии]] масштаба нескольких (k>2) выборок:
+
Здесь V — множество суперпикселей изображения, Е — система соседства суперпикселей, вообще говоря, не являющаяся регулярной решеткой; переменные <tex>y_p</tex> — метки классов, 0 — фон, 1 — объект; <tex> \vec{x}_p </tex> — векторы унарных признаков для суперпикселей; <tex> \vec{x}_{pq} </tex> — векторы парных признаков для пар соседних суперпикселей; <tex> W = (\vec{w}^U, \vec{w}^P) </tex> — веса унарных и парных признаков.
-
*[[Критерий Бхапкара-Дешпанде]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. М.:&nbsp;Физматлит, 2006, c. 514 </ref>
+
-
== Двухвыборочные критерии согласия ==
+
Заметим, что если для всех пар соседних суперпикселей величины <tex> \vec{x}_{pq}^T \vec{w}^P </tex> неотрицательны, то энергию E можно эффективно минимизировать при помощи алгоритма построения минимального разреза графа.
-
*[[Двухвыборочный критерий Колмогорова-Смирнова]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 227 </ref>
+
-
*[[Критерий Катценбайссера-Хакля]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 228 </ref>
+
-
*[[Двухвыборочный критерий Андерсона]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 229 </ref>
+
-
= Параметрические критерии однородности =
+
Приведенный выше способ записи энергии E отличается от способа записи, разобранного на лекции, в двух местах:
-
== Сравнение параметров нормальных распределений ==
+
# слагаемые, образующие парные потенциалы, записывались так: <tex>\sum_{(p, q) \in E} \sum_{k, \ell \in \{0, 1\}} (\vec{x}_{pq}^T \vec{w}^P_{k\ell}) [y_p = k][y_q = \ell];</tex> в рамках данного задания для упрощения работы парные потенциалы ограничиваются только обобщенными потенциалами Поттса, что соответствует следующим ограничениям на веса: <tex>\vec{w}^P_{00} = \vec{w}^P_{11} = 0; \; \vec{w}^P_{10} = \vec{w}^P_{01}</tex>;
-
=== Сравнение двух средних значений ===
+
# слагаемые, образующие унарные потенциалы, записывались так: <tex>\sum_{k\in\{0, 1\}}\sum_{p \in V} ( \vec{x}_p^T \vec{w}^U_k) [y_p = k];</tex> в рамках данного задания для ускорения работы алгоритма вместо весов за все классы используются только веса, относящиеся классу «объект».
-
Имеются две выборки независимых случайных величин <tex> x_1, x_2, \dots, x_n; \qquad y_1, y_2, \dots, y_n.</tex>
+
-
Необходимо на основе выборочных данных установить наличие значимой разницы в средних двух совокупностей, из которых извлечены выборки.
+
-
'''Нулевая гипотеза:''' <tex> H_0:\quad \mu_1 = \mu_2 </tex>.
+
Ограничения накладываемые на веса, соответствующие парным признаком уменьшают гибкость модели. Упрощение, связанное с унарными потенциалами не влияет на гибкость модели (верно только для случая двух классов).
-
'''Альтернативы:''' <tex>H_1:\quad \mu_1 \neq \mu_2; \qquad H_1': \quad \mu_1 > \mu_2; \qquad H_1'':\quad \mu_1 < \mu_2.</tex>
+
В качестве унарных признаков обычно выбирают гистограммы по мешкам слов, построенных по каким-либо локальным дескрипторам изображений. В качестве парных признаков выбирают различных обобщенные модели Поттса; парный признак, равный одной и той же константе по всем парам соседних суперпикселей, соответствует обычной модели Поттса.
-
*''Сравнение при известных дисперсиях'' осуществляется при помощи [[Критерий Стьюдента| критерия Стьюдента]].
+
Параметры модели W можно настраивать при помощи структурного метода опорных векторов (sSVM), решая оптимизационную задачу при помощи метода отсекающих плоскостей.
-
*''Сравнение при неизвестных равных дисперсиях'' осуществляется при помощи [[Критерий Стьюдента| критерия Стьюдента]].
+
-
*''Сравнение при неизвестных неравных дисперсиях'' осуществляется при помощи модификаций [[Критерий Стьюдента| критерия Стьюдента]]: ''критерий Кохрена-Кокса'', ''Критерий Сатервайта'', ''критерий Уэлча''.
+
-
*''Сравнение двух выборочных средних в связанных выборках'' осуществляется при помощи [[Критерий Стьюдента| критерия Стьюдента]].
+
-
*[[Критерий Уолша]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 394 </ref> позволяет проверять гипотезу о принадлежности одного наблюдения нормальному распределению, генерирующему выборку.
+
-
*[[Критерий Волфа| Двухступентчатый двухвыборочный медианный критерий Волфа]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 395 </ref>
+
-
*[[Критерий Фишера]] для сравнения двух средних с одинаковыми дисперсиями. <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 396 </ref> Эквивалентен [[Критерий Стьюдента|критерию Стьюдента]] и основан на связи между распределениями Стьюдента и Фишера.
+
-
=== Сравнение нескольких средних значений ===
+
Поскольку классы не сбалансированы (на изображениях пикселей фона намного больше, чем пикселей объекта), расстояние Хэмминга между произвольной и правильной сегментациями не является адекватной мерой качества сегментации. В рамках данного задания ошибка сегментации определяется количеством неправильно распознанных пикселей каждого класса, взвешенным на общее количество пикселей этого класса на изображении:
-
Имеются k выборок из нормально распределенной совокупности <tex>x_{11},\dots,x_{1n_1}, \dots, x_{k1},\dots,x_{kn_k}. </tex>
+
-
'''Нулевая гипотеза''' <tex>H_0: \quad \mu_1=\dots=\mu_k</tex>
+
<tex> error(T, \hat{T}) = \frac{\sum_i [t_i \neq 1][\hat{t}_i = 1]}{\sum_i [\hat{t}_i = 1]} + \frac{\sum_i [t_i \neq 0][\hat{t}_i = 0]}{\sum_i [\hat{t}_i = 0]}</tex>.
-
'''Альтернатива''' <tex>H_1: \quad |\mu_{i+1} - \mu_0 | > 0 \qquad (i=1,\dots,k).</tex>
+
Здесь T — текущая разметка изображения, <tex>\hat{T} </tex> — правильная разметка; метка фона — 0, метка объекта — 1; все суммы берутся по всем пикселям изображения.
-
* Модифицированный [[Критерий Стьюдента|критерий Стьюдента]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 397 </ref> позволяет решать задачу в случае равных объемов выборок.
+
=== Задание ===
-
* [[Критерий "стьюдентизированного" размаха]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 399 </ref>
+
В рамках 1-го этапа задания необходимо
-
* [[Дисперсионный критерий]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 399 </ref>
+
# выписать формулу для ошибки, усредненной по классам в терминах суперпикселей Y;
-
* [[Критерий Полсона]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 402 </ref>
+
# показать как решать задачу <tex> \max_Y (-E(X, Y, W) + error(T(Y), \hat{T}))</tex> при помощи алгоритма построения разреза графа;
-
решает задачу отделения выборки с наибольшим средним значением от всех остальных.
+
# реализовать процедуру обучения при помощи структурного метода опорных векторов (библиотеки SVM-struct) и процедуру тестирования для задачи сегментации изображений;
-
* [[Критерий Тьюки|Критерий Тьюки (метод прямого сравнения)]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 403 </ref>
+
# протестировать реализованные процедуры на модельных данных, используя хотя бы 1 парный признак;
-
* [[Критерий Тьюки|Критерий "стьюдентизированного" максимума (обобщенный критерий Тьюки)]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 405 </ref>
+
# написать отчет в формате PDF с описанием всех проведенных исследований.
-
* [[Критерий Шеффе]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 406 </ref>
+
-
* [[Критерий Стьюдента-Ньюмена-Кейлса]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 407 </ref>
+
-
* [[Критерий Дункана]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 408 </ref>
+
-
* [[Критерий Линка-Уоллеса]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 408 </ref>
+
-
=== Сравнение двух дисперсий ===
+
В рамках 2-го этапа задания необходимо
-
Для двух нормально распределенных случайных величин <tex>x_1, \dots, x_n; \qquad y_1, \dots, y_m</tex> необходимо проверить гипотезу равенства дисперсий, опираясь на их выборочные оценки.
+
# придумать не менее 5 различных парных признаков;
 +
# при помощи [[Скользящий контроль| скользящего контроля]] подобрать структурный параметр метода С и получить оценку точности алгоритма на обучающей выборке;
 +
# при помощи обученного сегментатора получить разметки тестовой выборки изображения; привести примеры удачных и неудачных сегментаций; студенты, получившие наилучшие результаты с точки зрения взвешенного среднего, получат дополнительные баллы;
 +
# написать отчет в формате PDF с описанием всех проведенных исследований.
-
*[[Критерий Фишера]]
+
Для выполнения задания выдается:
-
*[[Критерий Романовского]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 413 </ref>
+
# реализация алгоритма построения разреза графов, совместимая с MATLAB;
-
*[[Критерий отношения размахов]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 414 </ref>
+
# реализации структурного метода опорных векторов в библиотеке SVM-struct с интерфейсом под MATLAB: http://www.vlfeat.org/~vedaldi/code/svm-struct-matlab.html
-
*[[Критерий "стьюдентизированного" размаха]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 415 </ref>
+
# исходные изображения: обучающая и тестовая выборки;
-
*[[Критерий Аризоно-Охты]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 415 </ref>
+
# правильная сегментация изображений обучающей выборки;
 +
# суперпиксели изображений обучающей и тестовой выборок, найденные при помощи библиотеки [http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/resources.html BSR];
 +
# признаки для каждого суперпикселя; вектором признаков является гистограмма по мешку из 128 слов, построенному по [http://en.wikipedia.org/wiki/Scale-invariant_feature_transform SIFT]; признаки посчитаны при помощи библиотеки [http://www.vlfeat.org/ VLFeat].
-
=== Сравнение нескольких дисперсий ===
+
=== Описание форматов данных ===
-
Пусть <tex> \sigma_1^2, \dots, \sigma_k^2 </tex> - дисперсии выборок
+
-
'''Нулевая гипотеза''' <tex>H_0: \quad \sigma_1^2=\dots=\sigma_k^2</tex>
+
Названия файлов, относящихся к каждому объекту обучающей выборки, начинаются с названия объекта: imgTrain_{номер файла}. Для каждого объекта выданы следующие файлы:
 +
*изображение: imgTrain_XXX.png
 +
*правильная разметка изображения: imgTrain_XXX_groundtruth.png
 +
*mat-файлы, содержащие признаки и суперпиксели для изображения: imgTrain_XXX_data.mat. В каждом файле присутствуют следующие переменные:
 +
** superpixelMap — массив типа double размера, равного размеру изображения; каждому пикселю соответствует номер суперпикселя, в который он попадает;
 +
** neighborhood — массив типа double размером #(пары соседних супепикселей) x 2; каждая строка содержит номера соседних суперпикселей;
 +
** unaryFeatures — массив типа single размером #(унарные признаки) x #(суперпиксели).
-
'''Альтернатива''' <tex>H_1:\quad \sigma_1^2 \neq \sigma_i^2 \qquad (i=2,\dots,k).</tex>
+
Здесь и далее под #(название объекта) обозначается количество объектов.
-
*[[Критерий Бартлетта]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 417 </ref>
+
Названия файлов, относящихся к каждому объекту тестовой выборки, начинаются с названия объекта: imgTest_{номер файла}. Для каждого объекта выданы следующие файлы:
-
*[[Критерий Кокрена]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 418 </ref>
+
*изображение: imgTest_XXX.png
-
*[[Критерий Неймана-Пирсона]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 419 </ref>
+
*mat-файлы, содержащие признаки и суперпиксели для изображения: imgTest_XXX_data.mat. В каждом файле присутствуют следующие переменные:
-
*[[Критерий Блисса-Кохрана-Тьюки]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. М.:&nbsp;Физматлит, 2006, c. 421 </ref>
+
** superpixelMap массив типа double размера, равного размеру изображения; каждому пикселю соответствует номер суперпикселя, в который он попадает;
-
*[[Критерий Хартли]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 421 </ref>
+
** neighborhood массив типа double размером #(пары соседних супепикселей) x 2; каждая строка содержит номера соседних суперпикселей;
-
*[[Критерий Кэдуэлла-Лесли-Брауна]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. М.:&nbsp;Физматлит, 2006, c. 422 </ref>
+
** unaryFeatures массив типа single размером #(унарные признаки) x #(суперпиксели).
-
*[[Критерий Самиуддина]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. М.:&nbsp;Физматлит, 2006, c. 423 </ref>
+
-
== Сравнение параметров экспоненциальных распределений ==
+
=== Спецификация реализуемых функций ===
-
=== Сравнение двух параметров ===
+
-
Предположим, имеются две выборки из экспоненциальных распределений: <tex>x_1, \dots, x_n; \qquad y_1,\dots, y_m,</tex> т.е. из распределений с плотностями <tex> f(x) = \frac{1}{\nu_1} \exp{\left( -\frac{x}{\nu_1} \right)}; \qquad g(y) = \frac{1}{\nu_2} \exp{\left( -\frac{y}{\nu_2} \right)}</tex>. Здесь <tex>\nu_1, \quad \nu_2</tex> - параметры распределений (средние значения). Иногда на практике (задачи анализа надежности объектов) используют параметр <tex> \lambda = \fra{1}{\nu} </tex> - интенсивность отказов.
+
-
*[[Критерий Фишера]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. М.:&nbsp;Физматлит, 2006, c. 424 </ref>
+
{|class="standard"
-
*[[Двухвыборочный пуассоновский критерий]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. М.:&nbsp;Физматлит, 2006, c. 426 </ref>
+
!''Обучение''
 +
|-
 +
|[model, time] = train_sSVM(X, Y, options)
 +
|-
 +
|ВХОД
 +
|-
 +
|
 +
{|border="0"
 +
|X обучающая выборка, массив типа cell размера #(объекты в выборке) x 1; каждый элемент массива представляет собой структуру со следующими полями:
 +
|-
 +
|&nbsp;&nbsp; 'superpixelMap' — массив типа double размера, равного размеру изображения; каждому пикселю соответствует номер суперпикселя, в который он попадает;
 +
|-
 +
|&nbsp;&nbsp; 'unaryFeatures' — массив типа single размером #(унарные признаки) x #(суперпиксели);
 +
|-
 +
|&nbsp;&nbsp; 'pairwiseFeatures' — массив типа double размером #(пары соседних супепикселей) x (#(парные признаки) + 2); первые два столбца содержат номера соседних суперпикселей; столбцы, начиная с 3-го содержат парные признаки;
 +
|-
 +
|Y — ответы на обучающей выборки, массив типа cell размера #(объекты в выборке) x 1; каждый элемент содержит массив типа logical размера, равному размеру изображения;
 +
|-
 +
|options — набор параметров метода, структура с полями:
 +
|-
 +
|&nbsp;&nbsp; 'С' — параметр C структурного метода опорных векторов;
 +
|-
 +
|&nbsp;&nbsp; 'eps' — порог для добавления ограничений в рамках метода отсекающих плоскостей;
 +
|}
 +
|-
 +
|ВЫХОД
 +
|-
 +
|
 +
{|
 +
|model — модель, обученная при помощи вашего метода; вектор типа double длины #(унарные признаки) + #(парные признаки).
 +
|-
 +
|time — время работы алгоритма;
 +
|}
 +
|}
-
=== Сравнение нескольких (k>1) параметров ===
 
-
*[[Критерий Дэвида]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 429 </ref>
 
-
*[[Критерий максимального правдоподобия]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 430 </ref>
 
-
*[[Критерий Нагарсенкера]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 431 </ref>
 
-
*[[Критерий Чена]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 432 </ref>
 
-
*[[Комбинированный критерий Сингха]] <ref> ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006, c. 431 </ref>
 
-
=Ссылки=
+
{|class="standard"
-
<references/>
+
!''Предсказание''
 +
|-
 +
|Y = predict_sSVM(X, model)
 +
|-
 +
|ВХОД
 +
|-
 +
|
 +
{|border="0"
 +
|X — выборка, массив типа cell размера #(объекты в выборке) x 1; каждый элемент массива представляет собой структуру со следующими полями:
 +
|-
 +
|&nbsp;&nbsp; 'superpixelMap' — массив типа double размера, равного размеру изображения; каждому пикселю соответствует номер суперпикселя, в который он попадает;
 +
|-
 +
|&nbsp;&nbsp; 'unaryFeatures' — массив типа single размером #(унарные признаки) x #(суперпиксели);
 +
|-
 +
|&nbsp;&nbsp; 'pairwiseFeatures' — массив типа double размером #(пары соседних супепикселей) x (#(парные признаки) + 2); первые два столбца содержат номера соседних суперпикселей; столбцы, начиная с 3-го содержат парные признаки;
 +
|-
 +
|model — модель, обученная при помощи вашего метода; вектор типа double длины #(унарные признаки) + #(парные признаки);
 +
|}
 +
|-
 +
|ВЫХОД
 +
|-
 +
|
 +
{|
 +
|Y — ответы на выборке X, массив типа cell размера #(объекты в выборке) x 1; каждый элемент содержит массив типа logical размера, равному размеру изображения;
 +
|}
 +
|}
-
=Литература=
 
-
# ''Кобзарь А. И.'' Прикладная математическая статистика. — М.:&nbsp;Физматлит, 2006.
 
-
# ''Лагутин М. Б.'' Наглядная математическая статистика. В двух томах. — М.: П-центр, 2003.
 
-
= См. также =
+
{|class="standard"
-
* [[Проверка статистических гипотез]] — о методологии проверки статистических гипотез.
+
!''Обучение и предсказание для базы с машинами''
-
* [[Статистика (функция выборки)]]
+
|-
-
* [[Критерии согласия]]
+
|[train_error, test_Y] = cars()
 +
|-
 +
|ВЫХОД
 +
|-
 +
|
 +
{|
 +
|train_error — ошибка на обучающей выборке;
 +
|-
 +
|test_Y — ответы на тестовой выборке, массив типа cell размера N x 1; каждый элемент содержит массив типа logical размера, равному размеру изображения.
 +
|}
 +
|}
 +
 
 +
В каталоге, из которого будет запускаться решение при проверке, будет лежать выданный каталог с данными.
 +
 
 +
=== Рекомендации по выполнению задания ===
 +
# Библиотека SVM-struct не позволяет установить ограничения на знак весов парных признаков <tex> \vec{w}^P </tex>. Для минимизации получающихся несубмодулярных функций рекомендуется отбрасывать несубмодулярные ребра.
 +
# В качестве модельных данных рекомендуется использовать выборку, состоящую из 2-3 изображений обучающей выборки. При правильной реализации алгоритма точность сегментации изображений, использовавшихся при обучении должна быть высокой (более 97% в терминах ошибки, усредненной по классам).
 +
# Для работы с библиотекой SVM-struct необходимо реализовать функцию поиска наиболее нарушаемого ограничения (CONSTRAINTFN), функцию построения вектора обобщенных признаков (FEATUREN), функцию потерь (LOSSFN). Библиотеку SVMstruct рекомендуется запускать со следующими параметрами: -p 1 -o 2 -w 4 -v 3 -y 0 -c <ваш C> -e <ваш eps>.
 +
# На этапе отладки параметр eps стоит выбрать достаточно большим (например, 10), чтобы уменьшить время работы алгоритма. На этапе экспериментов значение eps стоит уменьшить на несколько порядков.
 +
# При правильной реализации метода одна операция обучение sSVM на полной выборке должна работать не более получаса.
 +
# В качестве процедуры скользящего контроля рекомендуется выбрать схему [[Скользящий контроль| контроля по 2 блокам]] (2-fold CV).
 +
# Параметр С рекомендуется перебирать по равномерной в логарифмической шкале сетке. При этом в крайних значениях нужно получить ситуации недообучения и переобучения. Начинать перебор лучше с заведомо заниженных значений параметра С, поскольку в этом случае метод работает быстрее.
 +
 
 +
=== Данные для выполнения задания ===
 +
 
 +
[[Media:GM_GraphCut.zip|graphCut]] — MATLAB интерфейс к разрезам графов.
 +
 
 +
[https://docs.google.com/open?id=0B_PZC3alifN6WDExQlR6cktSaUU База данных].
 +
 
 +
[http://www.vlfeat.org/~vedaldi/code/svm-struct-matlab.html MATLAB библиотека SVM-struct]
 +
 
 +
=== Оформление задания ===
 +
Выполненный вариант задания необходимо прислать письмом по адресу ''bayesml@gmail.com'' с темой «Задание 5. ФИО». Убедительная просьба присылать выполненное задание '''только один раз''' с окончательным вариантом. Новые версии будут рассматриваться только в самом крайнем случае. Также убедительная просьба строго придерживаться заданной выше спецификации реализуемых функций. Очень трудно проверять большое количество заданий, если у каждого будет свой формат реализации.
 +
 
 +
Письмо должно содержать:
 +
*PDF-файл с описанием проведенных исследований (отчет должен включать в себя описание выполнения каждого пункта задания с приведением соответствующих графиков, изображений, чисел)
 +
*train_sSVM.m, predict_sSVM.m, cars.m
 +
*разметку тестовой выборки в таком же формате, как выдана разметка обучающей выборки
 +
*Набор вспомогательных файлов при необходимости

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

Задание находится в разработке.

Не приступайте к выполнению задания пока не убрано это сообщение.


Содержание

Начало выполнения задания: 18 апреля 2012

1-й этап сдачи задания: 2 мая 2012, 23:59

2-й этап сдачи задания: 9 мая 2012, 23:59

Среда реализации для всех вариантов — MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.

Сегментация изображений

В рамках данного задания рассматривается задача сегментации изображений на два класса: машина и фон. В дальнейшем работа осуществляется в терминах небольших сегментов изображения — суперпикселей. Заметим, что по «суперпиксельной» сегментации изображения можно однозначно построить «попиксельную» сегментацию.

Ответом (сегментацией изображения) является аргминимум бинарной субмодулярной функции совместимости (максимизация супермодулярной функции), состоящей из унарных и парных потенциалов:  E(X, Y, W) . Здесь X — признаки, Y — «суперпиксельная» сегментация, W — параметры модели. Функция Е выглядит следующим образом:
 E(X, Y, W) = \sum_{p \in V} ( \vec{x}_p^T \vec{w}^U) y_p + \sum_{(p, q) \in E} (\vec{x}_{pq}^T \vec{w}^P) [y_p \neq y_q]

Здесь V — множество суперпикселей изображения, Е — система соседства суперпикселей, вообще говоря, не являющаяся регулярной решеткой; переменные y_p — метки классов, 0 — фон, 1 — объект;  \vec{x}_p  — векторы унарных признаков для суперпикселей;  \vec{x}_{pq}  — векторы парных признаков для пар соседних суперпикселей;  W = (\vec{w}^U, \vec{w}^P) — веса унарных и парных признаков.

Заметим, что если для всех пар соседних суперпикселей величины  \vec{x}_{pq}^T \vec{w}^P неотрицательны, то энергию E можно эффективно минимизировать при помощи алгоритма построения минимального разреза графа.

Приведенный выше способ записи энергии E отличается от способа записи, разобранного на лекции, в двух местах:

  1. слагаемые, образующие парные потенциалы, записывались так: \sum_{(p, q) \in E} \sum_{k, \ell \in \{0, 1\}} (\vec{x}_{pq}^T \vec{w}^P_{k\ell}) [y_p = k][y_q = \ell]; в рамках данного задания для упрощения работы парные потенциалы ограничиваются только обобщенными потенциалами Поттса, что соответствует следующим ограничениям на веса: \vec{w}^P_{00} = \vec{w}^P_{11} = 0; \; \vec{w}^P_{10} = \vec{w}^P_{01};
  2. слагаемые, образующие унарные потенциалы, записывались так: \sum_{k\in\{0, 1\}}\sum_{p \in V} ( \vec{x}_p^T \vec{w}^U_k) [y_p = k]; в рамках данного задания для ускорения работы алгоритма вместо весов за все классы используются только веса, относящиеся классу «объект».

Ограничения накладываемые на веса, соответствующие парным признаком уменьшают гибкость модели. Упрощение, связанное с унарными потенциалами не влияет на гибкость модели (верно только для случая двух классов).

В качестве унарных признаков обычно выбирают гистограммы по мешкам слов, построенных по каким-либо локальным дескрипторам изображений. В качестве парных признаков выбирают различных обобщенные модели Поттса; парный признак, равный одной и той же константе по всем парам соседних суперпикселей, соответствует обычной модели Поттса.

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

Поскольку классы не сбалансированы (на изображениях пикселей фона намного больше, чем пикселей объекта), расстояние Хэмминга между произвольной и правильной сегментациями не является адекватной мерой качества сегментации. В рамках данного задания ошибка сегментации определяется количеством неправильно распознанных пикселей каждого класса, взвешенным на общее количество пикселей этого класса на изображении:

 error(T, \hat{T}) = \frac{\sum_i [t_i \neq 1][\hat{t}_i = 1]}{\sum_i [\hat{t}_i = 1]} + \frac{\sum_i [t_i \neq 0][\hat{t}_i = 0]}{\sum_i [\hat{t}_i = 0]}.

Здесь T — текущая разметка изображения, \hat{T} — правильная разметка; метка фона — 0, метка объекта — 1; все суммы берутся по всем пикселям изображения.

Задание

В рамках 1-го этапа задания необходимо

  1. выписать формулу для ошибки, усредненной по классам в терминах суперпикселей Y;
  2. показать как решать задачу  \max_Y (-E(X, Y, W)  + error(T(Y), \hat{T})) при помощи алгоритма построения разреза графа;
  3. реализовать процедуру обучения при помощи структурного метода опорных векторов (библиотеки SVM-struct) и процедуру тестирования для задачи сегментации изображений;
  4. протестировать реализованные процедуры на модельных данных, используя хотя бы 1 парный признак;
  5. написать отчет в формате PDF с описанием всех проведенных исследований.

В рамках 2-го этапа задания необходимо

  1. придумать не менее 5 различных парных признаков;
  2. при помощи скользящего контроля подобрать структурный параметр метода С и получить оценку точности алгоритма на обучающей выборке;
  3. при помощи обученного сегментатора получить разметки тестовой выборки изображения; привести примеры удачных и неудачных сегментаций; студенты, получившие наилучшие результаты с точки зрения взвешенного среднего, получат дополнительные баллы;
  4. написать отчет в формате PDF с описанием всех проведенных исследований.

Для выполнения задания выдается:

  1. реализация алгоритма построения разреза графов, совместимая с MATLAB;
  2. реализации структурного метода опорных векторов в библиотеке SVM-struct с интерфейсом под MATLAB: http://www.vlfeat.org/~vedaldi/code/svm-struct-matlab.html
  3. исходные изображения: обучающая и тестовая выборки;
  4. правильная сегментация изображений обучающей выборки;
  5. суперпиксели изображений обучающей и тестовой выборок, найденные при помощи библиотеки BSR;
  6. признаки для каждого суперпикселя; вектором признаков является гистограмма по мешку из 128 слов, построенному по SIFT; признаки посчитаны при помощи библиотеки VLFeat.

Описание форматов данных

Названия файлов, относящихся к каждому объекту обучающей выборки, начинаются с названия объекта: imgTrain_{номер файла}. Для каждого объекта выданы следующие файлы:

  • изображение: imgTrain_XXX.png
  • правильная разметка изображения: imgTrain_XXX_groundtruth.png
  • mat-файлы, содержащие признаки и суперпиксели для изображения: imgTrain_XXX_data.mat. В каждом файле присутствуют следующие переменные:
    • superpixelMap — массив типа double размера, равного размеру изображения; каждому пикселю соответствует номер суперпикселя, в который он попадает;
    • neighborhood — массив типа double размером #(пары соседних супепикселей) x 2; каждая строка содержит номера соседних суперпикселей;
    • unaryFeatures — массив типа single размером #(унарные признаки) x #(суперпиксели).

Здесь и далее под #(название объекта) обозначается количество объектов.

Названия файлов, относящихся к каждому объекту тестовой выборки, начинаются с названия объекта: imgTest_{номер файла}. Для каждого объекта выданы следующие файлы:

  • изображение: imgTest_XXX.png
  • mat-файлы, содержащие признаки и суперпиксели для изображения: imgTest_XXX_data.mat. В каждом файле присутствуют следующие переменные:
    • superpixelMap — массив типа double размера, равного размеру изображения; каждому пикселю соответствует номер суперпикселя, в который он попадает;
    • neighborhood — массив типа double размером #(пары соседних супепикселей) x 2; каждая строка содержит номера соседних суперпикселей;
    • unaryFeatures — массив типа single размером #(унарные признаки) x #(суперпиксели).

Спецификация реализуемых функций

Обучение
[model, time] = train_sSVM(X, Y, options)
ВХОД
X — обучающая выборка, массив типа cell размера #(объекты в выборке) x 1; каждый элемент массива представляет собой структуру со следующими полями:
   'superpixelMap' — массив типа double размера, равного размеру изображения; каждому пикселю соответствует номер суперпикселя, в который он попадает;
   'unaryFeatures' — массив типа single размером #(унарные признаки) x #(суперпиксели);
   'pairwiseFeatures' — массив типа double размером #(пары соседних супепикселей) x (#(парные признаки) + 2); первые два столбца содержат номера соседних суперпикселей; столбцы, начиная с 3-го содержат парные признаки;
Y — ответы на обучающей выборки, массив типа cell размера #(объекты в выборке) x 1; каждый элемент содержит массив типа logical размера, равному размеру изображения;
options — набор параметров метода, структура с полями:
   'С' — параметр C структурного метода опорных векторов;
   'eps' — порог для добавления ограничений в рамках метода отсекающих плоскостей;
ВЫХОД
model — модель, обученная при помощи вашего метода; вектор типа double длины #(унарные признаки) + #(парные признаки).
time — время работы алгоритма;


Предсказание
Y = predict_sSVM(X, model)
ВХОД
X — выборка, массив типа cell размера #(объекты в выборке) x 1; каждый элемент массива представляет собой структуру со следующими полями:
   'superpixelMap' — массив типа double размера, равного размеру изображения; каждому пикселю соответствует номер суперпикселя, в который он попадает;
   'unaryFeatures' — массив типа single размером #(унарные признаки) x #(суперпиксели);
   'pairwiseFeatures' — массив типа double размером #(пары соседних супепикселей) x (#(парные признаки) + 2); первые два столбца содержат номера соседних суперпикселей; столбцы, начиная с 3-го содержат парные признаки;
model — модель, обученная при помощи вашего метода; вектор типа double длины #(унарные признаки) + #(парные признаки);
ВЫХОД
Y — ответы на выборке X, массив типа cell размера #(объекты в выборке) x 1; каждый элемент содержит массив типа logical размера, равному размеру изображения;


Обучение и предсказание для базы с машинами
[train_error, test_Y] = cars()
ВЫХОД
train_error — ошибка на обучающей выборке;
test_Y — ответы на тестовой выборке, массив типа cell размера N x 1; каждый элемент содержит массив типа logical размера, равному размеру изображения.

В каталоге, из которого будет запускаться решение при проверке, будет лежать выданный каталог с данными.

Рекомендации по выполнению задания

  1. Библиотека SVM-struct не позволяет установить ограничения на знак весов парных признаков  \vec{w}^P . Для минимизации получающихся несубмодулярных функций рекомендуется отбрасывать несубмодулярные ребра.
  2. В качестве модельных данных рекомендуется использовать выборку, состоящую из 2-3 изображений обучающей выборки. При правильной реализации алгоритма точность сегментации изображений, использовавшихся при обучении должна быть высокой (более 97% в терминах ошибки, усредненной по классам).
  3. Для работы с библиотекой SVM-struct необходимо реализовать функцию поиска наиболее нарушаемого ограничения (CONSTRAINTFN), функцию построения вектора обобщенных признаков (FEATUREN), функцию потерь (LOSSFN). Библиотеку SVMstruct рекомендуется запускать со следующими параметрами: -p 1 -o 2 -w 4 -v 3 -y 0 -c <ваш C> -e <ваш eps>.
  4. На этапе отладки параметр eps стоит выбрать достаточно большим (например, 10), чтобы уменьшить время работы алгоритма. На этапе экспериментов значение eps стоит уменьшить на несколько порядков.
  5. При правильной реализации метода одна операция обучение sSVM на полной выборке должна работать не более получаса.
  6. В качестве процедуры скользящего контроля рекомендуется выбрать схему контроля по 2 блокам (2-fold CV).
  7. Параметр С рекомендуется перебирать по равномерной в логарифмической шкале сетке. При этом в крайних значениях нужно получить ситуации недообучения и переобучения. Начинать перебор лучше с заведомо заниженных значений параметра С, поскольку в этом случае метод работает быстрее.

Данные для выполнения задания

graphCut — MATLAB интерфейс к разрезам графов.

База данных.

MATLAB библиотека SVM-struct

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

Выполненный вариант задания необходимо прислать письмом по адресу bayesml@gmail.com с темой «Задание 5. ФИО». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом. Новые версии будут рассматриваться только в самом крайнем случае. Также убедительная просьба строго придерживаться заданной выше спецификации реализуемых функций. Очень трудно проверять большое количество заданий, если у каждого будет свой формат реализации.

Письмо должно содержать:

  • PDF-файл с описанием проведенных исследований (отчет должен включать в себя описание выполнения каждого пункта задания с приведением соответствующих графиков, изображений, чисел)
  • train_sSVM.m, predict_sSVM.m, cars.m
  • разметку тестовой выборки в таком же формате, как выдана разметка обучающей выборки
  • Набор вспомогательных файлов при необходимости
Личные инструменты