Функциональные модели универсального нейрокомпьютера
Развитие информатики и средств вычислительной техники. Развитие систем искусственного интеллекта на базе алгоритмических языков. Искусственные нейронные сети. Нейрокибернетика. Элементарные детали вычислительных устройств. Анализ нейросетевых парадигм.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | диссертация |
Язык | русский |
Дата добавления | 12.10.2008 |
Размер файла | 1,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
2.3.1. Цвет примера и обучающая выборка
Довольно часто при обучении нейронных сетей возникает необходимость использовать в обучении не все примеры задачника, а только часть. Например, такая возможность необходима при использовании метода скользящего контроля для оценки качества обучения сети. Существует несколько способов реализации такой возможности. Кроме того, часто бывает полезно приписать примерам ряд признаков. Так, при просмотре задачника, пользователю полезно видеть степень обученности примера (например, отображать зеленым цветом примеры, которые решаются сетью идеально, желтым - те, которые сеть решает правильно, но не идеально, а красным - те, при решении которых сеть допускает ошибки).
Ту часть задачника, которая в данный момент используется в обучении нейронной сети, будем называть обучающей выборкой. Для выделения из задачника обучающей выборки предлагается использовать механизм «цветов». Если все примеры покрашены в некоторые цвета, то обучающую выборку можно задать, указав цвета примеров, которые необходимо использовать в обучении. В соответствии с предлагаемой схемой, каждый пример покрашен каким-то цветом, а при задании обучающей выборки можно задать комбинацию цветов. Схема работы с цветами детально рассмотрена в разделе «Переменные типа цвет и операции с цветами» приложения.
Выделенную с помощью механизма цветов часть задачника будем далее называть текущей выборкой. Обучающая выборка является частным случаем текущей выборки.
2.3.2. Входные данные
Входные данные - данные, необходимые для решения сетью примера. Входные данные являются массивом. Существует всего несколько видов входных данных. Каждый элемент массива входных данных может быть: числом; полем с ограниченным числом состояний; рисунком.
2.3.3. Комментарии
Пользователю, при работе с задачником, часто бывает необходимо иметь возможность идентифицировать примеры не только по номерам. Например, при работе с медицинскими базами данных полезно иметь поле, содержащее фамилию больного или номер истории болезни. Для этих целей в задачнике может потребоваться хранить массив комментариев, которые не могут быть использованы в обучении. Кроме того, при исключении какого либо входного сигнала из множества входных сигналов, он не исключается из задачника полностью, а переводится в комментарии.
2.3.4. Предобработанные данные
Предобработанные данные - это массив входных сигналов сети, полученный из входных данных после предобработки, выполняемой компонентом предобработчик. Хранение задачником этого массива необязательно. Каждый элемент массива предобработанных данных является действительным числом. Следует отметить, что любая нетривиальная предобработка, как правило, изменяет длину массива.
2.3.5. Правильные ответы
Правильные ответы - массив ответов, которые должна выдать обученная нейронная сеть при решении примера. Этот массив необходим при обучении сетей с учителем. При использовании других видов сетей хранение задачником этого массива необязательно. Элементами массива ответов могут быть как числа, так и поля с ограниченным набором состояний. В первом случае будем говорить о задаче аппроксимации функции, а во втором - о задаче классификации объектов.
2.3.6. Полученные ответы
Полученные ответы - массив ответов, выданных сетью при решении примера. Для задачника хранение этой части примера не обязательно.
2.3.7. Оценки
Оценки - массив оценок, полученных сетью за решение всех подзадач примера (число подзадач равно числу ответов примера). Хранение этого массива задачником не обязательно.
2.3.8. Вес примера
Вес примера - скалярный параметр, позволяющий регулировать интенсивность участия примера в процессе обучения. Для не обучаемых нейронных сетей вес примера может использоваться для учета вклада данных примера в формируемую карту связей. Применение весов примеров зависит от типа используемой сети.
2.3.9. Достоверность ответа
При составлении задачника ответы довольно часто получаются как результат измерения или путем логических выводов в условиях нечеткой информации (например, в медицине). В этих случаях одни ответы имеют большую достоверность, чем другие. Некоторые способы построения оценки или формирования карты связей нейронной сети позволяют использовать эти данные. Достоверность ответа является массивом, поскольку ответ каждой подзадачи данного примера может иметь свою достоверность. Каждый элемент массива достоверностей ответов является действительным числом от нуля до единицы.
2.3.10. Уверенность в ответе
При использовании некоторых видов оценки (см. главу «Оценка и интерпретатор ответа») интерпретатор ответа способен оценить уверенность сети в полученном ответе. Массив коэффициентов уверенности сети в ответах (для каждого ответа свой коэффициент уверенности) может оказаться полезным для пользователя. Каждый элемент массива коэффициентов уверенности в ответе является действительным числом от нуля до единицы.
Все перечисленные выше массивы можно разбить на четыре типа по структуре:
Входные данные. Таких массивов обычно два - массив описания полей данных (содержит описание полей данных: имя поля, его тип и возможно некоторую дополнительную информацию) и собственно массив данных. Причем каждый пример имеет свой массив данных, но массив описания полей данных один для всех примеров задачника. Эти массивы имеют одинаковое число элементов, и их элементы попарно соответствуют друг другу.
Массив ответов. При обучении с учителем, в задачнике есть, по крайней мере, два массива этого вида - массив описания полей ответов и массив правильных ответов. Кроме того, возможно хранение в задачнике массивов вычисленных ответов, достоверности ответов и уверенности в ответе. Массив описания полей ответов - один для всех примеров задачника. Все остальные массивы данного типа хранятся по одному экземпляру каждого массива на пример.
Массив комментариев. Таких массивов обычно только два - массив описания полей комментариев и массив комментариев. Массив описания полей комментариев - один на весь задачник, а массив комментариев - один на пример.
Рис. 1. Схема данных задачника.
На рис. 1 приведено схематическое устройство задачника. Такое представление данных позволяет гибко использовать память. Однако следует учесть, что часть полей может переходить из одного массива в другой. Например, при исключении одного входного данного из использования (см. главу «Контрастер»), соответствующее ему поле переходит из массива входных данных в массив комментариев.
2.4. Запросы к компоненту задачник
В этом разделе описаны все запросы, выполняемые компонентом задачник в виде процедур и функций. При описании используется синтаксис языков Object Pascal и С. В Паскаль варианте приведены заголовки функций и процедур. В С варианте - прототипы функций. Большинство запросов, реализуется в виде функций, сообщающих о корректности завершения операции.
Предполагается возможность одновременной работы нескольких сеансов одного задачника. Например, допускается редактирование задачника и одновременное обучение сети по тому же задачнику.
Все запросы к компоненту задачник можно разбить на следующие группы.
Чтение и запись задачника.
Начало и конец сеанса.
Перемещение по примерам.
Определение, получение и изменение данных.
Окраска примеров.
Установление структуры Задачника.
Добавление и удаление примеров.
Обработка ошибок.
2.4.1. Чтение и запись задачника
К этой группе запросов относятся запросы, работающие со всем задачником в целом. Эти запросы считывают задачник, сохраняют задачник на диске или выгружают ранее считанный или созданный задачник.
2.4.1.1. Прочитать задачник (tbAdd)
Описание запроса:
Pascal:
Function tbAdd( CompName : PString ) : Logic;
C:
Logic tbAdd( PString CompName )
Описание аргумента:
CompName - указатель на строку символов, содержащую имя файла задачника.
Назначение - служит для считывания задачника.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если в данный момент считан задачник, то генерируется запрос tbDelete. Если запрос tbDelete завершается неуспешно, то генерируется внутренняя ошибка 104 - попытка считывания задачника при открытых сеансах ранее считанного задачника. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Первые четыре символа строки CompName составляют слово File. Остальная часть строки содержит имя компонента и после пробела имя файла, содержащего компонент.
Если во время выполнения запроса возникает ошибка, то генерируется внутренняя ошибка 102 - ошибка чтения задачника. Управление передается обработчику ошибок. Выполнение запроса прекращается. В противном случае выполнение запроса успешно завершается.
2.4.1.2. Записать задачник (tbWrite)
Описание запроса:
Pascal:
Function tbWrite( CompName, FileName : PString) : Logic;
C:
Logic tbWrite(PString CompName, PString FileName)
Описание аргументов:
CompName - указатель на строку символов, содержащую имя задачника.
FileName - имя файла, куда надо записать компонента.
Назначение - сохраняет задачник в файле.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если в момент получения запроса отсутствует считанный задачник, то возникает ошибка 101 - запрос при отсутствии задачника, управление передается обработчику ошибок, а обработка запроса прекращается.
Задачник записывается в файл FileName под именем CompName.
Если во время выполнения запроса возникает ошибка, то генерируется внутренняя ошибка 103 - ошибка записи задачника. Управление передается обработчику ошибок. Выполнение запроса прекращается. В противном случае выполнение запроса успешно завершается.
2.4.1.3. Закрыть задачник (tbDelete)
Описание запроса:
Pascal:
Function tbDelete : Logic;
C:
Logic tbDelete()
Назначение - удаляет из памяти ранее считанный задачник.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если есть открытые сеансы, то возникает ошибка 105 - закрытие задачника при открытых сеансах. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Задачник закрывается. Запрос успешно завершается.
2.4.2. Начало и конец сеанса
К этой группе запросов относятся два запроса, открывающие и закрывающие сеансы работы с задачником.
2.4.2.1. Начало сеанса (InitSession)
Описание запроса:
Pascal:
Function InitSession( NewColor : Color; Oper : Integer; Var Handle: Integer ) : Logic;
C:
Logic InitSession(Color NewColor, Integer Oper, Integer* Handle)
Описание аргументов:
NewColor - цвет для отбора примеров задачника в текущую выборку.
Oper - операция для отбора в текущую выборку. Должна быть одной из констант CEqual, CIn, CInclude, Cxclude, CIntersect
Handle - номер сеанса. Начальное значение не важно. В этом аргументе возвращается номер сеанса.
Назначение - начинает сеанс. Отбирает текущую выборку.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если аргумент Oper является недопустимым, то возникает ошибка 106 - недопустимый код операции при открытии сеанса, управление передается обработчику ошибок. Сеанс не открывается. Возвращается значение ложь.
Создается новый сеанс (в одно-сеансовых задачниках просто инициируется сеанс). Номер сеанса заносится в аргумент Handle.
Значения аргументов NewColor и Oper сохраняются во внутренних переменных задачника
Указателю текущего примера присваивается состояние «до первого примера»
InitSession := Next(Handle) - результат выполнения запроса совпадает с результатом выполнения вызванного запроса «Следующий пример».
2.4.2.2. Конец сеанса (EndSession)
Описание запроса:
Pascal:
Procedure EndSession( Handle : Integer );
C:
void EndSession(Integer Handle)
Назначение - закрывает сеанс.
Описание аргументов:
Handle - номер сеанса.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если аргумент Handle не корректен возникает ошибка 107 - неверный номер сеанса. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Освобождается вся память, взятая для выполнения сеанса. После этого сеанс завершается.
2.4.3. Перемещение по примерам
В эту группу запросов входят запросы позволяющие управлять положением текущего указателя в текущей выборке.
2.4.3.1. В начало (Home)
Описание запроса:
Pascal:
Function Номе( Handle : Integer ) : Logic;
C:
Logic Номе(Integer Handle)
Описание аргументов:
Handle - номер сеанса.
Назначение - делает текущим первый пример текущей выборки.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если аргумент Handle не корректен возникает ошибка 107 - неверный номер сеанса. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Указателю на текущий пример присваивается значение «до первого примера»
Home := Next(Handle) - результат выполнения запроса совпадает с результатом выполнения вызванного запроса «Следующий»
2.4.3.2. В конец (End)
Описание запроса:
Pascal:
Function End( Handle : Integer ) : Logic;
C:
Logic End(Integer Handle)
Описание аргументов:
Handle - номер сеанса.
Назначение - делает текущим последний пример текущей выборки.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если аргумент Handle не корректен возникает ошибка 107 - неверный номер сеанса. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Указателю на текущий пример присваивается значение «после последнего примера»
Home := Prev(Handle) - результат выполнения запроса совпадает с результатом выполнения вызванного запроса «Предыдущий»
2.4.3.3. Следующий (Next)
Описание запроса:
Pascal:
Function Next( Handle : Integer ) : Logic;
C:
Logic Next(Integer Handle)
Описание аргументов:
Handle - номер сеанса.
Назначение - делает текущим следующий пример текущей выборки.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если аргумент Handle не корректен возникает ошибка 107 - неверный номер сеанса. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Если значение указателя равно «после последнего примера», то возникает ошибка 108 - переход за конечную границу текущей выборки, и управление передается обработчику ошибок. В случае возврата управления в запрос, происходит немедленный выход из запроса с возвращением значения ложь.
Если значение указателя текущего примера равно «до первого примера», то присваиваем указателю адрес первого примера задачника. Если адрес в переменной в задачнике нет примеров, то возникает ошибка 108 - переход за конечную границу текущей выборки, и управление передается обработчику ошибок. В случае возврата управления в запрос, происходит немедленный выход из запроса с возвращением значения ложь. В противном случае переходим к шагу 6
Указатель перемещается на следующий пример задачника. Если следующего примера задачника нет, то указателю присваивается значение «после последнего примера».
Переходим к шагу 5, если не верно условие:
((GetColor Oper NewColor) And Last,
где Oper и NewColor - аргументы запроса InitSession, которым был открыт данный сеанс.
Next := Not Last (Переход к следующему примеру завершился удачно, если указатель не установлен в значение «после последнего примера»).
2.4.3.4. Предыдущий (Prev)
Описание запроса:
Pascal:
Function Prev( Handle : Integer ): Logic;
C:
Logic Prev(Integer Handle)
Описание аргументов:
Handle - номер сеанса.
Назначение - делает текущим предыдущий пример текущей выборки.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если аргумент Handle не корректен возникает ошибка 107 - неверный номер сеанса. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Если значение указателя равно «до первого примера», то возникает ошибка 109 - переход за начальную границу текущей выборки, и управление передается обработчику ошибок. В случае возврата управления в запрос, происходит немедленный выход из запроса с возвращением значения ложь.
Если значение указателя равно «после последнего примера», то присваиваем указателю адрес последнего примера задачника. Если в задачнике нет примеров, то возникает ошибка 109 - переход за начальную границу текущей выборки, и управление передается обработчику ошибок. В случае возврата управления в запрос, происходит немедленный выход из запроса с возвращением значения ложь.
В противном случае шаг 7.
Указатель перемещается на предыдущий пример задачника. Если предыдущего примера задачника нет, то указателю присваивается значение «до первого примера».
Шаг 6 повторяется до тех пор, пока не выполнится условие:
((GetColor Oper NewColor) And First
Next := Not Last (Переход к следующему примеру завершился удачно, если указатель не установлен в значение «после последнего примера»).
2.4.3.5. Конец (Last)
Описание запроса:
Pascal:
Function Last( Handle : Integer ) : Logic;
C:
Logic Last(Integer Handle)
Описание аргументов:
Handle - номер сеанса.
Назначение - возвращает значение истина, если текущим является состояние «после последнего примера», и ложь - в противном случае.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если аргумент Handle не корректен возникает ошибка 107 - неверный номер сеанса. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Возвращает значение истина, если текущим является состояние «после последнего примера», и ложь - в противном случае.
2.4.3.6. Начало (First)
Описание запроса:
Pascal:
Function First( Handle : Integer ): Logic;
C:
Logic First(Integer Handle)
Описание аргументов:
Handle - номер сеанса.
Назначение - возвращает значение истина, если текущим является состояние «перед первым примером», и ложь в противном случае.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если аргумент Handle не корректен возникает ошибка 107 - неверный номер сеанса. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Возвращает значение истина, если текущим является состояние «перед первым примером», и ложь в противном случае.
2.4.3.7. Пример номер (Example)
Описание запроса:
Pascal:
Function Example( Number : Long; Handle : Integer ) : Logic;
C:
Logic Example(Long Number, Integer Handle)
Описание аргументов:
Number - номер примера, который должен быть сделан текущим. Нумерация примеров ведется с единицы.
Handle - номер сеанса.
Назначение - делает текущим пример текущей выборки с указанным номером.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если аргумент Handle не корректен возникает ошибка 107 - неверный номер сеанса. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Указатель устанавливается в состояние «до первого примера».
Number раз выполняем запрос Next.
Example := Not Last (Если не установлено состояние «после последнего примера», то запрос выполнен успешно).
2.4.4. Определение, получение и изменение данных
К данной группе запросов относятся запросы позволяющие получать данные из задачника, заносить данные в задачник и сбросить предобработку (необходимо выполнить данный запрос после изменений в данных или предобработчике, если задачник хранит векторы предобработанных данных)
2.4.4.1. Дать пример (Get)
Описание запроса:
Pascal:
Function Get( Handle : Integer; Var Data : PRealArray; What : Integer ) : Logic;
C:
Logic Get(Integer Handle, PRealArray* Data, Integer What)
Описание аргументов:
Handle - номер сеанса;
Data - указатель на массив, в котором должны быть возвращены данныt;
What - одна из предопределенных констант tbColor, tbInput, tbPrepared, tbAnswers, tbReliability, tbCalcAnswers, tbCalcReliability, tbWeight, tbEstimation, tbComment
Назначение - возвращает указанную в запросе информацию.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если аргумент Handle не корректен возникает ошибка 107 - неверный номер сеанса. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Если аргумент What имеет недопустимое значение, то возникает ошибка 110 - неверный тип вектора в запросе Get. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Если текущий указатель указывает на одно из состояний «до первого примера» или «после последнего примера», то возникает ошибка 111 - попытка чтения до или после текущей выборки. Управление передается обработчику ошибок. Запрос завершается неуспешно.
Если в аргументе What указан вектор предобработанных данных, но в текущем примере он отсутствует, то генерируется запрос предобработать данные. Если предобработка завершается успешно, то полученный вектор предобработанных данных включается в пример, в противном случае выполнение запроса прекращается. Возвращается значение ложь.
В элементы массива, на который указывает аргумент Data, копируются данные из того вектора данных текущего примера, который указан в аргументе What. Если требуемый вектор в задачнике отсутствует, то возникает ошибка 112 - данные отсутствуют и запрос завершается со значением ложь. В противном случае запрос успешно завершается.
2.4.4.2. Обновить данные (Put)
Описание запроса:
Pascal:
Function Put( Handle : Integer; Data : PRealArray; What : Integer ) : Logic;
C:
Logic Put(Integer Handle, PRealArray Data, Integer What)
Описание аргументов:
Handle - номер сеанса
Data - указатель на массив, в котором переданы данные, которые должны быть занесены в задачник.
What - одна из предопределенных констант tbColor, tbInput, tbPrepared, tbAnswers, tbReliability, tbCalcAnswers, tbCalcReliability, tbWeight, tbEstimation, tbComment
Назначение - обновить данные текущего примера
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если аргумент Handle не корректен возникает ошибка 107 - неверный номер сеанса. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Если аргумент What имеет недопустимое значение, то возникает ошибка 113 - неверный тип вектора в запросе Put. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Если текущий указатель указывает на одно из состояний «до первого примера» или «после последнего примера», то возникает ошибка 111 - попытка чтения до или после текущей выборки. Управление передается обработчику ошибок. Запрос завершается неуспешно.
Если устанавливается вектор входных данных, то для текущего примера должен быть освобожден вектор предобработанных данных.
В данные примера копируются значения, указанные в массиве Data. Запрос успешно завершается.
2.4.4.3. Сбросить предобработку (RemovePrepare)
Описание запроса:
Pascal:
Procedure RemovePrepare;
C:
void RemovePrepare()
Назначение - отмена предобработки всех ранее предобработанных примеров.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
У всех примеров задачника освобождаются вектора предобработанных данных.
2.4.5. Окраска примеров
В данный раздел помещены запросы для работы с цветами. Отметим, что цвет примера, возвращаемый запросом GetColor можно получить также с помощью запроса Get.
2.4.5.1. Дать цвет примера (GetColor)
Описание запроса:
Pascal:
Function GetColor( Handle : Integer ) : Color;
C:
Logic GetColor(Integer Handle)
Описание аргументов:
Handle - номер сеанса
Назначение - возвращает цвет текущего примера.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если аргумент Handle не корректен возникает ошибка 107 - неверный номер сеанса. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Если текущий указатель указывает на одно из состояний «до первого примера» или «после последнего примера», то возникает ошибка 111 - попытка чтения до или после текущей выборки. Управление передается обработчику ошибок. Запрос завершается неуспешно.
Возвращается цвет текущего примера.
2.4.5.2. Покрасить пример (PaintCurrent)
Описание запроса:
Pascal:
Function PaintCurrent( Handle : Integer; NewColor, ColorMask : Color; Oper : Integer) : Logic;
C:
Logic PaintCurrent(Integer Handle, Color NewColor, Color ColorMask, Integer Oper)
Описание аргументов:
Handle - номер сеанса.
NewColor - новый цвет для окраски примера.
ColorMask - маска цвета для окраски примера.
Oper - операция, используемая при окраске примера. Должна быть одной из констант COr, CAnd, CXor, CNot.
Назначение - изменяет цвет текущего примера.
Описание исполнения.
Если Error <> 0, то выполнение запроса прекращается.
Если аргумент Handle не корректен возникает ошибка 107 - неверный номер сеанса. Управление передается обработчику ошибок. Выполнение запроса прекращается.
Если Oper не корректен, то возникает ошибка 114 - неверная операция окраски примера. Управление передается обработчику ошибок. Запрос завершается со значением ложь.
Новый цвет примера := (Старый цвет примера And ColorMask) Oper NewColor
2.4.6. Ошибки компонента задачника
В табл. 1 приведен полный список ошибок, которые могут возникать при выполнении запросов компонентом задачник, и действия стандартного обработчика ошибок.
Таблица 1.
Ошибки компонента задачник и действия стандартного обработчика ошибок.
№ |
Название ошибки |
Стандартная обработка |
|
101 |
Запрос при отсутствии задачника |
Занесение номера в Error |
|
102 |
Ошибка чтения задачника |
Занесение номера в Error |
|
103 |
Ошибка записи задачника |
Занесение номера в Error |
|
104 |
Попытка считывания задачника при открытых сеансах ранее считанного задачника |
Занесение номера в Error |
|
105 |
Закрытие задачника при открытых сеансах |
Занесение номера в Error |
|
106 |
Недопустимый код операции при открытии сеанса |
Занесение номера в Error |
|
107 |
Неверный номер сеанса |
Занесение номера в Error |
|
108 |
Переход за конечную границу текущей выборки |
Игнорируется |
|
109 |
Переход за начальную границу текущей выборки |
Игнорируется |
|
110 |
Неверный тип вектора в запросе Get |
Занесение номера в Error |
|
111 |
Попытка чтения до или после текущей выборки |
Занесение номера в Error |
|
112 |
Данные отсутствуют |
Игнорируется |
|
113 |
Неверный тип вектора в запросе Put |
Занесение номера в Error |
|
114 |
Неверная операция окраски примера |
Занесение номера в Error |
3. Предобработчик
Данная глава посвящена компоненту предобработчик [80, 150]. В ней рассматриваются различные аспекты предобработки входных данных для нейронных сетей. Существует множество различных видов нейронных сетей (см. главу «Описание нейронных сетей»). Однако, для большинства нейронных сетей характерно наличие такого интервала входных сигналов, в пределах которого сигналы различимы. Для различных нейронных сетей эти интервалы различны. Большинство работающих с нейронными сетями прекрасно осведомлены об этом их свойстве, но до сих пор не предпринималось никаких попыток как-либо формализовать или унифицировать подходы к предобработке входных сигналов. В данной главе дан один из возможных формализмов этой задачи. За рамками рассмотрения осталась предобработка графической информации. Наиболее мощные и интересные способы предобработки графической информации описаны в [67, 94, 276]. При аппаратной реализации нейрокомпьютера, компонент предобработчик также следует реализовывать аппаратно, поскольку вне зависимости от источника входных данных их надо обрабатывать одинаково. К тому же большинство предобработчиков допускают простую аппаратную реализацию.
В этой главе будут описаны различные виды входных сигналов и способы их предобработки. В качестве примера будут рассмотрены сети с сигмоидными нелинейными преобразователями. Однако, описываемые способы предобработки применимы для сетей с произвольными нелинейными преобразователями. Единственным исключением является раздел «Оценка способности сети решить задачу», который применим только для сетей с нелинейными преобразователями, непрерывно зависящими от своих аргументов.
Наиболее важным в данной являются следующее.
При предобработке качественных признаков не следует вносить недостоверную информацию.
Сформулирована мера сложности нейросетевой задачи.
Выборочная оценка константы Липшица и оценка константы Липшица нейронной сети позволяют легко оценить способность нейронной сети решить поставленную задачу. Эти легко реализуемые процедуры позволяют сэкономить время и силы.
Правильно выбранная предобработка упрощает нейросетевую задачу.
Материал данной главы основан на анализе различных методов обработки данных [4, 5, 143, 158, 160, 162, 187, 228, 232 - 235, 326, 332], различных типов данных [3, 6, 20, 139, 140, 158, 177, 184, 223] и специфике нейросетевой обработки данных.
3.1. Нейрон
Нейроны, используемые в большинстве нейронных сетей, имеют структуру, приведенную на рис. 1. На рис. 1 использованы следующие обозначения:
- вектор входных сигналов нейрона;
- вектор синаптических весов нейрона;
- входной сумматор нейрона;
- функциональный преобразователь;
- выходной сигнал нейрона.
- выходной сигнал входного сумматора;
Обычно нейронные сети называют по виду функции . Хорошо известны и наиболее часто используются два вида сигмоидных сетей:
где c - параметр, называемый «характеристикой нейрона». Обе функции имеют похожие графики.
Каждому типу нейрона соответствует свой интервал приемлемых входных данных. Как правило, этот диапазон либо совпадает с диапазоном выдаваемых выходных сигналов (например для сигмоидных нейронов с функцией ), либо является объединением диапазона выдаваемых выходных сигналов и отрезка, симметричного ему относительно нуля (например, для сигмоидных нейронов с функцией ), Этот диапазон будем обозначать как
3.2. Различимость входных данных
Очевидно, что входные данные должны быть различимы. В данном разделе будут приведены соображения, исходя из которых, следует выбирать диапазон входных данных. Пусть одним из входных параметров нейронной сети является температура в градусах Кельвина. Если речь идет о температурах близких к нормальной, то входные сигналы изменяются от 250 до 300 градусов. Пусть сигнал подается прямо на нейрон (синаптический вес равен единице). Выходные сигналы нейронов с различными параметрами приведены в табл. 1.
Таблица 1
Входной |
Нейрон типа |
Нейрон типа |
|||||||
сигнал |
|||||||||
250 |
1.0 |
1.0 |
1.0 |
1.0 |
0.99960 |
0.99800 |
0.99602 |
0.99206 |
|
275 |
1.0 |
1.0 |
1.0 |
1.0 |
0.99964 |
0.99819 |
0.99638 |
0.99278 |
|
300 |
1.0 |
1.0 |
1.0 |
1.0 |
0.99967 |
0.99834 |
0.99668 |
0.99338 |
Совершенно очевидно, что нейронная сеть просто неспособна научиться надежно различать эти сигналы (если вообще способна научиться их различать!). Если использовать нейроны с входными синапсами, не равными единице, то нейронная сеть сможет отмасштабировать входные сигналы так, чтобы они стали различимы, но при этом будет задействована только часть диапазона приемлемых входных данных - все входные сигналы будут иметь один знак. Кроме того, все подаваемые сигналы будут занимать лишь малую часть этого диапазона. Например, если мы отмасштабируем температуры так, чтобы 300 соответствовала величина суммарного входного сигнала равная 1 (величина входного синапса равна 1/300), то реально подаваемые сигналы займут лишь одну шестую часть интервала [0,1] и одну двенадцатую интервала [-1,1]. Получаемые при этом при этом величины выходных сигналов нейронов приведены в табл. 2.
Таблица 2
Входной |
Нейрон типа |
Нейрон типа |
|||||||
сигнал |
|||||||||
250 (0.83) |
0.52074 |
0.60229 |
0.69636 |
0.84024 |
0.89286 |
0.62500 |
0.45455 |
0.29412 |
|
275 (0.91) |
0.52273 |
0.61183 |
0.71300 |
0.86057 |
0.90164 |
0.64706 |
0.47826 |
0.31429 |
|
300 (1.0) |
0.52498 |
0.62246 |
0.73106 |
0.88080 |
0.90909 |
0.66667 |
0.50000 |
0.33333 |
Сигналы, приведенные в табл. 2 различаются намного сильнее соответствующих сигналов из табл. 1. Таким образом, необходимо заранее позаботиться о масштабировании и сдвиге сигналов, чтобы максимально полно использовать диапазон приемлемых входных сигналов. Опыт использования нейронных сетей с входными синапсами свидетельствует о том, что в подавляющем большинстве случаев предварительное масштабирование и сдвиг входных сигналов сильно облегчает обучение нейронных сетей. Если заранее произвести операции масштабирования и сдвига входных сигналов, то величины выходных сигналов нейронов даже при отсутствии входных синапсов будут различаться еще сильнее (см. табл. 3).
Таблица 3
Входной |
Нейрон типа |
Нейрон типа |
|||||||
Сигнал |
|||||||||
250 (-1) |
0.47502 |
0.37754 |
0.26894 |
0.11920 |
-0.9091 |
-0.6667 |
-0.5000 |
-0.3333 |
|
275 (0) |
0.50000 |
0.50000 |
0.50000 |
0.50000 |
0.0000 |
0.0000 |
0.0000 |
0.0000 |
|
300 (1) |
0.52498 |
0.62246 |
0.73106 |
0.88080 |
0.9091 |
0.6667 |
0.5000 |
0.3333 |
Величину диапазона различимых входных сигналов можно определять различными способами. На практике в качестве диапазона различимых входных сигналов обычно используется диапазон приемлемых входных данных, исходя из того соображения, что если данные из этого интервала хороши для промежуточных нейронов, то они хороши и для входных.
Другой способ определения различимости входных сигналов приведен в разделе «Оценка способности сети решить задачу».
3.3. Классификация компонентов входных данных
Информация поступает к нейронной сети в виде набора ответов на некоторый список вопросов. Можно выделить три основных типа ответов (вопросов).
Бинарный признак (возможен только один из ответов - истина или ложь).
Качественный признак (принимает конечное число значений).
Число.
Ответ типа качественный признак - это ответ с конечным числом состояний. Причем нельзя ввести осмысленное расстояние между состояниями. Примером качественного признака может служить состояние больного - тяжелый, средний, легкий. Действительно, нельзя сказать, что расстояние от легкого больного до среднего больше, меньше или равно расстоянию от среднего больного до тяжелого. Все качественные признаки можно в свою очередь разбить на три класса.
Упорядоченные признаки.
Неупорядоченные признаки.
Частично упорядоченные признаки.
Упорядоченным признаком называется такой признак, для любых двух состояний которого можно сказать, что одно из них предшествует другому. Тот факт, что состояние предшествует состоянию , будем обозначать следующим образом - . Примером упорядоченного признака может служить состояние больного. Действительно, все состояния можно упорядочить по тяжести заболевания:
легкий больной < средний больной < тяжелый больной
Признак называют неупорядоченным, если никакие два состояния нельзя связать естественным в контексте задачи отношением порядка. Примером неупорядоченного признака может служить ответ на вопрос "Ваш любимый цвет?".
Признак называется частично упорядоченным, если для каждого состояния существует другое состояние, с которым оно связано отношением порядка. Примером частично упорядоченного признака является ответ на вопрос "Какой цвет Вы видите на экране монитора?", преследующий цель определение восприимчивости к интенсивностям основных цветов. Действительно, все множество из шестнадцати состояний разбивается на несколько цепочек:
Черный < Синий < Голубой < Белый;
Черный < Красный < Ярко красный < Белый;
Черный < Зеленый < Ярко зеленый < Белый;
Черный < Фиолетовый < Ярко фиолетовый < Белый
и т.д. Однако, между состояниями Синий и Красный отношения порядка нет.
Известно, что любой частично упорядоченный признак можно представить в виде комбинации нескольких упорядоченных и неупорядоченных признаков. Так, рассмотренный выше частично упорядоченный признак распадается на три упорядоченных признака: интенсивность синего, красного и зеленого цветов. Каждый из этих признаков является упорядоченным (цепочки порядка для этих признаков приведены в первых трех строчках рассмотрения примера). Каждое состояние исходного качественного признака описывается тройкой состояний полученных качественных признаков. Так, например, состояние Фиолетовый описывается в виде (Синий, Красный, Черный).
Исходя из вышесказанного, далее будет рассмотрено только кодирование упорядоченных и неупорядоченных признаков.
Впервые вопросы кодирования качественных признаков для нейронных сетей были рассмотрены в работах [76, 152].
3.4. Кодирование бинарных признаков
Бинарные признаки характеризуются наличием только двух состояний - истина и ложь. Однако даже такие простые данные могут иметь два разных смысла. Значение истина означает наличие у описываемого объекта какого-либо свойства. А ответ ложь может означать либо отсутствие этого свойства, либо наличие другого свойства. В зависимости от смысловой нагрузки значения ложь, и учитывая заданный диапазон, рекомендуемые способы кодирования бинарного признака приведены в табл. 4.
Таблица 4
Кодирование бинарного признака
Смысл значения ложь |
Величина входного сигнала |
||
Истина |
Ложь |
||
Отсутствие заданного свойства при |
|||
Отсутствие заданного свойства при |
|||
Наличие другого свойства |
3.5. Кодирование неупорядоченных качественных признаков
Таблица 5.
Кодирование неупорядоченного качественного признака
Состояние |
Вектор входных сигналов |
|
Поскольку никакие два состояния неупорядоченного признака не связаны отношением порядка, то было бы неразумным кодировать их разными величинами одного входного сигнала нейронной сети. Поэтому, для кодирования качественных признаков рекомендуется использовать столько входных сигналов, сколько состояний у этого качественного признака. Каждый входной сигнал соответствует определенному состоянию. Так если набор всех состояний рассматриваемого признака обозначить через , то рекомендуемая таблица кодировки имеет вид, приведенный в табл. 5.
3.6. Кодирование упорядоченных качественных признаков
Таблица 6.
Кодирование упорядоченного качественного признака
Состояние |
Вектор входных сигналов |
|
Упорядоченные качественные признаки, в отличие от неупорядоченных, имеют отношение порядка между состояниями. Однако кодирование их разными значениями одного входного сигнала неразумно из-за того, что расстояние между состояниями не определено, а такое кодирование эти расстояния задает явным образом. Поэтому, упорядоченные качественные признаки рекомендуется кодировать в виде стольких входных сигналов, сколько состояний у признака. Но, в отличие от неупорядоченных признаков, накапливать число сигналов с максимальным значением. Для случая, когда все состояния обозначены через , рекомендуемая таблица кодировки приведена в табл. 6.
3.7. Числовые признаки
При предобработке численных сигналов необходимо учитывать содержательное значение признака, расположение значений признака в интервале значений, точность измерения значений признака. Продемонстрируем это на примерах.
Содержательное значение признака. Если входными данными сети является угол между двумя направлениями, например, направление ветра, то ни в коем случае не следует подавать на вход сети значение угла (не важно в градусах или радианах). Такая подача приведет к необходимости "уяснения" сетью того факта, что 0 градусов и 360 градусов одно и тоже. Разумнее выглядит подача в качестве входных данных синуса и косинуса этого угла. Число входных сигналов сети увеличивается, но зато близкие значения признака кодируются близкими входными сигналами.
Точность измерения признака. Так в метеорологии используется всего восемь направлений ветра. Значит, при подаче входного сигнала сети необходимо подавать не угол, а всего лишь информацию о том, в какой из восьми секторов этот угол попадает. Но тогда имеет смысл рассматривать направление ветра не как числовой параметр, а как неупорядоченный качественный признак с восемью состояниями.
Расположение значений признака в интервале значений. Следует рассмотреть вопрос о равнозначности изменения значения признака на некоторую величину в разных частях интервала значений признака. Как правило, это связано с косвенными измерениями (вместо одной величины измеряется другая). Например, сила притяжения двух небесных тел при условии постоянства массы однозначно характеризуется расстоянием между ними. Пусть рассматриваются расстояния от 1 до 100 метров. Легко понять, что при изменении расстояния с 1 до 2 метров, сила притяжения изменится в четыре раза, а при изменении с 99 до 100 метров - в 1.02 раза. Следовательно, вместо подачи расстояния следует подавать обратный квадрат расстояния .
3.8. Простейшая предобработка числовых признаков
Как уже отмечалось в разделе «Различимость входных данных» числовые сигналы рекомендуется масштабировать и сдвигать так, чтобы весь диапазон значений попадал в диапазон приемлемых входных сигналов. Эта предобработка проста и задается следующей формулой:
, (1)
где - диапазон приемлемых входных сигналов, - диапазон значений признака , - предобработанный сигнал, который будет подан на вход сети. Предобработку входного сигнала по формуле (1) будем называть простейшей предобработкой.
3.9. Оценка способности сети решить задачу
В данном разделе рассматриваются только сети, все элементы которых непрерывно зависят от своих аргументов (см. главу «Описание нейронных сетей»). Предполагается, что все входные данные предобработаны так, что все входные сигналы сети лежат в диапазоне приемлемых входных сигналов. Будем обозначать вектора входных сигналов через , а требуемые ответы сети через . Компоненты векторов будем обозначать нижним индексом, например, компоненты входного вектора через . Будем полагать, что в каждом примере ответ является вектором чисел из диапазона приемлемых сигналов. В случае обучения сети задаче классификации требуемый ответ зависит от вида используемого интерпретатора ответа (см. главу «Оценка и Интерпретатор ответа»).
Нейронная сеть вычисляет некоторую вектор-функцию от входных сигналов. Эта функция зависит от параметров сети. Обучение сети состоит в подборе такого набора параметров сети, чтобы величина была минимальной (в идеале равна нулю). Для того чтобы нейронная сеть могла хорошо приблизить заданную таблично функцию необходимо, чтобы реализуемая сетью функция при изменении входных сигналов с на могла изменить значение с на . Очевидно, что наиболее трудным для сети должно быть приближение функции в точках, в которых при малом изменении входных сигналов происходит большое изменение значения функции. Таким образом, наибольшую сложность будет представлять приближение функции в точках, в которых достигает максимума выражение . Для аналитически заданных функций величина называется константой Липшица. Исходя из этих соображения можно дать следующее определение сложности задачи.
Сложность аппроксимации таблично заданной функции , которая в точках принимает значения , задается выборочной оценкой константы Липшица, вычисляемой по следующей формуле:
(2)
Оценка (2) является оценкой константы Липшица аппроксимируемой функции снизу.
Для того, чтобы оценить способность сети заданной конфигурации решить задачу, необходимо оценить константу Липшица сети и сравнить ее с выборочной оценкой (2). Константа Липшица сети вычисляется по следующей формуле:
(3)
В формулах (2) и (3) можно использовать произвольные нормы. Однако для нейронных сетей наиболее удобной является евклидова норма. Далее везде используется евклидова норма.
В следующем разделе описан способ вычисления оценки константы Липшица сети (3) сверху. Очевидно, что в случае сеть принципиально не способна решить задачу аппроксимации функции .
3.9.1. Оценка константы Липшица сети
Оценку константы Липшица сети будем строить в соответствии с принципом иерархического устройства сети, описанным в главе «Описание нейронных сетей». При этом потребуются следующие правила.
Для композиции функций константа Липшица оценивается как произведение констант Липшица:
. (4)
Для вектор-функции константа Липшица равна:
. (5)
3.9.2. Способ вычисления константы Липшица
Для непрерывных функций константа Липшица является максимумом производной в направлении по всем точкам и всем направлениям. При этом вектор направления имеет единичную длину: . Напомним формулу производной функции в направлении :
(6)
3.9.3. Синапс
Обозначим входной сигнал синапса через , а синаптический вес через . Тогда выходной сигнал синапса равен . Поскольку синапс является функцией одной переменной, константа Липшица равна максимуму модуля производной - модулю синаптического веса:
(7).
3.9.4. Умножитель
Обозначим входные сигналы умножителя через . Тогда выходной сигнал умножителя равен . Используя (6) получаем . Выражение является скалярным произведением векторов и, учитывая единичную длину вектора , достигает максимума, когда эти векторы сонаправлены. То есть при векторе
.
Используя это выражение, можно записать константу Липшица для умножителя:
. (8)
Если входные сигналы умножителя принадлежат интервалу , то константа Липшица для умножителя может быть записана в следующем виде:
. (9)
3.9.5. Точка ветвления
Поскольку в точке ветвления не происходит преобразования сигнала, то константа Липшица для нее равна единице.
3.9.6. Сумматор
Производная суммы по любому из слагаемых равна единице. В соответствии с (6) получаем:
, (10)
поскольку максимум суммы при ограничении на сумму квадратов достигается при одинаковых слагаемых.
3.9.7. Нелинейный Паде преобразователь
Нелинейный Паде преобразователь или Паде элемент имеет два входных сигнала и один выходной. Обозначим входные сигналы через . Используя (6) можно записать константу Липшица в следующем виде:
.
Знаменатель выражения под знаком модуля не зависит от направления, а числитель можно преобразовать так же, как и для умножителя. После преобразования получаем:
(11)
3.9.8. Нелинейный сигмоидный преобразователь
Нелинейный сигмоидный преобразователь, как и любой другой нелинейный преобразователь, имеющий один входной сигнал , имеет константу Липшица равную максимуму модуля производной:
. (12)
3.9.9. Адаптивный сумматор
Для адаптивного сумматора на входов оценка константы Липшица, получаемая через представление его в виде суперпозиции слоя синапсов и простого сумматора, вычисляется следующим образом. Используя формулу (7) для синапсов и правило (5) для вектор-функции получаем следующую оценку константы Липшица слоя синапсов:
.
Используя правило (4) для суперпозиции функций и оценку константы Липшица для простого сумматора (10) получаем:
. (13)
Однако, если оценить константу Липшица адаптивного сумматора напрямую, то, используя (6) и тот факт, что при фиксированных длинах векторов скалярное произведение достигает максимума для сонаправленных векторов получаем:
. (14)
Очевидно, что оценка (14) точнее, чем оценка (13).
3.9.10. Константа Липшица сигмоидной сети
Рассмотрим слоистую сигмоидную сеть со следующими свойствами:
Число входных сигналов - .
Число нейронов в -м слое - .
Каждый нейрон первого слоя получает все входные сигналы, а каждый нейрон любого другого слоя получает сигналы всех нейронов предыдущего слоя.
Все нейроны всех слоев имеют вид, приведенный на рис. 1 и имеют одинаковую характеристику.
Все синаптические веса ограничены по модулю единицей.
В сети слоев.
В этом случае, учитывая формулы (4), (5), (12) и (14) константу Липшица -о слоя можно оценить следующей величиной:
.
Используя формулу (4) получаем оценку константы Липшица всей сети:
.
Если используется нейроны типа , то и оценка константы Липшица сети равна:
Для нейронов типа , то и оценка константы Липшица сети равна:
Обе формулы подтверждают экспериментально установленный факт, что чем круче характеристическая функция нейрона, тем более сложные функции (функции с большей константой Липшица) может аппроксимировать сеть с такими нейронами.
3.10. Предобработка, облегчающая обучение
При обучении нейронных сетей иногда возникают ситуации, когда дальнейшее обучение нейронной сети невозможно. В этом случае необходимо проанализировать причины. Возможно несколько видов анализа. Одной из возможных причин является высокая сложность задачи, определяемая как выборочная оценка константы Липшица.
Для упрощения задачи необходимо уменьшить выборочную оценку константы Липшица. Наиболее простой способ добиться этого - увеличить расстояние между входными сигналами. Рассмотрим пару примеров - , - таких, что . Определим среди координат векторов и координату, в которой достигает минимума величина , исключив из рассмотрения совпадающие координаты. Очевидно, что эта координата является «узким местом», определяющим сложность задачи. Следовательно, для уменьшения сложности задачи требуется увеличить расстояние между векторами и , а наиболее перспективной координатой для этого является -я. Однако увеличение расстояние между и не всегда осмыслено. Дело в том, что все параметры, как правило, измеряются с конечной точностью. Поэтому, если величина меньше чем точность измерения -го параметра, значения и можно считать совпадающими. Таким образом, для изменения масштаба надо выбирать тот из входных параметров, для которого значение минимально, но превышает точность измерения этого параметра.
Таблица 7.
Кодирование параметра после разбиения на два сигнала
Значение |
Первый сигнал |
Второй сигнал |
|
Предположим, что все входные параметры предобработаны в соответствии с формулой (1). Перенумеруем примеры обучающего множества так, чтобы были верны следующие неравенства: , где - число примеров в обучающем множестве. При этом, возможно, придется исключить ряд пар параметр-ответ с совпадающими значениями параметра. Если в какой-либо из таких пар значения ответов различаются, то это снижает возможную полезность данной процедуры.
Наиболее простой путь - разбить диапазон -го параметра на два. Зададимся точкой . Будем кодировать -й параметр двумя входными сигналами в соответствии с табл. 7. При таком кодировании константа Липшица, очевидно, уменьшится. Вопрос о выборе точки может решаться по-разному. Простейший путь - положить . Более сложный, но часто более эффективный - подбор исходя из требования минимальности константы Липшица.
Приведенный выше способ уменьшения константы Липшица не единственный. В следующем разделе рассмотрен ряд способов предобработки, решающих ту же задачу.
3.11. Другие способы предобработки числовых признаков
В данном разделе будет рассмотрено три вида предобработки числовых признаков - модулярный, позиционный и функциональный. Основная идея этих методов предобработки состоит в том, чтобы сделать значимыми малые отличия больших величин. Действительно, пусть для ответа существенно изменение величины признака на единицу при значении признака порядка миллиона. Очевидно, что простейшая предобработка (1) сделает отличие в единицу неразличимым для нейронной сети при абсолютных значениях порядка миллиона.
Подобные документы
Определение перспектив, направлений и тенденций развития вычислительных систем как совокупности техники и программных средств обработки информации. Развитие специализации вычислительных систем и проблема сфер применения. Тенденции развития информатики.
реферат [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