Часть II • Введение в TensorFlow.js
протяжении 200 эпох, итоговые MSE на контрольном наборе данных оказались
в диапазоне 14–15 (небольшие различия изза случайности выбора начальных
значений), а при использовании линейной модели потери на контрольном наборе
составляли примерно 25. Наша новая модель ошибается лишь на $3700–3900, в то
время как при чисто линейном подходе погрешность составляла примерно $5000.
Ощутимый шаг вперед.
3.1.1. Развиваем чутье на нелинейность
в нейронных сетях
Почему точность выросла? Все дело в увеличившейся сложности модели, как
демонстрирует рис. 3.1. Вопервых, в ней появился дополнительный слой нейро
нов — скрытый слой. Вовторых, этот скрытый слой содержит нелинейную
функцию
активации
(задана фрагментом кода
activation:
'sigmoid'
), которой соответствуют
квадраты в блоке Б на рис. 3.1. Функция активации
1
представляет собой поэле
ментное преобразование. Сигмафункция — «сплющивающая» нелинейность, в том
смысле, что она «сплющивает» все вещественные значения от –
∞
до +
∞
в намного
меньший диапазон (в данном случае до 0 до +1). Ее математическое уравнение
и график приведены на рис. 3.2. Возьмем в качестве примера скрытый плотный слой.
Пусть результат матричного умножения и сложения со смещением представляет
собой двумерный вектор, состоящий из следующего массива случайных значений:
[[1.0], [0.5],… [0.0]]
Итоговый выходной сигнал плотного слоя получается путем вызова сигмафунк
ции (
S
) для каждого из 50 элементов по отдельности:
[[S(1.0)], [S(0.5)],… [S(0.0)]] = [[0.731], [0.622],… [0.0]]
Почему эта функция называется
нелинейной
? Наглядно это можно объяснить
тем, что график функции активации не является прямой. Например, график сигма
1
Термин «функция активации» родом из биологии и связан с изучением «живых» ней
ронов, взаимодействующих друг с другом посредством потенциалов действия (action
potential, скачков напряжения на мембранах их клеток). Типичный «живой» нейрон полу
чает входные сигналы от нескольких расположенных перед ним нейронов через точки со
единения — синапсы (synapses). Расположенные ближе нейроны возбуждают потенциалы
действия с различной частотой, в результате чего высвобождаются нейромедиаторы либо
открываются/закрываются каналы передачи ионов в синапсах. Это, в свою очередь, приво
дит к изменению напряжения тока на мембране нейронареципиента. Все это до какойто
степени напоминает взвешенные суммы для блоков плотного слоя. Лишь когда потенциал
превышает определенное пороговое значение, нейронреципиент фактически генерирует
потенциалы действия (то есть «активируется») и влияет на состояние расположенных
далее нейронов. В этом смысле функция активации настоящего «живого» нейрона напо
минает функцию ReLU (см. рис. 3.2, правый блок), состоящую из «мертвой зоны» ниже
определенного порогового значения входного сигнала, и растет линейно относительно
входного сигнала выше этого порогового значения (по крайней мере до определенного
уровня насыщения, не захватываемого функцией ReLU).
Do'stlaringiz bilan baham: |