Градиентный поток и ядро
Проект с пингвинами
Проект использует 342 записи Palmer с нужными измерениями: 240 для обучения, 102 для проверки. Выбранные примеры для обучения определяют масштабирование и параметры модели. Исходный CSV
Этот проект обучает веса с помощью softmax, в отличие от лаборатории на главной странице, где используются ближайшие средние по видам. Те же измерения пингвинов, но разные методы классификации. Предсказания могут различаться.
Ядра и линеаризация · Связывают градиенты параметров или признаки с матрицами ядер.
Проект содержит конечные наблюдения и обученные параметры. Проверочная выборка не устанавливает границы для генеральной совокупности и не доказывает теорему.
Рассмотрите понятие рядом с проектом: предположения источника могут отличаться. Эти наблюдения не доказывают теорему.
Вход: 12 × 2; Проверка на новых данных: 102 · #58 · 40.6 мм, 193 мм. Известный ответ: Адели; Прогноз: Адели · [≈0,7383; ≈0,2444; ≈0,01737].
Используется в разделах источника: 2.1 Взгляд через сходство
Градиентный поток изменяет параметры в направлении, противоположном градиенту риска. Каждое Dᵢ — производная потери по предсказанию.
Для учебной модели Φ(x,θ) = θx и квадратичной потери код вычисляет скорости параметра, предсказания и риска в один момент.
Ядро выражает, как обновление параметра изменяет предсказания на разных входах.
Пример формулы источника
Иллюстрация · Вычисляются мгновенные скорости для одной гладкой скалярной модели и двух фиксированных примеров. Это не решает всю траекторию и не показывает постоянство общего ядра.
Обозначения
- Производная потери по предсказанию на обучающем примере i.
- Скалярное произведение градиентов выхода на двух входах.
Пример формулы источника
Этот пример использует свои входные данные и предположения. Его изменение не меняет проект.
Измените значение или код и запустите пример. Это конечная иллюстрация, а не доказательство теоремы.
Поток данных в этом примере
Код изменён. Сбросьте его, чтобы вернуть схему примера.
Вы выбираете
input.theta= 1input.query= 1
Начальные значения в коде
xs=[1, 2]ys=[2, 4]
Вычисляется здесь
Выражение результата: {
predictions,
lossDerivatives,
parameterRate,
kernelRow,
kernelMatrix,
predictionRate,
riskRate,
}
predictions=xs.map((x) => input.theta * x)Использует:xs,input.thetalossDerivatives=predictions.map((value, i) => 2 * (value - ys[i]))Использует:predictions,ysparameterRate=-xs.reduce((sum, x, i) => sum + x * lossDerivatives[i], 0) / xs.lengthИспользует:xs,lossDerivativeskernelRow=xs.map((x) => input.query * x)Использует:xs,input.querykernelMatrix=xs.map((xi) => xs.map((xj) => xi * xj))Использует:xspredictionRate=-kernelRow.reduce((sum, value, i) => sum + value * lossDerivatives[i], 0) / xs.lengthИспользует:kernelRow,lossDerivatives,xsriskRate=-xs.reduce( (sum, xi, i) => sum + xs.reduce( (inner, xj, j) => inner + lossDerivatives[i] * xi * xj * lossDerivatives[j], 0, ), 0, ) / xs.length ** 2Использует:xs,lossDerivatives
Возвращает
predictions- массив (2 элементов): [1, 2]
lossDerivatives- массив (2 элементов): [-2, -4]
parameterRate- 5
kernelRow- массив (2 элементов): [1, 2]
kernelMatrix- массив (2 элементов): [массив (2 элементов): [1, 2], массив (2 элементов): [2, 4]]
predictionRate- 5
riskRate- -25
Прочитайте числа из input и верните результат. Основы JavaScript.
Результат
Техническая формулировка
Источник использует правило цепочки для выражения скоростей параметров, выхода и риска через D и нейронное касательное ядро. Эта линейная модель имеет градиент ∂Φ/∂θ = x, следовательно ядро K(x,x′) = xx′. Для квадратичной потери Dᵢ = 2(Φ(xᵢ,θ)−yᵢ). Скорость риска равна минусу квадрата градиента по параметру в этом скалярном примере.
Источник: Выражение из статьи