История искусственных нейронных сетей
Искусственные нейронные сети — один из разделов науки Искусственный интеллект. К этой науке приковано пристальное внимание с 1980 года, когда Япония объявила о создании вычислительных систем 5 поколения. Предполагалось, что создаваемые вычислительные системы кроме обычных компьютеров будут содержать машины логического вывода (решатель, планировщик или логический блок), базу знаний, систему общения.
В основе всех существующих компьютеров с 1940-х гг. лежала архитектура с разделенным процессингом и памятью. Ее принципиальным ограничением являлась неспособность к самостоятельному ассоциированию и синтезу нового знания.
Сегодня на рынке представлены сотни нейральных симуляторов самого разного уровня исполнения и возможностей. В сети представлено множество их компаративных обзоров. Большинство из них поддерживает лишь ограниченное число возможных для построения стандартных архитектур классических нейросетей и методов при очень небольшом числе нейронов, которые можно включить в сеть.
В начале 2000 годов начался переход к новой архитектурной парадигме — ассоциативным искусственным когнитивным системам, способным к самообучению и синтезу нового знания путем ассоциативной рекомбинации полученной информации.
Под «искусственными когнитивными системами» понимаются технические системы, способные к
· познанию, распознаванию образов и самостоятельному усвоению новых знаний из различных источников,
· продолжительному обучению, пониманию контекстуального значения и субъективной оценке получаемой информации,
· синтезу нового знания,
· мышлению и поведению для успешного решения существующих проблем в условиях реального мира.
Основными зарубежными проектами создания подобных ИКС являются
· европейские проекты BBP/HBP,
· американская инициатива BRAIN,
· проект IBM DeepQA «Watson»,
· проект «Siri» корпорации Apple,
· проект нейросетевого искусственного интеллекта и использующих его роботов компании Google,
· японские проекты JST,
· канадский проект «Spaun» и др.
С 2012 года в России началось активное проведение ИТ-исследований в сфере разработки искусственных когнитивных систем, разработана Стратегическая программа создания Центра прорывных исследований в области информационных технологий «Искусственные когнитивные системы».
Повышение интереса к тематике искусственного интеллекта требует появления достаточного количества публикаций о структуре и возможностях нейросистем, о типах искусственных нейросетей и открываемых ими возможностях автоматизации мыслительных процессов. Для удовлетворения возникающих потребностей необходимы с одной стороны — новые информационные материалы, и с другой стороны — программные средства, которые позволяют без особых затрат проверить новую информацию на практике, создавать свои нейросетевые системы разных типов, модели нейросетевых устройств и даже узлов нейрокомпьютеров на своём ноутбуке. Необходимую информацию даёт эта книга, а доступные программные средства можно получить из Интернет [3]. Большинство примеров в книге выполнено на freeware пакете MemBrain.
Искусственные нейросети являются электронными моделями нейронной структуры мозга.
Продолжительный период эволюции придал мозгу человека много качеств, отсутствующих в современных компьютерах с архитектурой фон Неймана. К ним относятся:
· способность к обучению и обобщению
· ассоциативность и адаптивность
· толерантность к ошибкам
· параллельность работы
Множество проблем, не поддающиеся решению традиционными компьютерами, могут быть эффективно решены с помощью нейросетей.
Достижения в области нейрофизиологии дают начальное понимание механизма естественного мышления, в котором хранение информации происходит в виде сложных образов. Процессы хранения информации в виде образов, использования образов при решении поставленной проблемы определяют новую область в обработке данных, которая, не используя традиционного программирования, обеспечивает создание нейронных сетей и их обучение. В лексиконе разработчиков и пользователей нейросетей присутствуют слова, отличные от традиционной обработки данных, в частности, «вести себя», «реагировать», «самоорганизовывать», «обучать», «обобщать» и «забывать».
Изучение человеческого мозга началось очень давно.
В 1791 году итальянский врач, анатом и физиолог, один из основателей электрофизиологии Луиджи Гальвани (1737–1798) издал «Трактат об электрических силах при мышечном движении», основанный на его выводах о наличии в живых организмах гальванического электричества [1].
О Луиджи Гальвани известно:
Дата рождения: 9 сентября 1737
Дата смерти: 4 декабря 1798 (61 год)
Место рождения: Италия, Болонья, Папская область
Место работы: Болонский университет
В 1759 г. он окончил Болонский университет
В 1763 году синьор Гальвани становится профессором.
В 1791 г. — Гальвани заметил сокращение мышц препарированной лягушки при прикосновении нервных окончаний к металлическим стержням (медному и цинковому). С этим было связано начало активного изучения нервной системы живых организмов.
С появлением современной электроники начались попытки аппаратного моделирования нейрофизиологических процессов вплоть до самого сложного — мышления. Самым значительным событием стало появление электронных вычислительных машин.
Первым цифровым вычислительным устройством, а также первой электронной вычислительной машиной стал компьютер ABC (Atanasoff and Berry Computer) [2]. Задуманный в 1939 году, компьютер создавался в целях решения систем линейных уравнений. В 1942 году он был успешно собран и протестирован. Дальнейшая разработка была приостановлена из-за того, что Атанасов покинул Университет штата Айова, будучи призванным на военную службу в связи со вступлением США во Вторую мировую войну.
Для ABC были характерны использование электронных ламп, двоичной системы счисления, наличие триггерной памяти и набираемой на коммутационной доске компьютерной программы.
Работа Джона Винсента Атанасова и Клиффорда Берри над вычислительной машиной долгое время не была широко известна, пока в 1960-х годах она не всплыла в ходе конфликта по поводу того, кто являлся первым изобретателем электронного компьютера. Первоначально считалось, что первым компьютером являлся ENIAC, однако в 1973 году Федеральный районный суд США постановил отозвать патент ENIAC и заключил, что ABC является первым «компьютером», изобретателем которого являлся John Vincent Atanasoff, американский физик, математик и инженер-электрик болгарского происхождения:
В мае 1930 года Атанасов защитил докторскую диссертацию в Висконсинском университете в Мадисоне. Работал ассистент-профессором математики и физики в Государственном колледже штата Айова.
Что касается нейросетевых технологий, то в 1943 г. вышла статья нейрофизиолога Уоррена Маккалоха (Warren McCulloch) и математика Уолтера Питтса (Walter Pitts) про работу искусственных нейронов и представление модели нейронной сети на электрических схемах.
1949 г. — опубликована книга Дональда Хебба (Donald Hebb) «Организация поведения», где исследована проблематика настройки синаптических связей между нейронами.
1950-е гг. — появляются программные модели искусственных нейросетей. Первые работы были проведены Натаниелом Рочестером (Nathanial Rochester) из исследовательской лаборатории IBM.
В 1956 году на конференции в Дартмутском университете было принято решение об образовании нового научного направления — искусственный интеллект (ИИ). Английское название: artificial intelligence содержит слово intelligence, которое означает «умение рассуждать разумно».
Единого ответа на вопрос, чем занимается искусственный интеллект, не существует. Среди исследователей ИИ до сих пор не существует какой-либо доминирующей точки зрения на критерии интеллектуальности, систематизацию решаемых целей и задач, нет даже строгого определения науки «Искусственный Интеллект».
Наиболее горячие споры в философии искусственного интеллекта вызывает вопрос возможности мышления как творения человеческих рук. Вопрос «Может ли машина мыслить?», который подтолкнул исследователей к созданию науки о моделировании человеческого разума, был поставлен Аланом Тьюрингом в 1950 году.
Наиболее устоявшимся является мнение, что интеллект тесно связан с представлением и использованием знаний, машинным творчеством, и затрагивает такие направления, как инженерия знаний, представление знаний, роботы, искусственные нейронные сети, машинное обучение, глубокое обучение, нейронный процессор.
Направление инженерия знаний объединяет задачи получения знаний из простой информации, их систематизации и использования. Это направление исторически связано с созданием экспертных систем — программ, использующих специализированные базы знаний для получения достоверных заключений по какой-либо проблеме.
Производство знаний из данных — одна из базовых проблем интеллектуального анализа данных. Существуют различные подходы к решению этой проблемы, в том числе — на основе нейросетевой технологии, использующие процедуры вербализации нейронных сетей
К области машинного обучения относится большой класс задач на распознавание образов. Например, это распознавание символов, рукописного текста, речи, анализ текстов.
Нейронные сети используются для решения нечётких и сложных проблем, таких как распознавание или кластеризация объектов.
Природа человеческого творчества ещё менее изучена, чем природа интеллекта. Тем не менее, эта область существует, и здесь поставлены проблемы написания компьютером музыки, литературных произведений (часто — стихов или вариаций на темы сказок), художественное творчество. Создание реалистичных образов широко используется в кино и индустрии игр.
Отдельно выделяется изучение проблем технического творчества систем искусственного интеллекта. Теория решения изобретательских задач, предложенная в 1946 году российским изобретателем Г. С. Альтшуллером, положила начало таким исследованиям.
В процессе работы над искусственным интеллектом появились новые виды информации, алгоритмы работы с ними, новые методы получения и обработки данных. Информация может быть представлена в виде данных, знаний, правил и закономерностей, способов получения (добычи), способов хранения и использования. Обращено внимание на смысл, содержащийся в информации, на его поиск, хранение, получение, преобразование. Понимание смысла связано с выполнением умозаключений, с использованием интеллектуальных навыков, включающих в себя такие, как:
— сопоставление сложных объектов и оценку их сходства;
— выделение типового объекта из группы однородных;
— поиск типичных черт, существенных признаков;
— формирование описания типового объекта, выделение его отличительных черт;
— определение понятий (дефиниции);
— выявление причинно-следственных связей;
— интерпретация связей и свойств исследуемых объектов;
— генерация гипотез;
— выявление закономерностей;
— самообучение, адаптация;
— умение делать традуктивные, индуктивные, дедуктивные выводы;
— …
Среди важнейших классов задач, которые ставились перед ИИ с момента его зарождения как научного направления, следует выделить следующие трудно формализуемые задачи:
— доказательство теорем,
— управление роботами,
— распознавание изображений,
— машинный перевод,
— понимание текстов на естественном языке,
— программирование компьютерных игр,
— машинное творчество (синтез музыки, стихотворений, текстов, сказок).
По мере развития ИИ появились новые виды интеллектуальных изделий, в основном — это службы техподдержки различных компаний, экспертные системы по подбору товаров (подарков), по оказанию интеллектуальных услуг клиентам, автоматизированные онлайн-помощники, которые иногда реализованы как чат-боты на веб-страницах, в виде различных интеллектуальных изделий:
1. Интеллектуальных моделей, среди них:
· Обучающих;
· Самообучаемых;
· Для естественноязыкового (ЕЯ) диалога;
· Для распознавания образов, автоматической классификации;
· Для оцифровки смысла;
·Для исследования психических процессов (таких, как ассоциативная память, мышление, …).
2. Эвристические программы
3. Экспертные системы
4. Системы символьных преобразований
5. Базы знаний
6. Машины логического вывода
7. Системы автоматического программирования
8. Рассуждающие системы
9. Нейронные программные системы
10. Семантические поисковые системы
11. Системы психологического тестирования
12. Системы речевого общения
И другие…
1958 г. — Джон фон Нейман (John fon Neumann) предложил имитацию простых функций нейронов с использованием вакуумных трубок.
1959 г. — Бернард Видров (Bernard Widrow) и Марсиан Хофф (Marcian Hoff) разработали нейросетевые модели ADALINE (ADAptive LINear Elements) и MADALINE (Множественные Адаптивные Линейные Элементы (Multiple ADAptive LINear Elements)).
Нейробиолог Френк Розенблатт (Frank Rosenblatt) начал работу над перцептроном. Однослойный перцептрон был построен аппаратно и считается классической нейросетью. Тогда перцептрон использовался для классификации входных сигналов в один из двух классов. К сожалению, однослойный перцептрон был ограниченым и подвергся критике в 1969 г., в книге Марвина Мински (Marvin Minsky) и Сеймура Пейперта (Seymour Papert) «Перцептроны».
После спада интереса к нейросетям, продолжавшегося все семидесятые годы, в 1982 г. — к возрождению интереса привело несколько событий. Джон Хопфилд (John Hopfield) представил статью в национальную Академию Наук США. Подход Хопфилда показал возможности моделирования нейронных сетей на принципе новой архитектуры.
В то же время в Киото (Япония) состоялась международная конференция по компьютерам пятого поколения, которые должны были быть построены на основе искусственного интеллекта. Американские периодические издания подняли эту историю, акцентируя, что США могут остаться позади, что привело к росту финансирования в области нейросетей.
С 1985 г. Американский Институт Физики начал ежегодные встречи — «Нейронные сети для вычислений».
1990 г. — Департамент программ инновационных исследований защиты малого бизнеса назвал 16 основных и 13 дополнительных тем, в которых возможно использование нейронных сетей.
Сегодня обсуждения нейронных сетей происходят везде. Перспектива их использования кажется довольно яркой в свете решения нетрадиционных проблем и является ключом к целой технологии. Исследования направлены на программные и аппаратные реализации нейросетей. Компании работают над созданием трех типов нейрочипов: цифровых, аналоговых и оптических, которые обещают появиться в близком будущем.
В XXI веке усилилось внимание к аналогии с мозгом. Точная работа мозга человека — все еще тайна. Тем не менее некоторые аспекты работы этого удивительного процессора известны. Базовым элементом мозга человека являются специфические клетки, известные как нейроны, способные думать и применять предыдущий опыт к каждому действию, что отличает их от остальных клеток тела.
Кора головного мозга человека является плоской, образованной из нейронов поверхностью, толщиной от 2 до 3 мм площадью около 2200 см2. Кора головного мозга содержит около 1011 нейронов. Каждый нейрон связан с 103 — 104 другими нейронами. В целом мозг человека имеет приблизительно от 1014 до 1015 взаимосвязей.
Сила человеческого ума зависит от числа базовых компонент, многообразия соединений между ними, а также от обучения.
Индивидуальный нейрон является сложным, имеет свои составляющие, подсистемы и механизмы управления и передает информацию через большое количество электрохимических связей. Насчитывают около сотни разных типов нейронов. Вместе нейроны и соединения между ними при работе формируют процесс, отличающийся от процесса вычислений традиционных компьютеров. Искусственные нейросети моделируют лишь главнейшие элементы сложного мозга.
В СССР до 1970-х годов все исследования ИИ велись в рамках кибернетики. По мнению Д. А. Поспелова, науки «информатика» и «кибернетика» были в это время смешаны по причине ряда академических споров. Только в конце 1970-х в СССР начинают говорить о научном направлении «искусственный интеллект» как разделе информатики. При этом родилась и сама информатика, подчинив себе прародительницу «кибернетику». В конце 1970-х создаётся толковый словарь по искусственному интеллекту, трёхтомный справочник по искусственному интеллекту и энциклопедический словарь по информатике, в котором разделы «Кибернетика» и «Искусственный интеллект» входят наряду с другими разделами в состав информатики. Термин «информатика» в 1980-е годы получает широкое распространение, а термин «кибернетика» постепенно исчезает из обращения, сохранившись лишь в названиях тех институтов, которые возникли в эпоху «кибернетического бума» конца 1950х — начала 1960х годов.
В России 30 мая 2019 г. на совещании по развитию цифровой экономики под председательством В. В. Путина было принято решение о подготовке национальной стратегии Российской Федерации по искусственному интеллекту. В её рамках готовится федеральная программа.
11 октября 2019 г. В. В. Путин своим указом утвердил национальную стратегию развития искусственного интеллекта в России до 2030 года.
Нейросетевые уровни моделирования
Структурный подход к моделированию мозга реализуется на нескольких уровнях (этапах).
— Вначале создается информационная модель отдельной нервной клетки — искусственного нейрона (ИН), что составляет первый уровень нейронного моделирования.
— Ограниченное число ИН далее могут структурироваться в жесткие необучаемые конфигурации — искусственные нейронные ансамбли (ИНА), что составляет второй уровень нейронного моделирования. В их состав входят ИНА, реализующие функции
— выбора максимального или минимального входного сигнала,
— оценки эквивалентности (равенства) входных сигналов,
— классификации
— ранжирования (сортировки),
— и др.
— Наконец, создаются конфигурации из большого числа ИН, которые с помощью специальной процедуры обучения могут гибко изменять свои параметры. Такие конфигурации называются искусственными нейронными сетями (ИНС). Они составляют третий уровень нейронного моделирования.
— На четвёртом уровне создаются комплексы, содержащие большое количество нейронных сетей различного назначения и оформляются в виде нейросетевых моделей, систем управления, вплоть до нейрокомпьютеров.
Нейроны
На первом уровне нейронного моделирования обычно действуют модели искусственных нейронов следующих типов:
— формальный нейрон
— нейрон МакКаллока-Питтса
— сигмоидальный нейрон
— нейрон типа «адалайн»
— паде-нейрон
— нейрон Хебба
— нейроны типа WTA (Winner Takes All — «Победитель получает все»)
— и др.
В каждом нейропакете используются свои модели нейронов, различающиеся своими свойствами (Properties).
Мы будем рассматривать модели нейронов, используемых в трёх нейропакетах [3, 4, 5]:
— Sharky Neural Network — это freeware компьютерная программа фирмы SharkTime Software (http://www.sharktime.com) для игровой демонстрации возможностей нейросетевого классификатора. Программа freeware, работает под ОС Windows различных версий. Адрес для загрузки: http://www.sharktime.com/
— Нейросимулятор Пермской школы Искусственного Интеллекта –программа, предназначенная для проектирования, обучения, тестирования и использования нейронных сетей. Программа freeware, работает под Windows разных моделей. Её адрес
http://www.lbai.ru/.
— Универсальный нейропакет MemBrain — мощный графический нейросетевой редактор-имитатор для Microsoft Windows, поддерживающий искусственные нейросети произвольного размера и архитектуры (программа freeware). Её адрес:
http://www.membrain-nn.de/english/download_en.htm.
Биоподобные модели нейронов
В https://ailab.ru/ Александр Бахшиев описал Концепцию применения биоподобных моделей нейронов для управления робототехническими системами.
Для исследований в нейрофизилогии более подходят модели, основанные на описании функционирования ионных каналов, такие, как нейрон со структурной организацией мембраны, с раздельным вычислением вкладов в мембранный потенциал, при отказе от явного задания пороговой функции.
С их помощью проводятся исследования типа:
«Информационная модель волновой активности мозга» или
«Механизм распределенной голографической памяти в волновых нейронных сетях».
К числу перспективных моделей нейрона принадлежит и модель В. Б. Вальцева:
Нейрон имеет входы и выходы. При этом входы делятся на несколько типов: возбуждение, регуляция, память, торможение и запрет. Текущее состояние нейрона определяется текущими значениями потенциала и порога. Нейрон способен принимать на входы импульсы и в возбужденном состоянии подавать импульсы на выход.
Текущее состояние нейрона меняется со временем. Если подача на входы импульсов отсутствует, то значение текущего потенциала стремится к нулю.
Принимать сигналы (импульсы) нейрон может с помощью входов. Каждый вход нейрона характеризуется весовым коэффициентом W (вес входа). Импульсы, поступая на вход нейрона, изменяют его текущее состояние. Эффект от импульса определяется типом входа, на который он поступил, весом этого входа а также текущим состоянием нейрона. На рисунке 12 представлена визуальная модель бионического нейрона и показаны его входы и выходы:1 — вход возбуждения, 2 — вход регуляции, 3 — вход памяти, 4 — вход запрета, 5 — вход торможения, 6 — выход (синапс) нейрона.
Особенным образом работает вход памяти. Аналогично возбуждению он увеличивает потенциал, но приращение потенциала теперь зависит не только от веса входа, но также от текущего состояния коэффициента обученности. Коэффициент обученности в отличие от веса меняет своё значение динамически в процессе работы нейронной сети. Он может принимать значения в диапазоне от 0 до 1.
Если µ = 0, то вход считается необученным — в этом случае импульсация на этот вход не оказывает никакого влияния на состояние нейрона. Максимально обученный вход (µ = 1) работает аналогично входу возбуждения с весом W, пока значение µ снова не изменится (уменьшится).
Обучение, переобучение, разобучение — механизмы, регулирующие значение µ и, как следствие, работу входов памяти нейрона.
Разобучение — уменьшение µ, происходит в тех случаях, когда сигнал, поступивший на вход памяти, не был подкреплён последующим сигналом на вход возбуждения, или не сопровождался регулирующей импульсацией (при этом T ≥T0). В этой ситуации значение µ уменьшится на ∆µ-.
Таким образом, вход памяти отличается от входа возбуждения умением менять значимость своего вклада в общий потенциал в зависимости от характера импульсации.
В результате обзора существующих моделей становится видно, что существует достаточное количество нейронов, описывающих естественный нейрон очень упрощенно. Они нашли свое применение в области распознавания образов, для решения задач классификации и т. д. Также существует множество моделей, которые при описании нейрона ставят своей целью количественное описание поведения нейрона. Однако до сих пор остается непонятным, приводит ли усложнение нейрона, попытки отображения им все новых свойств естественного нейрона, к существенному прогрессу и улучшению результатов решаемых нейронами задач.
Нейронные ансамбли
В нервной системе, особенно в ее периферических отделах, существуют устойчивые, генетически предопределенные конфигурации нервных клеток — нейронные ансамбли или ганглии, функции которых обычно ограничены и предопределены спецификой периферического отдела в организме.
В практике нейронного моделирования в ряде случаев также оказывается полезным рассматривать ограниченную совокупность искусственных нейронов (ИН), как искусственный нейронный ансамбль (ИНА), который имеет жесткую не подлежащую переобучению структуру, определяемую задачей обработки информации.
Понятие ИНА позволяет расширить ограниченный набор вычислительных возможностей одиночного ИН. Переход от одиночного ИН к ИНА можно рассматривать как второй уровень нейронного моделирования.
С точки зрения решения прикладных задач, использование необучаемой «нейронной логики» на основе ИНА вместо традиционной компьютерной логики эквивалентен замене одного функционально полного базиса другим функционально полным базисом. Такая замена не порождает новых уровней функциональности и методов решения задач, и может быть оправдана лишь более эффективной реализацией вычислителя.
В базисе нейронной логики специалистами по нейронному моделированию были предложены решения самых разнообразных задач, которые по эффективности реализации могли конкурировать с вычислителями на обычной логике. Например, на основе нейронов строились элементы электронных вычислительных машин, реализующие различные вычислительные функции.
Кроме вычислительных ИНА, копирующих элементы ЭВМ, нейронные сети могут реализовать элементы, реализующие функции нейроматематики: элементы для выполнения математических операций, например таких, как
— сложение, вычитание, умножение, деление различных чисел,
— преобразования чисел из одной системы счисления в другую,
— перекодировки текста,
— матричных операций,
— генерации случайных чисел,
— построения гистограмм.
Элементы, реализующие функции нейроматематики, в процессе изготовления могут проходить обучение. Во время обучения их можно научить выполнению различных операций, например, научить выполнению сложения или вычитания, умножения или деления. Можно научить и более сложным действиям, превратить их в маленькую экспертную систему. После обучения нейроны обученных ИНА должны быть заблокированы. Образуется обученная нейросеть, в которой возможность переобучения отсутствует.
В каждом из этих случаев создаётся небольшая нейросеть и с помощью универсального нейропакета обучается выполнению необходимой операции. Затем обученная нейросеть извлекается из обучавшего её нейросетевого пакета и сохраняется в виде исходного модуля на каком-либо алгоритмическом языке, либо после компиляции сохраняется в виде исполняемого файла, который может быть включён в состав создаваемой программы.
Одной из главных целей нейронного моделирования является использование принципов построения и функционирования мозга для решения практических задач по обработке информации, трудно поддающихся решению другими средствами.
Эта цель реализуется путем создания и использования нейронных конфигураций, которые имитируют некоторые важные свойства, присущие естественному интеллекту, такие как
— обобщение,
— обучение,
— распознавание,
— принятие решений
— и др.
Объединение ИН в такие конфигурации фактически порождает новый уровень функциональности программирования, отличный от использующихся возможностей традиционных компьютеров.
Для примера рассмотрим две разновидности ИНА: Нейросетевой логический элемент «Штрих Шеффера» и нейросетевой преобразователь кода из двоичной в шестнадцатиричную систему счсления («2 — Hex»).
Нейросетевой логический элемент «Штрих Шеффера» [7]
В общем количестве логических операций штрих Шеффера занимает особое место среди логических операций.
Штрих Шеффера, образует базис для пространства булевых функций от двух переменных.
Штрих Ше́ффера — бинарная логическая операция, булева функция над двумя переменными. Введена в рассмотрение Генри Шеффером в 1913 году.
Штрих Шеффера, обычно обозначаемый | (вертикальной чертой), эквивалентен операции И-НЕ и задаётся следующей таблицей истинности:
При нейросетевой реализации создается штрих Шеффера с помощью трёхслойного перцептрона 2-2-1:
После создания в нейропакете проводится анализ созданной нейросети:
Из анализа видно, что всего нейронов 5, из них 2 — входных, 1 выходной, 2 скрытых нейрона в одном промежуточном слое. Нейросеть имеет 6 связей.
Для обучения перцептрона составлен файл из 8 строк «шеффер. csv»:
Для обучения нейросети выбран алгоритм Std. BP:
Результат обучения виден на Net Error Viewer:
Для контроля качества обучения составлен файл: «шеффер_контр. csv»
Результат обучения виден на Pattern Error Viewer:
После обучения нейросети для проверки выведен файл «Export_Validation. csv»:
Сохраняем обученную нейросеть в виде искусственного нейронного ансамбля. Для этого:
Блокируем нейроны (защищаем их от возможности переобучения) — выделяем все скрытые и все выходные нейроны, на одном из выделенных нейронов открываем Properties в открытом правой кнопкой мыши меню, активируем «Lock Act. Thres. For Teacher»:
С помощью File -> Save as» cохраняем обученную нейросеть (полученный искусственный нейронный ансамбль) в файле «шеффер_End. mbn»).
Проверяем обученность нейросети и готовность её работать: обновляем загрузку нейропакета MemBrain, загружаем в него файл «шеффер_End. mbn», открываем редактор уроков (Lesson Editor), синхронизируем редактор с нейросетью (Names from Net), набираем на входных нейронах проверочный двоичный код, нажимаем Think on Input — на выходных нейронах появляется ответ, соответствующий таблице истинности логической функции штрих Шеффера.
Проверку проведём с помощью редактора Lesson Editor. На входных нейронах набираем 00. Нажимаем на клавишу Think on Input, на рис 1 видно, что результирующий нейрон устанавливается в 1.
На рисунке 2 видно, что в следующем примере на входных нейронах набираем 01, нажимаем на клавишу Think on Input, результирующий нейрон устанавливается в 1.
На рис. 3 проверяем комбинацию входных нейронов 10 — на выходе видим опять 1.
И только на рис. 4 при комбинации сигналов на входных нейронах 11 на выходе появляется 0.
На рисунках 1 — 4 зафиксирован ответ, получаемый ИНА при поступлении различных комбинаций сигналов на входных нейронах. Все ответы соответствуют таблице истинности логического элемента штрих Шеффера: ноль на выходе получен только при поступлении на вход одновременно двух единиц.
Нейросетевой преобразователь кода «2 — Hex»
Дешифра́тор (decoder) — это электронное цифровое устройство, преобразующее n-разрядный входной код в шестнадцатиразрядный двоичный код на выходе.
Здесь входной код — четырёхразрядный двоичный; выходной код — шестнадцатиразрядный двоичный, организованный по принципу «один из 16». Как видно из таблицы, входной код в каждой кодовой комбинации может содержать различные четырёхразрядные двоичные числа, а выходной код является одноединичным кодом, т.е. каждая кодовая комбинация содержит 16 двоичных разрядов, из которых 15 разрядов содержат нули, а один разряд — единицу.
Такая система кодирования используется тогда, когда с помощью двоичного числа нужно указать на один элемент выходного кода (например, так можно указать на одну из 16 ячеек памяти). В этом случае входной код определяет двоичный номер необходимой ячейки памяти.
Во второй строке таблицы пронумерованные символы Х и Z являются номерами соответствующих разрядов кодовой посылки. Например, Z7 определяет место единицы в выходном коде, которому соответствует цифра 7 в двоичном виде входной кодовой комбинации.
Схема четырёхразрядного двоичного дешифратора
Создаём нейросеть 4-4-16:
Рандомизируем нейросеть (Randomize Net), проводим анализ;
Результат анализа созданной нейросети (Net Analysis Result):
Загружаем обучающую выборку:
Raw CSV File -> Import Current Lesson -> Decoder4to16_Training. csv
Синхронизируем нейросеть с введёнными данными — нажимаем «Names from Net».
Настраиваем обучение:
Нормализуем нейросеть: «Extras -> Normalisation Wisard…».
Обучаем нейросеть:
После обучения cохраняем обученную нейросеть:
Блокируем нейроны (защищаем их от возможности переобучения). Для этого выделяем все скрытые и все выходные нейроны; на одном из выделенных нейронов открываем Properties в открытом правой кнопкой мыши меню, активируем «Lock Act. Thres. For Teacher»:
С помощью File -> Save As… cохраняем обученную нейросеть (полученный искусственный нейронный ансамбль) в файле «Decoder4To16_End. mbn»).
Проверяем обученность нейросети и готовность её работать: обновляем загрузку нейропакета MemBrain, загружаем в него файл «Decoder4To16_End. mbn», открываем редактор уроков (Lesson Editor), синхронизируем редактор с нейросетью (Names from Net), набираем на входных нейронах любой двоичный код, нажимаем Think on Input — на выходных нейронах должна появиться единица в соответствующем разряде.
Набор входного кода (4 двоичных разряда) и результат работы искусственного нейронного ансамбля можно увидеть на структурной схеме ИНА и в окне Lesson Editor (последовательность действий: двоичный код набирается на Input Data, нажимается Think of Input, результат появляется в Output Data и на выходных нейронах на структурной схеме ИНА).
Для проверки выполним 3 примера:
На входных нейронах набрано 1100, на выходных зажигается 12 нейрон.
На входных нейронах набрано 0001, на выходных зажигается 1 нейрон.
На входных нейронах набрано 0101, на выходных зажигается 5 нейрон.
Искусственные нейронные сети
Новый (третий) уровень функциональности нейронных моделей возникает на больших нейронных конфигурациях, в которых воспроизводится свойство обучения. Они называются искусственными нейронными сетями (ИНС).
Специалистами по нейронному моделированию предложено множество типов ИНС, отличающихся типом искусственных нейронов, структурой связей, методами обучения, функциональным назначением [6].
Такие сети не являются специализированными, имеют универсальный характер и предназначены для решения различных задач. Примером простейшей нейросети, обладающей указанными возможностями, является однослойная нейронная сеть с одним рабочим слоем:
В процессе функционирования сети происходит преобразование входного вектора сигналов в выходной. Конкретный вид преобразования определяется
— архитектурой нейросети
— характеристиками нейронных элементов,
— средствами управления
— синхронизацией информационных потоков между нейронами.
Важным фактором эффективности сети является установление оптимального количества нейронов и типов связей между ними.
При описании нейросетей используют несколько терминов, которые в разных источниках могут иметь разное трактование, в частности:
— структура нейросети — способ связи нейронов в нейросети;
— архитектура нейросети — структура нейросети и типы нейронов;
— парадигма нейросети — способ обучения и использования; иногда содержит и понятие архитектуры.
На основе одной архитектуры могут быть реализованы разные парадигмы нейросети и наоборот.
Среди известных архитектурных решений выделяют группу слабосвязанных нейронных сетей, когда каждый нейрон сети связан лишь с соседними.
Наоборот, если входы каждого нейрона связаны с выходами всех остальных нейронов, тогда речь идет про полносвязанные нейросети.
Понятно, что такое деление носит теоретический характер. Анализируя наиболее известные на данное время разработки нейросетей, следует отметить, что самым распространенным вариантом архитектуры являются многослойные сети. Нейроны в данном случае объединяются в слои с единым вектором входных сигналов.
Внешний входной вектор подается на входной слой нейронной сети (рецепторы). Выходами нейронной сети являются выходные сигналы последнего слоя (эффекторы). Кроме входного и выходного слоев, нейросеть имеет один или несколько скрытых слоев нейронов, не имеющих контактов с внешней средой.
Для многослойных сетей характерно:
— Связи между нейронами разных слоев называют проективными.
— Связи направленные от входных слоев к выходным называются афферентными.
— При обратном направлении связей — эфферентными.
— Связи между нейронами одного слоя — боковыми (латеральными).
По архитектуре связей, большинство известных нейросетей можно сгруппировать в четыре больших класса:
— Сети прямого распространения (афферентные) с однонаправленными последовательными связями (feed forward net).
— Сети, накапливающие входные сигналы (рекуррентные сети).
— Сети обратного распространения (с рекурсивными связями).
— Хаотические сети
Таким образом:
Сети прямого распространения относят к статическим, так как на заданные входы нейронов поступает независимый от предыдущего состояния сети вектор входных сигналов.
Рекурсивные сети считаются динамическими, так как за счет обратных связей (петель) входы нейронов модифицируются во времени, что приводит к изменению состояния сети.
Оригинальность нейросетей, как аналога биологического мозга, состоит в способности к обучению по примерам, составляющим обучающее множество.
Процесс обучения нейросетей рассматривается как настраивание архитектуры и весовых коэффициентов синаптических связей в соответствии с данными обучающего множества так, чтобы эффективно решать поставленную задачу.
Классификация известных нейросетей по основным категориям применения
Однонаправленные, афферентные сети (feed forward net):
Рекуррентные нейросети, в которых для накопления входной информации используются нейроны задержки (delay-нейроны).
Нейросети с обратными связями (Net with loopback links) или Рекурсивные нейросети.
Рекурсивные нейросети так же встречаются нескольких видов:
Нейросетевые модели (системы управления)
К четвёртому уровню моделирования относятся комплексы, содержащие большое количество нейронных сетей различного назначения, оформленные в виде подсетей, отдельных нейросетевых моделей, моделей нейрокомпьютеров или систем управления
Экспериментальная хаотическая нейросеть:
Та же нейросеть без демонстрации связей между нейронами.
Долгосрочная память «Long short term memory (LSTM)»
Эта нейросеть представляет собой систему глубинного обучения, при реализации которой удалось обойти проблему исчезновения или зашкаливания градиентов в процессе обучения методом обратного распространения ошибки [8].
Сеть LSTM обычно модерируется с помощью рекуррентных вентилей, которые называются вентили (gates) «забывания». Ошибки распространяются назад по времени через потенциально неограниченное количество виртуальных слоёв. Таким образом происходит обучение в LSTM, при этом сохраняя память о тысячах и даже миллионах временных интервалов в прошлом. Нейроны данной нейросети хорошо «помнят» недавно полученную информацию, но не имеют возможности надолго сохранить в памяти что-то, что обработали много циклов назад, какой бы важной та информация ни была.
В LSTM-сетях внутренние нейроны «оборудованы» сложной системой так называемых ворот (gates), а также концепцией клеточного состояния (cell state), которая и представляет собой некий вид долгосрочной памяти. Ворота же определяют, какая информация попадет в клеточное состояние, какая сотрется из него, и какая повлияет на результат, который выдаст НС на данном шаге.
Простые комплексы подсетей:
Подсети комплекса могут обучаться отдельно с использованием различных алгоритмов и наборов данных.
С левой стороны видны нейроны исходной группы с именем «Входы» (которые в данном случае являются входными нейронами). С правой стороны видна целевая группа с именем «Input Mirror». Это массив скрытых нейронов с тем же номером и расположением, что и у исходной группы.
Отношение определяется из исходной группы к целевой группе. Анализ отношений между группами показывает, что путь вычисления активаций из исходной группы в целевую группу включает 16 нейронов, показанных в нижней части снимка экрана. Эти нейроны также принадлежат определенной подсети, проходящей обучение отдельно от исходной и целевой групп и автоматически включаемой при необходимости в соответствующие действия.
Аналогичный пример может иметь другое начертание для демонстрации взаимосвязи с большим количеством подсетей:
Комплекс подсетей для образования Глубоких нейросетей.
Комплекс подсетей для реализации свёрточных сетей
В таком комплексе каждый слой работает по своим алгоритмам, реализующим свёрточные, субдискретизирующие и полносвязанные перцептронные подсети:
Искусственные нейронные сети
Одно из направлений искусственного интеллекта связано с исследованием нейросетевых проблем с помощью нейропакетов, для создания которых используются специфические модели, методы и алгоритмы, реализуемые научным направлением под названием «Нейропрограммирование».
Специфика используемых в нейропрограммировании моделей связана с составом используемых интеллектуальных операций, таких, как «обучение на примерах», «создание ассоциативной памяти», использование «ассоциативного мышления», «приобретение нейросетями новых знаний», «извлечение накопленных при обучении новых знаний», «пополнение ими баз знаний», и др.
Нейронные сети характеризуются:
— архитектурой нейросети
— характеристиками нейронных элементов,
— средствами управления
— синхронизацией информационных потоков между нейронами.
Разработанные модели нейросетей с бинарными нейронами могут быть разделены на три группы:
— Сети прямого распространения (с однонаправленными последовательными связями).
— Сети обратного распространения (с рекурсивными связями).
— Сети с использованием латеральных связей.
Разновидности нейронных сетей
— Перцептрон
— Сеть Кохонена
— Сеть с квантованием обучающего вектора (Learning VectorQuantization)
— Сеть встречного распространения (CounterРropagation)
— Вероятностная нейронная сеть.
— Сеть Хопфилда
— Машина Больцмана
— Сеть Хемминга
— Двунаправленная ассоциативная память
— Сеть адаптивной резонансной теории
— Когнитроны
Среди этого многообразия нейросетей наиболее глубокую проработку получили нейросети типа Перцептрон.
Однонаправленные (афферентные) нейросети
Перцептрон представляет собой feed forward net, т.е. однонаправленную нейросеть. Обычно она имеет слоистую структуру. Каждый слой характеризуется количеством нейронов, их связями, типами и настройкой нейронов. Основная задача, для которой создаётся и используется перцептрон — это распознавание образов (классификация, узнавание, или идентификация).
В процессе работы с перцептронами проявились интересные интеллектуальные особенности этого типа нейросистем. Во-первых, в перцептронах активно используется одна из проблем искусственного интеллекта — обучение искусственных нейронных систем на примерах. Для перцептронов характерно, что если имеется базовая модель перцептрона, то нет необходимости дополнительно что-то программировать. Нейросеть нужно просто научить решать требуемую задачу. Причём, научить надо, показывая примеры правильного решения. А самая простая интеллектуальная задача, которую можно научить решать на примерах — это узнавание. Двухлетний ребёнок, не умеющий ни читать, ни писать, очень быстро обучается отличать кошку от собаки. Точно так же можно показывая синие и жёлтые точки (вернее — их координаты Х и Y) научить нейросеть узнавать их цвет, хотя нейросеть и не имеет зрительного аппарата. Пользуясь этим принципом, можно научить узнавать разные рисунки (по форме, по цвету, по вертикальной или горизонтальной ориентации), разные звуки и даже эмоции. Это — первая особенность перцептронов.
Вторая особенность — это возможность показать, что многослойный перцептрон может использоваться для реализации интеллектуального программного продукта — экспертной системы. Для экспертной системы характерно, что она моделирует работу эксперта, т.е. человека, который по множеству мелких признаков может на основе своего опыта сделать логический вывод, чаще всего неочевидный для людей, впервые встретившихся с таким множеством мелких признаков.
Для обучения экспертной системы создаётся функционально полный обучающий набор (это значит, что в обучающий набор включаются все известные примеры — других комбинаций входных переменных придумать невозможно). После обучения и проверки полученная нейросеть получает статус экспертной системы и сохраняется в памяти. Для работы с созданной экспертной системой, она загружается в нейроимитатор, набирается интересующая исследователя комбинация входных сигналов. На выходе нейроимитатора появляется ответ, т.е. заключение экспертной системы.
Это описание показывает принцип создания и использования искусственного нейронного ансамбля (ИНА) в виде экспертной системы. Создаётся экспертная система (ЭС) с помощью нейропакета. При этом создании активно используется способность нейросети обучаться, что и делается с помощью нейропакета. Но после создания экспертная система принцип обучения больше не использует — он ей больше не нужен. Его нужно отключить. Прошедшую обучение нейросеть переучивать не приходится, её вообще можно вырезать из нейропакета и в дальнейшем использовать как обычную подпрограмму. Поэтому во многих нейропакетах предусматривается возможность «отторжения» обученной нейросети от нейропакета и вывода её в виде программы на каком-нибудь алгоритмическом языке. Чаще всего для этого используется язык С, хотя известно применение для этого таких языков, как Фортран, Паскаль, и др.
В реальных условиях состав обучающих примеров может быть неполным. Тогда он дополняется оценкой вероятности того, что он правильный.
Ответ экспертной системы может быть не «полным ответом», а шифром ответа, например, «ответ №1» или просто «1». И тогда где-то в доступном месте должна содержаться расшифровка ответа.
Третьей интеллектуальной особенностью перцептронов является «эффект автоэнкодера», суть которого заключается в том, что при определённых условиях не нужна обучающая выборка. Эффект обучения образуется за счёт внутренней структуры образа, которая проявляется за счёт настройки нейросети при многократной работе с этим образом. Простейшая архитектура автокодировщика — сеть прямого распространения, без обратных связей, наиболее схожая с перцептроном и содержащая входной слой, промежуточный слой и выходной слой. В отличие от перцептрона, выходной слой автокодировщика должен содержать столько же нейронов, сколько и входной слой.
Основной принцип работы и обучения сети автокодировщика хорошо описан в википедии [9] — основная задача: получить на выходном слое отклик, наиболее близкий к входному. Чтобы решение не оказалось тривиальным, на промежуточный слой автокодировщика накладывают ограничения: промежуточный слой должен быть или меньшей размерности, чем входной и выходной слои, или искусственно ограничивается количество одновременно активных нейронов промежуточного слоя — разрежeнная активация. Эти ограничения заставляют нейросеть искать обобщения и корреляцию в поступающих на вход данных, выполнять их сжатие. Таким образом, нейросеть автоматически обучается выделять из входных данных общие признаки, которые кодируются в значениях весов искусственной нейронной сети. Так, при обучении сети на наборе различных входных изображений, нейросеть может самостоятельно обучиться распознавать линии и полосы под различными углами.
Бесплатный фрагмент закончился.
Купите книгу, чтобы продолжить чтение.