Обратное распространение через два слоя
Проект с пингвинами
Проект использует 342 записи Palmer с нужными измерениями: 240 для обучения, 102 для проверки. Выбранные примеры для обучения определяют масштабирование и параметры модели. Исходный CSV
Этот проект обучает веса с помощью softmax, в отличие от лаборатории на главной странице, где используются ближайшие средние по видам. Те же измерения пингвинов, но разные методы классификации. Предсказания могут различаться.
Функции и производные · Описывают отображения и изменение их значений.
Векторы проекта имеют два признака; обучающая матрица содержит n строк и два столбца. Инструменты применимы, когда выполнены их предположения.
Рассмотрите понятие рядом с проектом: предположения источника могут отличаться. Эти наблюдения не доказывают теорему.
Вход: 12 × 2; Проверка на новых данных: 102 · #58 · 40.6 мм, 193 мм. Известный ответ: Адели; Прогноз: Адели · [≈0,7383; ≈0,2444; ≈0,01737].
Используется в разделах источника: 2.3 Путь обучения имеет значение
Правило цепочки перемножает отклики каждого этапа на малое изменение. В скалярном примере эти множители — обычные числа.
Пусть Φ(x)=v·ReLU(ux). Вдали от ux=0 производная по u равна v·ReLU′(ux)·x.
Обратное распространение вычисляет, как параметры влияют на выход.
Пример формулы источника
Иллюстрация · Это скалярное вычисление вдали от точки излома ReLU не вычисляет полный матричный градиент общей сети.
Обозначения
- Матрица весов слоя ℓ.
- Производная активации там, где она определена.
Пример формулы источника
Этот пример использует свои входные данные и предположения. Его изменение не меняет проект.
Измените значение или код и запустите пример. Это конечная иллюстрация, а не доказательство теоремы.
Поток данных в этом примере
Код изменён. Сбросьте его, чтобы вернуть схему примера.
Вы выбираете
input.u= 2input.x= 1input.v= 3
Вычисляется здесь
Выражение результата: {
preactivation,
activation,
activationDerivative,
output,
gradientU,
gradientMatrix: [[gradientU]],
gradientShape: [1, 1],
}
preactivation=input.u * input.xИспользует:input.u,input.xactivation=Math.max(0, preactivation)Использует:preactivationactivationDerivative=preactivation > 0 ? 1 : 0Использует:preactivationoutput=input.v * activationИспользует:input.v,activationgradientU=input.x * input.v * activationDerivativeИспользует:input.x,input.v,activationDerivative
Возвращает
preactivation- 2
activation- 2
activationDerivative- 1
output- 6
gradientU- 3
gradientMatrix- массив (1 элементов): [массив (1 элементов): [3]]
gradientShape- массив (2 элементов): [1, 1]
Прочитайте числа из input и верните результат. Основы JavaScript.
Результат
Техническая формулировка
Источник применяет правило цепочки к сети без смещений со скалярным выходом. В источнике градиент показан размером N_(ℓ−1) на N_ℓ. Пример имеет один скалярный вход и один скрытый нейрон, поэтому показанный градиент имеет размер 1 на 1. ReLU не имеет единственной производной в нуле, и код отклоняет этот случай.
Источник: Выражение из статьи