10.60M

9Б_Тагиров_Ренат(1)

1.

Создание нейросети для
распознавания
рукописных цифр
Муниципальное бюджетное общеобразовательное учреждение
"Гимназия №26" г. Набережные Челны, Республика Татарстан
Выполнил Тагиров Ренат 9Б

2.

Актуальность задачи
Автоматизация обработки визуальной
информации — ключевой элемент
современных технологий.
Распознавание рукописных цифр
применяется в:
Сортировке почтовых отправлений
Оцифровке архивных документов
Обработке банковских чеков
Создании интерфейсов ввода данных

3.

Проблема и цель проекта
Проблема
Цель
Необходимость баланса между
скоростью обучения,
вычислительной сложностью и
точностью распознавания при
выборе функций активации
Разработать нейронную сеть на
языке Rust для распознавания
рукописных цифр и провести
сравнительный анализ
эффективности различных функций
активации

4.

Задачи проекта
01
02
03
Изучение теории
Математическое ядро
Архитектура сети
Фундаментальные основы
Реализация на Rust операций с
Программная реализация гибкой
полносвязных нейронных сетей и
матрицами и векторами для работы с
архитектуры с настраиваемыми
алгоритма обратного распространения
данными
функциями активации
ошибки
04
05
Эксперименты
Сравнительный анализ
Тестирование гиперболического тангенса, сигмоиды и ReLU
Оценка точности и скорости сходимости различных
на датасете MNIST
функций активации

5.

Основные понятия
Нейронная сеть (MLP)
Математическая модель, имитирующая работу нервной системы для решения задач классификации и прогнозирования
Датасет MNIST
База данных с 60 000 изображений для обучения и 10 000 для тестирования рукописных цифр
Эпоха обучения
Один полный проход алгоритма обучения по всему тренировочному набору данных
Градиентный спуск
Метод оптимизации для нахождения локального минимума функции потери сети
Функция активации
Математическая функция (ReLU, Sigmoid), добавляющая в сеть нелинейность

6.

Техническая реализация
Стек технологий
Архитектура сети
Язык Rust (системное
программирование)
BufReader для ускоренного
(28×28 пикселей)
чтения данных
Кастомный парсер бинарных
файлов MNIST
Входной слой: 784 нейрона
Скрытый слой: 128 нейронов
с ReLU
Выходной слой: 10 нейронов
с Sigmoid

7.

Процесс обучения
Загрузка данных
Матричные операции
Парсинг бинарных файлов MNIST с нормализацией
Сложение, вычитание и умножение матриц через
пикселей в диапазоне 0.0–1.0
перегрузку операторов Rust
Мини-батчи
Backpropagation
Разбиение данных на пакеты по 32 элемента для
Обратное распространение ошибки с шагом обучения 0.5
эффективного обучения
для коррекции весов

8.

Результаты тестирования
97.32% 59.89s
34s
Максимальная
точность
Время обучения
Чистая скорость
Инициализация
3 эпохи на 60 000
Обучение без
Xavier на тестовой
изображениях с
промежуточных
выборке 10 000
тестированием
проверок тестовой
изображений
выборки

9.

Заключение
Цель достигнута
Технологический стек
Разработана и протестирована нейронная
сеть с точностью выше 97%
Язык Rust, nvim, cargo, git для системного
программирования
Интерактивный интерфейс
Графическое приложение egui для рисования и мгновенного распознавания
Проект успешно применил теоретические знания по математике и программированию. Архитектура нейронной сети работает корректно,
алгоритмы оптимизированы для высокой скорости (обучение занимает меньше минуты), а интерактивный графический интерфейс позволяет
любому пользователю нарисовать цифру и мгновенно получить предсказание искусственного интеллекта.
English     Русский Правила