Я слежу за видео Эндрю Н.Г. в нейронных сетях. В этих видео он не связывает предвзятость с каждым нейроном. Вместо этого он добавляет блок смещения в начале каждого слоя после того, как были вычислены их активации, и использует это смещение вместе с вычислениями для расчета активаций следующего слоя (прямое распространение).

Однако в некоторых других блогах, посвященных машинному обучению, и в видеороликах, например this, присутствует предвзятость быть связанным с каждым нейроном. В чем и почему эта разница и каковы ее последствия?

10
RaviTej310 12 Май 2016 в 20:07

2 ответа

Лучший ответ

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

 (w * a) + b

В Andrew Ng это значение вычисляется с использованием трюка векторизации , в котором вы объединяете свои активации с указанной константой смещения (обычно 1), и это выполняет свою работу (поскольку эта константа имеет свою собственную вес для разных узлов - так что это точно то же самое, что и другое значение смещения для каждого узла).

5
Marcin Możejko 13 Май 2016 в 07:41

Что касается различий между ними, @Marcin прекрасно ответил на это.

Интересно, что в своей специализации Deep Learning от DeepLearning.AI Эндрю использует подход, отличный от своего курса машинного обучения (где он взял один термин смещения для каждого скрытого слоя), и связывает смещение с каждым связанным нейроном.

Хотя оба подхода пытаются достичь одного и того же результата, на мой взгляд, тот, который связывает смещение с каждым нейроном, гораздо более явный и очень помогает при настройке гиперпараметров, особенно когда вы имеете дело с большими архитектурами нейронных сетей, такими как CNN, Deep Нейронная сеть и др.

0
Aditya Saini 6 Июл 2020 в 21:23