Содержимое:
Для лучшего понимая посмотрим визуально на биологический нейрон и его схематическое отображение:
Нам понадобиться создать:
- Синапсы (входная информация)
- Ядро (алгоритм работы)
- Веса: связь синапса с ядром и степень её важности (Сначала степень ставится рандомно, чтобы нейрон отвечал по разному)
- Аксон (Вывод информации)
Описание работы:
Любую информацию можно записать в виде битовых значений, поэтому информация нейрону будет поступать синапсам в виде отдельных битов. Степень важности битов будет храниться в связях синапса с ядром. После обработки ядром полученных входов по прописанному алгоритму ядро, Аксон будет выдавать ответ.
Приступим:
Создадим класс синапса:
1 2 3 |
class synaps { var $input=0; //переменная для присвоения входных данных } |
Создадим ядро:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<? class neuron { // нейрон var $inputWeights=array(); // нейрон связан с каждым синапсом с разной силой. var $active=0; function think($s){///алгоритм работы. "Мозг" нейрона reset($this->inputWeights);//перенос к 1му элементу $this->active=0; $this->active/=count($s);//////находим средний вес суммы весов глазиков $this->active=($this->active > 0.5); } function __construct($s){ $this->inputWeights=array(); reset($s);//перенос к 1му элементу while($temp=each($s)) { $this->inputWeights[]=mt_rand(0,100)/100;//////рандомно даётся сила между синапсом и ядром } } } |