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

Шаг градиента по мини-батчу

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

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

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

Обучение и обновление параметров · Выбирают правило или обновляют параметры с помощью правила обучения.

Текущая целевая функция даёт градиент для обновления параметров.

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

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

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

Вычислите градиент для каждого примера мини-батча, усредните их, умножьте на размер шага и вычтите.

Шаг по мини-батчу позволяет обновить параметры без использования всех обучающих примеров.

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

Θ(k)≔Θ(k−1)−ηkm′∑z∈S′∇θL(Φa(⋅,Θ(k−1)),z),\Theta^{(k)}\coloneqq\Theta^{(k-1)}-\frac{\eta_{k}}{m^{\prime}}\sum_{z\in{S}^{\prime}}\nabla_{\theta}{\mathcal{L}}(\Phi_{{a}}(\cdot,\Theta^{(k-1)}),z),

Иллюстрация · Два заданных градиента иллюстрируют арифметику; код не вычисляет их из сети и не устанавливает сходимость.

Обозначения

m′m'
Положительный размер мини-батча.
ηkη_k
Размер шага на итерации k.

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

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

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

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

Вы выбираете

  • input.firstGradient = 2
  • input.theta = 2
  • input.rate = 0,1

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

Выражение результата: { gradients, meanGradient, next: input.theta - input.rate * meanGradient }

  • gradients = [input.firstGradient, 4] Использует: input.firstGradient
  • meanGradient = gradients.reduce((a, b) => a + b, 0) / gradients.length Использует: gradients

Возвращает

Пример результата
gradients
массив (2 элементов): [2, 4]
meanGradient
3
next
1,7

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

Результат

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

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

Измените вход и снова запустите тот же код. Показанный результат получен для приведённых выше значений.

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