Для построения нейронной сети , способной обучаться нелинейностям , начните со следующей знакомой структуры модели: линейной модели вида $y' = b + w_1x_1 + w_2x_2 + w_3x_3$.
Это уравнение можно визуализировать, как показано ниже, где $x_1$, $x_2$ и $x_3$ — три входных узла (синего цвета), а $y'$ — выходной узел (зеленого цвета).
Упражнение 1
В приведенной выше модели значения весов и смещений инициализированы случайным образом. Выполните следующие задания, чтобы ознакомиться с интерфейсом и изучить линейную модель. Пока можете игнорировать выпадающее меню «Функция активации» ; мы обсудим эту тему позже в модуле.
Нажмите кнопку «Воспроизвести» (▶️) над сетью, чтобы вычислить значение выходного узла для входных значений $x_1 = 1,00$, $x_2 = 2,00$ и $x_3 = 3,00$.
Щелкните второй узел во входном слое и увеличьте значение с 2,00 до 2,50. Обратите внимание, что значение выходного узла изменится. Выберите выходные узлы (выделены зеленым цветом) и просмотрите панель «Вычисления», чтобы увидеть, как было рассчитано выходное значение.
Щелкните по выходному узлу (зеленого цвета), чтобы увидеть значения параметров веса ($w_1$, $w_2$, $w_3$) и смещения ($b$). Уменьшите значение веса для $w_3$ (обратите внимание, что значение выходного узла и приведенные ниже вычисления изменились). Затем увеличьте значение смещения. Проанализируйте, как эти изменения повлияли на выходные данные модели.
Добавление уровней в сеть
Обратите внимание, что корректировка значений весов и смещений сети в упражнении 1 не изменила общую математическую зависимость между входом и выходом. Наша модель по-прежнему является линейной.
Но что, если мы добавим еще один слой к сети, между входным и выходным слоями? В терминологии нейронных сетей дополнительные слои между входным и выходным слоями называются скрытыми слоями , а узлы в этих слоях называются нейронами .
Значение каждого нейрона в скрытом слое вычисляется так же, как и выход линейной модели: берется сумма произведения каждого из его входных сигналов (нейронов предыдущего слоя сети) и уникального весового параметра, плюс смещение. Аналогично, значения нейронов в следующем слое (здесь, выходном слое) вычисляются с использованием значений нейронов скрытого слоя в качестве входных данных.
Этот новый скрытый слой позволяет нашей модели рекомбинировать входные данные, используя другой набор параметров. Может ли это помочь нашей модели изучить нелинейные зависимости?
Упражнение 2
Мы добавили в модель скрытый слой, содержащий четыре нейрона.
Нажмите кнопку «Воспроизвести» (▶️) над нейронной сетью, чтобы рассчитать значения четырех узлов скрытого слоя и выходного узла для входных значений $x_1 = 1.00$, $x_2 = 2.00$ и $x_3 = 3.00$.
Затем изучите модель и используйте её для ответа на следующие вопросы.
Попробуйте изменить параметры модели и понаблюдайте за влиянием на значения узлов скрытого слоя и выходное значение (вы можете посмотреть, как были рассчитаны эти значения, на панели «Вычисления» ниже).
Может ли эта модель обучаться нелинейностям?
Если вы щелкнете по каждому из узлов в скрытом слое и просмотрите приведенные ниже вычисления, вы увидите, что все они являются линейными (включают операции умножения и сложения).
Если вы затем щелкнете по узлу вывода и просмотрите приведенные ниже вычисления, вы увидите, что это вычисление также является линейным. Линейные вычисления, выполняемые над результатом линейных вычислений, также являются линейными, что означает, что эта модель не может обучаться нелинейностям.