Почему мы используем функцию активации после слоя свертки в нейронной сети свертки?

thegoodguy спросил: 31 июля 2018 в 09:35 в: machine-learning

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


1 ответ

Есть решение
Scott ответил: 31 июля 2018 в 10:18

Потому что свертка, сопровождаемая сверткой, является сверткой. Следовательно, сверточная нейронная сеть произвольной глубины без вмешательства в некорреляционные некие слои (такие как релейный слой) в основном эквивалентна сверточной нейронной сети только с одним слоем. Это связано с тем, что составление линейных преобразований является линейным:

y = m1*(m2*x + b2) + b1
  = m1 * m2 * x + m1 * b2 + b1

Это просто линейная функция ... Зачем учить два, если вы можете выучить только одно, и оно точно такое же? Эта логика применяется даже к локально линейным функциям (свертки локально линейны). Таким образом, для сверточных NN (но также и для ванильных NN) мы должны делать что-то нелинейное между линейными слоями. Одна невероятно простая нелинейная функция - это relu, которая является основным "изгибом".