Функциональные модели универсального нейрокомпьютера
Развитие информатики и средств вычислительной техники. Развитие систем искусственного интеллекта на базе алгоритмических языков. Искусственные нейронные сети. Нейрокибернетика. Элементарные детали вычислительных устройств. Анализ нейросетевых парадигм.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | диссертация |
Язык | русский |
Дата добавления | 12.10.2008 |
Размер файла | 1,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Для блоков типа Cascad замыкание выхода блока на вход блока отсутствует. Для блоков типов Loop и Until замыкание выхода блока на вход блока достигается путем установления связей между выходными сигналами последней подсети в списке подсетей в разделе описания состава с входными сигналами первой подсети в списке подсетей в разделе описания состава. Если какая-либо подсеть в разделе описания состава указана с некоторым не равным единице числом экземпляров, то считается, что экземпляры этой подсети перечислены в списке в порядке возрастания номера.
Описания всех сетей, приведенные в предыдущем разделе полностью соответствуют правилам генерации. В качестве более общего примера приведем раздел описания сигналов и параметров трех условных блоков.
Layer A
Contents Net1, Net2[K], Net3
InSignals[1..NumberOf(InSignals,Net1)+K*NumberOf(InSignals,Net2)
+NumberOf(InSignals,Net3)] <=>
Net1. InSignals[1..NumberOf(InSignals,Net1)],
Net2[1..K].InSignals[1..NumberOf(InSignals,Net2)],
Net3.InSignals[1..NumberOf(InSignals,Net3)]
OutSignals[1..NumberOf(OutSignals,Net1)+
K*NumberOf(OutSignals,Net2)+NumberOf(OutSignals,Net3)] <=>
Net1. OutSignals[1..NumberOf(OutSignals,Net1)],
Net2[1..K].OutSignals[1..NumberOf(OutSignals,Net2)],
Net3.OutSignals[1..NumberOf(OutSignals,Net3)]
Parameters[1..NumberOf(Parameters,Net1)+
K*NumberOf(Parameters,Net2)+NumberOf(Parameters,Net3)] <=>
Net1. Parameters[1..NumberOf(Parameters,Net1)],
Net2[1..K].Parameters[1..NumberOf(Parameters,Net2)],
Net3.Parameters[1..NumberOf(Parameters,Net3)]
Cascad B
Contents Net1, Net2[K], Net3
InSignals[1..NumberOf(InSignals,Net1)] <=>
Net1. InSignals[1..NumberOf(InSignals,Net1)]
OutSignals[1..NumberOf(OutSignals,Net3)] <=>
Net3.OutSignals[1..NumberOf(OutSignals,Net3)]
Parameters[1..NumberOf(Parameters,Net1)+
K*NumberOf(Parameters,Net2)+NumberOf(Parameters,Net3)] <=>
Net1. Parameters[1..NumberOf(Parameters,Net1)],
Net2[1..K].Parameters[1..NumberOf(Parameters,Net2)],
Net[3].Parameters[1..NumberOf(Parameters,Net3)]
Net1. OutSignals[1..NumberOf(OutSignals,Net1)],
Net2[1..K].OutSignals[1..NumberOf(OutSignals,Net2)] <=>
Net2[1..K].InSignals[1..NumberOf(InSignals,Net2)],
Net3.InSignals[1..NumberOf(InSignals,Net3)]
Loop C N
Contents Net1, Net2[K], Net3
InSignals[1..NumberOf(InSignals,Net1)] <=>
Net1. InSignals[1..NumberOf(InSignals,Net1)]
OutSignals[1..NumberOf(OutSignals,Net3)] <=>
Net3.OutSignals[1..NumberOf(OutSignals,Net3)]
Parameters[1..NumberOf(Parameters,Net1)+
K*NumberOf(Parameters,Net2)+NumberOf(Parameters,Net3)] <=>
Net1. Parameters[1..NumberOf(Parameters,Net1)],
Net2[1..K].Parameters[1..NumberOf(Parameters,Net2)],
Net[3].Parameters[1..NumberOf(Parameters,Net3)]
Net1. OutSignals[1..NumberOf(OutSignals,Net1)],
Net2[1..K].OutSignals[1..NumberOf(OutSignals,Net2)] <=>
Net2[1..K].InSignals[1..NumberOf(InSignals,Net2)],
Net3.InSignals[1..NumberOf(InSignals,Net3)]
Net3.OutSignals[1..NumberOf(OutSignals,Net3)] <=>
Net1. InSignals[1..NumberOf(InSignals,Net1)]
Частично сокращенное описание
Если описываемый блок должен иметь связи, устанавливаемые не так, как описано в разд. «Раздел описания связей», то соответствующий раздел описания блока может быть описан явно полностью или частично. Если какой либо раздел описан частично, то действует следующее правило: те сигналы, параметры и их связи, которые описаны явно, берутся из явного описания, а те сигналы, параметры и их связи, которые не фигурируют в явном описании берутся из описания по умолчанию. Так, в приведенном в разд. «Пример описания блоков» описании слоя точек ветвления BLay невозможно использование генерируемого по умолчанию подраздела установления связи выходных сигналов блока с входными сигналами подсетей. Возможно следующее сокращенное описание.
{Слой точек ветвления}
Layer BLay( N,M : Long)
Contents Branch(N)[M] {В состав слоя входит M точек ветвления}
Connections
{Выходные сигналы в порядке первый с каждой точки ветвления, затем второй и т.д. }
OutSignals[1..N * M] <=> Branch[+:1..M].OutSignals[1..N]
End {Конец описания слоя точек ветвления}
Пример сокращенного описания блоков
При описании блоков используются элементы, описанные в библиотеке Elements, приведенной в разд. "Пример описания элементов".
NetBibl SubNets Used Elements;
{Библиотека подсетей, использующая библиотеку Elements}
{Сигмоидный нейрон с произвольным сумматором на N входов}
Cascad NSigm(aSum : Block; N : Long; Char : Real)
{В состав каскада входит произвольный сумматор на N входов и сигмоидный нейрон с необучаемой характеристикой}
Contents aSum(N), S_NotTrain(Char)
End
{Слой сигмоидных нейронов с произвольными сумматорами на N входов}
Layer Lay1(aSum : Block; N,M : Long; Char : Real)
Contents Sigm: NSigm(aSum,N,Char)[M] {В состав слоя входит M нейронов}
End
{Слой точек ветвления}
Layer BLay( N,M : Long)
Contents Branch(N)[M] {В состав слоя входит M точек ветвления}
Connections
{Выходные сигналы в порядке первый с каждой точки ветвления, затем второй и т.д. }
OutSignals[1..N * M] <=> Branch[+:1..M].OutSignals[1..N]
End
{Полный слой сигмоидных нейронов с произвольными сумматорами на N входов}
Cascad FullLay(aSum : Block; N,M : Long; Char : Real)
Contents BLay1(M,N), Lay1(aSum,N,M,Char) {Слой точек ветвления и слой нейронов}
End {Конец описания слоя сигмоидных нейронов с произвольным сумматором}
{Сеть с сигмоидными нейронами и произвольными сумматорами, содержащая
Input - число нейронов на входном слое;
Output - число нейронов на выходном слое (число выходных сигналов);
Hidden - число нейронов на H>0 скрытых слоях;
N - число входных сигналов
все входные сигналы подаются на все нейроны входного слоя}
Cascad Net1(aSum : Block; Char : Real; Input, Output, Hidden, H, N : Long)
{Под тремя разными псевдонимами используется одна и таже подсеть с разными параметрами. Использование псевдонимов необходимо даже при сокращенном описании}
Contents
In: FullLay(aSum,N,Input,Char),
Hid1: FullLay(aSum,Input,Hidden,Char)
Hid2: FullLay(aSum,Hidden,Hidden,Char)[H-1] {Пусто при H=1}
Out: FullLay(aSum,Hidden,Output,Char)
End
{Полносвязная сеть с M сигмоидными нейронами на К тактов функционирования с невыделенным входным слоем на M сигналов. Все параметры ограничены по абсолютному значению единицей}
Loop Circle(aSum : Block; Char : Real; M, K : Long) K
Contents
FullLay(aSum,M,M,Char)
ParamDef DefaultType -1 1
End
{Полносвязная сеть с М сигмоидными нейронами на К тактов функционирования с выделенным входным слоем на N сигналов.
Cascad Net2: (aSum : Block; Char : Real; M, K, N : Long)
Contents
In: FullLay(aSum,N,M,Char), {Входной слой}
Net: Circle(aSum,Char,M,K) {Полносвязная сеть}
End
Cascad Hopf(N : Long) {Нейрон сети Хопфилда из N нейронов}
Contents Sum(N),Sign_Easy {Сумматор и пороговый элемент}
End
{Слой нейронов Хопфилда}
Layer HLay(N : Long)
Contents Hop: Hopf(N)[N] {В состав слоя входит N нейронов}
End
{Сеть Хопфилда из N нейронов}
Until Hopfield(N : Long) InSignals=OutSignals
Contents BLay(N,N),HLay(N) {Слой точек ветвления и слой нейронов}
End
End NetLib
4.4. Запросы к компоненту сеть
В данном разделе главы рассмотрены все запросы, исполняемые компонентом сеть. Прежде чем приступать к описанию стандарта запросов компонента сеть следует выделить выполняемые им функции. Что должен делать компонент сеть? Очевидно, что прежде всего он должен уметь выполнять такие функции, как функционирование вперед (работа обученной сети) и назад (вычисление вектора поправок или градиента для обучения), модернизацию параметров (обучение сети) и входных сигналов (обучение примера). Кроме того компонент сеть должен уметь читать сеть с диска и записывать ее на диск. Необходимо так же предусмотреть возможность создавать сеть и редактировать ее структуру. Эти две функциональные возможности не связаны напрямую с работой (функционированием и обучением) сети. Таким образом, необходимо выделить сервисную компоненту - редактор сетей. Компонент редактор сетей позволяет создавать и изменять структуру сети, модернизировать обучаемые параметры в «ручном» режиме.
4.4.1. Запросы к компоненту сеть
Запросы к компоненту сеть можно разбить на пять групп:
Функционирование.
Изменение параметров.
Работа со структурой.
Инициация редактора и конструктора сетей.
Обработка ошибок.
Поскольку компонент сеть может работать одновременно с несколькими сетями, большинство запросов к сети содержат явное указание имени сети. Отметим, что при генерации запросов в качестве имени сети можно указывать имя любой подсети. Таким образом, иерархическая структура сети, описанная в стандарте языка описания сетей, позволяет работать с каждым блоком или элементом сети как с отдельной сетью. Ниже приведено описание всех запросов к компоненту сеть. Каждый запрос является логической функцией, возвращающей значение истина, если запрос выполнен успешно, и ложь - при ошибочном завершении исполнения запроса.
При вызове ряда запросов используются предопределенные константы. Их значения приведены в табл. 13.
Таблица 13.
Значения предопределенных констант
Название |
Величина |
Значение |
|
InSignals |
0 |
Входные сигналы прямого функционирования |
|
OutSignals |
1 |
Выходные сигналы прямого функционирования |
|
Рarameters |
2 |
Параметры |
|
InSignalMask |
3 |
Маска обучаемости входных сигналов |
|
ParamMask |
4 |
Маска обучаемости параметров |
|
BackInSignals |
5 |
Входные сигналы обратного функционирования |
|
BackOutSignals |
6 |
Выходные сигналы обратного функционирования |
|
BackРarameters |
7 |
Поправки к параметрам |
|
Element |
0 |
Тип подсети - элемент |
|
Layer |
1 |
Тип подсети - слой |
|
Cascad |
2 |
Тип подсети - простой каскад |
|
CicleFor |
3 |
Тип подсети - цикл с заданным числом проходов |
|
CicleUntil |
4 |
Тип подсети - цикл по условию |
4.4.2. Запросы на функционирование
Два запроса первой группы позволяют проводить прямое и обратное функционирование сети. По сути эти запросы эквивалентны вызову методов Forw и Back сети или ее элемента.
4.4.2.1. Выполнить прямое Функционирование (Forw)
Описание запроса:
Pascal:
Function Forw ( Net : PString; InSignals : PRealArray ) : Logic;
C:
Logic Forw(PString Net, PRealArray InSignals)
Описание аргумента:
Net - указатель на строку символов, содержащую имя сети.
InSignals - массив входных сигналов сети.
Назначение - проводит прямое функционирование сети, указанной в параметре Net.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если в качестве аргумента Net дан пустой указатель, или указатель на пустую строку, то исполняющим запрос объектом является первая сеть в списке сетей компонента сеть.
Если список сетей компонента сеть пуст или имя сети, переданное в аргументе Net в этом списке не найдено, то возникает ошибка 301 - неверное имя сети, управление передается обработчику ошибок, а обработка запроса прекращается.
Вызывается метод Forw сети, имя которой было указано в аргументе Net.
Если во время выполнения запроса возникает ошибка, то генерируется внутренняя ошибка 304 - ошибка прямого функционирования. Управление передается обработчику ошибок. Выполнение запроса прекращается. В противном случае выполнение запроса успешно завершается.
4.4.2.2. Выполнить обратное Функционирование (Back)
Описание запроса:
Pascal:
Function Back( Net : PString; BackOutSignals : PRealArray) : Logic;
C:
Logic Back(PString Net, PRealArray BackOutSignals)
Описание аргумента:
Net - указатель на строку символов, содержащую имя сети.
BackOutSignals - массив производных функции оценки по выходным сигналам сети.
Назначение - проводит обратное функционирование сети, указанной в параметре Net.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если в качестве аргумента Net дан пустой указатель, или указатель на пустую строку, то исполняющим запрос объектом является первая сеть в списке сетей компонента сеть.
Если список сетей компонента сеть пуст или имя сети, переданное в аргументе Net в этом списке не найдено, то возникает ошибка 301 - неверное имя сети, управление передается обработчику ошибок, а обработка запроса прекращается.
Вызывается метод Back сети, имя которой было указано в аргументе Net.
Если во время выполнения запроса возникает ошибка, то генерируется внутренняя ошибка 305 - ошибка обратного функционирования. Управление передается обработчику ошибок. Выполнение запроса прекращается. В противном случае выполнение запроса успешно завершается.
4.4.3. Запросы на изменение параметров
Ко второй группе запросов относятся четыре запроса: Modify - модификация параметров, обычно называемая обучением, ModifyMask - модификация маски обучаемых синапсов, NullGradient - обнуление градиента и RandomDirection - сгенерировать случайное направление спуска.
4.4.3.1. Провести обучение (Modify)
Описание запроса:
Pascal:
Function Modify( Net : PString; OldStep, NewStep : Real; Tipe : Integer; Grad : PRealArray ) : Logic;
C:
Logic Modify(PString Net, Real OldStep, Real NewStep, Integer Tipe, PRealArray Grad)
Описание аргументов:
Net - указатель на строку символов, содержащую имя сети.
OldStep, NewStep - параметры обучения.
Tipe - одна из констант InSignals или Parameters.
Grad - адрес массива поправок или пустой указатель.
Назначение - проводит обучение параметров или входных сигналов сети, указанной в параметре Net.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если в качестве аргумента Net дан пустой указатель, или указатель на пустую строку, то исполняющим запрос объектом является первая сеть в списке сетей компонента сеть.
Если список сетей компонента сеть пуст или имя сети, переданное в аргументе Net в этом списке не найдено, то возникает ошибка 301 - неверное имя сети, управление передается обработчику ошибок, а обработка запроса прекращается.
Если аргумент Grad содержит пустой указатель, то поправки берутся из массива Back.Parameters или Back.InputSignals в зависимости от значения аргумента Tipe.
В зависимости от значения аргумента Tipe для каждого параметра или входного сигнала P, при условии, что соответствующий ему элемент маски обучаемости, соответствующей аргументу Tipe равен -1 (значение истина) выполняется следующая процедура:
P1=P*OldStep+DP*NewStep.
Если для типа, которым описан параметр P, заданы минимальное и максимальное значения, то:
P2=Pmin, при P1<Pmin
P2=Pmax, при P1>Pmax
P2=P1 в противном случае
4.4.3.2. Изменить маску обучаемости (ModifyMask)
Описание запроса:
Pascal:
Function ModifyMask( Net : PString; Tipe : Integer; NewMask: PLogicArray ) : Logic;
C:
Logic Modify(PString Net, Integer Tipe, PLogicArray NewMask)
Описание аргументов:
Net - указатель на строку символов, содержащую имя сети.
Tipe - одна из констант InSignals или Parameters.
NewMask - новая маска обучаемости.
Назначение - Заменяет маску обучаемости параметров или входных сигналов сети, указанной в параметре Net.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если в качестве аргумента Net дан пустой указатель, или указатель на пустую строку, то исполняющим запрос объектом является первая сеть в списке сетей компонента сеть.
Если список сетей компонента сеть пуст или имя сети, переданное в аргументе Net в этом списке не найдено, то возникает ошибка 301 - неверное имя сети, управление передается обработчику ошибок, а обработка запроса прекращается.
В зависимости от значения параметра Tipe заменяет маску обучаемости параметров или входных сигналов на переданную в параметре NewMask.
4.4.3.3. Обнулить градиент (NullGradient)
Описание запроса:
Pascal:
Function NullGradient( Net : PString ) : Logic;
C:
Logic NullGradient(PString Net)
Описание аргументов:
Net - указатель на строку символов, содержащую имя сети.
Назначение - производит обнуление градиента сети, указанной в параметре Net.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если в качестве аргумента Net дан пустой указатель, или указатель на пустую строку, то исполняющим запрос объектом является первая сеть в списке сетей компонента сеть.
Если список сетей компонента сеть пуст или имя сети, переданное в аргументе Net в этом списке не найдено, то возникает ошибка 301 - неверное имя сети, управление передается обработчику ошибок, а обработка запроса прекращается.
Обнуляются массивы Back.Parameters и Back.OutSignals.
4.4.3.4. Случайное направление спуска (RandomDirection)
Описание запроса:
Pascal:
Function RandomDirection( Net : PString; Range : Real ) : Logic;
C:
Logic RandomDirection(PString Net, Real Range)
Описание аргументов:
Net - указатель на строку символов, содержащую имя сети.
Range - относительная ширина интервала, на котором должны быть распределены значения случайной величины.
Назначение - генерирует вектор случайных поправок к параметрам сети.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если в качестве аргумента Net дан пустой указатель, или указатель на пустую строку, то исполняющим запрос объектом является первая сеть в списке сетей компонента сеть.
Если список сетей компонента сеть пуст или имя сети, переданное в аргументе Net в этом списке не найдено, то возникает ошибка 301 - неверное имя сети, управление передается обработчику ошибок, а обработка запроса прекращается.
Замещают все значения массива Back.Parameters на случайные величины. Интервал распределения случайной величины зависит от типа параметра, указанного при описании сети (ParamType) и аргумента Range. Полуширина интервала определяется как произведение полуширины интервала допустимых значений параметра, указанных в разделе ParamDef описания сети на величину Range. Интервал распределения случайной величины определяется как [-Полуширина; Полуширина].
4.4.4. Запросы, работающие со структурой сети
К третьей группе относятся запросы, позволяющие изменять структуру сети. Часть запросов этой группы описана в разд. "Остальные запросы".
4.4.4.1. Вернуть параметры сети (nwGetData)
Описание запроса:
Pascal:
Function nwGetData(Net : PString; DataType : Integer; Var Data : PRealArray) : Logic;
C:
Logic nwGetData(PString Net, Integer DataType, PRealArray* Data)
Описание аргументов:
Net - указатель на строку символов, содержащую имя сети.
DataType - одна из восьми предопределенных констант, описывающих тип данных сети.
Data - возвращаемый массив параметров сети.
Назначение - возвращает параметры, входные или выходные сигналы сети, указанной в аргументе Net.
Описание исполнения.
Если в качестве аргумента Net дан пустой указатель, или указатель на пустую строку, то исполняющим запрос объектом является перавя сеть в списке сетей компонента сеть.
Если имя сети, переданное в аргументе Net не найдено в списке сетей компонента сеть или этот список пуст, то возникает ошибка 301 - неверное имя сети, управление передается обработчику ошибок, а обработка запроса прекращается.
Если значение, переданное в аргументе DataType больше семи или меньше нуля, то возникает ошибка 306 - ошибочный тип параметра сети, управление передается обработчику ошибок, а обработка запроса прекращается.
В массиве Data возвращаются указанные в аргументе DataType параметры сети.
4.4.4.2. Установить параметры сети (nwSetData)
Описание запроса:
Pascal:
Function nwSetData(Net : PString; DataType : Integer; Var Data : RealArray) : Logic;
C:
Logic nwSetData(PString Net, Integer DataType, RealArray* Data)
Описание аргументов:
Net - указатель на строку символов, содержащую имя сети.
DataType - одна из восьми предопределенных констант, описывающих тип данных сети.
Data - массив параметров для замещения текущего массива параметров сети.
Назначение - замещает параметры, входные или выходные сигналы сети, указанной в аргументе Net на значения из массива Data.
Описание исполнения.
Если в качестве аргумента Net дан пустой указатель, или указатель на пустую строку, то исполняющим запрос объектом является первая сеть в списке сетей компонента сеть.
Если имя сети, переданное в аргументе Net не найдено в списке сетей компонента сеть или этот список пуст, то возникает ошибка 301 - неверное имя сети, управление передается обработчику ошибок, а обработка запроса прекращается.
Если значение, переданное в аргументе DataType больше семи или меньше нуля, то возникает ошибка 306 - ошибочный тип параметра сети, управление передается обработчику ошибок, а обработка запроса прекращается.
Значения параметров (входных или выходных сигналов) сети заменяются на значения из массива Data. Если длинны массива Data недостаточно для замены значений всех параметров (входных или выходных сигналов), то замещаются только столько элементов массива параметров (входных или выходных сигналов) сколько элементов в массиве Data. Если длинна массива Data больше длинны массива параметров (входных или выходных сигналов), то заменяются все элементы вектора параметров (входных или выходных сигналов), а лишние элементы массива Data игнорируются.
4.4.4.3. Нормализовать сеть (NormalizeNet)
Описание запроса:
Pascal:
Function NormalizeNet(Net : PString) : Logic;
C:
Logic NormalizeNet(PString Net)
Описание аргумента:
Net - указатель на строку символов, содержащую имя сети.
Назначение - нормализация сети, указанной в аргументе Net.
Описание исполнения.
Если в качестве аргумента Net дан пустой указатель, или указатель на пустую строку, то исполняющим запрос объектом является первая сеть в списке сетей компонента сеть.
Если имя сети, переданное в аргументе Net не найдено в списке сетей компонента сеть или этот список пуст, то возникает ошибка 301 - неверное имя сети, управление передается обработчику ошибок, а обработка запроса прекращается.
Из сети удаляются связи, имеющие нулевой вес и исключенные из обучения. Нумерация сигналов и параметров сохраняется.
Из структуры сети удаляются «немые» участки - элементы и блоки, выходные сигналы которых не являются выходными сигналами сети в целом и не используются в качестве входных сигналов другими подсетями. Нумерация сигналов и параметров сохраняется.
Производится замена элементов, ставших «прозрачными» - путем замыкания входного сигнала на выходной, удаляются простые однородные сумматоры с одним входом и точки ветвления с одним выходом; адаптивные однородные сумматоры с одним входом заменяются синапсами. Нумерация сигналов и параметров сохраняется.
В каждом блоке производится замена имен подсетей на псевдонимы.
Производится изменение нумерации сигналов и параметров сети.
4.4.5. Остальные запросы
Ниже приведен список запросов, исполнение которых описано в главе 1:
nwSetCurrent - Сделать сеть текущей
nwAdd - Добавление сети
nwDelete - Удаление сети
nwWrite - Запись сети
nwGetStructNames - Вернуть имена подсетей
nwGetType - Вернуть тип подсети
nwEdit - Редактировать компоненту сеть
OnError - Установить обработчик ошибок
GetError - Дать номер ошибки
FreeMemory - Освободить память
В запросе nwGetType в переменной TypeId возвращается значение одной из предопределенных констант, перечисленных в табл. 13.
Следует заметить, что два запроса nwGetData (Получить параметры) и nwSetData (Установить параметры) имеют название, совпадающее с названием запросов, описанных в разделе "Общий стандарт", но они имеют другой набор аргументов.
4.4.6. Ошибки компонента сеть
В табл. 14 приведен полный список ошибок, которые могут возникать при выполнении запросов компонентом сеть, и действия стандартного обработчика ошибок.
Таблица 14
Ошибки компонента сеть и действия стандартного обработчика ошибок.
№ |
Название ошибки |
Стандартная обработка |
|
301 |
Неверное имя сети |
Занесение номера в Error |
|
302 |
Ошибка считывания сети |
Занесение номера в Error |
|
303 |
Ошибка сохранения сети |
Занесение номера в Error |
|
304 |
Ошибка прямого функционирования |
Занесение номера в Error |
|
305 |
Ошибка обратного функционирования |
Занесение номера в Error |
|
306 |
Ошибочный тип параметра сети |
Занесение номера в Error |
5. Оценка и интерпретатор ответа
Эта глава посвящена обзору различных видов оценок, способам их вычисления. В ней так же рассмотрен способ определения уровня уверенности сети в выданном ответе и приведен способ построения оценок, позволяющих определять уровень уверенности. Приведен основной принцип проектирования оценки: надо учить сеть тому, что мы хотим от нее получить. Приведенные в данной главе результаты впервые были опубликованы в работах [78, 82, 84, 145, 146, 149, 152].
Основные функции, которые должна выполнять оценка:
Вычислять оценку решения, выданного сетью.
Вычислять производные этой оценки по выходным сигналам сети.
Кроме оценок, в первом разделе этой главы рассмотрен другой, тесно связанный с ней объект - интерпретатор ответа. Основное назначение этого объекта - интерпретировать выходной вектор сети как ответ, понятный пользователю. Однако, при определенном построении интерпретатора и правильно построенной по нему оценке, интерпретатор ответа может также оценивать уровень уверенности сети в выданном ответе.
При частичной аппаратной реализации нейрокомпьютера включение функции оценки в аппаратную часть не эффективно, поскольку оценка является сложным устройством (многие функции оценки включают в себя операции сортировки, и другие аналогичные операции). Однако при аппаратной реализации обученной нейронной сети (даже если предусматривается доучивание сети) аппаратная реализация интерпретатора ответа может оказаться эффективной, поскольку для обученной сети интерпретатор уже не меняется, и по сравнению с оценкой интерпретатор ответа достаточно прост.
5.1. Интерпретатор ответа
Как было показано в главе «Описание нейронных сетей», ответ, выдаваемый нейронной сетью, как правило, является числом, из диапазона . Если ответ выдается несколькими нейронами, то на выходе сети мы имеем вектор, каждый компонент которого лежит в интервале . Если в качестве ответа требуется число из этого диапазона, то мы можем его получить. Однако, в большинстве случаев это не так. Достаточно часто требуемая в качестве ответа величина лежит в другом диапазоне. Например, при предсказании температуры воздуха 25 июня в Красноярске ответ должен лежать в интервале от 5 до 35 градусов Цельсия. Сеть не может дать на выходе такого сигнала. Значит, прежде чем обучать сеть необходимо решить в каком виде будем требовать ответ. В данном случае ответ можно требовать в виде , где T - требуемая температура, и - минимальная и максимальная температуры, ? - ответ, который будем требовать от сети. При интерпретации ответа необходимо проделать обратное преобразование. Если сеть выдала сигнал ?, то ответом является величина . Таким образом, можно интерпретировать выдаваемый сетью сигнал, как величину из любого, наперед заданного диапазона.
Если при составлении обучающего множества ответ на примеры определялся с некоторой погрешностью, то от сети следует требовать не точного воспроизведения ответа, а попадания в интервал заданной ширины. В этом случае интерпретатор ответа может выдать сообщение о правильности (попадании в интервал) ответа.
Другим, часто встречающимся случаем, является предсказание сетью принадлежности входного вектора одному из заданных классов. Такие задачи называют задачами классификации, а решающие их сети - классификаторами. В простейшем случае задача классификации ставится следующим образом: пусть задано N классов. Тогда нейросеть выдает вектор из N сигналов. Однако, нет единого универсального правила интерпретации этого вектора. Наиболее часто используется интерпретация по максимуму: номер нейрона, выдавшего максимальный по величине сигнал, является номером класса, к которому относится предъявленный сети входной вектор. Такие интерпретаторы ответа называются интерпретаторами, кодирующими ответ номером канала (номер нейрона - номер класса). Все интерпретаторы, использующие кодирование номером канала, имеют один большой недостаток - для классификации на N классов требуется N выходных нейронов. При большом N требуется много выходных нейронов для получения ответа. Однако существуют и другие виды интерпретаторов.
Двоичный интерпретатор. Основная идея двоичного интерпретатора - получение на выходе нейронной сети двоичного кода номера класса. Это достигается двухэтапной интерпретацией:
Каждый выходной сигнал нейронной сети интерпретируется как 1, если он больше , и как 0 в противном случае.
Полученная последовательность нулей и единиц интерпретируется как двоичное число.
Двоичный интерпретатор позволяет интерпретировать N выходных сигналов нейронной сети как номер одного из 2N классов.
Порядковый интерпретатор. Порядковый интерпретатор кодирует номер класса подстановкой. Отсортируем вектор выходных сигналов по возрастанию. Вектор, составленный из номеров нейронов последовательно расположенных в отсортированном векторе выходных сигналов, будет подстановкой. Если каждой подстановке приписать номер класса, то такой интерпретатор может закодировать N! классов используя N выходных сигналов.
5.2. Уровень уверенности
Часто при решении задач классификации с использованием нейронных сетей недостаточно простого ответа «входной вектор принадлежит k-му классу». Хотелось бы также оценить уровень уверенности в этом ответе. Для различных интерпретаторов вопрос определения уровня уверенности решается по-разному. Однако, необходимо учесть, что от нейронной сети нельзя требовать больше того, чему ее обучили. В этом разделе будет рассмотрен вопрос об определении уровня уверенности для нескольких интерпретаторов, а в следующем будет показано, как построить оценку так, чтобы нейронная сеть позволяла его определить.
1. Кодирование номером канала. Знаковый интерпретатор. Знаковый интерпретатор работает в два этапа.
Каждый выходной сигнал нейронной сети интерпретируется как 1, если он больше , и как 0 в противном случае.
Если в полученном векторе только одна единица, то номером класса считается номер нейрона, сигнал которого интерпретирован как 1. В противном случае ответом считается неопределенный номер класса (ответ «не знаю»).
Для того чтобы ввести уровень уверенности для этого интерпретатора потребуем, чтобы при обучении сети для всех примеров было верно неравенство: , где ; - i-ый выходной сигнал. ? - уровень надежности (насколько сильно сигналы должны быть отделены от при обучении). В этом случае уровень уверенности R определяется следующим образом: . Таким образом, при определенном ответе уровень уверенности показывает, насколько ответ далек от неопределенного, а в случае неопределенного ответа - насколько он далек от определенного.
2. Кодирование номером канала. Максимальный интерпретатор. Максимальный интерпретатор в качестве номера класса выдает номер нейрона, выдавшего максимальный сигнал. Для такого интерпретатора в качестве уровня уверенности естественно использовать некоторую функцию от разности между максимальным и вторым по величине сигналами. Для этого потребуем, чтобы при обучении для всех примеров обучающего множества разность между максимальным и вторым по величине сигналами была не меньше уровня надежности ???В этом случае уровень уверенности вычисляется по следующей формуле: , где - максимальный, а - второй по величине сигналы.
3. Двоичный интерпретатор. Уровень надежности для двоичного интерпретатора вводится так же, как и для знакового интерпретатора при кодировании номером канала.
4. Порядковый интерпретатор. При использовании порядкового интерпретатора в качестве уровня уверенности естественно брать функцию от разности двух соседних сигналов в упорядоченном по возрастанию векторе выходных сигналов. Для этого потребуем, чтобы при обучении для всех примеров обучающего множества в упорядоченном по возрастанию векторе выходных сигналов разность между двумя соседними элементами была не меньше уровня надежности ?. В этом случае уровень уверенности можно вычислить по формуле , причем вектор выходных сигналов предполагается отсортированным по возрастанию.
В заключение заметим, что для ответа типа число, ввести уровень уверенности подобным образом невозможно. Пожалуй, единственным способом оценки достоверности результата является консилиум нескольких сетей - если несколько сетей обучены решению одной и той же задачи, то в качестве ответа можно выбрать среднее значение, а по отклонению ответов от среднего можно оценить достоверность результата.
5.3. Построение оценки по интерпретатору
Если в качестве ответа нейронная сеть должна выдать число, то естественной оценкой является квадрат разности выданного сетью выходного сигнала и правильного ответа. Все остальные оценки для обучения сетей решению таких задач являются модификациями данной. Приведем пример такой модификации. Пусть при составлении задачника величина , являющаяся ответом, измерялась с некоторой точностью ?. Тогда нет смысла требовать от сети обучиться выдавать в качестве ответа именно величину . Достаточно, если выданный сетью ответ попадет в интервал. Оценка, удовлетворяющая этому требованию, имеет вид:
Эту оценку будем называть оценкой числа с допуском ?.
Для задач классификации также можно пользоваться оценкой типа суммы квадратов отклонений выходных сигналов сети от требуемых ответов. Однако, эта оценка плоха тем, что во-первых, требования при обучении сети не совпадают с требованиями интерпретатора, во-вторых - такая оценка не позволяет оценить уровень уверенности сети в выданном ответе. Достоинством такой оценки является ее универсальность. Опыт работы с нейронными сетями, накопленный красноярской группой НейроКомп, свидетельствует о том, что при использовании оценки, построенной по интерпретатору, в несколько раз возрастает скорость обучения. Рассмотрим построение оценок по интерпретатору для четырех рассмотренных в предыдущем разделе интерпретаторов ответа.
В ряде описаний оценки и ее производной, приведенных далее, используется следующая функция и ее производная:
1. Кодирование номером канала. Знаковый интерпретатор. Пусть для рассматриваемого примера правильным ответом является k-ый класс. Тогда вектор выходных сигналов сети должен удовлетворять следующей системе неравенств:
где ?- уровень надежности.
Оценку, вычисляющую расстояние от точки ? в пространстве выходных сигналов до множества точек, удовлетворяющих этой системе неравенств, можно записать в виде:
Производная оценки по i-му выходному сигналу равна
.
2. Кодирование номером канала. Максимальный интерпретатор. Пусть для рассматриваемого примера правильным ответом является k-ый класс. Тогда вектор выходных сигналов сети должен удовлетворять следующей системе неравенств:при . Оценкой решения сетью данного примера является расстояние от точки ??в пространстве выходных сигналов до множества точек, удовлетворяющих этой системе неравенств. Для записи оценки, исключим из вектора выходных сигналов сигнал , а остальные сигналы отсортируем по убыванию. Обозначим величину через , а вектор отсортированных сигналов через . Система неравенств в этом случае приобретает вид , при i>1. Множество точек удовлетворяющих этой системе неравенств обозначим через D. Очевидно, что если , то точка ??принадлежит множеству D. Если , то найдем проекцию точки ??на гиперплоскость . Эта точка имеет координаты . Если , то точка принадлежит множеству D. Если нет, то точку ? нужно проектировать на гиперплоскость. Найдем эту точку. Ее координаты можно записать в следующем виде . Эта точка обладает тем свойством, что расстояние от нее до точки ? минимально. Таким образом, для нахождения величины b достаточно взять производную от расстояния по b и приравнять ее к нулю:
Из этого уравнения находим b и записываем координаты точки :
.
Эта процедура продолжается дальше, до тех пор, пока при некотором l не выполнится неравенство или пока l не окажется равной N-1. Оценкой является расстояние от точки ? до точки . Она равна следующей величине
.
Производная оценки по выходному сигналу равна
Для перехода к производным по исходным выходным сигналам необходимо обратить сделанные на первом этапе вычисления оценки преобразования.
3. Двоичный интерпретатор. Оценка для двоичного интерпретатора строится точно также как и для знакового интерпретатора при кодировании номером канала. Пусть правильным ответом является k-ый класс, тогда обозначим через K множество номеров сигналов, которым в двоичном представлении k соответствуют единицы. При уровне надежности оценка задается формулой:
Производная оценки по i-му выходному сигналу равна:
.
4. Порядковый интерпретатор. Для построения оценки по порядковому интерпретатору необходимо предварительно переставить компоненты вектора ? в соответствии с подстановкой, кодирующей правильный ответ. Обозначим полученный в результате вектор через . Множество точек, удовлетворяющих условию задачи, описывается системой уравнений , где ? - уровень надежности. Обозначим это множество через D. Оценка задается расстоянием от точки ? до проекции этой точки на множество D. Опишем процедуру вычисления проекции.
Просмотрев координаты точки , отметим те номера координат, для которых нарушается неравенство .
Множество отмеченных координат либо состоит из одной последовательности последовательных номеров , или из нескольких таких последовательностей. Найдем точку , которая являлась бы проекцией точки на гиперплоскость, определяемую уравнениями , где i пробегает множество индексов отмеченных координат. Пусть множество отмеченных координат распадается на n последовательностей, каждая из которых имеет вид , где m - номер последовательности. Тогда точка имеет вид:
Точка является проекцией, и следовательно, расстояние от до должно быть минимальным. Это расстояние равно . Для нахождения минимума этой функции необходимо приравнять к нулю ее производные по . Получаем систему уравнений . Решая ее, находим .
Если точка удовлетворяет неравенствам, приведенным в первом пункте процедуры, то расстояние от нее до точки является оценкой. В противном случае, повторяем первый шаг процедуры, используя точку вместо ; Объединяем полученный список отмеченных компонентов со списком, полученным при поиске предыдущей точки; находим точку , повторяя все шаги процедуры, начиная со второго.
Отметим, что в ходе процедуры число отмеченных последовательностей соседних индексов не возрастает. Некоторые последовательности могут сливаться, но новые возникать не могут. После нахождения проекции можно записать оценку:
.
Обозначим через m-ую последовательность соседних координат, выделенную при последнем исполнении первого шага процедуры вычисления оценки: . Тогда производную оценки по выходному сигналу можно записать в следующем виде:
Таким образом, построение оценки по интерпретатору сводится к следующей процедуре.
Определяем множество допустимых точек, то есть таких точек в пространстве выходных сигналов, которые интерпретатор ответа будет интерпретировать как правильный ответ со стопроцентным уровнем уверенности.
Находим проекцию выданной сетью точки на это множество. Проекцией является ближайшая точка из множества.
Записываем оценку как расстояние от точки, выданной сетью, до ее проекции на множество допустимых точек.
5.4. Оценка обучающего множества. Вес примера
В предыдущем разделе был рассмотрен ряд оценок, позволяющих оценить решение сетью конкретного примера. Однако, ситуация, когда сеть хотят обучить решению только одного примера, достаточно редка. Обычно сеть должна научиться решать все примеры обучающего множества. Ряд алгоритмов обучения, которые будут рассматриваться в главе "учитель", требуют возможности обучать сеть решению всех примеров одновременно и, соответственно, оценивать решение сетью всех примеров обучающего множества. Как уже отмечалось, обучение нейронной сети - это процесс минимизации в пространстве обучаемых параметров функции оценки. Большинство алгоритмов обучения используют способность нейронных сетей быстро вычислять вектор градиента функции оценки по обучаемым параметрам. Обозначим оценку отдельного примера через . а оценку всего обучающего множества через . Простейший способ получения из - простая сумма. При этом вектор градиента вычисляется очень просто:
.
Таким образом, используя способность сети вычислять градиент функции оценки решения одного примера, можно получить градиент функции оценки всего обучающего множества.
Обучение по всему обучающему множеству позволяет задействовать дополнительные механизмы ускорения обучения. Большинство этих механизмов будет рассмотрено в главе «Учитель». В этом разделе будет рассмотрен только один из них - использование весов примеров. Использование весов примеров может быть вызвано одной из следующих причин.
Один из примеров плохо обучается.
Число примеров разных классов в обучающем множестве сильно отличаются друг от друга.
Примеры в обучающем множестве имеют различную достоверность.
Рассмотрим первую причину - пример плохо обучается. Под «плохо обучается» будем понимать медленное снижение оценки данного примера по отношению к снижению оценки по обучающему множеству. Для того чтобы ускорить обучение данного примера, ему можно приписать вес, больший, чем у остальных примеров. При этом оценка по обучающему множеству и ее градиент можно записать в следующем виде: . где - вес i-го примера. Эту функцию оценки будем называть оценкой взвешенных примеров. При этом градиент, вычисленный по оценке решения сетью этого примера, войдет в суммарный градиент с большим весом, и, следовательно, сильнее повлияет на выбор направления обучения. Этот способ применим также и для коррекции проблем, связанных со второй причиной - разное число примеров разных классов. Однако в этом случае увеличиваются веса всем примерам того класса, в котором меньше примеров. Опыт показывает, что использование весов в таких ситуациях позволяет улучшить обобщающие способности сетей.
В случае различной достоверности примеров в обучающем множестве функция взвешенных примеров не применима. Действительно, если известно, что достоверность ответа в k-ом примере в два раза ниже, чем в l-ом, хотелось бы, чтобы обученная сеть выдавала для k-ого примера в два раза меньший уровень уверенности. Этого можно достичь, если при вычислении оценки k-ого примера будет использоваться в два раза меньший уровень надежности. Оценка обучающего множества в этом случае вычисляется по формуле без весов, а достоверность учитывается непосредственно при вычислении оценки по примеру. Такую оценку будем называть оценкой взвешенной достоверности.
Таким образом, каждый пример может иметь два веса: вес примера и достоверность примера. Кроме того, при решении задач классификации каждый класс может обладать собственным весом. Окончательно функцию оценки по обучающему множеству и ее градиент можно записать в следующем виде:
где - вес примера, - его достоверность.
5.5. Глобальные и локальные оценки
В предыдущих разделах был рассмотрен ряд оценок. Эти оценки обладают одним общим свойством - для вычисления оценки по примеру, предъявленному сети, достаточно знать выходной вектор, выданный сетью при решении этого примера, и правильный ответ. Такие оценки будем называть локальными. Приведем точное определение.
Определение. Локальной называется любая оценка, являющаяся линейной комбинацией произвольных непрерывно дифференцируемых функций, каждая из которых зависит от оценки только одного примера.
Использование локальных оценок позволяет обучать сеть решению как отдельно взятого примера, так и всего обучающего множества в целом. Однако существуют задачи, для которых невозможно построить локальную оценку. Более того, для некоторых задач нельзя построить даже обучающее множество. Использование нелокальных оценок возможно даже при решении задач классификации.
Приведем два примера нелокальных оценки.
Кинетическая оценка для задачи классификации. Пусть в обучающее множество входят примеры k классов. Требуется обучить сеть так, чтобы в пространстве выходных сигналов множества примеров разных классов были попарно линейно разделимы.
Пусть сеть выдает N выходных сигналов. Для решения задачи достаточно, чтобы в ходе обучения все точки в пространстве выходных сигналов, соответствующие примерам одного класса, собирались вокруг одной точки - центра концентрации класса, и чтобы центры концентрации разных классов были как можно дальше друг от друга. В качестве центра концентрации можно выбрать барицентр множества точек, соответствующих примерам данного класса.
Таким образом, функция оценки должна состоять из двух компонентов: первая реализует притяжение между примерами одного класса и барицентром этого класса, а вторая отвечает за отталкивание барицентров разных классов. Обозначим точку в пространстве выходных сигналов, соответствующую m-му примеру, через , множество примеров i-го класса через , барицентр точек, соответствующих примерам этого класса, через (), число примеров в i-ом классе через , а расстояние между точками a и b через . Используя эти обозначения, можно записать притягивающий компонент функции оценки для всех примеров i-го класса в виде:
Функция оценки обеспечивает сильное притяжение для примеров, находящихся далеко от барицентра. Притяжение ослабевает с приближением к барицентру. Компонент функции оценки, отвечающий за отталкивание барицентров разных классов, должен обеспечивать сильное отталкивание близких барицентров и ослабевать с удалением барицентров друг от друга. Такими свойствами обладает гравитационное отталкивание. Используя гравитационное отталкивание можно записать второй компонент функции оценки в виде: . Таким образом, оценку, обеспечивающую сближение точек, соответствующих примерам одного класса, и отталкивание барицентров, можно записать в виде:
Вычислим производную оценки по j-му выходному сигналу, полученному при решении i-го примера. Пусть i-ый пример принадлежит l-му классу. Тогда производная имеет вид:
Эту оценку будем называть кинетической. Существует одно основное отличие этой оценки от всех других, ранее рассмотренных, оценок для решения задач классификации. При использовании традиционных подходов, сначала выбирают интерпретатор ответа, затем строят по выбранному интерпретатору функцию оценки, и только затем приступают к обучению сети. Для кинетической оценки такой подход не применим. Действительно, до того как будет закончено обучение сети невозможно построить интерпретатор. Кроме того, использование кинетической оценки, делает необходимым обучение сети решению всех примеров обучающего множества одновременно. Это связанно с невозможностью вычислить оценку одного примера. Кинетическая оценка, очевидно, не является локальной: для вычисления производных оценки по выходным сигналам примера необходимо знать барицентры всех классов, для вычисления которых, в свою очередь, необходимо знать выходные сигналы, получаемые при решении всех примеров обучающего множества.
Интерпретатор для кинетической оценки строится следующим образом. Для построения разделителя i-го и j-го классов строим плоскость, перпендикулярную к вектору Уравнение этой плоскости можно записать в виде
.
Для определения константы D находим среди точек i-го класса ближайшую к барицентру j-го класса. Подставляя координаты этой точки в уравнение гиперплоскости, получаем уравнение на D. Решив это уравнение, находим величину . Используя ближайшую к барицентру i-го класса точку j-го класса, находим величину . Искомая константа D находится как среднее арифметическое между и . Для отнесения произвольного вектора к i-му или j-му классу достаточно подставить его значения в левую часть уравнения разделяющей гиперплоскости. Если значение левой части уравнения получается больше нуля, то вектор относится к j-му классу, в противном случае - к i-му.
Интерпретатор работает следующим образом: если для i-го класса все разделители этого класса с остальными классами выдали ответ i-ый класс, то окончательным ответом является i-ый класс. Если такого класса не нашлось, то ответ «не знаю». Ситуация, когда для двух различных классов все разделители подтвердили принадлежность к этому классу, невозможна, так как разделитель этих двух классов должен был отдать предпочтение одному из них.
Рассмотренный пример решения задачи с использованием нелокальной оценки позволяет выделить основные черты обучения с нелокальной оценкой:
Невозможность оценить решение одного примера.
Невозможность оценить правильность решения примера до окончания обучения.
Невозможность построения интерпретатора ответа до окончания обучения.
Этот пример является отчасти надуманным, поскольку его можно решить с использованием более простых локальных оценок. Ниже приведен пример задачи, которую невозможно решить с использованием локальных оценок.
Генератор случайных чисел. Необходимо обучить сеть генерировать последовательность случайных чисел из диапазона с заданными k первыми моментами. Напомним, что для выборки роль первого момента играет среднее значение, второго - средний квадрат, третьего - средний куб и так далее. Есть два пути решения этой задачи. Первый - используя стандартный генератор случайных чисел подготовить задачник и обучить по нему сеть. Этот путь плох тем, что такой генератор будет просто воспроизводить последовательность чисел, записанную в задачнике. Для получения такого результата можно просто хранить задачник.
Второй вариант - обучать сеть без задачника! Пусть нейросеть принимает один входной сигнал и выдает один выходной. При использовании сети выходной сигнал первого срабатывания сети (первое случайное число) будет служить входным сигналом для второго срабатывания сети и так далее.
Для построения оценки зададимся тремя наборами чисел: - необходимое значение i-го момента, - длина последовательности, на которой i-ый момент сгенерированной последовательности должен не более чем на отличаться от . - точность вычисления i-го момента.
Выборочная оценка совпадения i-го момента в сгенерированной последовательности на отрезке, начинающемся с j-го случайного числа, вычисляется по следующей формуле: где - выходной сигнал, полученный на l-ом срабатывании сети. Для оценки точности совпадения i-го момента в сгенерированной последовательности на отрезке, начинающемся с j-го случайного числа, воспользуемся оценкой числа с допуском :
Таким образом, при обучении сети генерации последовательности из N случайных чисел оценку можно записать в следующем виде:
Производная оценки по выходному сигналу l-го срабатывания сети можно записать в следующем виде:
Используя эту оценку можно обучать сеть генерировать случайные числа. Удобство этого подхода к решению задачи обучения генератора случайных чисел в том, что можно достаточно часто менять инициирующий сеть входной сигнал, что позволит сети генерировать не одну, а много различных последовательностей, обладающих всеми необходимыми свойствами.
Подобные документы
Определение перспектив, направлений и тенденций развития вычислительных систем как совокупности техники и программных средств обработки информации. Развитие специализации вычислительных систем и проблема сфер применения. Тенденции развития информатики.
реферат [19,5 K], добавлен 17.03.2011Нейрокибернетика как направление изучения "искусственного интеллекта". Программный, аппаратный и гибридный подход к созданию нейросетей. Развитие института нейрокибернетики в России. Направления внедрение нейрокибернетики и интеллектуальных систем.
контрольная работа [31,4 K], добавлен 26.02.2012Историческое развитие средств вычислений. Структурные схемы вычислительных систем. Развитие элементной базы и развитие архитектуры самих систем. Основные классы вычислительных машин. Каналы передачи данных. Требования к составу периферийных устройств.
реферат [48,7 K], добавлен 09.01.2011Искусственные нейронные сети, строящиеся по принципам организации и функционирования их биологических аналогов. Элементарный преобразователь в сетях. Экспериментальный автопилотируемый гиперзвуковой самолет-разведчик LoFLYTE, использующий нейронные сети.
презентация [1,3 M], добавлен 23.09.2015Примеры счетно-решающих устройств до появления ЭВМ. Суммирующая машина Паскаля. Счетная машина Готфрида Лейбница. "Аналитическая машина" Чарльза Бэббиджа, развитие вычислительной техники после ее создания. Поколения электронно-вычислительных машин.
презентация [1,2 M], добавлен 10.02.2015Характеристика моделей обучения. Общие сведения о нейроне. Искусственные нейронные сети, персептрон. Проблема XOR и пути ее решения. Нейронные сети обратного распространения. Подготовка входных и выходных данных. Нейронные сети Хопфилда и Хэмминга.
контрольная работа [1,4 M], добавлен 28.01.2011Понятие искусственного интеллекта как свойства автоматических систем брать на себя отдельные функции интеллекта человека. Экспертные системы в области медицины. Различные подходы к построению систем искусственного интеллекта. Создание нейронных сетей.
презентация [3,0 M], добавлен 28.05.2015Основы нейрокомпьютерных систем. Искусственные нейронные сети, их применение в системах управления. Алгоритм обратного распространения. Нейронные сети Хопфилда, Хэмминга. Современные направления развития нейрокомпьютерных технологий в России и за рубежом.
дипломная работа [962,4 K], добавлен 23.06.2012Преимущества нейронных сетей. Модели нейронов, представляющих собой единицу обработки информации в нейронной сети. Ее представление с помощью направленных графов. Понятие обратной связи (feedback). Основная задача и значение искусственного интеллекта.
реферат [1,2 M], добавлен 24.05.2015Рождение искусственного интеллекта. История развития нейронных сетей, эволюционного программирования, нечеткой логики. Генетические алгоритмы, их применение. Искусственный интеллект, нейронные сети, эволюционное программирование и нечеткая логика сейчас.
реферат [78,9 K], добавлен 22.01.2015