отчет. Н. Ф. Гусарова, Н. В
![]()
|
«4», «4», «4», «4», «4»![]() ![]() ![]() Рис. 4.6. Результаты распознавания символа «8», искаженного 10% шума «Соль и Перец», результат распознавания (слева направо): «8», «8», «6»Результаты распознавания символов, представленные на рисунках 4.2-4.6, демонстрируют хорошее распознавание с помощью НС даже при сильном искажении (параметр p>0,1). Для объективной оценки ка- чества работы НС необходимо вычисление вероятностных характеристик распознавания. При правильном выборе параметров обучения сети и ис- пользовании не менее 100 обучающих образов можно получить вероятность правильного распознавания символов порядка 0,6…0,9 (в зависимости от вида распознаваемого символа) при параметре искажения p=0,1…0,2. Качество работы НС характеризуется вероятностями правильной клас- сификации образа i-го класса, i=1,…,M. Оценка вероятностей произво- дится по формуле: ![]() пр P ˆ (i) NпрN0 , где Nпр число правильных распознаваний образа i-го класса; N0 - общее число распознаваний образов i-го класса. Число определяется экспериментально при запуске программы sr_work при значениях =10…100. ЦЕЛЬ РАБОТЫИсследование возможностей распознавания печатных символов с помощью нейронных сетей, а также построение нейронных сетей в среде MATLAB. ЗАДАНИЕ НА ПРАКТИЧЕСКУЮ РАБОТУ И ПОРЯДОК ВЫПОЛНЕНИЯПодготовить графические файлы эталонных образов для симво- лов, заданных преподавателем, или самостоятельная подготовка эталонных (обучающих) образов печатных символов в виде набора графических фай- лов. В среде MATLAB создать и обучить нейронную сеть (НС), пред- назначенную для распознавания печатных символов. Исследовать зависимость качества работы НС от: степени искажения символов (параметр p); числа нейронов в скрытом слое. ПРИМЕР ВЫПОЛНЕНИЯ РАБОТЫЦель работы: обучить нейронную сеть распознавать рукописные цифры. Перед нами стоит задача классификации: есть десять эталонных об- разцов, цифры от 0 до 9. Импорт библиотек для работы и загрузка датасета MNIST. MNIST - объёмная датасет образцов рукописного написания цифр. Он вклю- чает в себя 60,000 изображений для тренировки and 10,000 тестовых изоб- ражений. ![]() Части x_train и x_test содержат изображения в цветовом про- странстве RGB в оттенках серого (уровни яркости от 0 до 255). Выведем пример рукописной цифры из датасета MNIST. ![]() Тренировочная выборка: 60000 изображений 28*28 пикселей. Тестовая выборка: 10000 изображений 28*28 пикселей. ![]() Нормализация изображений. Мы должны нормализовать наши данные, как это всегда требуется в моделях нейронных сетей. Мы можем достичь этого, разделив коды RGB на 255 (это максимальное значение для цветового пространства RGB). Преобразуем данные в float. Теперь уровень яркости определяется значением от 0 до 1. ![]() Построение нейронной сети. Мы будем конфигурировать нашу сеть с помощью Kernas API с использованием библиотеки TensorFlow, кото- рая включает инструменты для работы с сетью. Входные значения: 784 (28*28) значений от 0 до 255 (уровней яркости изображения) На входной слой – 800 нейронов. На выходной слой 10 нейро- нов и вероятность что на изображении эталонная цифра. Используется последовательная модель: модель, в которой слои нейронной сети идут друг за другом. ![]() ![]() Запуск (10 эпох) и определение точности. ![]() Точность модели после сравнения составила 98%. ![]() Проверим индивидуальное распознавание цифр. ![]() Проверим сеть, как она будет работать с искаженными циф- рами. Для этого с помощью Adobe Photoshop создаем изображение размером 32*32 и рисуем цифру. Для более оптимизированной работе тестовое изоб- ражение сохраняется в формате .tif. ![]() Без искажений. ![]() ![]() Фильтр «diffusion» 20%. ![]() Фильтр «diffusion» 15%, масштабирование, лишний элемент, пово- рот. ![]() ![]() Поворот на 30%. ![]() ![]() Фильтр «diffusion» 10%. ![]() Фильтр «diffusion» 30%. ![]() ![]() |