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

Псевдообратная матрица для одного примера

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

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

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

Векторы и матрицы · Описывают операции над векторами и матрицами.

Векторы проекта имеют два признака; обучающая матрица содержит n строк и два столбца. Инструменты применимы, когда выполнены их предположения.

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

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

Используется в разделах источника: 2.4 Двойной спуск

Для одного примера с d координатами ±1 квадрат нормы равен d. Источник явно задаёт псевдообратную матрицу его внешнего произведения.

Учебный пример — X=(1,−1), поэтому d=2.

Псевдообратная матрица появляется в вычислении дисперсии источника.

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

Σ+=X(1)(X(1))T∥X(1)∥4=X(1)(X(1))Td2\Sigma^{+}=\frac{X^{(1)}(X^{(1)})^{T}}{\|X^{(1)}\|^{4}}=\frac{X^{(1)}(X^{(1)})^{T}}{d^{2}}

Точное вычисление · Результат точен для этих конечных учебных входов с учётом обычного компьютерного округления.

Обозначения

Σ+Σ^+
Псевдообратная матрица Мура—Пенроуза для Σ.
X(1)X^{(1)}
Один двоичный вектор в {−1,1}ᵈ.

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

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

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

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

Вы выбираете

  • input.second = -1

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

Выражение результата: { x, normSquared, outer, pseudoinverse, projection }

  • x = [1, input.second] Использует: input.second
  • normSquared = x.reduce((sum, value) => sum + value * value, 0) Использует: x
  • outer = x.map((a) => x.map((b) => a * b)) Использует: x
  • pseudoinverse = outer.map((row) => row.map((value) => value / normSquared ** 2)) Использует: outer, normSquared
  • projection = outer.map((row, i) => row.map( (_, j) => (i === j ? 1 : 0) - pseudoinverse[i].reduce((sum, value, k) => sum + value * outer[k][j], 0), ), ) Использует: outer, pseudoinverse

Возвращает

Пример результата
x
массив (2 элементов): [1, -1]
normSquared
2
outer
массив (2 элементов): [массив (2 элементов): [1, -1], массив (2 элементов): [-1, 1]]
pseudoinverse
массив (2 элементов): [массив (2 элементов): [0,25, -0,25], массив (2 элементов): [-0,25, 0,25]]
projection
массив (2 элементов): [массив (2 элементов): [0,5, 0,5], массив (2 элементов): [0,5, 0,5]]

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

Результат

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

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

Для ненулевого вектора x псевдообратная к xxᵀ равна xxᵀ/‖x‖⁴. Двоичные координаты дают ‖x‖²=d, откуда получается второе выражение. Код использует d=2 и также вычисляет P=I−Σ⁺Σ, ортогональную проекцию на ядро Σ.

Источник: Псевдообратная матрица одного примера