Перцептрон

Перцептронот е еден од првите типови на вештачки невронски мрежи, измислен од Френк Роузенблат (Frank Rosenblatt) кој го опишал во 1962 во својата книга „Основи на невро-динамика“ (анг.: "Principles of Neurodynamics"). Перцептроните се наједноставни видови на еднонасочни мрежи, тие се нарекуваат и едно-нивовски невронски мрежи бидејќи сите влезови се директно поврзани само преку тежини со излезите. Перцептроните се историски многу значајни невронски мрежи, меѓутоа, поради нивовските ограничувања тие можат да репрезентираат само едноставни функции.
1 Историја на перцептронот
Работејќи на основите на невронауката Ворен Мекалок(Warren McCulloch) и Волтер Питс(Walter Pitts) во својот труд од 1943 година ("A Logical Calculus of Ideas Immanent in Nervous Activity"), заклучуваат дека неврони со бинарна прагова активациска функција се аналогни на логички изрази од прв ред. Имплементирајќи логички изрази Мекалок и Питс го вовеле првпат нивниот основен неврон. Во овој неврон влезовите директно се сумирале и се споредувале со прагот, односно немало придружено тежини на влезовите. Овој неврон работел со внесување или 1 или 0 за секој од влезовите, каде што 1 претставува логичка вистина, а 0 логичка невистина. Исто така, како активациска функција била дадена реална вредност (праг), пример 1, кој ќе одлучи дали ќе има 0 или 1 на излез, во зависност од тоа дали е достигнат прагот или не. Така, доколку е потребно невронот да претставува „И“ функција, прагот се поставува на 2.0 и се добива следнава вистинитосна табела:
Влез 1, Влез 2, Излез
0, 0, 0
0, 1, 0
1, 0, 0
1, 1, 1
За имплементација на логичко „ИЛИ“ (вистининосна таблица подолу), потребно е само да се смени прагот, да се постави на 1.0 и се добиваат потребните излези.
Влез 1, Влез 2, Излез
0, 0, 0
0, 1, 1
1, 0, 1
1, 1, 1
Проблемот со овој неврон е што дозволува само бинарни влезови и излези, константен праг и не може препознава кога двата влеза се различни.
Во 1949, Доналд Хеб (Donald Hebb) помогнал да се трансформира начинот на кој се перцепирале вештачките неврони. Во неговата книга, „Организација на однесувањето“ (анг.: "The Organization of Behavior"), тој го предложил Хебовото правило. Тоа гласи: „Кога аксонот на клетката А е доволно блиску до клетката Б за да може да ја ексцитира (возбуди) и повторливо и истрајно учествува во нејзиното палење (активирање), некои процеси на растење и метаболитски промени се случуваат во едната или во двете клетки, така што ефикасноста на А во возбудувањето на Б е зголемена“. Хеб не само што предложил дека кога два неврона се активираат во исто време нивната врска се зацврстува, туку и дека оваа активност е фундаментална за учење и меморирање.
Во контекст на вештачките неврони, ова значело дека невронот на Мекалок и Питс морал да биде изменет така да може да се примени ова сознание од биологијата. Ова значело да се додаваат тежини на секој од влезовите. Така, доколку на влез дојде 1, тежината на тој влез може да биде поголема или помала во следниот циклус, релативно вкупната вредност која се споредува со прагот.
Френк Роузенблат, користејќи го невронот на Мекалок и Питс и отритијата на Хеб, го развил првиот перцептрон. Овој перцептрон, кој може да учи според Хебовото правило, со менување на тежините на влезовите, бил многу корисен во монатамошното формирање на вештачките невронски мрежи.
2 Основен перцептрон
Овој неврон исто така претставува логичко „И“. Ако земеме дека w1 и w2 се тежините и t е прагот на активација на излезниот јазол, тогаш тежините се прилагодуваат на овие вредности така што излезот ќе добие коректна вредност. (w1, w2, t) = (1, 1, 2) дава решение, но решенија како (w1, w2, t) = (3, 3, 4), (w1, w2, t) = (3, 3, 5) и други се отпорни и на шум, и даваат коректен излез и за грешни влезови како 1,2 и 1,3.
:0•3+0•3<4
:0•3+1•3<4
:1•3+0•3<4
:1•3+1•3>=4
3 Алгоритам за учење на перцептронот
1. Иницијализирај ги тежините и прагот.
:Постави го <math> w_{i}(t),</math> (0 <= i <= n), да има тежина i во моментот t, T да биде вредноста за праг во излезниот јазол. Постави го <math>w_{0}</math> да биде -Т, ова е биасот, и <math>x_{0}</math> да биде секогаш 1.
:Постави ги <math>w_{i}(0)</math> да бидат мали случајни вредности, така ќе се иницијализираат тежините и прагот.
2. Внеси влез и посакуван излез
: Внеси го влезот <math> x_{0}, x_{1},..., x_{n}</math> и посакуваниот излез d(t)
3. Пресметај го вистинскиот излез
<math>y(t)=f_{h}[w_{0}(t)x_{0}(t) + w_{1}(t)x_{1}(t) + ,..., + w_{n}(t)x_{n}(t)]</math>
4. Прилагоди ги тежините
<math>w_{i}(t+1)=w_{i}(t)+a[d(t)-y(t)]x_{i}(t) </math>, каде 0<=a<=1 е позитивната функција на добивка која ја контролира ратата на прилагоденост.
Чекорите 3 и 4 се повторуваат сè додека не се постигне некоја итерациска грешка што е помала од некој претходно дефиниран праг или пак бројот на доделени итерации се достигнал.
4 Користена литература
*В. Трајковиќ: ''Експертни системи - скрипта''. ФЕИТ, УКИМ, Скопје, 2010.