Базовая реализация персептрона для обучения и распознавания простых фигур
Первое систематическое изучение искусственных нейронных сетей. Описание элементарного перцептрона. Программная реализация модели распознавания графических образов на основе перцептрона. Интерфейс программы, основные окна. Составление алгоритма приложения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 18.01.2014 |
Размер файла | 100,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
2
Содержание
Введение
1. Аналитическая часть
1.1 Описание программы
1.2 Описание элементарного перцептрона
2. Конструкторская часть
2.1 Описание используемого перцептрона
2.2 Описание пользовательского интерфейса
Заключение
Список литературы
Размещено на http://www.allbest.ru
Введение
Единого ответа на вопрос, чем занимается искусственный интеллект, не существует. Почти каждый автор, пишущий книгу об ИИ, отталкивается в ней от какого-либо определения, рассматривая в его свете достижения этой науки.
ИИ связан со сходной задачей использования компьютеров для понимания человеческого интеллекта, но не обязательно ограничивается биологически правдоподобными методами, а его методы используются для создания интеллектуальных компьютерных задач. Можно выделить два основных подхода к разработке ИИ:
Нисходящий (англ. Top-Down AI), семиотический -- создание экспертных систем, баз знаний и систем логического вывода, имитирующих высокоуровневые психические процессы: мышление, рассуждение, речь, эмоции, творчество и т. д.;
Восходящий (англ. Bottom-Up AI), биологический -- изучение нейронных сетей и эволюционных вычислений, моделирующих интеллектуальное поведение на основе биологических элементов, а также создание соответствующих вычислительных систем, таких как нейрокомпьютер или биокомпьютер.
В рамках данной курсовой работы используется базовая реализация персептрона для обучения и распознавания простых фигур. Данный метод относится к восходящему подходу разработки ИИ.
1. Аналитическая часть
1.1 Описание программы
Стоит задача распознать геометрические фигуры на изображении: окружность и треугольник. Для решений этой задачи разрабатываемый программный продукт должен соответствовать следующему набору требований: иметь инструментарий для создания распознаваемых графических образов, возможность загружать примеры графических образов для формирования аналога базы знаний и уметь распознавать графические образы.
1.2 Описание элементарного перцептрона
В качестве научного предмета искусственные нейронные сети впервые заявили о себе в 40-е годы. Стремясь воспроизвести функции человеческого мозга, исследователи создали простые аппаратные (а позже программные) модели биологического нейрона и системы его соединений, которые получили название перцептроны. Когда нейрофизиологи достигли более глубокого понимания нервной системы человека, эти ранние попытки стали восприниматься как весьма грубые аппроксимации. Тем не менее, именно на перцептронах были достигнуты первые впечатляющие результаты, стимулировавшие дальнейшие исследования, приведшие к созданию более изощренных сетей.
Первое систематическое изучение искусственных нейронных сетей было предпринято Маккалокком и Питтсом в 1943г. Простая нейронная модель, показанная на рисунке ниже, использовалась в большей части их работы. На вход поступает только двоичный сигнал, т.е. либо 0 либо 1. Элемент Sigma умножает каждый вход x_{N} на вес w_{N} и суммирует взвешенные входы. Если эта сумма больше заданного порогового значения, выход равен единице, в противном случае - нулю.
Именно такие системы и множество им подобных называются - перцептронами. Перцептроны состоят из одного слоя (т.е. количество слоев нейронов между входом X и выходом OUT равно одному) искусственных нейронов, соединенных с помощью весовых коэффициентов с множеством входов .
Вершины-круги в левой части рисунка служат лишь для распределения входных сигналов. Они не выполняют каких- либо вычислений, и поэтому не считаются слоем. По этой причине они обозначены в виде круга, чтобы отличать их от вычисляющих нейронов (сумматоров), обозначенных квадратами.
В 60-е годы перцептроны вызвали большой интерес и оптимизм. Розенблатт доказал замечательную теорему об обучении перцептронов. Уидроу дал ряд убедительных демонстраций систем перцептронного типа, и исследователи во всем мире стремились изучить возможности этих систем. Первоначальная эйфория сменилась разочарованием, когда оказалось, что перцептроны не способны обучиться решению ряда простых задач. Минский строго проанализировал эту проблему и показал, что имеются жесткие ограничения на то, что могут выполнять однослойные перцептроны, и, следовательно, на то, чему они могут обучаться. Так как в то время методы обучения многослойных сетей не были известны, исследователи перешли в более многообещающие области, и исследования однослойных перцептронов пришли в упадок. Недавнее открытие методов обучения многослойных сетей в большей степени, чем какой-либо иной фактор, повлияло на возрождение интереса и исследовательских усилий.
Работа Минского, возможно, и охладила пыл энтузиастов перцептрона, но обеспечила время для необходимой консолидации и развития лежащей в основе теории. Важно отметить, что анализ Минского не был опровергнут. Он остается важным исследованием и должен изучаться, чтобы ошибки 60-х годов не повторились.
Теория перцептронов является основой для многих других типов искусственных нейронных сетей, а сами перцептроны являются логической исходной точкой для изучения искусственных нейронных сетей.
2. Конструкторская часть
2.1 Описание используемого перцептрона
Программная реализация модели распознавания графических образов на основе перцептрона.
class Neyron
{
public:
int X[30][30];
int k_or_t;
int count_edin;
double S;
double W[30][30];
double W_now[30][30];
Neyron();
void Obuchenie(int k_or_t);
int Raspoznanie();
void Normirovka();
void Show();
}; персептрон нейронный программа графический
Перцептрон состоит из трёх типов элементов, а именно: поступающие от сенсоров сигналы передаются ассоциативным элементам, а затем реагирующим элементам. Таким образом, перцептроны позволяют создать набор «ассоциаций» между входными стимулами и необходимой реакцией на выходе.
Важным свойством любой нейронной сети является способность к обучению. Процесс обучения является процедурой настройки весов и порогов с целью уменьшения разности между желаемыми (целевыми) и получаемыми векторами на выходе.
void Obuchenie(int k_or_t)
{
for (int a=0;a<30;a++)
for (int b=0;b<30;b++)
X[a][b]=0;
int count_dots=0;
for (int a=0; a<30;a++)
{
int n=10;
int k=0;
for (int b=0; b<30;b++)
{
count_dots=0;
for (int i=k; i<n; i++)
{
int l=a*10;
int m=l+10;
for (int j=l; j<m; j++)
{
if ( Form1->Image1->Canvas->Pixels[i][j]==clBlack )
{
count_dots++;
}
}
}
if(count_dots>20)
{
X[a][b]=1;
if(k_or_t==0)
W[a][b]=W[a][b]+1;
else
W[a][b]=W[a][b]-1;
count_edin++;
}
k=n;
n=k+10;
}
}
S=0;
for (int a=0; a<30;a++)
for (int b=0; b<30;b++)
S=S+X[a][b]*W[a][b];
this->Show();
}
Простым распознающим элементом (реагирующим, то есть действующим) называется элемент, который выдаёт сигнал +1, если сумма его входных сигналов является строго положительной, и сигнал ?1, если сумма его входных сигналов является строго отрицательной. Если сумма входных сигналов равна нулю, выход считается либо равным нулю, либо неопределённым. Здесь мы имитируем его работу.
int Raspoznanie()
{for (int a=0;a<30;a++)
for (int b=0;b<30;b++)
X[a][b]=0;
int count_dots=0;
for (int a=0; a<30;a++)
{
int n=10;
int k=0;
for (int b=0; b<30;b++)
{
count_dots=0;
for (int i=k; i<n; i++)
{
int l=a*10;
int m=l+10;
for (int j=l; j<m; j++)
{
if ( Form1->Image1->Canvas->Pixels[i][j]==clBlack )
{
count_dots++;
}
}
}
if(count_dots>20)
{
X[a][b]=1;
}
k=n;
n=k+10;
}
S=0;
for (int a=0; a<30;a++)
for (int b=0; b<30;b++)
S=S+X[a][b]*W[a][b];
if(S>0)return 0;
if(S<0)return 1;
if(S==0)return -1;
}
2.2 Описание пользовательского интерфейса
Интерфейс программы предельно прост, в качестве цвета который принадлежит пользователю выступает темно синий цвет, пользователь и компьютер поочередно ставят свои фишки в местах, которые они считают более выигрышными, оборачивая тем самым фишки противника в свой цвет.
Окно программы представляет собой игровое поле, состоящее из ячеек таблицы размерностью 8х8 (Рис. 4.1). Нижнюю часть окна занимает информирующие элементы, которые отображают, чей сейчас ход, и каков счет фишек у пользователя и компьютера.
Рис. 4. 1 Вид окна программы
Ход осуществляется путем нажатия левой кнопки мыши на нужном поле. Ставить свою фишку необходимо в свободное место доски, в противном случае программа выдает уведомление о том, что такой ход не допустим (Рис. 4.2).
Рис. 4. 2 Уведомление о неправильном ходе
После того как на доске не остается ни одного свободного места программа определяет кому принадлежит перевес в фишках, и например в случае поражения пользователя выдает соответствующее сообщение (Рис. 4.2).
Рис. 4. 3 Уведомление о выигрыше компьютера
Заключение
Были получены навыки реализации алгоритмов по предмету «Интеллектуальные системы».
Список литературы
Strategy guide // URL:http://radagast.se/othello/Help/strategy.html
А. Я. Архангельский Программирование в Delphi 7 Издательство: Бином-Пресс, 2003 г. ISBN 5-9518-0042-0
А. Я. Архангельский Приемы программирования в Delphi Издательство: Бином-Пресс, 2004 г. ISBN 5-9518-0067-6
А. Жуков Изучаем Delphi Издательство: Питер, 2001 г. ISBN 5-272-00202-4
Заметки программистера // URL:http://www.dokwork.ru/2012/11/tictactoe.html
Размещено на Allbest.ru
Подобные документы
Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.
дипломная работа [1,8 M], добавлен 08.02.2017Создание программного средства, осуществляющего распознавание зрительных образов на базе искусственных нейронных сетей. Методы, использующиеся для распознавания образов. Пандемониум Селфриджа. Персептрон Розенблатта. Правило формирования цепного кода.
дипломная работа [554,8 K], добавлен 06.04.2014Основные понятия теории распознавания образов и ее значение. Сущность математической теории распознавания образов. Основные задачи, возникающие при разработке систем распознавания образов. Классификация систем распознавания образов реального времени.
курсовая работа [462,2 K], добавлен 15.01.2014Обзор задач, возникающих при разработке систем распознавания образов. Обучаемые классификаторы образов. Алгоритм персептрона и его модификации. Создание программы, предназначенной для классификации образов методом наименьшей среднеквадратической ошибки.
курсовая работа [645,2 K], добавлен 05.04.2015Обучение простейшей и многослойной искусственной нейронной сети. Метод обучения перцептрона по принципу градиентного спуска по поверхности ошибки. Реализация в программном продукте NeuroPro 0.25. Использование алгоритма обратного распространения ошибки.
курсовая работа [1019,5 K], добавлен 05.05.2015Понятие системы распознавания образов. Классификация систем распознавания. Разработка системы распознавания формы микрообъектов. Алгоритм для создания системы распознавания микрообъектов на кристаллограмме, особенности его реализации в программной среде.
курсовая работа [16,2 M], добавлен 21.06.2014Основные цели и задачи построения систем распознавания. Построение математической модели системы распознавания образов на примере алгоритма идентификации объектов военной техники в автоматизированных телекоммуникационных комплексах систем управления.
дипломная работа [332,2 K], добавлен 30.11.2012Методы распознавания образов (классификаторы): байесовский, линейный, метод потенциальных функций. Разработка программы распознавания человека по его фотографиям. Примеры работы классификаторов, экспериментальные результаты о точности работы методов.
курсовая работа [2,7 M], добавлен 15.08.2011Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных.
презентация [387,5 K], добавлен 11.12.2015Методы предобработки изображений текстовых символов. Статистические распределения точек. Интегральные преобразования и структурный анализ. Реализация алгоритма распознавания букв. Анализ алгоритмов оптического распознавания символов. Сравнение с эталоном.
курсовая работа [2,1 M], добавлен 20.09.2014