Разработка простейшей нейронной сети. Тема курсовой работы Разработка простейшей нейронной сети, распознающей элементарные монохромные изображения на основе модели из n нейронов
Скачать 0.63 Mb.
|
Тема курсовой работы Разработка простейшей нейронной сети, распознающей элементарные монохромные изображения на основе модели из n нейроновБ1.О.08 Проектирование интеллектуальных систем 2020 АктуальностьПрименение методов искусственного интеллекта при решении задач распознавания образов позволит понять, что конкретно происходит внутри нейронной сети (НС), как реализуется ее обучение, − создаст базу по овладению долгосрочными идеями, которые закладываются в готовые библиотеки для ИНС в разных языках программирования при проектировании интеллектуальных системОбъект исследования: нейросетевые и нейрокомпьютерные технологииПредмет: программная реализация нейронной сетиЦели и задачи проектаЦель : разработка программы для распознавания монохромных изображений рукописных цифр на основе программно созданной и обученной нейронной сетиЗадачи:
Изучить алгоритм коррекции весовых коэффициентов однослойного персептрона с J входами и I выходами (обобщенное дельта-правило, метод градиентного спуска). Освоить алгоритм обратного распространения ошибки многослойного персептрона. Проанализировать возможности инструментальных средств разработки нейросети для распознавания образов (изображений цифр) на примере IDLE Python 3.7.4. Разработать программу создания НС для распознавания изображений цифр Протестировать и отладить программу Этапы жизненного цикла разрабатываемой программыАнализ предметной области ; Проектирование структуры программы (1-определение архитектуры ИНС, 2-обучение ИНС); Составление программы на языке Python; Тестирование и отладка. Математический аппарат для нейросетиРисунок 1 − Нелинейная модель нейрона Рисунок 1 − Нелинейная модель нейрона Рис.1 − Нелинейная модель нейрона Рис. 2 − Активационные функции НС Однослойный персептрон Постановка задачиОтыскание такого сочетания весовых коэффициентов wi,j, которому соответствует минимум функцииМетоды решения: Метод градиентного спуска (1) (2) алгоритм обратного распространения ошибки для обучения многослойных персептронов(3)прямой проход: вычислить состояния нейронов S всех слоёв и выход сети y вычисляем значения для выходного слоя обратный проход: последовательно от конца к началу для всех скрытых слоёв вычисляем δ по формуле (3) для каждого слоя вычисляем значение градиента, где y − вектор-вход. слоя, δ − вектор ошибки на выходе слоя.Разработка программы, создающей Нейросеть для распознавания рукописных цифрДиаграмма вариантов использования структура приложенияmnist_loader.py network.py архив БДБД содержит 70 000 изображений рукописных цифр, разделенных на три набора:1) training_data – набор из 50 000 изображений предназначен для обучения нейронных сетей;2) validation_data – набор из 10 000 изображений предназначен для текущей оценки работы алгоритма обучения и подбора параметров обучения;3) test_data – набор из 10 000 изображений предназначен для проверки работы нейронной сети.Модуль mnist_loader.pyФункция load_data_wrapper корректировка форматов наборов training_data, validation_data ,test_dataСписок, содержащий 50 000 пар (x, y), где x (784 x 1) y(10 x 1) def vectorized_result(j): e = np.zeros((10, 1)) e[j] = 1.0 return e # формируем набор обучающих данных из пар (x, y) training_data = zip(training_inputs, training_results) Исходные данные для программыВходные данные для нейронной сети: изображения размером 28 × 28 px Количество слоёв нейронной сети: 3 Среда программирования: Python 3.7.4 Используемая библиотека: NumPy Обучение нейронной сетиСхема настройки весов - «обучение с учителем»:обрабатываем учебный набор определяем ошибки если результат удовлетворительный, то конец работы корректируем параметры переход на п.1 Стратегии коррекции параметров: полная, частичная или стохастическаямодуль network.py Создание нейронной сетиВывод РезультатА работы МОДУЛЯ network.pyСозданная НС Запуск пРОЕКТАСлайд 11 Результат работы приложения Network1ИтогиПриобретены полезные навыки по проектированию и созданию ИНС Изучен математический аппарат, как основа машинного обучения Построена диаграмма вариантов использования (рис. 7) как концептуальная модель проектируемого приложения Программная реализация проекта выполнялась на языке Python средствами IDLE Python 3.7.4. Заключительным звеном процесса проектирования стало тестирование и отладка. Результат работы программы: обученная сеть даёт максимально верное распознавание рукописных изображений и составляет около 95 %. |