почему линейная функция бесполезна в многослойной нейронной сети? Как последний слой становится линейной функцией ввода первого слоя?

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

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


person Farhana Yasmeen    schedule 06.01.2019    source источник


Ответы (2)


Это одна из самых интересных концепций, с которыми я столкнулся при изучении нейронных сетей. Вот как я это понял:

Вход Z в один слой может быть записан как произведение весовой матрицы и вектора выхода узлов в предыдущем слое. Таким образом, Z_l = W_l * A_l-1, где Z_l, является входом для L-го слоя. Теперь A_l = F(Z_l), где F — функция активации слоя L. Если функция активации линейна, то A_l будет просто фактором K of Z_l. Следовательно, мы можем написать Z_l примерно так: Z_l = W_l*W_l-1*W_l-2*...*X, где X — вход. Итак, вы видите, что выход Y, наконец, будет умножением нескольких матриц на входной вектор для конкретного экземпляра данных. Мы всегда можем найти результирующее произведение весовых матриц. Таким образом, выход Y будет W_Transpose * X. Это уравнение не что иное, как линейное уравнение, с которым мы сталкиваемся в линейной регрессии. Следовательно, если все входные слои имеют линейную активацию, выход будет представлять собой только линейную комбинацию входных данных и может быть записан с помощью простого линейного уравнения.

person Parijat Bhatt    schedule 07.01.2019

Это не совсем бесполезно.

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

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

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

person NullDev    schedule 06.01.2019