Тупиковые тесты
Материал из MachineLearning.
м |
м (→Формулировка задачи) |
||
(17 промежуточных версий не показаны.) | |||
Строка 4: | Строка 4: | ||
==Описание АВО, основанных на тупиковых тестах== | ==Описание АВО, основанных на тупиковых тестах== | ||
===Формулировка задачи=== | ===Формулировка задачи=== | ||
- | '''Задача распознавания:''' <tex>Y=\bigcup_{i=1\ldots l}{Y_i}</tex> | + | '''Задача распознавания:''' Дано <tex>\ Y=\bigcup_{i=1\ldots l}{Y_i}\ </tex> — множество непересекающихся классов объектов.<br /> |
- | + | Дана первоначальная информация <tex>I_0</tex> (обучающая) и описание некоторого объекта <tex>I(x)</tex>, <tex>x \in Y</tex>.<br /> | |
Объект задается через набор числовых признаков <tex>X=(x_1,\ldots,x_n)</tex>.<br /> | Объект задается через набор числовых признаков <tex>X=(x_1,\ldots,x_n)</tex>.<br /> | ||
Задача распознавания состоит в определении включения заданного объекта <tex>x</tex> в классы <tex>Y_i</tex>.<br /> | Задача распознавания состоит в определении включения заданного объекта <tex>x</tex> в классы <tex>Y_i</tex>.<br /> | ||
Строка 30: | Строка 30: | ||
*Вводится ''функция близости'' для двух объектов по опорному множеству <tex>\omega</tex> :<br /> | *Вводится ''функция близости'' для двух объектов по опорному множеству <tex>\omega</tex> :<br /> | ||
<tex> | <tex> | ||
- | B_\omega(X, X')=\bigwedge_{s \in \omega}{[\rho_s (X, X') \leq \varepsilon_s]}</tex> | + | B_\omega(X, X')=\bigwedge_{s \in \omega}{[\rho_s (X, X') \leq \varepsilon_s]}</tex>, |
- | где <tex>\varepsilon_s </tex> неотрицательные числа, называемые порогами, <tex>s=1,\ldots ,n </tex> | + | где <tex>\varepsilon_s </tex> неотрицательные числа, называемые порогами, <tex>s=1,\ldots ,n </tex>; |
- | *Вводится оценка близости объекта к классу <tex>\Gamma_c</tex> | + | *Вводится оценка близости объекта к классу <tex>\Gamma_c</tex>; |
*Вычисление алгоритма проводится по правилу:<br /> | *Вычисление алгоритма проводится по правилу:<br /> | ||
Строка 39: | Строка 39: | ||
\alpha_j(I_0, X) = | \alpha_j(I_0, X) = | ||
\begin{cases} | \begin{cases} | ||
- | 1, & \Gamma_j(X)>\Gamma_i(X)+\delta_2;\ i=1,\ldots,l, \ i \neq j;\ \Gamma_j(X)>\delta_1\sum^{l}_{i=1}{\Gamma_j(X)}\\ | + | 1, & \Gamma_j(X)>\Gamma_i(X)+\delta_2;\ i=1,\ldots,l, \ i \neq j;\ \Gamma_j(X)>\delta_1\sum^{l}_{i=1}{\Gamma_j(X)};\\ |
0, & \mathrm{other\ way}. | 0, & \mathrm{other\ way}. | ||
\end{cases} | \end{cases} | ||
</tex><br /> | </tex><br /> | ||
- | <tex>1>\delta_1\ | + | <tex>1>\delta_1\geq 1/l,\ \delta_2 \geq 0</tex> - ''пороги осторожности''. |
===Строение АВО, основанного на тупиковых тестах=== | ===Строение АВО, основанного на тупиковых тестах=== | ||
Строка 50: | Строка 50: | ||
*Задается функция близости для двух объектов по опорному множеству <tex>\omega=\{j_1,\ldots, j_r\}</tex>: | *Задается функция близости для двух объектов по опорному множеству <tex>\omega=\{j_1,\ldots, j_r\}</tex>: | ||
<tex> | <tex> | ||
- | B_\omega(X_{i1}, X_{i2})=\bigwedge^{r}_{t=1}{|a_{i1j_t}-a_{i2j_t}| \leq \varepsilon_s\]}</tex>. Если <tex>B=0</tex>, объекты не являются близкими по опорному множеству. | + | B_\omega(X_{i1}, X_{i2})=\bigwedge^{r}_{t=1}{\[|a_{i1j_t}-a_{i2j_t}| \leq \varepsilon_s\]}</tex>. Если <tex>B=0</tex>, объекты не являются близкими по опорному множеству. |
==Тупиковые тесты== | ==Тупиковые тесты== | ||
'''Тестом''' называется набор столбцов таблицы обучения <tex>T_{nml}</tex> с номерами <tex>j_1,\ldots,\j_r</tex>, если любые два объекта, принадлежащие разным классам <tex>Y_i</tex>, не являются близкими по опорному множеству <tex>\omega =\{j_1,\ldots,\j_r\}</tex>. | '''Тестом''' называется набор столбцов таблицы обучения <tex>T_{nml}</tex> с номерами <tex>j_1,\ldots,\j_r</tex>, если любые два объекта, принадлежащие разным классам <tex>Y_i</tex>, не являются близкими по опорному множеству <tex>\omega =\{j_1,\ldots,\j_r\}</tex>. | ||
- | '''Тупиковым тестом''' называется тест, у которого его собственное подмножество не является таковым. | + | '''Тупиковым тестом''' называется тест, у которого его собственное подмножество не является таковым. <br /> |
Задача распознавания на основе тупиковых тестов решается следующим образом. | Задача распознавания на основе тупиковых тестов решается следующим образом. | ||
- | Пусть <tex>\{T\}</tex> - множество тупиковых тестов таблицы <tex>T_{nml}</tex>. По тупиковому тесту<tex>j=(j_1,\ldots,j_k</tex> выделяется подописание для распознаваемого объекта <tex>X=(a_{j_1},\ldots,a_{j_r})</tex>, а затем сравнивается со всеми подописаниями объектов таблицы. Число совпадений с описаниями объектов i-го класса обозначается через <tex>\Gamma_{ji}(T)</tex>.<br /> | + | Пусть <tex>\{T\}</tex> - множество тупиковых тестов таблицы <tex>T_{nml}</tex>. По тупиковому тесту<tex>j=(j_1,\ldots,j_k)</tex> выделяется подописание для распознаваемого объекта <tex>X=(a_{j_1},\ldots,a_{j_r})</tex>, а затем сравнивается со всеми подописаниями объектов таблицы. Число совпадений с описаниями объектов <tex>i</tex>-го класса обозначается через <tex>\Gamma_{ji}(T)</tex>.<br /> |
- | ''Оценка объекта по i-ому классу'' <tex>\Gamma_{ji}(X) = \Gamma_i(X_j)=\frac{1}{m_j-m_{j-1}}\sum_{T \in\{T\}}{\Gamma_{ji}(T)}</tex>. | + | ''Оценка объекта по <tex>i</tex>-ому классу'' <tex>\Gamma_{ji}(X) = \Gamma_i(X_j)=\frac{1}{m_j-m_{j-1}}\sum_{T \in\{T\}}{\Gamma_{ji}(T)}</tex>. |
Далее объект относится к тому классу,по которому он получил максимальную оценку, в случае двух максимумов считается, что объект не классифицируется на заданном тесте.<br /> | Далее объект относится к тому классу,по которому он получил максимальную оценку, в случае двух максимумов считается, что объект не классифицируется на заданном тесте.<br /> | ||
- | Если считать, что не все признаки, описывающие объект, равнозначны, то они снабжаются числовыми весами <tex>p(j)=\frac{\tau_j(n,m)}{\tau(n,m)}</tex>, где <tex>\tau</tex> - число тупиковых тестов в таблице, <tex>\tau_j</tex> -число тупиковых тестов в таблице, содержащих j-ый столбец. Чем больше вес, тем важнее признак в описании объектов множества. | + | Если считать, что не все признаки, описывающие объект, равнозначны, то они снабжаются числовыми весами <tex>p(j)=\frac{\tau_j(n,m)}{\tau(n,m)}</tex>, где <tex>\tau</tex> - число тупиковых тестов в таблице, <tex>\tau_j</tex> -число тупиковых тестов в таблице, содержащих <tex>j</tex>-ый столбец. Чем больше вес, тем важнее признак в описании объектов множества. |
Весами объектов, составляющих таблицу обучения, называется поощрительная величина <tex>\gamma</tex>. В случае совпадения распознаваемого объекта <tex>X</tex> с объектом из таблицы <tex>X_v \in Y_i</tex>, такое совпадение поощряется: <tex>\Gamma_T(X,X_v) = \gamma(X_v)(p(j_1),\ldots,p(j_r))</tex>, | Весами объектов, составляющих таблицу обучения, называется поощрительная величина <tex>\gamma</tex>. В случае совпадения распознаваемого объекта <tex>X</tex> с объектом из таблицы <tex>X_v \in Y_i</tex>, такое совпадение поощряется: <tex>\Gamma_T(X,X_v) = \gamma(X_v)(p(j_1),\ldots,p(j_r))</tex>, | ||
- | Оценка объекта по i-ому классу задается таким образом | + | Оценка объекта по <tex>i</tex>-ому классу задается таким образом |
- | <tex>\Gamma_i(X)=\frac{1}{m_i-m_i-1}\sum_{T\in\{T\}}sum^{m_i}_{m_{i-1}+1}{\Gamma_T(X_v,X)}</tex>. | + | <tex>\Gamma_i(X)=\frac{1}{m_i-m_i-1}\sum_{T\in\{T\}}\sum^{m_i}_{m_{i-1}+1}{\Gamma_T(X_v,X)}</tex>. |
===Построение тупиковых тестов=== | ===Построение тупиковых тестов=== | ||
Процесс построения всех тупиковых тестов очень трудоемкий, так как зачастую приходится использовать метод перебора. Для решения задач большой размерности применяются стохастические методы. Для обработки таблиц с относительно большим числом строк по сравнению с числом столбцов может применяться следующий метод. <br /> | Процесс построения всех тупиковых тестов очень трудоемкий, так как зачастую приходится использовать метод перебора. Для решения задач большой размерности применяются стохастические методы. Для обработки таблиц с относительно большим числом строк по сравнению с числом столбцов может применяться следующий метод. <br /> | ||
- | *Пусть <tex>i_1,i_2 | + | *Пусть <tex>i_1,i_2 \in(1,\ldots,m)</tex>. |
- | Паре объектов <tex> | + | Паре объектов <tex>S_{i_1}</tex> и <tex>S_{i_2}</tex> ставится в соответствие строка <tex>I(X_{i_1})\oplus I(X_{i_2})=(a_{i_11}\oplus a_{i_21}, \dots, a_{i_1n}\oplus a_{i_1n})</tex>, если :<br /> |
<tex> | <tex> | ||
a_{i_1j}\oplus a_{i_2j} = | a_{i_1j}\oplus a_{i_2j} = | ||
Строка 78: | Строка 78: | ||
</tex><br /> | </tex><br /> | ||
*Составим булеву матрицу <tex>L_{nml}</tex> из всех таких строк для объектов из разных классов. | *Составим булеву матрицу <tex>L_{nml}</tex> из всех таких строк для объектов из разных классов. | ||
- | * <tex>U_i</tex> - совокупность всех подмножеств множества <tex>\{1,2,\ldots,h\}</tex> мощности i - | + | * <tex>U_i</tex> - совокупность всех подмножеств множества <tex>\{1,2,\ldots,h\}</tex> мощности <tex>i</tex>, где <tex>i</tex> - выбранное число из этого множества. <tex>h</tex> - число строк в матрице <tex>L_{nml}</tex>. Элементы множества <tex>U_i</tex> называются наборами. |
*Алгоритм построения тупиковых тестов: | *Алгоритм построения тупиковых тестов: | ||
#Пусть <tex>i=h, \ U_i=\{1,2,\ldots,h\}</tex>, задача построения множества всех тупиковых тестов таблицы <tex>T_{nml}</tex> сводится к построению множества всех неприводимых покрытий матрицы <tex>L_{nml}</tex>. В этом случае используется детерминированный алгоритм. | #Пусть <tex>i=h, \ U_i=\{1,2,\ldots,h\}</tex>, задача построения множества всех тупиковых тестов таблицы <tex>T_{nml}</tex> сводится к построению множества всех неприводимых покрытий матрицы <tex>L_{nml}</tex>. В этом случае используется детерминированный алгоритм. | ||
#Пусть <tex>i<h</tex>. | #Пусть <tex>i<h</tex>. | ||
##Случайным образом выбираем набор <tex>u=\{i_1,\ldots,\i_r\} \in U_i</tex>, определяющий подматрицу <tex>L^u_{nml}</tex>, образованную строками с номерами <tex>i_1,\ldots,i_r</tex>.<br /> | ##Случайным образом выбираем набор <tex>u=\{i_1,\ldots,\i_r\} \in U_i</tex>, определяющий подматрицу <tex>L^u_{nml}</tex>, образованную строками с номерами <tex>i_1,\ldots,i_r</tex>.<br /> | ||
- | ##Тест таблицы <tex>T_{nml}</tex>, состоящий из столбцов <tex>j_1,\ldots, | + | ##Тест таблицы <tex>T_{nml}</tex>, состоящий из столбцов <tex>j_1,\ldots,j_r</tex> называется ''u-тестом'', если набор столбцов матрицы <tex>L^u_{nml}</tex> с теми же номерами является неприводимым покрытием. <tex>\mathcal{T}(T_{nml},u)</tex> - множество всех u-тестов в таблице <tex>T_{nml}</tex>. |
##Каждому неприводимому покрытию матрицы <tex>L_{nml}</tex> соответствует набор столбцов таблицы <tex>T_{nml}</tex>, который проверяется на тестовость. | ##Каждому неприводимому покрытию матрицы <tex>L_{nml}</tex> соответствует набор столбцов таблицы <tex>T_{nml}</tex>, который проверяется на тестовость. | ||
##Обработка последовательности <tex>u_1,\ldots,u_v</tex> приводит к построению случайной выборки <tex>\mathcal{T}'(T_{nml})=\bigcup^{v}_{t=1}{\mathcal{T}(T_{nml},u_t)}</tex>. В этом случае используется стохастический способ построения тупиковых тестов. | ##Обработка последовательности <tex>u_1,\ldots,u_v</tex> приводит к построению случайной выборки <tex>\mathcal{T}'(T_{nml})=\bigcup^{v}_{t=1}{\mathcal{T}(T_{nml},u_t)}</tex>. В этом случае используется стохастический способ построения тупиковых тестов. | ||
- | '''Замечание:''' Требуемая точность алгоритмов зависит от выбора параметров i и v. При определенных условия выбора этих величин стохастический алгоритм почти всегда совпадает с детерминированным, <tex>i=\log^{\gamma}_2 n, \ \gamma >3</tex>. для решения практических задач достаточно выбрать <tex>i=\log_2 n, v=20</tex>. | + | '''Замечание:''' Требуемая точность алгоритмов зависит от выбора параметров <tex>i</tex> и <tex>v</tex>. При определенных условия выбора этих величин стохастический алгоритм почти всегда совпадает с детерминированным, <tex>i=\log^{\gamma}_2 n, \ \gamma >3</tex>. для решения практических задач достаточно выбрать <tex>i=\log_2 n,\ v=20</tex>. |
==Литература== | ==Литература== | ||
- | #''К.В. Воронцов'', [[Машинное обучение (курс лекций, К.В.Воронцов)|Машинное обучение (курс лекций)]] | + | #''К.В. Воронцов'', [[Машинное обучение (курс лекций, К.В.Воронцов)|Машинное обучение (курс лекций)]]. |
#{{книга | #{{книга | ||
|автор = Журавлев Ю. И. | |автор = Журавлев Ю. И. |
Текущая версия
Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |
Алгоритмы вычисления оценки, в которых опорные множества являются тупиковыми тестами, называются тестовыми алгоритмами. Первый вариант таких АВО был предложен Ю.И. Журавлевым. АВО совмещают метрические и логические принципы классификации. От метрических алгоритмов АВО наследуют принцип оценивания сходства через введение множества метрик , а от логических принцип поиска конъюнктивных закономерностей, конъюнкции строятся не над бинарными признаками , а над бинарными функциями близости вида . В этом случае каждой закономерности соответствует не подмножество признаков, а подмножество метрик, называемое опорным множеством. Как правило одного опорного множества недостаточно, поэтому в АВО применяется взвешенное голосование по системе опорных множеств.
Содержание |
Описание АВО, основанных на тупиковых тестах
Формулировка задачи
Задача распознавания: Дано — множество непересекающихся классов объектов.
Дана первоначальная информация (обучающая) и описание некоторого объекта , .
Объект задается через набор числовых признаков .
Задача распознавания состоит в определении включения заданного объекта в классы .
В случае АВО, основанных на тупиковых тестах, начальная информация задается таблицей:
- - таблица признаков объектов в обучающей выборке;
- - описание объекта из обучающей выборки;
- - выражение, определяющее включение объектов в классы;
Алгоритм распознавания, где .
Строение АВО
- - система опорных множеств;
- Вводится функция близости для двух объектов по опорному множеству :
, где неотрицательные числа, называемые порогами, ;
- Вводится оценка близости объекта к классу ;
- Вычисление алгоритма проводится по правилу:
- пороги осторожности.
Строение АВО, основанного на тупиковых тестах
- Вводится система опорных множеств ;
- Задается функция близости для двух объектов по опорному множеству :
. Если , объекты не являются близкими по опорному множеству.
Тупиковые тесты
Тестом называется набор столбцов таблицы обучения с номерами , если любые два объекта, принадлежащие разным классам , не являются близкими по опорному множеству .
Тупиковым тестом называется тест, у которого его собственное подмножество не является таковым.
Задача распознавания на основе тупиковых тестов решается следующим образом.
Пусть - множество тупиковых тестов таблицы . По тупиковому тесту выделяется подописание для распознаваемого объекта , а затем сравнивается со всеми подописаниями объектов таблицы. Число совпадений с описаниями объектов -го класса обозначается через .
Оценка объекта по -ому классу .
Далее объект относится к тому классу,по которому он получил максимальную оценку, в случае двух максимумов считается, что объект не классифицируется на заданном тесте.
Если считать, что не все признаки, описывающие объект, равнозначны, то они снабжаются числовыми весами , где - число тупиковых тестов в таблице, -число тупиковых тестов в таблице, содержащих -ый столбец. Чем больше вес, тем важнее признак в описании объектов множества. Весами объектов, составляющих таблицу обучения, называется поощрительная величина . В случае совпадения распознаваемого объекта с объектом из таблицы , такое совпадение поощряется: , Оценка объекта по -ому классу задается таким образом .
Построение тупиковых тестов
Процесс построения всех тупиковых тестов очень трудоемкий, так как зачастую приходится использовать метод перебора. Для решения задач большой размерности применяются стохастические методы. Для обработки таблиц с относительно большим числом строк по сравнению с числом столбцов может применяться следующий метод.
- Пусть .
Паре объектов и ставится в соответствие строка , если :
- Составим булеву матрицу из всех таких строк для объектов из разных классов.
- - совокупность всех подмножеств множества мощности , где - выбранное число из этого множества. - число строк в матрице . Элементы множества называются наборами.
- Алгоритм построения тупиковых тестов:
- Пусть , задача построения множества всех тупиковых тестов таблицы сводится к построению множества всех неприводимых покрытий матрицы . В этом случае используется детерминированный алгоритм.
- Пусть .
- Случайным образом выбираем набор , определяющий подматрицу , образованную строками с номерами .
- Тест таблицы , состоящий из столбцов называется u-тестом, если набор столбцов матрицы с теми же номерами является неприводимым покрытием. - множество всех u-тестов в таблице .
- Каждому неприводимому покрытию матрицы соответствует набор столбцов таблицы , который проверяется на тестовость.
- Обработка последовательности приводит к построению случайной выборки . В этом случае используется стохастический способ построения тупиковых тестов.
- Случайным образом выбираем набор , определяющий подматрицу , образованную строками с номерами .
Замечание: Требуемая точность алгоритмов зависит от выбора параметров и . При определенных условия выбора этих величин стохастический алгоритм почти всегда совпадает с детерминированным, . для решения практических задач достаточно выбрать .
Литература
- К.В. Воронцов, Машинное обучение (курс лекций).
- Журавлев Ю. И. Об алгебраических методах в задачах распознавания и классификации // Распознавание, классификация, прогноз. — 1988 T. 1. — С. 9--16.
- Бушманов О. Н., Дюкова Е. В., Журавлев Ю. И., Кочетков Д. В., Рязанов В. В. Система анализа и распознавания образов // Распознавание, классификация, прогноз. — М.: Наука, 1989. — T. 2. — С. 250–273.