затем будет сравниваться со значением трехуровневого порогового значения (см. рис. 6.36).
Рис. 6.36. Схема трехуровневого нейрона
Наша небольшая программа и датчики могут выполнять все функции, присущие нейронной сети. Более того, введение многоуровневых пороговых значений является нашей оригинальной разработкой. Существуют ли многопороговые системы в природе (биологические системы)? Да, несомненно. Зуд или чесотка представляет собой очень незначительную по уровню боль, а жжение может ощущаться как жары, так и от действия холода.
Как правило, отдельные нейроны нейронной сети имеют единственный порог (положительный или отрицательный). Если значение превышает пороговое, то нейрон активируется. В нашем случае выходной сигнал сравнивается с несколькими пороговыми значениями и попадает, таким образом, в соответствующую группу.
Вместо того чтобы рассматривать группы выхода как диапазоны численных значений, воспользуемся геометрической интерпретацией. Рассмотрим группы как группы круга, квадрата и треугольника соответственно. При накоплении значения «на нейроне» его выходом будет служить геометрическая форма, а не численное значение. Выходные нейроны (светодиоды) могут быть собраны в матрицы соответствующей формы. При попадании сигнала в определенную группу загорается соответствующая матрица.
В нашем случае каждый из уровней выхода нейрона мы будем относить к трем группам характерного «поведения»: спячке, охоте и кормлению, которые отражают основные типы поведения «выживания» для робота «охотника за светом». Выбор типа «поведения» основывается на текущем уровне освещенности. При низком уровне освещенности робот-охотник прекращает охоту и поиски пищи (света). Включается режим сна или спячки. При средних уровнях освещенности робот «охотится» и выискивает места с наибольшим уровнем света. При высоких уровнях освещенности «охотник» останавливается и «питается», подзаряжая солнечные батареи.
В этой главе мы не будем изготовлять полную модель робота-охотника, лишь ограничимся использованием светодиодов как индикаторов типа соответствующего поведения (см. рис. 6.37). Можно обозначить светодиоды как «спячка», «охота» и «питание». Каждый из светодиодов зажигается в зависимости от интенсивности светового потока, принимаемого CdS фотоэлементами.
Рис. 6.37. Схема основной нейронной цепочки
Программа на PICBASIC имеет следующий вид:
‘Демонстрация работы нейрона
‘Установка параметров
low 0 ‘Светодиод 1 «спячка» выключен
low 1 ‘Светодиод 2 «охота» выключен
low 2 ‘Светодиод 3 «питание» выключен
start:
pot 3,255,b0 ‘Считывание показаний первого датчика
pot 4,255,b1 ‘Считывание показаний второго датчика
w2 = b0 * 3 ‘Умножение на весовой коэффициент
w3 = b1 * 2 ‘Умножение на весовой коэффициент
w4 = w2 + w3 ‘Сложение результатов
‘Установка пороговых значений
if w4 < 40 then feed ‘Много света. Питание
if w4 <= 300 then hunt ‘Света среднее количество. Охота
If w4 > 300 then snooze ‘Света мало. Спячка
‘Действия
feed: ‘Кормление
low 0
low 1
high 2
goto start:
hunt: ‘Охота
low 0
high 1
low 2
goto start:
snooze: ‘Спячка * не использовать ключ sleep *
goto start
Список необходимых частей для программирования микроконтроллера
• компилятор PSIBASIC
• компилятор PSIBASIC Pro (включая CodeDesignerLit)
• программатор EPIC
• компилятор PICBASIC и программатор EPIC
• CodeDesigner любительская версия
• CodeDesigner стандартная версия
• 16F84-4 1 шт.
• кварцевый резонатор 4,0 МГц
• конденсатор 22 пФ 2 шт.
• конденсатор 0,1 мкФ
• конденсатор 100 мФ 12 В
• резистор 4,7 кОм 0,25 Вт
• резистор 470 Ом 0,25 Вт
• стабилизатор напряжения 7805
• светодиод миниатюрный
• плата макетная
• Набор для экспериментов PIC–LED-02 (Включает: PIC16F84 (1), кварц 4,0 МГц (1), конденсатор 22 пФ (2), резистор 10 кОм 0,25 Вт (1), регулятор напряжения 7805 (1), макетная плата (2,1' х 3,6', 270 монтажных отверстий)(1), резистор 470 Ом (8), миниатюрный светодиод (8), кнопка-выключатель (1), руководство по двоичному коду, логике и портам ввода/вывода А и В)
• Сервомотор с усилием 1,3 кгс
Список деталей для системы слежения за направлением источника света и демонстрационного нейрона
• (2) CdS фотоэлемент
• (1) датчик изгиба (номинальное сопротивление 10 кОм)
• (2) конденсатор 0,22 мкФ
• (1) конденсатор 0,01 мкФ
• (4) транзистор NPN TIP 120 Darlington
• (2) резистор 10 кОм
• (б) диод 1N514
• (2) резистор 1 кОм
• двигатель с редуктором 4000:1
Детали можно заказать в:
Images Company
James Electronics
JDR MicroDevices
Radio Shack
Images SI, Inc.
39 Seneca Loop