Предполагая, что в последнем скрытом слое имеется N узлов, weight_hidden является матрицей измерения N на 10, значение delta_output сверху равно 10x1, а результат der_hidden_activation (output_hidden) равен N x 1.
При переходе от слоя из N нейронов (скрытый слой) к слою из M нейронов (выходной слой) при умножении матрицы размеры матрицы веса должны быть M x N. Таким образом, для стадии обратного распространения, переходящей от слоя M нейронов (выход) к слою N нейронов (скрытый слой), используйте transpose матрицы весов, которая даст вам матрицу измерения ( N x M).
Теперь, мой первый вопрос: должны ли умножения delta_output и der_hidden_activation (output_hidden) возвращать матрицу 10 x N, используя внешний продукт? Я думаю, что мне нужно сделать продукт Адамара из этой результирующей матрицы с нетронутыми весами, чтобы сделать delta_hidden равным N x 10.
Да, вам нужно использовать hadamard product однако вы не можете умножать delta_output и der_hidden_activation (output_hidden), поскольку это матрицы разных размеров (10 x 1 и N x 1 соответственно). Вместо этого вы умножаете транспонирование матрицы hidden_weight (N x 10) на delta_output (10 x 1), чтобы получить матрицу N x 1, а затем выполняете произведение hadamard с der_hidden_activation (output_hidden).
Если I я перевожу это правильно ...
hidden_weight matrix =
delta_output =
delta_hidden =
der_hidden_activation(output_hidden) =
Plugging this into the BP formula...
As you can see, you need to multiply the transpose of the weight_hidden (N x 10) with delta_output (10 x 1) first to produce a matrix (N x 1), and then you use hadamard product with der_hidden_activation(output_hidden).
Finally I multiply this delta_hidden by my learning rate and subtract it from the original weight of the last hidden layer to get my new weights.
You don't multiply delta_hidden by the learning rate. You need to use the learning rate on a bias and delta weight matrix...
The delta weight matrix is a matrix of the same dimensions as your (hidden) weight matrix and is calculated using the formula...
And then you can easily apply the learning rate...
Кстати, я только что ответил на аналогичный вопрос о AISE, который может помочь пролить некоторый свет и более подробно рассказать о матрицах, которые следует использовать во время обратного распространения.