Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пояснительная записка нейросети.doc
Скачиваний:
30
Добавлен:
12.04.2015
Размер:
537.09 Кб
Скачать

2. Описание структуры программы

Программа написана на языке Java, в среде NetBeans. В ней классом, воспроизводящим поведение искусственного нейрона является класс Neuron. В этом классе порог нейрона определяется переменной s, а w — веса синапсов. Пороговая функция состояния нейрона определяется методом int activator(int nec). Передача сигналов в нейроне осуществляется с помощью функции transfer(int[] x). Функция void changeWeights(int v, int d, int[] x) предназначена для изменения весов в нейроне, где массив int[] x является массивом сигналов на входе нейрона , int v скорость обучения, int d разница между входным и эталонным значением. Метод int adder(int[] x) получает значение индуцированного локального поля по формуле:

Класс, воспроизводящий поведение персептрона - Perceptron. Функция void initWeights() задает веса нейронов случайным образом, функция int[] recognize(int[] x) - функция распознавания, осуществляющая передачу сигналов по всем нейронам. Функция void teach(int[] x, int[] y) — функция обучения персептрона, получает на вход 2 различных вектора — вектор с распознаваемой последовательностью и эталонный выходной вектор. После распознавания результат распознавания сравнивается с эталоном и веса нейронов корректируются, в зависимости от их различий.

2.1 Обучение нейросети

Для обучения программы использовалась следующая последовательность данных (рисунок 8). На этом рисунке представлен список файлов, названия которых сформированы следующим образом: цифра до точки в начале имени файла означает цифру, к которой принадлежит образ, цифра после точки означает номер образа.

Рисунок 8 – Последовательность данных для обучения нейросети

Размер входных и обучающих образов для этой нейронной сети составляет 64x64 пикселя. Обучение в сети производиться 100 раз.

2.2 Результаты тестирования программы

Результаты тестирования программы показаны в таблице 1.

Таблица 1 – Результаты тестирования программы

Входной образ

Ожидаемый результат

Полученный результат

1

1

2

2

3

3

4

4

5

5

6

6

7

3

8

8

9

9

Нет результата

1

Нет результата

Нет результата

Нет результата

0

В результате, количество неправильных результатов составляет 23%

Заключение

В данной работе, получение признаков входных векторов было реализовано именно из графических файлов. При это не переписывая кода программы, можно обучить персептрон, распознавать буквы, и вообще любые фигуры. Что касается персептрона в принципе, при обучении или распознавании на вход классу Perseptron можно подавать любые признаки Для этого нужно только переписать классы формирования признаков. Но данная реализация поставленной задачи, повторюсь, способна распознавать образы "достаточно" похожие на те, на которых обучали персептрон. Для более серьезной и глубокой проработки этой задачи, необходимо и более глубокое и детальное изучение того огромного опыта, накопленного человеком в области искусственного интеллекта.