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

Сеть на рисунке источника

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

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

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

Правила предсказания и слои · Описывают или применяют правила предсказания, слои и параметры.

Проект использует линейное правило с двумя признаками. Обученные веса дают оценки или нормированную массу.

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

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

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

Рисунок источника содержит 3 входа, скрытые слои шириной 4 и 6 и 1 выход. Каждый слой имеет матрицу весов и вектор смещений.

Первый слой имеет 16 параметров, второй 30, а выходной слой 7, всего 53.

Формы определяют, как операции слоёв сети согласуются друг с другом.

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

Φa ⁣:R3×R53↦R\Phi_{{a}}\colon{\mathbb{R}}^{3}\times{\mathbb{R}}^{53}\mapsto{\mathbb{R}}

Иллюстрация · Архитектура соответствует рисунку источника. Численные веса, смещения и вход вымышлены для демонстрации.

Обозначения

NN
Ширины слоёв [3,4,6,1].
W(ℓ)W^{(ℓ)}
Веса с одной строкой на нейрон и одним столбцом на значение предыдущего слоя.
b(ℓ)b^{(ℓ)}
Одно смещение для каждого выхода слоя.
Φi(ℓ)Φ^{(ℓ)}_i
Значение до активации нейрона i в слое ℓ.
Φˉi(ℓ)Φ̄^{(ℓ)}_i
Соответствующее активированное значение.

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

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

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

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

Вы выбираете

  • input.x = 1

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

  • widths = [3, 4, 6, 1]

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

Выражение результата: { x, widths, counts, total: counts.reduce((a, b) => a + b, 0), firstPre, first, secondPre, second, output, }

  • x = [input.x, 0, 0] Использует: input.x
  • matrices = widths .slice(1) .map((rows, i) => Array.from({ length: rows }, (_, r) => Array.from({ length: widths[i] }, (_, c) => (r === 0 && c === 0 ? 1 : 0)), ), ) Использует: widths
  • biases = widths.slice(1).map((size) => Array(size).fill(0)) Использует: widths
  • firstPre = affine(matrices[0], biases[0], x) Использует: affine, matrices, biases, x
  • first = firstPre.map((value) => Math.max(0, value)) Использует: firstPre
  • secondPre = affine(matrices[1], biases[1], first) Использует: affine, matrices, biases, first
  • second = secondPre.map((value) => Math.max(0, value)) Использует: secondPre
  • output = affine(matrices[2], biases[2], second) Использует: affine, matrices, biases, second

Другие выражения в коде

Возвращает

Пример результата
x
массив (3 элементов): [1, 0, 0]
widths
массив (4 элементов): [3, 4, 6, 1]
counts
массив (3 элементов): [16, 30, 7]
total
53
firstPre
массив (4 элементов): [1, 0, 0, 0]
first
массив (4 элементов): [1, 0, 0, 0]
secondPre
массив (6 элементов): [1, 0, 0, 0, …]
second
массив (6 элементов): [1, 0, 0, 0, …]
… (9 элементов)

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

Результат

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

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

Для каждого слоя умножьте предыдущие значения на W и прибавьте b. В примере ReLU применяется к скрытым значениям до активации. 53 параметра источника включают нулевые веса и смещения; число зависит от доступных позиций, а не от того, какие позиции ненулевые.

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