Интерфейс пользователя
Главное окно программы (рис. 3) содержит панель для рисования и 4 кнопки («Определить фигуру», «Очистить», «Обучить», «Выход») .
Рис. 3. Главное окно программы При первом запуске программы персептрон еще не обучен и будет выдавать случайный результат. Например, изобразим на панели рисования треугольник рис. 4.
Рис. 4. При нажатии на кнопку «Определить фигуру» выдается сообщение
Нажимаем кнопку «Обучить», при нажатии которой пересчитываются веса . Затем снова нажимаем кнопку «Определить фигуру», выдается сообщение
Таким образом при длительном обучении программа перестанет ошибаться и будет выдавать только правильные сообщения.
Реализация Функции программы: void fastcall TForm 1:: FormCreate ( TObject * Sender ) - функция создает форму и заполняет матрицу весов случайными числами из промежутка [-0,3;03]. void fastcall TForm 1:: BitBtn 1 Click ( TObject * Sender ) - при нажатии кнопки «Определить фигуру» эта функция обнуляет входную матрицу , затем заполняется 0 и 1 в зависимости закрашен ли пиксель i-строки j-столбца. Далее считается и выдается сообщение в зависимости от знака S: y= void fastcall TForm 1:: BitBtn 2 Click ( TObject * Sender ) - при нажатии кнопки «Обучить» эта функция пересчитывает матрицу весов по формуле , где , а выбирается в зависимости от y. Если y=0 то . Если y=1 то . Исходный код программы находится в Приложении 1. [1-2] Заключение В результате работы были рассмотрены некоторые основы теории искусственных нейронных сетей. Был изучен и реализован алгоритм обучения персептрона. Разработано приложение с функционалом, описанным в разделе «Постановка задачи». Имеется возможность определения фигуры нарисованной пользователем. Для развития программы необходимо добавить такие функции как: · Масштабирование изображения · Увеличение количества фигур для распознавания путем увеличения нейронов в сети · Распознавание букв, цифр симфолов Приложение 1- Исходные коды программы Модуль Unit 1. cpp //--------------------------------------------------------------------------- #include <iostream.h> #include <time.h> #include <stdlib.h> #include <vcl.h> #pragma hdrstop #include "Unit1.h" //---------------------------------------------------------------------------
Перейти на страницу: 1 2
|