Проецированный нормированный градиент
Проект с пингвинами
Проект использует 342 записи Palmer с нужными измерениями: 240 для обучения, 102 для проверки. Выбранные примеры для обучения определяют масштабирование и параметры модели. Исходный CSV
Этот проект обучает веса с помощью softmax, в отличие от лаборатории на главной странице, где используются ближайшие средние по видам. Те же измерения пингвинов, но разные методы классификации. Предсказания могут различаться.
Теория оптимизации · Изучает сходимость и геометрию потерь при заданных предположениях.
Проект содержит конечные наблюдения и обученные параметры. Проверочная выборка не устанавливает границы для генеральной совокупности и не доказывает теорему.
Рассмотрите понятие рядом с проектом: предположения источника могут отличаться. Эти наблюдения не доказывают теорему.
Вход: 12 × 2; Проверка на новых данных: 102 · #58 · 40.6 мм, 193 мм. Известный ответ: Адели; Прогноз: Адели · [≈0,7383; ≈0,2444; ≈0,01737].
Используется в разделах источника: 2.3 Путь обучения имеет значение
Нормируйте вектор параметров, сформируйте матрицу проекции, умножьте на градиент сглаженного отступа и разделите на норму параметров.
Для одного примера x=(1,0), y=1 и экспоненциальной потери rβ(θ)=θ₁, поэтому градиент равен (1,0).
Проецированное обновление описывает изменения направления параметров.
Пример формулы источника
Иллюстрация · Вычисляется одно проецированное векторное поле. Это не интегрирует траекторию и не доказывает общую сходимость к максимальному отступу.
Обозначения
- Ненулевая норма параметров.
- Вектор параметров, делённый на его норму.
- Матрица проекции на направления, ортогональные единичному вектору параметров.
Пример формулы источника
Этот пример использует свои входные данные и предположения. Его изменение не меняет проект.
Измените значение или код и запустите пример. Это конечная иллюстрация, а не доказательство теоремы.
Поток данных в этом примере
Код изменён. Сбросьте его, чтобы вернуть схему примера.
Вы выбираете
input.u= 3input.v= 4
Начальные значения в коде
gradient=[1, 0]
Вычисляется здесь
Выражение результата: { beta, normalized, projection, gradient, rate }
theta=[input.u, input.v]Использует:input.u,input.vbeta=Math.hypot(...theta)Использует:thetanormalized=theta.map((value) => value / beta)Использует:theta,betaprojection=normalized.map((value, i) => normalized.map((other, j) => (i === j ? 1 : 0) - value * other), )Использует:normalizedrate=projection.map( (row) => row.reduce((sum, value, i) => sum + value * gradient[i], 0) / beta, )Использует:projection,gradient,beta
Возвращает
beta- 5
normalized- массив (2 элементов): [0,6, 0,8]
projection- массив (2 элементов): [массив (2 элементов): [0,64, -0,48], массив (2 элементов): [-0,48, 0,36]]
gradient- массив (2 элементов): [1, 0]
rate- массив (2 элементов): [0,128, -0,096]
Прочитайте числа из input и верните результат. Основы JavaScript.
Результат
Техническая формулировка
Источник выводит эволюцию по правилу цепочки для нормированных ненулевых параметров. У выбранной экспоненциальной потери одного примера сглаженный отступ равен первой координате параметра; поэтому градиент точно равен (1,0).
Источник: Выражение из статьи