D
была равна 1.
Чтобы превратить смутную идею в алгоритм, нужно первым делом решить, как
генерировать оптимальную кодовую точку
c
*
для каждой исходной точки
x
. Один из
способов – минимизировать расстояние между
x
и ее реконструкцией
g
(
c
*
). Для из-
мерения этого расстояния применим какую-нибудь норму. В алгоритме главных ком-
понент берется норма
L
2
:
(2.54)
Мы можем использовать квадрат нормы
L
2
, а не ее саму, потому что минимум до-
стигается при одном и том же значении
c
, т. к. норма
L
2
неотрицательна, а операция
возведения в квадрат – монотонно возрастающая для неотрицательных аргументов.
(2.55)
Минимизируемую функцию можно переписать в виде:
(
x
–
g
(
c
))
⏉
(
x
–
g
(
c
))
(2.56)
(по определению нормы
L
2
из формулы (2.30))
=
x
⏉
x
–
x
⏉
g
(
c
) –
g
(
c
)
⏉
x
+
g
(
c
)
⏉
g
(
c
)
(2.57)
(в силу дистрибутивности)
=
x
⏉
x
– 2
x
⏉
g
(
c
) +
g
(
c
)
⏉
g
(
c
)
(2.58)
(поскольку результат транспонирования скаляра
g
(
c
)
⏉
x
совпадает с ним самим).
58
Линейная алгебра
Снова изменим минимизируемую функцию, опустив первый член, не зависящий
от
c
:
– 2
x
⏉
g
(
c
) +
g
(
c
)
⏉
g
(
c
).
(2.59)
Теперь подставим сюда определение
g
(
c
):
– 2
x
⏉
Dc
+
c
⏉
D
⏉
D
c
(2.60)
– 2
x
⏉
Dc
+
c
⏉
I
l
c
(2.61)
(в силу ограничений на ортогональность и нормированность
D
)
– 2
x
⏉
Dc
+
c
⏉
c
.
(2.62)
Для решения этой задачи оптимизации мы можем воспользоваться векторным ма-
тематическим анализом (если вы не знаете, что это такое, обратитесь к разделу 4.3):
∇
с
(–2
x
⏉
Dc
+
c
⏉
c
) = 0
(2.63)
– 2
D
⏉
x
+ 2
c
= 0
(2.64)
с
=
D
⏉
x
.
(2.65)
Получается очень эффективный алгоритм: для оптимального кодирования
x
до-
статочно всего лишь операций над матрицами и векторами, т. е. функция кодирова-
ния выглядит так:
f
(
x
) =
D
⏉
x
.
(2.66)
Еще раз применив умножение на матрицу, мы сможем определить операцию ре-
конструкции в алгоритме PCA:
r
(
x
) =
g
(
f
(
x
)) =
DD
⏉
x
.
(2.67)
Далее следует выбрать кодировочную матрицу
D
. Для этого вернемся к идее мини-
мизации расстояния в смысле нормы
L
2
между исходными и реконструированными
точками. Поскольку для декодирования всех точек используется одна и та же матрица
D
, мы больше не можем рассматривать точки изолированно, а должны минимизиро-
вать норму Фробениуса матрицы ошибок, вычисленных для всех измерений и точек:
при условии
D
⏉
D
=
I
l
.
(2.68)
Для вывода алгоритма нахождения
D
*
сначала рассмотрим случай
l
= 1. Тогда
D
–
это просто одиночный вектор, который мы обозначим
d
. Подставляя (2.67) в (2.68)
и заменяя
D
на
d
, мы сводим задачу к такой:
||
x
(
i
)
–
dd
⏉
x
(
i
)
||
2
2
при условии ||
d
||
2
= 1.
(2.69)
Этот прямой результат подстановки – не самый красивый способ записи уравне-
ния. Скалярное значение
d
⏉
x
(
i
)
находится справа от вектора
d
. Но обычно скалярные
коэффициенты записываются слева от вектора, поэтому перепишем выражение в та-
ком виде:
Пример: метод главных компонент
59
||
x
(
i
)
–
d
⏉
x
(
i
)
d
||
2
2
при условии ||
d
||
2
= 1.
(2.70)
или, воспользовавшись тем, что операция транспонирования не изменяет скаляр:
||
x
(
i
)
–
x
(
i
)
⏉
dd
||
2
2
при условии ||
d
||
2
= 1.
(2.71)
Читателю следует стремиться к свободному владению такими косметическими
преобразованиями.
Теперь было бы полезно переформулировать задачу в терминах одной матрицы
примеров, а не суммы по отдельным векторам. Это позволит записать ее более ком-
пактно. Обозначим
X
∈
ℝ
m
×
n
матрицу, образованную всеми векторами, рассматривае-
мыми как строки, т. е.
X
i
, :
=
x
(i)
⏉
. Тогда уравнение (2.71) можно переписать в виде:
||
X
–
Xdd
⏉
||
2
F
при условии
d
⏉
d
= 1.
(2.72)
Забудем ненадолго об ограничении и упростим часть, содержащую норму Фробе-
ниуса:
||
X
–
Xdd
⏉
||
F
2
(2.73)
=
Tr((
X
–
Xdd
⏉
)
⏉
(
X
–
Xdd
⏉
))
(2.74)
(в силу формулы (2.49))
=
Tr(
X
⏉
X
–
X
⏉
Xdd
⏉
–
dd
⏉
X
⏉
X
+
dd
⏉
X
⏉
Xdd
⏉
)
(2.75)
=
Tr(
X
⏉
X
) – Tr(
X
⏉
Xdd
⏉
) – Tr(
dd
⏉
X
⏉
X)
+ Tr(
dd
⏉
X
⏉
Xdd
⏉
)
(2.76)
=
–
Tr(
X
⏉
Xdd
⏉
) – Tr(
dd
⏉
X
⏉
X)
+ Tr(
dd
⏉
X
⏉
Xdd
⏉
)
(2.77)
(поскольку члены, не содержащие
d
, на влияют на arg min)
=
– 2Tr(
X
⏉
Xdd
⏉
) + Tr(
dd
⏉
X
⏉
Xdd
⏉
)
(2.78)
(поскольку матрицы внутри оператора следа можно циклически переставлять, фор-
мула (2.52))
=
– 2Tr(
X
⏉
Xdd
⏉
) + Tr(
X
⏉
Xdd
⏉
dd
⏉
)
(2.79)
(еще раз применяя то же свойство).
Теперь снова вспомним об ограничении:
– 2Tr(
X
⏉
Xdd
⏉
) + Tr(
X
⏉
Xdd
⏉
dd
⏉
) при условии
d
⏉
d
= 1
(2.80)
=
– 2Tr(
X
⏉
Xdd
⏉
) + Tr(
X
⏉
Xdd
⏉
) при условии
d
⏉
d
= 1
(2.81)
(в силу ограничения)
=
– Tr(
X
⏉
Xdd
⏉
) при условии
d
⏉
d
= 1
(2.82)
=
Tr(
X
⏉
Xdd
⏉
) при условии
d
⏉
d
= 1
(2.83)
=
Tr(
d
⏉
X
⏉
Xd
) при условии
d
⏉
d
= 1
(2.84)
60
Линейная алгебра
Эту задачу оптимизации можно решить с помощью спектрального разложения:
оптимальным будет собственный вектор матрицы
X
⏉
X
с наибольшим собственным
значением.
Этот вывод применим только к случаю
l
= 1 и восстанавливает лишь первую глав-
ную компоненту. В более общем случае, когда требуется восстановить базис главных
компонент, матрица
D
определяется
l
собственными векторами с наибольшими соб-
ственными значениями. Доказательство можно провести по индукции, и мы оставля-
ем его читателю в качестве упражнения.
Линейная алгебра – один из важнейших разделов математики, необходимых для
понимания машинного обучения. Другой раздел, без которого машинное обучение
немыслимо, – теория вероятностей, к которой мы и переходим.
Глава
3
Теория вероятностей
и теория информации
В этой главе мы изложим основы теории вероятностей и теории информации.
Теория вероятностей – это раздел математики, в котором рассматриваются недос-
товерные утверждения. Она дает средства количественно описать недостоверность,
а также аксиомы для вывода новых недостоверных утверждений. В применении
к искусственному интеллекту теория вероятностей используется в основном двумя
способами. Во-первых, ее правила говорят нам, как должна рассуждать система ИИ,
поэтому мы проектируем алгоритмы, которые вычисляют или аппроксимируют раз-
личные выражения, полученные на основе теории вероятностей. Во-вторых, теорию
вероятностей и математическую статистику можно применить для теоретического
анализа поведения предлагаемых систем ИИ.
Теория вероятностей лежит в основе многих научно-технических дисциплин. Эта
глава включена для того, чтобы читатели с подготовкой в области программной инжене-
рии, плохо знакомые с теорией вероятностей, понимали изложенный в книге материал.
Если теория вероятностей позволяет формулировать недостоверные утверждения
и рассуждать в условиях неопределенности, то теория информации дает возможность
количественно оценить меру неопределенности распределения вероятности.
Если вы уже знакомы с теорией вероятностей и теорией информации, то можете
сразу перейти к разделу 3.14, в котором описываются графы, применяемые для опи-
сания структурных вероятностных моделей в машинном обучении. Если же вы со-
всем ничего не знаете об этих темах, то изложенного в этой главе материала должно
хватить для успешного выполнения исследовательских проектов в области глубокого
машинного обучения, но мы все же рекомендуем почитать дополнительные источни-
ки, например книгу Jaynes (2003).
Do'stlaringiz bilan baham: |