Перейти к содержимому

Обучение нейронной сети на MNIST на C++ | Глубинное обучение, от и до #12

Kerem Kazan

0:00 / 0:00

Обучение нейронной сети на MNIST на C++ | Глубинное обучение, от и до #12

669 просмотров · 13 дн. назад
Kerem Kazan
208 подписчиков
669 просмотров · 13 дн. назад
Обучите нейронную сеть на наборе данных MNIST на C++ с использованием библиотеки Tensor и разработанного нами с нуля механизма автоматического дифференцирования. В 12-м эпизоде ​​программы «Глубокое обучение: до самого низа» наша сеть учится распознавать рукописные цифры. Каждое изображение выдает десять оценок, по одной для каждой цифры. Мы преобразуем эти оценки в вероятности с помощью функции softmax, а затем создаем функцию потерь кросс-энтропии, чтобы обучить модель присваивать более высокую вероятность правильному ответу. Мы добавляем в нашу библиотеку Tensor экспоненциальный градиентный спуск, логарифм и суммы столбцов, включая их правила обратного преобразования. Затем функции softmax и кросс-энтропии используют эти операции с нашим существующим механизмом автоматического градиентного спуска. Цикл обучения использует мини-пакетный градиентный спуск на 10 000 изображениях MNIST. После обучения мы измеряем точность классификации на 2000 отдельных тестовых изображениях, на которых модель не обучалась. В этом эпизоде ​​рассматриваются: • Изображения MNIST в виде тензоров C++ • Исходные оценки классов и вероятности softmax • Экспоненциальные, логарифмические и столбцовые суммы с обратным распространением ошибки • Целевые значения one-hot и функция потерь кросс-энтропии • Обучение нейронной сети с использованием мини-пакетов • Распознавание рукописных цифр и точность тестирования Полная серия:    • Deep Learning, All the Way Down | From Fir...   Исходный код серии: https://github.com/mechanical-turk/de...