Чтобы построить нейронную сеть , изучающую нелинейности , начните со следующей знакомой структуры модели: линейная модель вида $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$.
Затем изучите модель и используйте ее, чтобы ответить на следующие вопросы.
Попробуйте изменить параметры модели и понаблюдайте, как это повлияет на значения узлов скрытого слоя и выходное значение (вы можете просмотреть панель «Расчеты» ниже, чтобы узнать, как были рассчитаны эти значения).
Может ли эта модель изучать нелинейности?
Если вы щелкнете по каждому из узлов скрытого слоя и просмотрите расчеты ниже, вы увидите, что все они линейны (включая операции умножения и сложения).
Если вы затем щелкните выходной узел и просмотрите расчет ниже, вы увидите, что этот расчет также является линейным. Линейные вычисления, выполняемые на выходе линейных вычислений, также являются линейными, что означает, что эта модель не может обучаться нелинейностям.