Объясняя интуицию, ПОЧЕМУ нейронные сети такие мощные, от успеха вашего мозга

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

Как работают нейроны?

Компоненты

Нейрон представляет собой электрически возбудимую клетку, которая взаимодействует с другими клетками. Хотя в его работе много сложностей, мы рассмотрим только ключевые элементы: дендриты, аксоны и синапсы. .

Дендриты нейрона можно рассматривать как «входы». Электрические сигналы поступают в нейрон через дендриты и собираются вместе. Электрические сигналы, генерируемые нейроном, передаются по аксону и активируют синапсы. Синапсы соединяются с дендритами других нейронов и могут передавать сигналы, которые они получают, на дендриты, с которыми они связаны.

Агрегация

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

Обратите внимание, что связь между нейронами, также известная как синаптический вес, неодинакова. В приведенном ниже примере нейрон A может быть очень важен для нейрона D, поэтому потенциала действия от нейрона A может быть достаточно, чтобы вызвать срабатывание нейрона D. Тем не менее, нейрон B и C, возможно, должны активироваться, чтобы активировать нейрон D, поскольку они не так важны и имеют меньший синаптический вес.

Потенциал действия

Потенциал покоя нейрона составляет около -70 мВ. Когда он получает электрические сигналы от своих дендритов (которые имеют разные значения из-за синаптических весов!), потенциал становится более положительным или деполяризованным. Электрические сигналы от нескольких дендритов будут суммироваться, если они поступят одновременно. Возвращаясь к нашему предыдущему примеру, если нейрон D одновременно получил электрический сигнал 15 мВ от нейрона B и 15 мВ от нейрона C, потенциал нейрона D в это время был бы:

70 + 15 + 15 = -40 mV

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

Если поступающие в нейрон сигналы не превышают порога активации, это называется неудачной инициацией, и ничего не происходит.

Перевод биологических нейронов в искусственные нейроны

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

Входы

Подобно тому, как биологические нейроны имеют дендриты для входящих электрических сигналов, персептроны имеют входные параметры (x1,x2,x3). Количество входов для персептрона — это параметр, который должны указать создатели модели. Например, при прогнозировании цен на жилье с учетом количества спален и ванных комнат в доме есть только два параметра, поэтому будет достаточно персептрона с двумя входами. При прогнозировании рака с учетом сотен сведений о пациенте потребуется персептрон с сотнями входных данных.

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

Взвешивание и агрегирование

Подобно тому, как биологические нейроны имеют синаптические веса, которые изменяют важность сигналов от разных нейронов, персептроны также взвешивают свои входные данные. На изображении выше каждый вход (x1,x2,x3) имеет соответствующий вес (w1,w2,w3). Затем персептрон вычисляет взвешенную сумму своих входных данных и член смещения, представленный n .

Потенциал действия

Нам все еще не хватает части потенциала действия биологического нейрона. Эта часть обрабатывается функцией активации персептрона. Эта функция принимает взвешенную сумму n в качестве единственного входа и выдает конечное выходное значение персептрона, обычно обозначаемое a. Если бы мы попытались имитировать биологический нейрон, наша функция активации могла бы выглядеть примерно так, если бы наш порог был равен 0:

Хотя это соответствует биологическому представлению, поскольку производная этой функции всегда равна 0, обучения не будет из-за того, как мы тренируем персептроны. Таким образом, две общие функции активации — это сигмовидная и тангенциальная, которые выглядят следующим образом:

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

Построение нейронной сети из персептронов

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

Каждый кружок, содержащий Σ и f, представляет собой персептрон со взвешенной суммой и функцией активации. Мы также разделим вертикально сгруппированные персептроны на слои. В самом левом слое есть 2 персептрона, в среднем слое есть 3 персептрона, а в последнем слое есть 1 персептрон. Кроме того, мы определяем входной слой как «слой», который просто содержит входные данные. В этом случае размер входного слоя равен 3, так как есть 3 входа (x1,x2,x3). Наконец, выходной слой — это последний слой нейронной сети. Это результат работы модели. В нашем случае выходной слой имеет только один персептрон, однако, если бы мы предсказывали больше выходных значений, у нас могло бы быть больше персептронов в нашем выходном слое.

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

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

В следующем посте мы создадим простую нейронную сеть в PyTorch и поиграем с некоторыми классическими задачами, такими как классификация рукописных цифр! Если вы еще не установили PyTorch, обязательно посмотрите мой пост о том, как это сделать.