Смещение как дополнительная координата
Проект с пингвинами
Проект использует 342 записи Palmer с нужными измерениями: 240 для обучения, 102 для проверки. Выбранные примеры для обучения определяют масштабирование и параметры модели. Исходный CSV
Этот проект обучает веса с помощью softmax, в отличие от лаборатории на главной странице, где используются ближайшие средние по видам. Те же измерения пингвинов, но разные методы классификации. Предсказания могут различаться.
Признаки · Преобразуют входы в признаки для правила.
Из длины клюва и крыла вычитаем средние по обучающим примерам, затем делим на их стандартные отклонения. Получается вектор из двух чисел.
Рассмотрите понятие рядом с проектом: предположения источника могут отличаться. Эти наблюдения не доказывают теорему.
Вход: 12 × 2; Проверка на новых данных: 102 · #58 · 40.6 мм, 193 мм. Известный ответ: Адели; Прогноз: Адели · [≈0,7383; ≈0,2444; ≈0,01737].
Используется в разделах источника: 1.2 Обучение на примерах
Добавление 1 к входу позволяет включить смещение в матричное умножение.
Это представление упрощает обозначения слоёв.
Пример формулы источника
Точное вычисление · Это конкретный конечномерный пример преобразования из источника.
Обозначения
- Вектор входа.
- Матрица весов.
- Вектор смещений.
- Число слоёв.
Пример формулы источника
Этот пример использует свои входные данные и предположения. Его изменение не меняет проект.
Измените значение или код и запустите пример. Это конечная иллюстрация, а не доказательство теоремы.
Поток данных в этом примере
Код изменён. Сбросьте его, чтобы вернуть схему примера.
Вы выбираете
input.x= 1
Начальные значения в коде
W=[ [1, 2], [3, 4], ]b=[1, -1]augmented=[ [1, 2, 1], [3, 4, -1], [0, 0, 1], ]
Вычисляется здесь
Выражение результата: { augmentedInput, augmented, hiddenOutput: full, finalOutput: finalLayer }
x=[input.x, 2]Использует:input.xaugmentedInput=[...x, 1]Использует:xfull=augmented.map((row) => row.reduce((s, v, i) => s + v * augmentedInput[i], 0), )Использует:augmented,augmentedInputfinalLayer=[ [1, 2, 1], [3, 4, -1], ].map((row) => row.reduce((s, v, i) => s + v * augmentedInput[i], 0))Использует:augmentedInput
Возвращает
augmentedInput- массив (3 элементов): [1, 2, 1]
augmented- массив (3 элементов): [массив (3 элементов): [1, 2, 1], массив (3 элементов): [3, 4, -1], массив (3 элементов): [0, 0, 1]]
hiddenOutput- массив (3 элементов): [6, 10, 1]
finalOutput- массив (2 элементов): [6, 10]
Прочитайте числа из input и верните результат. Основы JavaScript.
Результат
Техническая формулировка
Дополнительная строка сохраняет константу 1 для промежуточных слоёв; последний слой не содержит этой строки.
Источник: Формула из статьи