Рассмотрим файл randInitializeWeights.m. При обучении нейронных сетей важно случайным образом задавать параметры для нарушения симметрии. Это реализовано в данном файле.
Программы файла randInitializeWeights.m:
function W = randInitializeWeights(L_in, L_out)
% W = randInitializeWeights(L_in, L_out) инициализирует случайными значениями
% веса слоя нейронной сети с L_in входящими соединениями
% и L_out outgoing исходящими соединениями.
%
% Матрица W должна иметь размерность (L_out, 1 + L_in) т.к.
% первый столбец W отвечает за смещения.
%
% Инициализируем значения весов малыми случайными значениями
% см. описание работы.
epsilon_init = 0.12;
W = rand(L_out, 1 + L_in) * 2 * epsilon_init - epsilon_init;
end