12+
Конструирование искусственных нейронных ансамблей (ИНА)

Бесплатный фрагмент - Конструирование искусственных нейронных ансамблей (ИНА)

Объем: 186 бумажных стр.

Формат: epub, fb2, pdfRead, mobi

Подробнее

Введение

Зачем нужны искусственные нейросети?

Искусственные нейронные сети — один из разделов науки «Искусственный интеллект». К этой науке приковано пристальное внимание с 1980 года, когда Япония объявила о создании вычислительных систем 5 поколения. Предполагалось, что создаваемые вычислительные системы кроме обычных компьютеров будут содержать машины логического вывода, базу знаний, систему общения на естественном языке. Иными словами — что создаваемые вычислительные системы будут оснащаться интеллектуальными блоками — аналогами человеческого интеллекта, человеческой интуиции. Эти блоки необходимы для распознавания образов, чтения рукописных текстов, подготовки аналитических прогнозов, перевода с одного языка на другой и т. п. Именно для таких задач обычно трудно составить явный алгоритм, без которого не могут работать электронные вычислительные машины.

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

Всё, что связано с использованием нейронных сетей, нейросетевых моделей получило название «нейросетевых технологий» («нейрокомпьютинг»). Важное свойство нейросетевых моделей — они не требуют программирования, а предусматривают работу по обучению нейронной сети на специально подобранных примерах. Во время обучения формируются основные отношения между входными и выходными параметрами, и оформляются в незримые таблицы (образы), которые впоследствии используются при решении задач на сети и являются своеобразными алгоритмами решения этих задач.

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

Интеллект связан со знаниями: приобретением знаний, хранением знаний, поиском, извлечением и преобразованием знаний.

Последовательность приобретения новых знаний в теории познания философами определена в виде таких операций, как: созерцание — накопление — кластеризация — классификация — узнавание — предсказание — прогнозирование.

Для хранения знаний разработаны специальные средства — системы управления базами знаний (СУБЗ). В отличие от систем управления базами данных (СУБД), базы знаний содержат специальные добавки, обеспечивающие непротиворечивость хранящихся знаний (проверка, устранение).

Знания имеют смысл, раскрывают его. Смысл и знания — динамичны. Для их преобразования используются такие интеллектуальные операции, как рассуждения, умозаключения, планирование, доказательство.

Нейросети способны обучаться на примерах. Умение обучаться на примерах — это интеллектуальная задача.

Распознавание — это ещё одна интеллектуальная задача. У неё есть несколько разновидностей — узнавание, предсказание, прогнозирование, идентификация.

Кластеризация — разделение объектов на группы похожих. Это тоже интеллектуальная задача.

В настоящее время усиливается интерес к использованию искусственных нейронных сетей при получении новых знаний — ещё одной интеллектуальной задачи.

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

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

Реализация мыслительной деятельности происходит с помощью нейронных конструкций. Для создания и исследования нейросетевых конструкций создаются специальные программные средства.

С каждым годом расширяются наши знания об интеллекте и возможностях нейронных сетей, появляются новые программные реализации нейросетей — сети RBF, Хопфилда, Хэмминга, свёрточные, рекуррентные, рекурсивные.

Изменяются методы использования нейросетей: глубокое обучение, свёртка, преобразование накапливаемых при обучении нейросетей знаний в правила продукций.

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

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

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

Получается, что нейросетевые технологии связаны с использованием знаний и процессов высокой сложности. Очень высокой.

Облегчить преодоление сложностей освоения нейросетевых технологий можно за счёт

— концентрации внимания на изучении нейропакета, в качестве которого предлагается пакет MemBrain [1],

— реализации мыслительной деятельности с помощью нейронных конструкций [2].

— ознакомления с основами теории нейронных сетей [3],

— изучения алгоритмов и приёмов нейроконструирования [4, данная книга].

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

С 2012 года в России началось активное проведение ИТ-исследований в сфере разработки искусственных когнитивных систем, разработана «Стратегическая программа создания Центра прорывных исследований» в области информационных технологий «Искусственные когнитивные системы». Повышение интереса к тематике искусственного интеллекта требует появления достаточного количества публикаций о структуре и возможностях нейросистем, о типах искусственных нейросетей и открываемых ими возможностях автоматизации мыслительных процессов. Для удовлетворения возникающих потребностей необходимы с одной стороны — новые информационные материалы, и с другой стороны — программные средства, которые позволяют без особых усилий и затрат проверить новую информацию на практике, создавать свои нейросетевые системы разных типов, модели нейросетевых устройств и даже узлы нейрокомпьютеров на своём ноутбуке (так называемые «нейропакеты» и «нейроконструкторы»).

Необходимую информацию даёт эта книга, а доступные программные средства можно получить из Интернет [5, 6]. Большинство примеров в книге выполнено на freeware пакете MemBrain [7].

Основными зарубежными проектами создания подобных ИКС являются:

— европейские проекты BBP/HBP,

— американская инициатива BRAIN,

— проект IBM Deep QA«Watson»,

— проект «Siri» корпорации Apple,

— проект нейросетевого искусственного интеллекта и использующих его роботов компании Google,

— японские проекты JST,

— канадский проект «Spaun» и др.

Нейропакеты и нейроконструкторы

При изучении нейросетевых технологий используются различные программные инструменты. Обычно такими инструментами являются нейропакеты, реже — нейроконструкторы.

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

Нейроконструктор кроме перечисленных задач в отличие от нейропакета предназначен ещё и для создания, исследования, моделирования различных нейросетей — от элементарных до необыкновенно сложных, в пределе — до создания и моделирования различных нейрокомпьютеров. Нейроконструктор является инструментом нейросетевого программирования.

Программный комплекс MemBrain удачно сочетает в себе свойства как нейропакета, так и нейроконструктора. Этот программный комплекс разработан Thomas Jetter в виде свободнораспространяемого (freeware) и размещён по адресу http://www.membrain-nn.de/.

Описание программного комплекса, как нейропакета приведено в монографии [Универсальный нейропакет] и охватывает различные стороны процесса создания нейросетевой модели, например, определяет 5 функциональных узлов для создания нейросети требуемого типа, загрузки в эту нейросеть исходных данных, обучения нейросети, и промышленного решения задач на обученной нейросети:

1. Нейроны и действия с ними (Neurons in MemBrain):

— Группировка нейронов, их выравнивание (Aligning Neurons),

— Экстренный выбор нейронов (Neuron Extra Selection),

— Быстрая Активация (Quick Activation),

— Автоматическое присваивание имён нейронам (Neuron Auto Naming))

— Основные виды нейронов:

— перемещаемые нейроны (Moving Neurons)

— нейроны задержки (Adding Delay Neurons),

— дифференциальные нейроны (Add Differential Neuron),

— интегрирующие нейроны (Adding Integrator Neurons),

— нейроны контекста

— функции активации нейронов (Activation Functions)

— логистический закон (LOGISTIC)

— линейный закон (IDENTICAL)

— линейный в интервале от 0 до 1 (IDENTICAL 0 TO 1)

— гипертангенс (TAN HYP)

— бинарный, или единичная функция Хэвисайда (BINARY)

— минимальное Евклидово расстояние (MINIMUM EUCLIDEAN DISTANCE)

2. Соединение нейронов в нейросети (Полная связь, Случайная связь, связь «один к одному» (1:1), связь слоёв нейросети на основе Матрицы).

3. Моделирование связей и особенности их эксплуатации.

В MemBrain cвязи между нейронами выполняются с помощью ссылок. Ссылки имеют два основных свойства, которые определяют их функциональность (вес и логическую длину).

Вес ссылки определяет, какая величина сигнала передается на вход целевого (target) нейрона. Для этого сигнал умножается на вес ссылки. Это значение появится на входе целевого нейрона на другом конце связи. Вес ссылки не ограничен определенным диапазоном и может быть даже отрицательным.

Логическая длина характеризует продолжительность прохождения ссылки по каналу (от одного нейрона к другому). Ссылки визуализируются в MemBrain с помощью «пиков или шипов активации» (Activation Spikes), которые появляются во время каждого «шага моделирования» (<Think Step>) на схеме нейросети при активированной опции <Вид> <Показать пики активации в ссылках>.

Логическая длина ссылки определяет, сколько шагов вычисления (Think Steps) требуется, чтобы распространить сигнал от входного конца ссылки к ее выходному концу (т.е. между двумя соседними нейронами). Логическую длину (Length) можно определить в диалоге «Select net characteristics to be exported» из основного меню пакета Neural Networks -> Net Analysis -> Exporting a Net.

Для примера: канал с (логической) длиной 1 (минимально допустимое значение) распространяет сигналы так, что задержка не возникает.

4. Основные характеристики нейронов — диапазоны активаций нейронов, которые обычно имеют величину, отличную от -1 до 1 или от 0 до 1, обычно устанавливаются при настройке функций активации нейронов. При нормализации нейронов они могут быть изменены (MemBrain_Help. pdf -> Normalize I/O Data).

5. Управление данными в MemBrain (Managing I/O Data)

Для управления данными в MemBrain служит Редактор уроков или разделов (The Lesson Editor).

С Редактором Разделов можно выполнить следующие функции:

— Добавить-Удалить раздел;

— Выбрать активный раздел/образец;

— Редактировать имя раздела/образца;

— Добавить комментарий;

— Отредактировать данные;

— Синхронизировать раздел с сетью;

— Исполнить текущий/следующий входной образец или весь раздел;

— Сохранить раздел в виде CSV файла;

— Загрузить раздел из CSV файла;

— Разделить текущий раздел;

— И др.


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

В MemBrain имеются такие разделы, которые могут рассматриваться как дополнительные:

1. Работа с нейронными сетями (Neural Networks):

2. Экспорт нейросети (Exporting a Net)

3. Объединение обученных нейросетей в единую конструкцию

4. Выбор наилучшей нейросети

5. Автоматизация управления программным пакетом

6. Генерация C-кода текущей нейронной сети

7. Организация динамической библиотеки

8. Соединение различных нейросетей с использованием TCP

9. Управление произвольно большим количеством нейронных сетей

В нейроконструкторе NeuroPro в отличие от MemBrain добавлены такие разделы, как упрощение нейронной сети и вербализация нейронной сети, с помощью которых удаётся преобразовать полученные при обучении нейронной сети знания в правила продукции.

Работа с нейронными сетями (Neural Networks) предусматривает выполнение таких операций:

— Провести «Анализ сети» (Net Analysis)

— Проверить Архитектурную целостность (Architectural Integrity)

— Провести послойный Анализ (Layer Analysis)

— Отобразить информацию о слоях (Displaying Layer Information)

— Вычислить активацию и выходные сигналы нейронной сети (Calculating the Output)

— Обновить нейросеть (Resetting the Net)

— Экспортировать нейросеть (Exporting a Net)

— Провести анализ структуры экспортируемого CSV файла (Net CSV File)

— Отторгнуть обученную нейросеть от нейропакета

— Объединить обученные нейросети (Merging Nets)


Экспорт нейросети (Exporting a Net) может быть выполнен по-разному. В MemBrain есть возможность экспортировать сетевой список характеристик текущей нейронной сети через файл csv (содержащий значения, разделенные запятыми). Этот файл можно использовать для импорта нейронной сети, созданной и, возможно, обученной с помощью MemBrain, в другое прикладное программное обеспечение. При этом можно выбрать уровень детализации, который вы хотите включить в файл экспорта.

Чтобы экспортировать сеть, выберите <File> <Export …>. Появится следующий диалог.

Выбор экспортируемых характеристик

Этот диалог позволяет выбрать свойства нейронов и ссылок, которые вы хотите экспортировать в файл. Когда вы сделали свой выбор, нажмите ОК — будет предложено выбрать местоположение и имя файла для сохранения экспортированного файла.


Нейроконструкторы предусматривают выполнение весьма специфических операций. Поэтому в нейропакетах приходится производить установку настроек пакета (Getting Started ›› Short Beginner’s Tutorial ››), позволящую:

— Настроить экран

— Разрешить:

— Использование сетки при работе с графическими объектами

— Выбор объектов

— Удаление объектов

— Копировать / Вставить Активации

— Симуляция запуска / остановки (Auto Think)

Некоторые нейроконструкторы имеют оперативную память нейросетей «Neural Net Stock», которая во время работы позволяет управлять произвольно большим количеством нейронных сетей. Отредактированная нейронная сеть может быть отправлена в хранилище (Stock) или извлечена из него в любой момент во время работы.

Наиболее мощной функцией «Neural Net Stock» (системы управления произвольно большим количеством нейронных сетей) является возможность автоматически использовать наиболее эффективную нейронную сеть из запаса нейронных сетей MemBrain: всякий раз, когда учитель обнаруживает новый минимум сетевой ошибки, он обновляет копию нейронной сети в хранилище, представляя её как более эффективную. Такая функция Neural Net Stok называется акцией и производится под воздействием диспетчера акций (Neural Net Stok Manager). Список сетей в диспетчере всегда представлен в хронологическом порядке, т.е. новая сеть всегда находится в верхней части списка. Neural Net Stok Manager позволяет выполнить следующие функции:

— Добавить текущую сеть

— Заменить текущую сеть (загрузка нетто)

— Очистить контент (запас нейросетей)

— Загрузить контент или его часть из файла

— Сохранить контент в файл.

При объединении обученных нейросетей (Merging Nets, создание единой нейросети) можно объединить различные обученные подсети в одну большую сеть, например в следующем порядке:

a. Открывается первая сеть в MemBrain

b. Добавляется вторая сеть к первой, используя команду меню <Файл> <Добавить сеть в текущую сеть …>

c. Переназначаются уже обученные выходные ссылки входных нейронов нижней сети на выходные нейроны верхней сети (Extra Selection (Выберите) выходные нейроны верхней сети. Выберите входные нейроны нижней сети. Затем выберите <Extras> <Re-назначить выходные ссылки из Selection To Extra Selection>.

d. Удаляются старые входные нейроны нижней сети (которые больше не связаны) и изменяется тип старых выходных нейронов верхней сети на <HIDDEN> — произошло объединение двух сетей в одну единую сеть.

Для автоматизации управления нейроконструктором в MemBrain используется язык сценариев (Scripting).

Для ознакомления с возможностями по управлению пакетом с помощью сценариев, в описании пакета MemBrain предусматриваются следующее файлы сценариев:

— Папка «Simple’: ScriptExample.as

— Папка «NetEditor»: Использование NetEditorExample.as

— Папка «TrainValidate»: TrainValidate.as

— Папка «Дополнительно»: MackeyGlass.as

— Папка «SecondsTimer’: UsingSecondsTimerExample.as

— Папка «VoiceRecognition»: VoiceRecognition.as

Кроме того, в описании пакета подробно освещаются следующие вопросы:

— Выполнение сценариев вручную (Executing Scripts Manually)

— Прерывание или приостановка выполнения скрипта (Aborting or Suspending Script Execution)

— Обработка нейронных сетей в скриптах (Handling Neural Nets)

— Компиляция и выполнение сценария командной строки (Command Line Script Execution)

— Синтаксис скрипта (Script Syntax)

— Справочник по командам (Command Reference)

Каждая обученная сеть может быть отторгнута от родительской нейросети процедурой генерации C-кода сформированной нейронной сети.

Чтобы сгенерировать исходный код C из текущей загруженной сети, нужно выполнить команду <Code-Generation> <C-Code> <Generate Code>.

Пакетом будет доложено об успешной генерации кода. Сгенерированный код состоит из следующих двух файлов.

NeuralNetDef. h

NeuralNetDef. c

которые генерируются в каталоге, настроенном как часть конфигурации сгенерированного C-кода (C-Code Generation Configuration).

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

Библиотека генерации C-кода (MemBrain C-Code Generation Library), состоит из следующих файлов, которые находятся в подкаталоге C_CODE установочного каталога MemBrain:

NN_Types. h

NeuralNet. c

NeuralNet. h

Neuron. c

Neuron. h

NeuralLink. c

NeuralLink. h

Random. c

Random. h

Отечественный нейроконструктор «NeuroPro» умеет строить многослойные нейронные сети с сигмоидной функцией активации. В отличие от многих других нейропрограмм, NeuroPro умеет показывать структуру используемой нейросети в текстовом виде. Это набор формул, последовательно описывающих все преобразования, происходящие с данными, поступающими на вход сети до самого выхода из сети. Формулы включают в себя каждый слой, каждый нейрон, каждую связь, с уже подставленными (обученными) значениями весов каждой связи. По сути, набор этих формул можно рассматривать как исходный код программы на некоем абстрактном языке программирования. Такое описание позволяет:

• Сократить число входных сигналов — удалить наименее значимые входные сигналы;

• Сократить число синапсов — удалить наименее значимые синапсы сети;

• Сократить число неоднородных входов — удалить наименее значимые неоднородные входы нейронов сети,

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

• Бинаризовать синапсы сети — привести значения весов синапсов и неоднородных входов нейронов к значениям -1 и 1,

• Провести вербализацию сети — генерировать вербальное описание нейронной сети,

• Вычислить значимость входов — провести подсчет и отображение значимости входных сигналов нейронной сети,

• Добавить случайные поправки к весам синапсов сети (Возмущение весов синапсов);

и по существу реализует скриптовую программу.

Пакет MemBrain имеет динамическую библиотеку (The MemBrain DLL).

С помощью MemBrain DLL можно использовать нейронные сети, которые были разработаны с MemBrain и помещены в ваши собственные приложения, независимо от того, какой язык программирования вы используете.

Возможности DLL:

• Загрузка произвольного числа нейронных сетей из файлов MemBrain.

• Присвоение значений входным нейронам сетей

• Выполнение шагов моделирования сетей

• Считывание результатов с выходных нейронов сетей

• Все функции для обучения сетей, создания, загрузки, импорта и экспорта наборов данных

• Все функциональные возможности для создания и редактирования нейронных сетей.

Это означает, что можно легко включить нейронные сети из MemBrain в производственную систему без необходимости параллельной работы MemBrain и без необходимости работать с интерфейсом TCP/ IP или языком сценариев MemBrain.

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

MemBrain DLL входит в установочный пакет MemBrain, соответствующие файлы будут автоматически скопированы в отдельную подпапку во время установки.

В области загрузки домашней страницы MemBrain находится пример того, как использовать DLL из Microsoft Excel VBA (Visual Basic для приложений).

Также доступен бесплатно объектно-ориентированный набор классов-оболочек C# (см. Раздел загрузки домашней страницы MemBrain).

Библиотека MemBrain DLL также доступна из языка программирования C/C++. Подробная информация о DLL включена в соответствующий заголовочный файл «MemBrain_inc. h».


Соединения с другими нейросетями через TCP (TCP Weblink) допускают использование общественных и внешних нейронов (Public and Extern Neurons) на основе специального состава операций (Operation) и специфической логики TCP соединения (TCP Connection Logic).

Для реализации TCP Weblink в MemBrain расширен состав используемых нейронов на общедоступные (Make Neurons Public), внешние (Make Neurons Extern), общественные и частные (Make Neurons Private), используются также управление активными подключениями (Manage Active Connections), новые нейросетевые конструкции и алгоритмы.


Дополнительные разделы имеют различную важность. Наиболее значимыми являются: Работа с нейронными сетями (Neural Networks); Экспорт нейросети (Exporting a Net); Управление произвольно большим количеством нейронных сетей «Neural Net Stock»; Объединение обученных нейросетей (Merging Nets, создание единой нейросети). Особое значение имеют для нейроконструирования такие разделы, как наличие языка сценариев (Scripting), используемого для автоматизации управления пакетом; генератора C-кода текущей нейронной сети; динамической библиотеки пакета MemBrain (The MemBrain DLL).

Возможно, что в будущем возрастёт роль соединения с другими нейросетями через TCP (TCP Weblink) так как пакет создаётся для промышленного использования.

Приведенный состав дополнительных разделов нейроконструктора MеmBrain не является ни полным, ни достаточным. Он просто показывает, какие возможности нейропакетов недостаточно освещаются в настоящее время в литературе. Нейроконструирование пока направлено на разработку и исследование отдельных элементарных нейросетей. Тогда как особый интерес представляет создание нейросетевого конструкторского базиса (нейросетевых ансамблей или ганглий, которые могут быть реализованы на обычном фон-Неймановском компьютере), а так же — моделирование функциональных узлов нейросетевых конструкций и нейрокомпьютеров различной специализации построением их в своём ноутбуке.

Ведущие специалисты по нейросетевым технологиям, например, Т. Кохонен [8,стр.122] считают, что «В биологических нейронных сетях не используются принципы логики или цифровые схемы»; «Ни нейроны, ни синапсы не являются бистабильными запоминающими элементами»; «В нейронных вычислениях нет машинных команд или управляющих кодов».

А может быть это не так? Ведь ещё Гальвани обратил внимание на то, что биологические Нейронные Системы работают на электричестве!

Как было показано в [3], логические схемы Штрих Шеффера можно реализовать в виде нейросетевого элемента. А в начале 60-х г.г. прошлого столетия в Японии на элементах Штрих Шеффера (и только на них) была построена целиком вся ЭВМ. Вся ЭВМ состояла только из логических элементов Штрих Шеффера! А эти элементы в нейрологическом исполнении легко реализуются на современном ноутбуке!

Чтобы никто не думал, что в биологических нейросетях не бывает ни цифровых схем, ни управляющих кодов, давайте продемонстрируем работу какого-нибудь цифрового элемента на нейронных сетях. Например, на тех же элементах Штрих Шеффера! Или на Стрелке Пирса! Или на элементах И, ИЛИ, НЕ!

Искусственные нейронные ансамбли (ИНА)

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

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

Понятие ИНА позволяет расширить ограниченный набор вычислительных возможностей одиночного ИН. Переход от одиночного ИН к ИНА можно рассматривать как второй уровень нейронного моделирования.

Кроме вычислительных ИНА, копирующих элементы ЭВМ, нейронные сети могут реализовать элементы, реализующие функции нейроматематики: элементы для выполнения математических операций, например таких, как

— сложение, вычитание, умножение, деление различных чисел,

— преобразования чисел из одной системы счисления в другую,

— перекодировки текста,

— матричных операций,

— генерации случайных чисел,

— построения гистограмм.

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

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

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

Эта цель реализуется путем создания и использования нейронных конфигураций, которые имитируют некоторые важные свойства, присущие естественному интеллекту, такие как

— обобщение,

— обучение,

— распознавание,

— принятие решений

— и др.

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

В виде искусственных нейронных ансамблей могут моделироваться нейросетевые логические функции И, ИЛИ, НЕ; соединения нейросетевых логических элементов для совместной работы (2И-НЕ, 2ИЛИ-НЕ и др.); функциональные узлы нейрокомпьютеров, такие, как преобразователи кодов, триггеры, сумматоры, и другие элементы цифровой схемотехники [9], разрабатываемые интеллектуальные модели.

Нейросетевые логические функции

Нейросетевая логическая функция НЕ

Для создания логической функции НЕ воспользуемся простой трёхслойной нейронной сетью:

Трёхслойная нейронная сеть

Сеть состоит из одного входного нейрона (Identical), одного выходного нейрона (Logistic) и образующих скрытый слой двух нейронов (Logistic):

Таблица характеристик нейронов

Характеристики нейросети:

Результат нейросетевого анализа

Сохраняем сеть в файле «Логический элемент НЕ. mbn» [10].

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

Обучающая выборка задаётся файлом «НЕ IN-Out. csv» [10] :

Обучающая выборка данных

Загружаем через «Lesson Editor -> Raw CSV Files -> Import Current Lesson (Raw CSV)…» обучающую выборку из файла «НЕ IN-Out. csv»:

Нажимаем Names from Net. Получим:

Предупреждение

Нажимаем Да. Обучающая выборка загружена:

Первый пример выведен в Lesson Editor

Для контроля выводим на экран файл НЕ-In-Out. csv [10]:

Обучающая выборка представлена в формате MemBrain

Редактор уроков сообщает, что загружено 7 примеров. Согласовываем загруженный файл с нейросетью (нажимаем Names from Net). Переходим к обучению нейросети.

Настраиваем обучающий модуль нейросети:

Выбираем в главном меню Teach -> Teacher Manager -> Edit :

Руководитель обучения (учитель)

Выбираем алгоритм обучения: RPROP. Настраиваем учителя нейронных сетей:

Учитель нейронной сети

Проводим обучение (Start Teacher)

Предложение рандомизировать нейросеть

Нажимаем Да:

Обучение выполнено успешно

Net Error Viewer после нескольких эпох фиксирует ошибку нейросети 4,2253e -58:

Просмотр ошибок нейросети при обучении

После обучения нейросеть изменяется:

Обученная нейросеть

Проверяем работу обученного логического элемента — загружаем экзаменационный файл (НЕ экзамен. csv) [10]:

Редактор уроков

Из экзаменационного файла загружено 9 примеров.

Смотрим результат проверки в Pattern Error Viewer:

Просмотрщик ошибок

Рисунок повторяет последовательность заданий экзаменационного файла. Для проверки графики текстом нажимаем «Export Validation 1.csv»:

Экспертная проверка

Нейросеть обучена.

Блокируем переобучение. Для этого выделяем все обученные элементы

Выделены прошедшие обучение элементы

Для выделенных элементов открываем Propertiеs и устанавливаем метку в «Lock Act. Тhres. for Teacher»:

Редактор свойств объекта

Проверяем наличие метки у всех нейронов после снятия нейросети с выделения.

Сохраняем новую обученную нейросеть в качестве искусственного нейронного ансамбля (ИНА) в файле «НЕ. mbn» (создаём файл в главном меню: File -> Save As) [10].

Папка с нейрологическими элементами

Проверяем работу полученного нейрологического элемента (НЕ).

Перезагружаем пакет MemBrain.

Загружаем нейрологический элемент (File -> Open) из файла «НЕ. mbn»:

Нейрологический элемент загружен в нейропакет

Загружаем новый экзаменационный файл «new examen. csv» [10].

Экзаменацилнный файл

Настраиваем Recоrd Lesson на вывод всего урока в файл №2:

Настройка Error Editor на запись урока при выполнении

Выполняем урок (Think on Lesson) с выводом результата в новый урок 2:

Предупреждение о количестве выводимых колонок

Распечатываем файл «examen 2.csv»

Результат проверки Искусственного Нейронного Ансамбля

Нейрологический элемент 2И.

Создаем «необученный Логический элемент 2И. mbn», а в дальнейшем загружаем его при необходимости через File -> Open -> «необученный Логический элемент 2И. mbn» [10]:

Логический элемент 2И

Характеристики созданной нейросети:

Результат анализа нейросети

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

Обучающая выборка задаётся файлом «2И IN-Out. csv» [10]:

Обучающая выборка для элемента 2И

Загружаем через «Lesson Editor -> Raw CSV Files -> Import Current Lesson (Raw CSV)…» обучающую выборку из файла «2И IN-Out. csv»:

Фрагмент Lesson Editor для контроля выполненных действий

Обучающая выборка загружена.

Редактор уроков сообщает, что загружено 8 примеров. Синхронизируем: Names from Net.

Переходим к обучению нейросети.

Настраиваем обучающий модуль нейросети:

Выбираем в главном меню Teach -> Teacher Manager -> Edit -> RPROP:

Руководитель обучения (учитель)

Настраиваем учителя нейронных сетей:

Настройка учителя

Проводим обучение (Start Teacher):

Просмотр ошибок нейросети при обучении

После обучения ошибка нейросети останавливается на 0,21547.

Проверяем работу обученного логического элемента

Загружаем файл «2И проверка ИНА. csv» в урок 2. Исполняем Think on Lesson. В Pattern Error Viewer получаем:

Результат обучения

— загружаем экзаменационный файл (2И экзамен. csv):


Включаем запись результата в файл №3.

запись результата в файл №3

Нажимаем Think on Lesson. Сохраняем файл №3.

Сравниваем содержимое 3 файла с файлом 2И экзамен. csv. Убеждаемся, что элемент 2И работает: на выходе появляется 1 только если единицы есть на обоих входах.

Превращаем нейросеть в искусственный нейронный ансамбль.

Выделяем 3, 4 и 5 нейроны и с помощью Properties запрещаем коррекцию весов нейронов при обучении.

Запрет коррекции весов после обучения

Сохраняем обученный искусственный нейрологический ансамбль в файле «2И.mbn» [10].


Проверяем работу полученного нейрологического элемента 2И.

Перезагружаем пакет MemBrain.

Загружаем ИНА (File -> Open) из файла «2И. mbn»:

Эагружен проверяемый ИНА 2И

С помощью Редактора Уроков (Lesson Editor) загружаем новый экзаменационный файл «2И экзамен_. csv»:

Новый экзаменационный файл

Исполняем его с помощью Think on Lesson и результат выводим в файл «2И экзамен экспорт в 3.csv». Распечатываем полученный в Record Lesson файл.

Отмечаем, что результат совпал с заданиями нового экзаменационного файла.

Нейросетевой логический элемент 2ИЛИ

Для создания нейросетевого логического элемента 2ИЛИ загружаем необученный логический элемент 2И. mbn через File -> Open -> «необученный логический элемент 2И. mbn»

Начальный элемент для создания 2ИЛИ

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

Обучающая выборка задаётся файлом «2ИЛИ IN-Out. csv» [10]:

Обучающая выборка данных для 2ИЛИ

Загружаем через «Lesson Editor -> Raw CSV Files -> Import Current Lesson (Raw CSV)…» обучающую выборку из файла «2ИЛИ IN-Out. csv»:

Обучающая выборка загружена:

Бесплатный фрагмент закончился.

Купите книгу, чтобы продолжить чтение.