Современная математика глубокого обученияобъяснение для тех, кто не занимается математикой

Смещение как дополнительная координата

Проект с пингвинами

Проект использует 342 записи Palmer с нужными измерениями: 240 для обучения, 102 для проверки. Выбранные примеры для обучения определяют масштабирование и параметры модели. Исходный CSV

Этот проект обучает веса с помощью softmax, в отличие от лаборатории на главной странице, где используются ближайшие средние по видам. Те же измерения пингвинов, но разные методы классификации. Предсказания могут различаться.

Признаки · Преобразуют входы в признаки для правила.

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

Рассмотрите понятие рядом с проектом: предположения источника могут отличаться. Эти наблюдения не доказывают теорему.

Вход: 12 × 2; Проверка на новых данных: 102 · #58 · 40.6 мм, 193 мм. Известный ответ: Адели; Прогноз: Адели · [≈0,7383; ≈0,2444; ≈0,01737].

Используется в разделах источника: 1.2 Обучение на примерах

Добавление 1 к входу позволяет включить смещение в матричное умножение.

Это представление упрощает обозначения слоёв.

Пример формулы источника

x→[x1],(W(ℓ),b(ℓ))→[W(ℓ)b(ℓ)01],ℓ∈[L−1],и(W(L),b(L))→[W(L)b(L)].x\to\begin{bmatrix}x\\ 1\end{bmatrix},\quad(W^{(\ell)},b^{(\ell)})\to\begin{bmatrix}W^{(\ell)}&b^{(\ell)}\\ 0&1\end{bmatrix},\quad\ell\in[L-1],\quad\text{и}\quad(W^{(L)},b^{(L)})\to\begin{bmatrix}W^{(L)}&b^{(L)}\end{bmatrix}.

Точное вычисление · Это конкретный конечномерный пример преобразования из источника.

Обозначения

xx
Вектор входа.
W(l)W⁽ˡ⁾
Матрица весов.
b(l)b⁽ˡ⁾
Вектор смещений.
LL
Число слоёв.

Пример формулы источника

Этот пример использует свои входные данные и предположения. Его изменение не меняет проект.

Измените значение или код и запустите пример. Это конечная иллюстрация, а не доказательство теоремы.

Поток данных в этом примере

Вы выбираете

  • input.x = 1

Начальные значения в коде

  • W = [ [1, 2], [3, 4], ]
  • b = [1, -1]
  • augmented = [ [1, 2, 1], [3, 4, -1], [0, 0, 1], ]

Вычисляется здесь

Выражение результата: { augmentedInput, augmented, hiddenOutput: full, finalOutput: finalLayer }

  • x = [input.x, 2] Использует: input.x
  • augmentedInput = [...x, 1] Использует: x
  • full = augmented.map((row) => row.reduce((s, v, i) => s + v * augmentedInput[i], 0), ) Использует: augmented, augmentedInput
  • finalLayer = [ [1, 2, 1], [3, 4, -1], ].map((row) => row.reduce((s, v, i) => s + v * augmentedInput[i], 0)) Использует: augmentedInput

Возвращает

Пример результата
augmentedInput
массив (3 элементов): [1, 2, 1]
augmented
массив (3 элементов): [массив (3 элементов): [1, 2, 1], массив (3 элементов): [3, 4, -1], массив (3 элементов): [0, 0, 1]]
hiddenOutput
массив (3 элементов): [6, 10, 1]
finalOutput
массив (2 элементов): [6, 10]

Прочитайте числа из input и верните результат. Основы JavaScript.

Результат

Включите JavaScript, чтобы запустить пример.

Техническая формулировка

Дополнительная строка сохраняет константу 1 для промежуточных слоёв; последний слой не содержит этой строки.

Источник: Формула из статьи