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


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


Александр Кириченко

© Александр Кириченко, 2020


Введение

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

Искусственные нейронные сети  один из разделов науки «Искусственный интеллект». К этой науке приковано пристальное внимание с 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» и др.

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

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

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

Дальше