Бытовой нейрокомпьютер "ЭМБРИОН"
Если вы пытливый и любознательный человек, если вы задумываетесь иногда о том, может ли компьютер иметь потребности и эмоции, как в бездушных железках могли бы зародиться психика, мотивы сложного поведения, - мы приглашаем вас с друзьями, интересующимися новыми направлениями развития вычислительной техники и проблемами искусственного интеллекта, умеющими мастерить и паять, в увлекательный путь по созданию моделей нейрокомпьютеров. Некоторые понятия будут вам, возможно, не знакомы, поэтому в конце статьи предлагаем СЛОВАРИК ОСНОВНЫХ ТЕРМИНОВ.
ЗАНЯТИЕ 1
Если у вас включён БК-0010, введите приведённую ниже программу "Эмбрион" на языке Фокал и запустите её командой G (разбор программы мы сделаем на втором занятии). На экране дисплея появится приглашение NS: - нейрокомпьютер "Эмбрион" ГОТОВ к работе. А вы, дорогой читатель, - НЕТ. Поэтому знакомству с первой моделью отечественного бытового нейрокомпьютера (БНК) "Эмбрион” (авторское свидетельство №: 36028 "Обучающаяся машина", 1966 г.), простым опытам с ним и посвящено наше первое занятие.
Название "Эмбрион" выбрано нами неспроста. Ведь это слово означает зародыш-организм на ранней стадии развития. Вот и наш "Эмбрион" - зародыш искусственной нервной системы.
Структурная схема нейрокомпьютера изображена на рис. 1. На сенсорную матрицу (СМ) размера m х n, где m - число строк, n - число столбцов (в данном случае m = n) через рецепторы поступают входные воздействия из внешней или внутренней среды нейрокомпьютера. Блок выдвижения гипотез (БВГ) управляет процессом переноса информации из СМ в регистр внутреннего состояния (Р) и далее через нейронную сеть к группе мотонейронов (МН). Нейронная сеть представляет собой как бы многослойный пирог. Мотонейроны управляют исполнительными органами, с которыми может быть связан БНК: двигателями, реле, искусственными мышцами. Энергетический потенциал NS определяет общий уровень возбуждения нейронной сети, т.е. её "время жизни".
Начнём работу с БНК "Эмбрион". Введём на запрос NS: число 50. Далее введём следующие исходные данные:
- значения разрядов регистра Р: Р1 = 0, Р2 = 0, Р3 = 0, т.е. Р = 000;
- образ на CM: S1=1, S2=1, S3=0, S4=0, S5=1, S6=1, S7=0, S8=0, S9=0, т.е.
110 011 000
- состояние БВГ (гипотеза восприятия): U1 = 3, U2 = 3, U3 = 0, т.е. U = 330.
ВВОД
Нейронная сеть возбуждена!
На экране вы видите импульсацию мотонейронов. Через некоторое время она прекращается, нейрокомпьютер печатает исходные данные и результат.
Вновь на экране приглашение NS:. Можно повторить опыт при других исходных данных.
На рис. 2 показан пример реализации возбуждения нейронной сети при введённых нами исходных данных.
Попробуйте сами поменять исходные данные. Не задавайте пока NS > 50! Запишите и проанализируйте полученные результаты.
Нейронная сеть (как видно из рис. 2) содержит несколько видов нейронов: 001, 101, 011 и т.д., обозначенных кружками. Нейроны соединены друг с другом с силой (весом), указанной дробью над линией связи, и возбуждены с частотой, обозначенной дробью над каждым кружком. Как видно, активность нейронов зависит от их места в сети.
Каждый нейрон может возбуждать несколько последующих и получать возбуждение от нескольких предыдущих нейронов.
Как вы уже догадались, глубину сети можно менять от 1 до U1+U2+U3, а максимально возможная ширина зависит от числа столбцов СМ n и при n=3 равна 2n = 8. Время жизни сети T=NS (U1+U2+U3).
В сети имеются также клетки типа мотонейронов (для упрощения на рис. 2, не показаны), активность которых вы и наблюдаете на экране. Они представляют собой второй слой нейронной сети. Число видов мотонейронов равно n+1.
Теперь мы можем определить объем W "мозга" БНК, т.е. число нейронов при заданных начальных условиях и выбранных характеристиках компьютера:
При n = m = 3, U1 = 3, U2 = 3, U3 = 0 (наш вариант БНК)
W = (23+3+1) (3+3) = 72 нейрона.
Пусть n=8, m=8, U1 = U2=...=U8 = 10, тогда W = (256+9) 80 = 21200 нейронов.
Это уже ощутимо!
А если n = m = 10 и , то W = 207000 нейронов. Этого уже достаточно для формирования довольно сложных поведения и управления.
Чтобы почувствовать возможности и свойства нейронной сети, попробуйте ввести на СМ различные образы:
|
111 |
|
000 |
|
000 |
|
100 |
|
010 |
|
001 |
|
111 |
1) |
111; |
2) |
000; |
3) |
010; |
4) |
100; |
5) |
010; |
6) |
010; |
7) |
101 |
|
111 |
|
000 |
|
000 |
|
100 |
|
010 |
|
100 |
|
111 |
при NS = 50, Р1 = Р2 = Р3 = 0 и сначала при U1 = U2 = U3 = 3, а затем при U1 = 6, U2 = 2, U3 = 1.
Запишите результаты опытов и попробуйте сделать выводы о свойствах БНК.
Вы, видимо, обратили внимание при вводе программы, что это её рабочая версия, ещё не совсем "вылизанная" для применения. У многих, например, нет БК-0010 с Фокалом, многих не устраивают организация ввода образа на СМ, частота импульсации мотонейронов, представление результата на дисплее, а кто-то захочет понаблюдать за импульсацией нейрона определённого типа, например "001".
Поэтому для усовершенствования БНК "Эмбрион" предлагается:
- сделать "окно" для более удобного ввода исходных данных;
- написать программу "Эмбрион" на Бейсике и на Ассемблере;
- подключить СМ к параллельному порту БК- 0010;
- для управления реальными объектами подключить мотонейроны 0,1,2 и 3 к выходному регистру параллельного порта.
На следующих занятиях мы с вами сделаем разбор программ. Листинги программ, ваши замечания, предложения и вопросы направляйте в редакцию журнала "Байтик" с пометкой "Нейрокомпьютер". Лучшие решения мы постараемся опубликовать на страницах журнала.
Владимир Цыганков
СЛОВАРИК ОСНОВНЫХ ТЕРМИНОВ
Блок выдвижения гипотез - группа регистров, числовой код которых определяет способ реагирования нейронной сети на текущее состояние сенсорной матрицы и регистра внутреннего состояния. Этот код называется гипотезой восприятия.
Возбуждение - ответная реакция нейронной сети в виде импульсной активности, распространяющейся по нейронам сети.
Время жизни - время, в течение которого существует импульсная активность в нейронной сети.
Импульсная активность (импульсация) нейронной сети и нейрона - частота импульсов, посылаемых в нейронную сеть нейроном, рецептором, или совокупность частот группы нейронов; чем выше частоты и чем больше активных нейронов, тем выше активность сети.
Мотонейрон - специальный нейрон, приводящий в действие мышцу, мотор или другой исполнительный орган посылкой на него потока импульсов с частотой f.
Нейрокомпьютер - вычислительная или управляющая машина, имеющая структуру, сходную со структурой нервной системы живого организма, и использующая в своей работе её принципы функционирования.
Нейрон - в нейрокомпьютере упрощённый искусственный аналог нервной клетки живого организма.
Нейронная сеть - взаимосвязанная и взаимодействующая совокупность нейронов - "мозг" искусственного организма.
Раздражение - воздействие, которое зафиксировано рецептором.
Регистр внутреннего состояния - регистр, в котором хранится след (результат) возбуждения нейронной сети.
Рецептор - специальная нервная клетка, воспринимающая воздействие.
Сенсор - рецепторный орган или блок, воспринимающий сигналы из внешней или внутренней среды.
Сенсорная матрица - группа регистров, фиксирующая сигналы, поступающие от сенсоров или от рецепторов.
Энергетический потенциал нейронной сети - максимальное число импульсов, которые могут возникнуть в нейронной сети за время её жизни.
БИБЛИОГРАФИЯ
- Гордин А. Б. Занимательная кибернетика. - М.: Радио и связь, 1987. - 224 с. - (Серия "Науч. - поп. б - ка школьника").
- Фрид К. и др. Этюды о персональных компьютерах: Пер. с венг. - М.: Знание, 1988.-160 с.
- Ляликов А.П., Саруханов В.А. Чего не может ЭВМ? - М.: Машиностроение. Ленингр. отд-ние. 1989.- 174 с. - (Серия "Науч.-поп. б-ка школьника").
- Тарасов Л.В. Мир, построенный на вероятности. - М.: Просвещение, 1984. - 191 с.
1.02 Т БНК "ЭМБРИОН" 1.03 С ФОРМИРОВАНИЕ СЕНСОРНОЙ МАТРИЦЫ [S] 1.04 Е 1.05 A !,"NS",NS;S N=NS;A "Р1",Р1; А "Р2",Р2;А "РЗ",РЗ 2.02 A "S1",S1;A "S2",S2;A "S3",S3; A "S4",S4;A "S5",S5 2.03 A "S6",S6;A "S7",S7;A "S8",S8; A "S9",S9 3.02 С ВЫБОР ГИПОТЕЗЫ ВОСПРИЯ ТИЯ [U] 3.03 A "U1",U1;A"U2",U2;A"U3",U3 4.01 С ВОЗБУЖДЕНИЕ НЕЙРОННОЙ СЕТИ 4.02 X FCHR(12) 4.04 S K1=U1;S K2=U2;S K3=U3;S Х1=Р1; S X2=P2;S X3=P3 4.10 I (K1)5.02,5.02 4.20 S L=FABS(FRAN()) 4.30 I (L-0.34)4.5.4.5 4.40 I (L-0.66)4.6,4.6,4.7 4.50 S X1=(P1+S1)-1*P1;G 4.8 4.60 S X2=(P2+S2)-1*P2;G 4.8 4.70 S X3=(P3+S3)-1*P3;G 4.8 4.80 S K1=K1-1 4.90 I (K1)5.02,5.02,4.2 5.02 S Y=X1+X2+X3 5.10 S X4=X1;S X5=X2;S X6=X3 6.10 I (K2)7.02,7.02 6.20 S L=FABS(FRAN()) 6.30 I (L-0.34)6.5,6.5 6.40 I (L-0.66)6.6,6.6,6.7 6.50 S X4=(X1+S4)-1*X1;G 6.8 6.60 S X5=(X2+S5)-1*X2;G 6.8 6.70 S X6=(X3+S6)-1*X3;G 6.8 6.80 S K2=K2-1 6.90 I (K2)7.02,7.02,6.2 7.02 S Y2=X4+X5+X6 7.10 S X7=X4;S X8=X5;S X9=X6 8.10 I (K3)9.02,9.02 8.20 S L=FABS(FRAN()) 8.30 I (L-0.34)8.5,8.5 8.40 I (L-0.66)8.6,8.6,8.7 8.50 S X7=(X4+S7)-1*X4;G 8.8 8.60 S X8=(X5+S8)-1*X5;G 8.8 8.70 S X9=(X6+S9)-1*X6;G 8.8 8.80 S K3=K3-1 8.90 I (K3)9.02,9.02.8.2 9.02 S Y3=X7+X8+X9 9.40 S N=N-1 9.50 G 10.2 9.60 I (N)9.7,9.7,4.04 9.65 С РЕДУКЦИЯ - СЖАТИЕ [R] 9.70 T !,S1,S2,S3,U1,!,S4,S5,S6,U2,I,S7,S8,S9,U3,NS 9.71 S Z=SY*2+SJ-SC-CU*2;T Z 9.72 I (Z)9.73,9.74,9.75 9.73 S Z1=256;G 9.76 9.74 S Z1=128;G 9.76 9.75 S Z1= 0;G 9.76 9.76 S Z2=FABS(Z*5) 9.77 X FT(0,0,128);X FV(1,Z2,Z1) 9.80 E;G 10.02 С ИНДИКАЦИЯ АКТИВНОСТИ МОТОНЕЙРОНОВ [MN] 10.10 G 9.6 10.20 I (Y3-1)10.25;10.4;10.5 10.25 S SY=SY+1 10.30 X FK(SY.3);X FCHR(42);T %2.0,0,SY; G 10.1 10.40 S SJ=SJ+1 10.45 X FK(SJ,9);X FCHR(42);T %2.0,1,SJ; G 10.1 10.50 I (Y3-2)10.40,10.6,10.7 10.60 S SC=SC+1 10.65 X FK(SC,15);X FCHR(42);T %2.0,2,SC; G 10.1 10.70 S SU=SU+1 10.80 X FK(SU,21);X FCHR(42);T %2.0,3,SU; G 10.1 10.90 С КОНЕЦ. БНК "ЭМБРИОН"