Нейронные сети: узлы и скрытые слои

Чтобы построить нейронную сеть , изучающую нелинейности , начните со следующей знакомой структуры модели: линейная модель вида $y' = b + w_1x_1 + w_2x_2 + w_3x_3$.

Мы можем визуализировать это уравнение, как показано ниже, где $x_1$, $x_2$ и $x_3$ — наши три входных узла (отмечены синим цветом), а $y'$ — наш выходной узел (отмечены зеленым).

Упражнение 1

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

  1. Нажмите кнопку «Воспроизвести» (▶️) над сетью, чтобы вычислить значение выходного узла для входных значений $x_1 = 1,00$, $x_2 = 2,00$ и $x_3 = 3,00$.

  2. Щелкните второй узел входного слоя и увеличьте значение с 2,00 до 2,50. Обратите внимание, что значение выходного узла изменяется. Выберите выходные узлы (зеленые) и просмотрите панель «Расчеты» , чтобы увидеть, как было рассчитано выходное значение.

  3. Щелкните выходной узел (зеленый), чтобы увидеть значения параметров веса ($w_1$, $w_2$, $w_3$) и смещения ($b$). Уменьшите значение веса для $w_3$ (опять же обратите внимание, что значение выходного узла и приведенные ниже вычисления изменились). Затем увеличьте значение смещения. Посмотрите, как эти изменения повлияли на выходные данные модели.

Добавление слоев в сеть

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

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

Значение каждого нейрона в скрытом слое рассчитывается так же, как и выходные данные линейной модели: берется сумма произведения каждого из его входов (нейронов в предыдущем сетевом слое) и уникального весового параметра, плюс предвзятость. Аналогичным образом, нейроны в следующем слое (здесь, выходном слое) рассчитываются с использованием значений нейронов скрытого слоя в качестве входных данных.

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

Упражнение 2

Мы добавили в модель скрытый слой, содержащий четыре нейрона.

Нажмите кнопку «Воспроизвести» (▶️) над сетью, чтобы вычислить значение четырех узлов скрытого слоя и выходного узла для входных значений $x_1 = 1,00$, $x_2 = 2,00$ и $x_3 = 3,00$.

Затем изучите модель и используйте ее, чтобы ответить на следующие вопросы.

Сколько параметров (весов и смещений) имеет эта модель нейронной сети?
4
Наша исходная модель из упражнения 1 имела четыре параметра: w 11 , w 21 , w 31 и b. Поскольку эта модель содержит скрытый слой, параметров больше.
12
Обратите внимание, что общее количество параметров включает в себя как параметры, используемые для расчета значений узла в скрытом слое на основе входных значений, так и параметры, используемые для расчета выходного значения на основе значений узла в скрытом слое.
16
Обратите внимание, что общее количество параметров включает в себя как весовые параметры, так и параметры смещения.
21
Для расчета каждого из 4 значений узла в скрытом слое используются 4 параметра — 3 веса (по одному для каждого входного значения) и смещение — что в сумме дает 16 параметров. Затем для расчета выходного значения используются 5 параметров: 4 веса (по одному для каждого узла скрытого слоя) и смещение. Всего у этой нейронной сети 21 параметр.

Попробуйте изменить параметры модели и понаблюдайте, как это повлияет на значения узлов скрытого слоя и выходное значение (вы можете просмотреть панель «Расчеты» ниже, чтобы узнать, как были рассчитаны эти значения).

Может ли эта модель изучать нелинейности?

Да
Нажмите на каждый из узлов скрытого слоя и выходного узла и просмотрите расчеты ниже. Что вы заметили во всех этих расчетах?
Нет

Если вы щелкнете по каждому из узлов скрытого слоя и просмотрите расчеты ниже, вы увидите, что все они линейны (включая операции умножения и сложения).

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