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

Вступление

Машинное обучение - это область исследования, которая фокусируется на улучшении показателя эффективности за счет опыта решения некоторых конкретных задач. С введением профессором ЛеКуном LeNet-5 по классификации набора данных рукописных цифр (MNIST) в конце 90-х, люди в исследовательском сообществе пришли к пониманию того, что нейронные сети с более чем одним скрытым слоем могут достичь уровня искусства (SoTA ) результаты (в то время эта мысль не особо ценилась исследователями). Современные достижения в методах глубокого обучения облегчаются благодаря наличию большого объема данных и вычислительной мощности, обеспечиваемой графическими процессорами, что приводит к появлению огромных сетей, таких как GPT (последняя версия GPT-3), ResNet, VGG и т. Д. В этой статье мы сосредоточимся на фундаментальной идее нейронных сетей, на которых построены эти архитектуры SoTA.



Нейроны

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

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

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

Точно так же искусственный нейрон имеет несколько входов, и каждый вход (xᵢ) привязан к весу (wᵢ) и смещению (bᵢ). (которые изучаются в период обучения). Вес влияет на важность конкретного ввода. Они выполняют вычисление и генерируют сигнал, который передается через функцию активации (f), чтобы произвести всплеск вывода (y), учитывая, что такой сигнал от f выше порогового значения.

Для иллюстрации рассмотрим рукописные цифры MNIST. Каждая цифра имеет размер 28 × 28 пикселей, и каждый пиксель имеет значение оттенков серого, лежащее в диапазоне [0, 1], где 0 и 1 представляют черный и белый соответственно. Двухмерный массив преобразуется в одномерный массив x длиной 784, и каждый индекс соответствует входному пикселю (xᵢ). Мы знаем, что черные / темные пиксели не влияют на кривые / текстуры, поэтому они имеют меньшее значение, а светлые / белые пиксели имеют большое значение при определении цифры (метки). Актуальность конкретного пикселя (называемого функцией) определяется прикрепленными весами.

Однослойный персептрон

Вышеприведенное уравнение математически описывает базовое функционирование одноуровневой сети. Он также устанавливает свои отношения с биологическим нейроном. Точнее, выходной y является функцией аффинного преобразования входных функций, характеризуемой линейным преобразованием функций через взвешенную сумму в сочетании с переводом через добавленное смещение.

Основная цель однослойной модели заключается в идентификации набора весов (wᵢ) для соответствующего ввода (xᵢ), чтобы эффективно подогнать данные для нашего прогнозируемого вывода ( \ hat {y}). Это обеспечит обобщенное поведение для набора данных.

Игнорируя на время функцию f, мы понимаем, что:

где d - общее количество функций на входе¹, wᵢ - требуемые веса. Если мы соберем все признаки в вектор x ∈ ℝᵈ и все наши веса в другой вектор w ∈ ℝᵈ, приведенное выше уравнение можно упростить с помощью скалярного произведения:

x в уравнении выше соответствует характеристикам одной точки данных. Чтобы выразить x для всех входных данных (в наборе данных) в размерном пространстве n × d, мы вводим матрицу проекта X ∈ ℝ ^ {n × d}, где каждая строка соответствует примеру, а каждый столбец - для определенной функции.

Следовательно, уравнение 3 можно переписать для пространства размерности n × d как:

а поиск наилучшего вектора весов параметров w и смещения b заключается в целевой функции (показателе качества) и процедуре обновления параметров для улучшения качества.

Почему мы делаем упор на векторах и матрицах?

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

Многослойные персептроны

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

Скрытые слои

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

Мы поняли, что релевантность каждой входной функции (пикселя) более сложна³, чем ожидалось. Итак, мы вводим еще несколько полностью связанных (плотных) слоев между входами и выходами, которые называются скрытыми слоями. Эта архитектура называется многослойным персептроном (MLP).

Взяв наш классический пример набора данных MNIST, мы определим один скрытый слой с 16 нейронами, как показано на рисунке выше. Рисунок ясно объясняет 784 входных объекта, скрытый слой (можно сложить больше таких полностью связанных (плотных) слоев с любым количеством нейронов) и выходной слой. Обратите внимание, что ни входной, ни выходной слой не считаются скрытыми.

Ранее мы определили входную матрицу как X ∈ ℝ ^ {n × d}, где n & d - количество примеров и функций соответственно. .

Для MLP с одним скрытым слоем с нейронами h (скрытые блоки) мы можем определить матрицу скрытого слоя H ∈ ℝ ^ {n × h}.

Поскольку скрытый и выходной слои полностью связаны, у нас есть веса и смещения скрытого слоя как W ¹ ∈ ℝ ^ {d × h} и b ¹ ∈ ℝ ^ {1 × h}, а веса и смещения выходного слоя выглядят как ∈ ℝ ^ {h × c} и ∈ ℝ ^ {1 × c}.

Мы выбрали простой (1) для первого слоя (скрытый слой) и (2) для второго уровня (выходной слой), а c - количество классов. Для нашего примера MNIST: n = 1, d = 784, h = 16, c = 10, как очевидно также из рисунка.

Математически,

который можно переписать как

куда

Конечный результат (O = XW + b) возвращает нас к линейному слою, который практически эквивалентен к уравнению 1. Это означает, что наложение линейных слоев друг на друга снова приведет к линейному поведению и будет действовать так, как будто присутствует только один слой.

Чтобы привить нелинейное поведение, каждый нейрон в скрытом слое подвергается функции активации f, и его выходы называются активациями. Эта функция активации привносит нелинейность и помогает архитектуре MLP не возвращаться к линейной модели. Уравнение 5 можно переписать как:

Функция активации (f) вызывает требуемую нелинейность и, следовательно, делает набор линейных слоев нелинейным. Это может быть вызвано различными функциями активации, как показано на данном рисунке.

Это добавление нелинейных слоев увеличивает количество параметров в нейронной сети и, следовательно, упрощает для сети сопоставление любого входа с его выходом.

Заключение

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

Конечные заметки

Автор:

Вы можете связаться со мной в LinkedIn, Twitter, Instagram, а также по электронной почте. Я люблю вести глубокие беседы на темы, связанные с глубоким обучением.

Сноски:

¹ d выбран (вместо очевидного выбора n) из-за того, что все функции могут быть визуализированы в d -мерном пространстве . Однако n используется для обозначения количества всех примеров в наборе данных.

² AI Stack Exchange Link: Как графические процессоры облегчают обучение архитектуре глубокого обучения?

³ Например, это может зависеть от окружающих пикселей (называемых контекстом), как при построении прямой линии.

Использованная литература:

  1. 3B1B, Грант Сандерсон: https://www.3blue1brown.com/neural-networks
  2. Патрик Уинстон, Массачусетский технологический институт, лекции 12a и 12b: https://www.youtube.com/watch?v=uXt8qF2Zzfo
  3. Погрузитесь в глубокое обучение: d2l.ai

P.S .: Все изображения принадлежат их законным владельцам. Эта статья очень вдохновлена ​​ссылками, так как она дает отличную интуитивность, и я рекомендую вам посмотреть и подписаться на них.

Получите доступ к экспертному обзору - Подпишитесь на DDI Intel