Несколько дней назад мой брат заходит в мою комнату и видит, как я пишу код и изучаю учебник по математике, и с озадаченным выражением он спрашивает: изучаете ли вы сейчас математику или строите модели искусственного интеллекта, что? Я с улыбкой отвечаю и говорю: AI - это математика !!

Ну, не совсем математика как таковая, но для того, чтобы быть действительно обоснованным, нужно очень хорошо разбираться в математических основах, поскольку ИИ - это не только обучение моделей ConvNets или Transformer с помощью Pytorch, Tensorflow или Keras. На самом деле, чтобы прочитать, понять и воспроизвести исследовательскую работу, требуется, по крайней мере, хорошее понимание некоторых математических концепций, включая, помимо прочего, линейную алгебру, исчисление, теорию вероятностей и статистику.

ИИ бесплатен для всех, поэтому независимо от того, имеете ли вы образование в области компьютерной науки, математики или инженерии или нет, это не имеет большого значения, на самом деле, это вообще не считается, потому что в Интернете сейчас огромное количество информации, особенно с появлением МООК вы можете изучить все эти основы самостоятельно и стать лучше. Я знаю это точно, потому что за последние 5 лет, когда я изучал городское планирование, самые сложные математические вычисления, которые я делал, были средние по численности населения, асимметрия, эксцесс и моменты. Это был мой первый год! Сейчас я собираюсь округлить, и я никогда не проходил курс, который хоть немного требовал математики. Моя последняя серьезная математика была в старшей школе, все остальное, что я знаю сейчас, было самоучкой, я просто усвоил ее по ходу дела.

Я знаю, что многие парни занимаются этим, вы хотите глубоко погрузиться в ИИ, но чувствуете, что у вас нет нужного опыта, поэтому вы остаетесь на месте или начинаете веб-разработку. Если вы попали в эту категорию, вас ничто не должно ограничивать !!!

В этом посте мы собираемся охватить некоторые основы математики, необходимые для понимания автоэнкодеров, вариационных автоэнкодеров (VAE) и векторных квантованных вариационных автоэнкодеров (VQ-VAE). В частности, мы будем смотреть на:

  1. Обзор автокодировщиков
  2. Основы вероятности
  3. Максимизация ожиданий
  4. Кульбак-Лейблер Дивергенция и ее значение

Автоэнкодер - это, по сути, нейронная сеть, которая предназначена для изучения функции идентификации неконтролируемым образом, так что он может сжимать и восстанавливать исходные входные данные, и тем самым обнаруживает более эффективное и сжатое представление исходных входных данных. Примечательно, что идея зародилась в 1980-х годах и позже была продвинута в основополагающей статье Хинтон и Салахутдинов, 2006.

Автоэнкодеры широко используются для сжатия и реконструкции изображений. Реконструкция изображения в основном означает, что сеть Autoencoder пытается сгенерировать любое изображение, которое мы передаем ему на этапе ввода. Вскоре мы придем к пониманию того, как это работает, по мере нашего продвижения.

На изображении выше изображена типичная сетевая архитектура автоэнкодера, и чтобы понять, как это работает интуитивно, мы должны сначала узнать, что сеть автоэнкодера состоит из:

Без ввода и вывода (реконструированный ввод)

  1. Блок Encoder, обозначенный Gφ
  2. Узкое место, обозначаемое, z
  3. Блок декодера, обозначенный Fθ

Блок Encoder принимает входной вектор изображений и передает его узкому месту в виде сжатого вектора «z», затем блок декодера пытается восстановить это входное изображение из сжатого представления. Для лучшего понимания, скажем, у нас есть входное изображение размером (28 x 28), по соглашению это изображение должно быть сглажено перед подачей в нейронную сеть. Уплощенное представление этого изображения будет (784,), и оно будет передано в кодировщик (первый блок). Затем выходной сигнал кодировщика подается в узкое место или скрытое пространство, которое должно быть уменьшенной версией, например, если количество узлов в скрытом пространстве равно 8, или 16, или даже любому числу, это просто означает, что мы преуспели в сжатие изображения размером 784 всего до 8 узлов, или 16 узлов, или любого числа вообще. Затем сеть декодера пытается воссоздать исходное входное изображение (28 x 28) из сжатого состояния в узком месте. Вот как это работает.

Как только изображение реконструировано, вы сравниваете восстановленное изображение с исходным изображением, вычисляете разницу и вычисляете потери, которые затем можно минимизировать.

Убыток рассчитывается по:

Не пугайтесь функции потерь, я ее разобью.

Как видно выше, функция потерь зависит от «тета» и «фи», которые являются параметрами, которые определяют кодер и декодер. Как объяснялось ранее и из изображения автокодера выше, кодер представлен как Gφ, а декодер представлен как Fθ, и они просто означают веса и смещение нейронной сети.

Таким образом, в уравнении мы суммируем разницу между исходным изображением x` и восстановленным изображением Fθ (gφ (x`)).

Это математическое представление также показывает поток данных от кодировщика к декодеру (то есть от ввода к выводу).

Вариационный автоэнкодер

Основная идея VAE, предложенная Kingma et al. В 2013, заключается в том, что вместо отображения входа на фиксированный вектор, вход отображается в распределение. Автоэнкодер и вариационный автоэнкодер во многом похожи, по сути, единственное фундаментальное различие между автоэнкодером и вариационным автокодировщиком состоит в том, что узкое место VAE является непрерывным и заменяется двумя отдельными векторами; один представляет средние значения распределения, а другой - стандартные отклонения распределения.

Функция потерь VAE определяется двумя терминами: потерями при реконструкции и регуляризатором, которые, по сути, являются расхождением KL между распределением кодировщика и скрытым пространством.

Двигаясь вперед, понимание более глубоких математических основ автокодировщика и сети VAE, таких как их функции потерь, требует четкого понимания некоторых концепций, таких как максимизация ожиданий, условные вероятности, оценка максимального правдоподобия и расхождение Кульбака-Лейблера, которое является сутью этого статья.

Первым предварительным условием для понимания VAE является теория вероятностей, и я не буду вдаваться в подробности, но объясню столько, сколько необходимо для понимания этих концепций.

Вам будут чаще встречаться следующие термины:

P (x): определяет вероятность случайной величины X

P (x | y): так называемая условная вероятность, она обеспечивает вероятность случайной величины x при условии, что y произошло. Он читается как P для x, заданного y.

это понятие вероятности также можно записать как:

Приведенное выше представление взято из теоремы Бая, где;

P (y | x) - апостериорная вероятность

p (y) - априорная вероятность

p (x | y) / p (x) - отношение правдоподобия

Нам также необходимо понять следующую теорему о полной вероятности;

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

Ожидание случайной величины X, т.е. E (X)

Ожидаемое значение случайной величины - это средневзвешенное значение всех возможных значений X, которые она может принимать, где каждое значение взвешивается в соответствии с вероятностью этого события и определяется как:

Это может показаться слишком сложным, но вы должны просто знать, что эта концепция похожа на математическое среднее. Для лучшей интуиции стоит проверить это

Давайте посмотрим на несколько простых примеров:

Q1. Когда кубик бросается один раз, какова вероятность выпадения тройки?

Ответ: Вы угадали! учитывая пробел = {1,2,3,4,5,6}

P(x) = P(3) = 1/6.

Q2. Какова вероятность того, что при подбрасывании честного кубика выпало 3, если подбрасывание было нечетным?

Ответ: Это условная вероятность, то есть P (x | y), и то, что нам нужно, - это вероятность получить x = 3, при этом y = нечетное. то есть P (3 | y нечетное).

Поскольку условие состоит в том, что бросок «нечетный», то определенно пространство выборки должно уменьшиться с 6 до 3, потому что есть только 3 нечетных числа, если вы считаете от 1–6. Следовательно, {1,2,3,4,5,6} == ›{1,3,5}. Следовательно, вероятность наличия 3 в этом сокращенном пространстве выборок составляет 1/3, где 3 - это общее количество выборок, которые у нас есть в сокращенном пространстве выборок. Это самый простой пример, который я мог бы получить для объяснения условных вероятностей.

Если мы правильно наблюдаем, в первом примере вероятность иметь 3, то есть P (3), составляла 1/6, но во втором вероятность стала 1/3. что это показывает?

Опять же, вы угадали! Он показывает, что вероятность получения 3 увеличивается, когда это обусловлено Y, что означает «нечетные выборки». Поэтому важно знать, что p (x) и p (x | y) могут иметь разные интерпретации. И это концепция условной вероятности, поскольку вероятность «x» может сильно зависеть от «y», как видно из примеров.

Дивергенция KL

Дивергенция Кульбака-Лейблера (сокращенно D_KL) - это мера того, насколько одно распределение вероятностей отличается от другого. Для дискретного распределения вероятностей P и Q расхождение KL между и P и Q определяется как:

Например:

Предположим, у нас есть два распределения вероятностей, P и Q. и мы хотим найти разницу между двумя вероятностями, мы можем просто применить расхождение KL, как показано ниже.

Medium на самом деле не поддерживает математические символы, поэтому уравнения нужно решать где-то еще, а я вставляю их здесь как изображение. Чтобы объяснить приведенный выше расчет, у нас есть распределение Q с равномерной вероятностью 1/3, которое составляет 0,333, и распределение P с вероятностью 0,36, когда случайная величина x равна 0, 0,48, когда случайная величина x равна 1, и 0,16, когда случайная величина x равна 2.

Разницу между этими двумя распределениями можно рассчитать с помощью дивергенции KL, поэтому мы подставляем значения в уравнение дивергенции KL, как указано выше, и решаем ответ, который составляет 0,09673 нат.

«Натс» - это просто единица информации, полученная с помощью натурального логарифма (ln (x)).

Понимание дивергенции KL является неотъемлемой частью понимания функции потерь VAE, потому что она играет ключевую роль - действуя как член регуляризатора. Вот почему я приложил все усилия, чтобы проиллюстрировать это графически и математически.

Теперь, когда мы рассмотрели некоторые математические предпосылки, которые могут пригодиться в дальнейшем, вам следует взглянуть на эту пояснительную статью о получении функции потерь VAE полностью с нуля с помощью Доктор Стивен Одайбо.

Математика - это весело!