Искусственные нейронные сети

Возникновение искусственных нейронных сетей, их виды и применение. Задачи, решаемые при помощи персептрона Розенблатта. Методика обучения персептрона. Персептронная система распознавания изображений. Ограничения, накладываемые на имитационную модель.

Рубрика Физика и энергетика
Вид дипломная работа
Язык русский
Дата добавления 11.01.2012
Размер файла 987,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

В этой связи ученые не прекращают спора на тему, можно ли считать алгоритмы обучения с учителем естественными и свойственными природе, или они созданы искусственны. Например, обучение человеческого мозга на первый взгляд происходит без учителя: на зрительные, слуховые, тактильные и прочие рецепторы поступает информация извне и внутри мозга происходит некая самоорганизация. Однако нельзя отрицать и того, что в жизни человека немало учителей -и в буквальном, и в переносном смысле, - которые координируют реакции на внешние воздействия. Вместе с тем, как бы ни развивался спор приверженцев этих двух концепций обучения, представляется, что обе они имеют право на существование. И рассматриваемое нами правило обучения персептрона относится к правилу обучения с учителем.

При обучении без учителя веса и смещения изменяются только в связи с изменениями входов сети. В этом случае целевые выходы в явном виде не задаются. Главная черта, делающая обучение без учителя привлекательным, - это его самоорганизация, обусловленная, как правило, использованием обратных связей. Что касается процесса настройки параметров сети, то он организуется с использованием одних и тех же процедур. Большинство алгоритмов обучения без учителя применяется при решении задач кластеризации данных, когда необходимо разделить входы на конечное число классов.

Что касается персептронов, рассматриваемых в этой главе, то хотелось бы надеяться, что в результате обучения может быть построена такая сеть, которая обеспечит правильное решение, когда на вход будет подан сигнал, который отличается от тех, которые использовались в процессе обучения.

Правила настройки. Настройка параметров (обучение) персептрона осуществляется с использованием обучающего множества. Обозначим через р вектор входов персептрона, а через t - вектор соответствующих желаемых выходов. Цель обучения - уменьшить погрешность е = а -1, которая равна разности между реакцией нейрона а и вектором цели t.

Правило настройки (обучения) персептрона должно зависеть от величины погрешности е. Вектор цели t может включать только значения 0 и 1, поскольку персептрон с функцией активации hardlim может генерировать только такие значения.

При настройке параметров персептрона без смещения и с единственным нейроном возможны только 3 ситуации:

- для данного вектора входа выход персептрона правильный (а = t и е = t - а = 0) и тогда вектор весов w не претерпевает изменений;

- выход персептрона равен 0, а должен быть равен 1 (а = 0, t = 1 и е = t - 0=1). В этом случае вход функции активации wTp отрицательный и его необходимо скорректировать. Добавим к вектору весов w вектор входа р, и тогда произведение (wT + рт) р = = w р + р р изменится на положительную величину, а после нескольких таких шагов вход функции активации станет положительным и вектор входа будет классифицирован правильно. При этом изменятся настройки весов.

Выход нейрона равен 1, а должен быть равен 0 (а - 0, t = 1 и е = t - а -1). В этом случае вход функции активации wTp положительный и его необходимо скорректировать. Вычтем из вектора весов w вектор входа р, и тогда произведение (wT - рт) р = = wTp - pTp изменится на отрицательную величину, а после нескольких шагов вход функции активации станет отрицательным и вектор входа будет классифицирован правильно. При этом изменятся настройки весов.

Теперь правило настройки (обучения) персептрона можно записать, связав изменение вектора весов Aw с погрешностью e-t -- а:

(3.4)

Все 3 случая можно описать одним соотношением:

(3.5)

Можно получить аналогичное выражение для изменения смещения, учитывая, что смещение можно рассматривать как вес для единичного входа

(3.6)

В случае нескольких нейронов эти соотношения обобщаются следующим образом:

(3.7)

Тогда правило настройки (обучения) персептрона можно записать в следующей форме:

(3.8)

Описанные соотношения положены в основу алгоритма настройки параметров персептрона, который реализован в ППП Neural Network Toolbox в виде М-функции leamp. Каждый раз при выполнении функции learnp будет происходить перенастройка параметров персептрона. Доказано, что если решение существует, то процесс обучения персептрона сходится за конечное число итераций. Если смещение не используется, функция learnp ищет решение, изменяя только вектор весов w. Это приводит к нахождению разделяющей линии, перпендикулярной вектору w и которая должным образом разделяет векторы входа.

Рассмотрим простой пример персептрона с единственным нейроном и двухэлементным вектором входа

net = newp([-2 2;-2 2],1);

Определим смещение b равным 0, а вектор весов w равным [1 -0.8]:

xiet.b{l} = 0; w = [1 -0.8] ; net.IW{l,l} = w;

Обучающее множество зададим следующим образом

р = [1; 2]; t = [1];

Моделируя персептрон, рассчитаем выход и ошибку на первом шаге настройки (обучения)

а = sim(net,p)

а = 0

е = t-a

е = 1

Наконец, используя М-функцию настройки параметров learnp, найдем требуемое изменение весов

dw learnp(w,p,[ ],[ ],[ ],[ ],е,[ ],[ ],[ ])

dw = 1 2

Тогда новый вектор весов примет вид:

w = w + dw

w = 2.0000 1.2000

Заметим, что описанные выше правило и алгоритм настройки (обучения) персептрона гарантируют сходимость за конечное число шагов для всех задач, которые могут быть решены с использованием персептрона. Это в первую очередь задачи классификации векторов, которые относятся к классу линейно отделимых, когда все пространство входов можно разделить на 2 области некоторой прямой линией, в многомерном случае - гиперплоскостью.

Процедура адаптации. Многократно используя М-функции sim и learnp для изменения весов и смещения персептрона, можно в конечном счете построить разделяющую линию, которая решит задачу классификации, при условии, что персептрон может решать ее. Каждая реализация процесса настройки с использованием всего обучающего множества называется проходом или циклом. Такой цикл может быть выполнен с помощью специальной функции адаптации adapt. При каждом проходе функция adapt использует обучающее множество, вычисляет выход, погрешность и выполняет подстройку параметров персептрона.

Заметим, что процедура адаптации не гарантирует, что синтезированная сеть выполнит классификацию нового вектора входа. Возможно, потребуется новая настройка матрицы весов W и вектора смещений b с использованием функции adapt.

Чтобы пояснять процедуру адаптации, рассмотрим простой пример. Выберем персептрон с одним нейроном и двухэлементным вектором входа (рисунок 3.5).

Рисунок 3.5 - Персептрон с одним нейроном и двухэлементным вектором

Эта сеть и задача, которую мы собираемся рассматривать, достаточно просты, так что можно все расчеты выполнить вручную.

Предположим, что требуется с помощью персептрона решить задачу классификации векторов, если задано следующее обучающее множество

(3.9)

Используем нулевые начальные веса и смещение. Для обозначения переменных на каждом шаге используем индекс в круглых скобках. Таким образом, начальные значения вектора весов wT(0) и смещения b(0) равны соответственно wT(0) = [0 0] и Ь(0) = 0.

Вычислим выход персептрона для первого вектора входа p1, используя начальные веса и смещение

(3.10)

Выход не совпадает с целевым значением t1 и необходимо применить правило настройки (обучения) персептрона, чтобы вычислить требуемые изменения весов и смещений

(3.11)

Вычислим новые веса и смещение, используя введенные ранее правила обучения персептрона.

(3.12)

Обратимся к новому вектору входа р2, тогда

(3.13)

В этом случае выход персептрона совпадает с целевым выходом, так что погрешность равна 0 и не требуется изменений в весах или смещении. Таким образом,

(3.14)

Продолжим этот процесс и убедимся, что после третьего шага настройки не изменились

(3.15)

а после четвертого приняли значение

(3.16)

Чтобы определить, получено ли удовлетворительное решение, требуется сделать один проход через все векторы входа, чтобы проверить, соответствуют ли решения обучающему множеству. Вновь используем первый член обучающей последовательности и получаем:

(3.17)

Переходя ко второму члену, получим следующий результат

(3.18)

Этим заканчиваются ручные вычисления.

Теперь выполним аналогичные расчеты, используя М-функцию adapt. Вновь сформируем модель персептрона, изображенного на рисунке 3.2:

net = newp([-2 2;-2 2],1);

Введем первый элемент обучающего множества Р = {[2; 2]>; t = {0};

Установим параметр passes (число проходов) равным 1 и выполним 1 шаг настройки: net.adaptParam.passes =1; [net,a,e] = adapt(net,p,t);

a

a = [1]

e

e = [-1]

Скорректированные вектор весов и смещение равны twts = net.lW{l,l}

twts = -2 -2 tbiase = net.b{l}

tbiase = -1

Это совпадает с результатами, полученными при ручном расчете. Теперь можно ввести второй элемент обучающего множества и т. д., т. е. повторить всю процедуру ручного счета и получить те же результаты.

Но можно эту работу выполнить автоматически, задав сразу все обучающее множество и выполнив 1 проход:

net = newp([-2 2;-2 2],1);

net.trainParam.passes = 1;

Р = {[2;2] [1;-2] [-2;2] [-1;1]};

t = <0 1 0 1);

Теперь обучим сеть:

[net,a,e] = adapt(net,p,t);

Возвращаются выход и ошибка: а

а = [1] [1] [0] [0]

е

е = [-1] [0] [0] [1].

Скорректированные вектор весов и смещение равны

twts = net.iw{l,l} twts = -3 -1 tbiase = net.b{l} tbiase = 0

Моделируя полученную сеть по каждому входу, получим:

al = sim(net,p)

al = [0] [0] [1] [1]

Можно убедиться, что не все выходы равны целевым значениям обучающего множества. Это означает, что следует продолжить настройку персептрона. Выполним еще 1 цикл настройки:

[net,a,e] = adapt(net,p,t); а

а = [0] [0] [0] [1]

е

е = [0] [1] [0] [0]

twts = net.IW{l,l}

twts =2 -3

tbiase = net.b{l}

tbiase = 1

al = sim(net,p)

al = [0] [1] [0] [1]

Теперь решение совпадает с целевыми выходами обучающего множества и все входы классифицированы правильно.

Если бы рассчитанные выходы персептрона не совпали с целевыми значениями, то необходимо было бы выполнить еще несколько циклов настройки, применяя М-функцию adapt и проверяя правильность получаемых результатов.

Как следует из сказанного выше, для настройки (обучения) персептрона применяется процедура адаптации, которая корректирует параметры персептрона по результатам обработки каждого входного вектора. Применение М-функции adapt гарантирует, что любая задача классификации с линейно отделимыми векторами будет решена за конечное число циклов настройки.

Для настройки (обучения) персептрона можно было бы воспользоваться также М-функцией train. В этом случае используется все обучающее множество и настройка параметров сети выполняется не после каждого прохода, а в результате всех проходов обучающего множества. К сожалению, не существует доказательства того, что такой алгоритм обучения персептрона является сходящимся. Поэтому использование М-функции train для обучения персептрона не рекомендуется.

ЗАКЛЮЧЕНИЕ

Современные искусственные нейронные сети представляют собой устройства, использующие огромное число искусственных нейронов и связей между ними. Несмотря на то, что конечная цель разработки нейронных сетей - полное моделирование процесса мышления человека так и не была достигнута, уже сейчас они применяются для решения очень многих задач обработки изображений, управления роботами и непрерывными производствами, для понимания и синтеза речи, для диагностики заболеваний людей и технических неполадок в машинах и приборах, для предсказания курсов валют и т.д. Если перейти к более прозаическому уровню, то нейронные сети _ это всего-навсего сети, состоящие из связанных между собой простых элементов _ формальных нейронов. Ядром используемых представлений является идея о том, что нейроны можно моделировать довольно простыми автоматами, а вся сложность мозга, гибкость его функционирования и другие важнейшие качества определяются связями между нейронами.

В отличие от цифровых микропроцессорных систем, представляющих собой сложные комбинации процессорных и запоминающих блоков, основанные на использовании нейронных сетей нейропроцессоры, содержат память, распределенную в связях между очень простыми процессорами. Тем самым основная нагрузка на выполнение конкретных функций процессорами ложится на архитектуру системы, детали которой в свою очередь определяются межнейронными связями. Основанные на такой структуре прототипы нейрокомпьютеров дают стандартный способ решения многих нестандартных задач.

Следует отметить, что основное назначение персептронов - решать задачи классификации. Они великолепно справляются с задачей классификации линейно отделимых векторов; сходимость гарантируется за конечное число шагов. Длительность обучения чувствительна к выбросам длины отдельных векторов, но и в этом случае решение может быть построено. Однослойный персептрон может классифицировать только линейно отделимые векторы. Возможные способы преодолеть эту трудность предполагают либо предварительную обработку с целью сформировать линейно отделимое множество входных векторов, либо использование многослойных персептронов. Можно также применить другие типы нейронных сетей, например линейные сети или сети с обратным распространением, которые могут выполнять классификацию линейно неотделимых векторов входа.

В ходе выполнения данной дипломной работы было сделано:

- изучена история возникновения нейронных сетей;

- приведены задачи решаемые при помощи Персептрона Розенблатта.

- разработана программа для создания моделей искусственных нейронных сетей.

Таким образом, можно утверждать, что была достигнута цель дипломной работы и успешно решены все задачи дипломной работы.

ПРИЛОЖЕНИЕ

Исходные коды программы Perseptron

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ExtCtrls, StdCtrls, Spin;

type

TNeuron=class

ndendro:integer;

w:array[1..100] of real;

x:array[1..100] of integer;

s:real; a:integer;

vw:array[1..100] of TSpinEdit;

vx:array[1..100]of TCheckBox; va:TCheckBox;

pb:TPaintBox;

function act:integer;

procedure tick(Sender: TObject);

procedure modify(Sender: TObject);

procedure draw;

end;

TInCell=class

n:integer; cb:TCheckBox;

nrn:array[1..100] of TNeuron;

pnt:array[1..100,1..2] of integer;

procedure tick(sender: TObject);

procedure draw;

end;

TPersForm = class(TForm)

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

procedure FormCreate(Sender: TObject);

procedure FormPaint(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

nrn:array[1..100] of TNeuron;

cell:array[1..100] of TInCell;

public

{ Public declarations }

n,cells:integer;

end;

var PersForm: TPersForm;

implementation

{$R *.DFM}

function TNeuron.act:integer;

begin

if s>=0 then act:=1 else act:=0;

end;

procedure TNeuron.tick(Sender: TObject);

var i:integer;

begin

s:=0; for i:=1 to ndendro do s:=s+x[i]*w[i];

a:=act;

if (a=1) then va.checked:=true else va.checked:=false;

end;

procedure TNeuron.modify(Sender: TObject);

var i:integer;

begin

for i:=1 to ndendro do

begin

if vx[i].checked then x[i]:=1 else x[i]:=0;

w[i]:=vw[i].Value;

end;

tick(self);

end;

procedure TNeuron.draw;

begin

pb.canvas.pen.color:=clBlack;

pb.canvas.rectangle(1,1,pb.width-1,pb.height-1);

end;

procedure TInCell.tick(sender: TObject);

var i:integer;

begin

for i:=1 to n do

begin

nrn[pnt[i][1]].vx[pnt[i][2]].checked:=cb.checked;

nrn[pnt[i][1]].modify(self);

end;

end;

procedure TInCell.draw;

var i:integer;

begin

for i:=1 to n do

begin

PersForm.Canvas.Pen.Color:=clBlack;

PersForm.Canvas.MoveTo(cb.left,cb.top+10);

PersForm.Canvas.LineTo(nrn[pnt[i][1]].vx[pnt[i][2]].left,

nrn[pnt[i][1]].vx[pnt[i][2]].top+10);

end;

end;

procedure TPersForm.FormCreate(Sender: TObject);

var i,j:integer;

begin

n:=3; cells:=3;

for i:=1 to n do

begin

nrn[i]:=TNeuron.Create;

nrn[i].pb:=TPaintBox.Create(PersForm); nrn[i].pb.parent:=PersForm;

nrn[i].ndendro:=3;

nrn[i].pb.width:=50; nrn[i].pb.height:=nrn[i].ndendro*22;

nrn[i].pb.left:=150; nrn[i].pb.top:=30+(i-1)*(nrn[i].pb.height+10);

for j:=1 to nrn[i].ndendro do

begin

nrn[i].vw[j]:=TSpinEdit.Create(PersForm);

nrn[i].vw[j].parent:=PersForm; nrn[i].vw[j].tag:=j;

nrn[i].vw[j].OnChange:=nrn[i].modify;

nrn[i].vw[j].left:=nrn[i].pb.left+2;

nrn[i].vw[j].top:=nrn[i].pb.top+(j-1)*20+2;

nrn[i].vw[j].width:=nrn[i].pb.width-5; nrn[i].vw[j].height:=15;

nrn[i].vx[j]:=TCheckBox.Create(PersForm); nrn[i].vx[j].parent:=PersForm;

nrn[i].vx[j].enabled:=false;

nrn[i].vx[j].left:=nrn[i].pb.left-15;

nrn[i].vx[j].top:=nrn[i].pb.top+(j-1)*20+3;

nrn[i].vx[j].width:=10;

end;

nrn[i].va:=TCheckBox.Create(PersForm);

nrn[i].va.parent:=PersForm; nrn[i].va.enabled:=false;

nrn[i].va.left:=nrn[i].pb.left+nrn[i].pb.width+2;

nrn[i].va.top:=nrn[i].pb.top+nrn[i].pb.height div 2 - 8;

nrn[i].va.width:=10;

nrn[i].tick(self);

end;

for i:=1 to cells do

begin

cell[i]:=TInCell.Create;

cell[i].cb:=TCheckBox.Create(PersForm); cell[i].cb.parent:=PersForm;

cell[i].cb.left:=30; cell[i].cb.top:=30+(i-1)*90;

cell[i].cb.width:=10;

cell[i].cb.OnClick:=cell[i].tick;

cell[i].n:=n;

for j:=1 to cell[i].n do cell[i].nrn[j]:=nrn[j];

for j:=1 to cell[i].n do

begin

cell[i].pnt[j][1]:=j;

cell[i].pnt[j][2]:=i;

end;

cell[i].tick(self);

end;

end;

procedure TPersForm.FormPaint(Sender: TObject);

var i:integer;

begin

for i:=1 to n do nrn[i].draw;

for i:=1 to cells do cell[i].draw;

end;

procedure TPersForm.Button1Click(Sender: TObject);

begin

close;

end;

end.

Размещено на Allbest.ru


Подобные документы

  • Применение моделирования динамики яркостной температуры методом инвариантного погружения и нейронных сетей; решение обратной задачи радиометрии – получение физических данных исследуемого объекта (почв). Обзор моделей нейронных сетей, оценка погрешности.

    курсовая работа [1,5 M], добавлен 11.02.2011

  • Возникновение и развитие нанонауки. Виды искусственных наноструктур, их уникальные свойства, связанные с размером. Получение искусственных наноматериалов, прикладная нанотехнология. Сферы применения нанотехнологий, их будущее - проблемы и перспективы.

    курсовая работа [4,2 M], добавлен 16.09.2009

  • Перечень электроприемников первой категории городских электрических сетей. Выбор схемы электроснабжающей сети. Схема сети 110-330 кВ кольцевой конфигурации для электроснабжения крупного города. Схемы присоединения городских подстанций к сети 110 кВ.

    контрольная работа [892,8 K], добавлен 02.06.2014

  • Общие сведения о тяговых электродвигателях постоянного тока последовательного, параллельного и смешанного возбуждения. Универсальные характеристики различных тяговых двигателей. Тяговая характеристика и ограничения, накладываемые на эту характеристику.

    презентация [339,1 K], добавлен 27.09.2013

  • Основные типы конфигурации электрических сетей и схем присоединения к сети понижающих подстанций. Схемы внешнего электроснабжения магистральных нефтепроводов и газопроводов. Нефтеперекачивающие и компрессорные станции. Электроснабжающие сети городов.

    презентация [1,4 M], добавлен 10.07.2015

  • Электрические схемы разомкнутой и кольцевой сетей. Определение параметров установившегося режима электрической сети методом "в два этапа". Формирование уравнений узловых напряжений. Баланс мощности. Таблица параметров режима разомкнутой сети, его карта.

    курсовая работа [3,0 M], добавлен 22.09.2013

  • Расчет районной электрической сети, особенности ее построения и основные режимы работы. Электронно-оптическое оборудование при контроле технического состояния элементов сетей и подстанций на рабочем напряжении. Типы конфигурации электрических сетей.

    дипломная работа [2,0 M], добавлен 17.06.2012

  • Разработка конфигураций электрических сетей. Расчет электрической сети схемы. Определение параметров для линии 10 кВ. Расчет мощности и потерь напряжения на участках сети при аварийном режиме. Точка потокораздела при минимальных нагрузках сети.

    курсовая работа [1,0 M], добавлен 14.04.2011

  • Особенности развития электрических сетей района энергосистемы. Анализ технико-экономического расчета первого и второго вариантов развития сети, их схемы. Характеристика и основные признаки статической устойчивости. Расчет послеаварийного режима сети.

    дипломная работа [3,2 M], добавлен 15.04.2012

  • Проведение реконструкции распределительных электрических сетей 10 и 0,38 кВ района "С". Выбор нейтрали, конструктивного исполнения линий и трансформаторных подстанций сетей. Оценка целесообразности установки секционирующих и компенсирующих устройств.

    дипломная работа [1,3 M], добавлен 23.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.