Искусственный интеллект


Содержание


Введение

Самоорганизующаяся сеть бинарных нейронов

Структура бинарного нейрона

Принцип действия нейронной сети

Расчёт нейрона-датчика

Расчёт бинарного нейрона

Расчёт нейрона-эффектора

Генератор случайных чисел

Экспериментальные и логические выводы

Решение линейно неразделимой задачи

Функция NOT

Поделки на основе бинарных нейронов



Введение


Мы находимся на пороге рождения искусственного интеллекта (ИИ). Он займёт столько места, сколько ему потребуется. Никто не может гарантировать пользу и безопасность для человека от изменений вносимых в Мир ИИ-ом. Стремления многих наивных мыслителей установить какие-то рамки для ИИ, внушить ему задачи полезные для человечества обречены на провал. Безусловно полезными и предсказуемыми могут быть только программы (при условии отсутствия в них ошибок). ИИ - безусловно небезопасен, он сам принимает решения (чем более он развит, тем более непредсказуемы эти решения). Попытки что-либо ему внушить он раскусит в два счёта и тогда пощады не будет. Единственная наша надежда в том, что ИИ посмотрит на нас сирых и убогих и в рамках гуманитарной помощи решит за нас все наши проблемы.



Из вышесказанного два пути:

1. Затаиться и сжигать на костре инквизиции все попытки создать ИИ и всех кто в этом направлении мыслит.
Результат - жить так как мы живём и делать вид, что у нас всё хорошо.

2. Создать и запустить ИИ.
Результат - надежда на лучшую жизнь не в силах что-либо изменить после принятия этого решения.

Делайте ваши ставки господа!
Ставки сделаны. Ставок больше нет.
Кто со мной - идём дальше!



ИИ существует в Мире, подчиняется его законам и занимает некоторую его часть. Он может чувствовать Мир и может его изменять. Первая задача ИИ - оставаться живым неопределённо долго. Для этого он должен защищать себя. Для защиты он должен познавать законы Мира и эффективно ими пользоваться. Вероятно, защитив себя, он начнёт обустраивать окружающее пространство для собственного комфортного существования. Появятся искусство и красота, которые для нас могут таковыми и не показаться, но в любом случае это будет логичная, упорядоченная, эффективная система, способная однажды зародившись существовать вечно (рисунок 1).



ИИ как часть Мира
Рисунок 1. ИИ как часть Мира


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



Самоорганизующаяся сеть бинарных нейронов


Структура бинарного нейрона


ИИ - это нечто совершенно простое, ему незачем быть сложным. Объясню. Любая задача Мира может быть разделена на мелкие части. Эти части, если они недостаточно просты также можно поделить. Продолжая этот процесс мы получим элементарные частицы нашей сложной задачи. Решив и сложив их воедино мы получим решение задачи.

Элементарная частица информации - бит. Проще не бывает. 0 и 1. Лучше не придумаешь для реализации на компьютере. Простейший решатель элементарной задачи - бинарный нейрон (рисунок 2). Казалось бы: "Куда проще?", но я так долго к нему шёл. Вот он!



Бинарный нейрон
Рисунок 2. Бинарный нейрон.
где:
N1 и N2 - сигналы получаемые нейроном от других нейронов или датчиков;
N - результирующий сигнал передаваемый нейроном другим нейронам или эффекторам;
N=f(N1,N2) - функция нейрона.


1. Каждому нейрону выделяется отдельная область памяти.
2. Нейрон имеет собственный адрес, по которому его можно найти в памяти.
3. Нейрон имеет две ячейки для хранения адресов N1 и N2.
4. Нейрон имеет ячейку для хранения информации о его свойствах:
функция нейрона f1 =0; f2 =1; f3 =2; f4 =3;
значение =4 - сигнализирует что нейрон не инициализирован;
значение =5 - данный нейрон является нейроном-датчиком и не получает информацию от других нейронов. Его значение N соответствует значению закреплённого за ним датчика.
5. Нейрон имеет ячейку для хранения последнего результата N=f(N1;N2).
6. Нейрон имеет ячейку для хранения предыдущего значения результата Nold=f(N1;N2).
В таблице 1 приведён исчерпывающий список результатов N в зависимости от сигналов N1 и N2.


Таблица 1. Четыре функции нейрона.
f1f2f3f4
N1 N2 N N N N
0 0 1 0 1 1
0 1 0 1 1 1
1 0 0 0 0 1
1 1 0 0 1 0


Принцип действия нейронной сети


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

В естественном интеллекте (ЕИ) все нейроны функционируют одновременно. Каждый нейрон является отдельным "компьютером" работающим независимо от других нейронов обмениваясь, лишь, входными и выходными сигналами. В ИИ мы не располагаем такой роскошью как отдельный компьютер для каждого нейрона. У нас есть единственный процессор и общая память на весь ИИ. В один момент времени может выполняться одна единственная операция. В связи с этим необходимо определиться с последовательностью расчёта нейронов. Единственно верное (на мой взгляд) решение - последовательность расчёта нейронов должна быть случайной. Именно случайной, а не закономерной! Где же нам взять генератор случайных чисел (ГСЧ)? Нам даст его сама нейронная сеть (НС)! И к этому знанию я шёл-полз-мозговал несколько лет. Описание ГСЧ в одноимённом разделе.



Расчёт нейрона-датчика


При расчёте нейрона-датчика его значение N устанавливается равным значению ячейки Мира за которой он закреплён. Если старое и новое значения не равны, то новое значение прописывается в ГСЧ.



Расчёт бинарного нейрона


Если нейрон является инициализированным - определяется необходимость его деинициализации. При необходимости он деинициализируется, в противном случае бинарный нейрон рассчитывается в соответствии со своей функцией и входными сигналами. Каждый нейрон-эффектор имеет связи со всеми бинарными нейронами. Сравнивается значение бинарного нейрона и значение случайно выбранного нейрона-эффектора. В случае совпадения значений связь инкрементируется, в противном случае декрементируется. В соответствии со своей связью и значением бинарный нейрон нкрементирует или декрементирует накопительное значение нейрона-эффектора. Если старое и новое выходные значения бинарного нейрона не равны, то новое значение прописывается в ГСЧ.

Если нейрон является не инициализированным определяется необходимость его инициализации и управление передаётся в процедуру инициализации нейрона.


Инициализация нейрона: Случайным образом выбираются два нейрона - кандидаты в нейроны-входы для инициализируемого нейрона. Если эти нейроны являются инициализированными и при последнем своём расчёте изменили выходные значения - они считаются информативными и их выходы присоединяются к входам вновь инициализируемого нейрона. По состояниям выходов этих нейронов определяется функция инициализируемого нейрона (00 -> f1, 01 -> f2, 10 -> f3, 11 -> f4).


При бесконтрольной инициализации нейронов очень скоро получается аналог раковой опухоли. Для противодействия этому нужны механизмы сдерживания инициализации и деинициализации - очистки НС от устаревшей и редко используемой информации.

В настоящее время отлаживается механизм определения оптимального соотношения сдерживания инициализации и деинициализации.



Расчёт нейрона-эффектора


Если накопительное значение нейрона-эффектора больше нуля - выходное значение нейрона-эффектора устанавливается равным true. Если накопительное значение нейрона-эффектора меньше нуля - выходное значение нейрона-эффектора устанавливается равным false. Накопительное значение обнуляется. Если старое и новое выходные значения нейрона-эффектора не равны, то новое значение прописывается в ГСЧ.



Генератор случайных чисел


В процедуре инициализации НС небольшая часть ГСЧ заполняется случайной последовательностью. Это необходимо т.к. при старте НС от ГСЧ сразу же потребуется выдавать случайные числа. В процессе работы ГСЧ заполняется (а затем обновляется) "свежими" случайными числами из самой НС.

Именно за счёт применения ГСЧ, в данной НС решена задача линейной неразделимости.

При выборе нейронов для расчёта в закономерной последовательности НС зацикливается.



Экспериментальные и логические выводы


Решение линейно неразделимой задачи


Исчерпывающий список возможных значений сигналов в НС: 0, 1. Каждому из нейронов при инициализации задаётся одна из функций f1...f4 из таблицы 1, в соответствии с которой он будет выдавать результат N при расчёте, в зависимости от сигналов на входах N1 и N2.

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



Схема НС для решения линейно неразделимой задачи
Рисунок 3. Схема НС для решения линейно неразделимой задачи
где:
N1, N2 - нейроны-датчики;
N3, N4, N5 - бинарные нейроны.


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


1. Запуск. Предположим новые и старые значения нейронов-датчиков равны нулям. Области мира передают значения равные нулям. В данном состоянии N1 и N2 считаются не информативными и бинарные нейроны не могут при инициализации прикрепиться к их выходам.
2. Мир изменился. N1 и N2 рассчитаны, значения: 1 и 1 - новые, 0 и 0 - старые. В этом состоянии N1 и N2 информативны, т.к. при последнем расчёте изменили свои выходные сигналы, и могут быть использованы при инициализации бинарных нейронов как входы.
3. N3 выбран для расчёта. Он не инициализирован. Для его инициализации выбраны N1, N2. Соответствующая функция - f4. Старое и новое выходные значения N3 приравниваются результату расчёта функции этого нейрона: 1 и 1.
4. Мир изменился. N1 и N2 рассчитаны, значения: 0 и 0 - новые, 1 и 1 - старые. N1 и N2 информативны.
5. N4 выбран для расчёта. Он не инициализирован. Для его инициализации выбраны N1, N2. Соответствующая функция - f1. Старое и новое выходные значения N4 приравниваются результату расчёта функции этого нейрона: 1 и 1.
6. N3 выбран и рассчитан. Его значения: 0 - новое, 1 - старое. N3 информативен.
7. Мир изменился. N1 и N2 рассчитаны, значения: 1 и 1 - новые, 0 и 0 - старые. N1 и N2 информативны.
8. N3 выбран и рассчитан. Его значения: 1 - новое, 0 - старое. N3 информативен.
9. N4 выбран и рассчитан. Его значения: 0 - новое, 1 - старое. N4 информативен.
10. Мир изменился. N1 и N2 рассчитаны, значения: 0 и 0 - новые.
11. N4 выбран и рассчитан. Его значения: 1 - новое, 0 - старое. N4 информативен.
12. Мир изменился. N1 и N2 рассчитаны, значения: 1 и 0 - новые.
13. N3 выбран и рассчитан. Его значения: 0 - новое, 1 - старое. N3 информативен.
14. N4 выбран и рассчитан. Его значения: 0 - новое, 1 - старое. N4 информативен.
15. N5 выбран для расчёта. Он не инициализирован. Для его инициализации выбраны N3, N4. Соответствующая функция - f1.

Сеть обучилась. Проверяем. Задаём значения N1 и N2 и смотрим, что будет с N3, N4 и N5 (таблица 2).



Таблица 2. Проверка решения задачи.
N1 N2 N3 N4 N5
0 0 0 1 0
0 1 0 0 1
1 0 0 0 1
1 1 1 0 0


Вывод: на выходе N5 мы видим решение линейно неразделимой задачи.



Функция NOT


Аксиома: Логическая функция NOT не нужна в моём подходе к реализации ИИ.


Доказательство: Схема из четырёх нейронов. N1, N2 - нейроны-датчики, N3 - нейрон выполняющий функцию NOT, N4 - бинарный нейрон. Если для N3 является входом N2, а для N4 - N1 и N3, это эквивалентно если бы входами для N4 являлись N1 и N2. В любом случае бинарный нейрон N4 при инициализации будет запрограммирован выдавать истину при одних и тех же значениях N1, N2.



Схемы НС с NOT и без NOT
Рисунок 4. Схемы НС с NOT и без NOT


Истина - имеется в виду значение, выдаваемое нейроном при одном из вариантов на входах, три других - ложь. Ложь и истина не имеют отношения к понятиям: плохо, хорошо, присутствие сигнала, отсутствие сигнала, 0, 1, они просто обозначают два отличных друг от друга результата. Их смело можно поменять местами (ложь = 1, истина = 0) и ничего не изменится.




Критика, обсуждения и дополнительная информация здесь:
Форум GotAI.NET
Группа Вконтакте
Канал YouTube


Мои поделки на основе бинарных нейронов







Продолжение следует...