უკუპროპაგაციული მოდელი/წონების კორექტირების პროცედურა

გვერდიდან testwiki
ნავიგაციაზე გადასვლა ძიებაზე გადასვლა

სწავლის პროცესში წახნაგების წონების კორექტირების პროცედურა ნეირონულ ქსელში წარმოადგენს ერთ-ერთ უმთავრეს ამოცანას. ქვემოთ ნაჩვენებია თუ როგორ შეიძლება ამის გაკეთება მარტივი მათემატიკური გამოთვლით და იმ აქტივაციის ფუნქციით, რომელიც წინა თავშია განსაზღვრული

შეცდომის ზომა

ვთქვათ, რომ ნეირონული ქსელის გამოსავალზე მიღებულია სიგნალი (y1,y2,...,yno). ჩვენ გვინდა რომ ქსელმა მოგვცეს სიგნალის მნიშვნელობა (t1,t2,...,tno), სადაც no აღნიშნავს გამოსავალ შრეზე ნეირონების რაოდენობას. იმისათვის რომ შევადაროთ მიღებული სიგნალი სასურველს, მოდით შემოვიღოთ შემდეგი შეცდომის ზომა:

E=12k(tkyk)2.

ეს არის განსხვავებათა კვადრატების ჯამი, ნორმირების კოეფიციენტი 1/2 საჭიროა, რომ შეიკვეცოს წარმოებისას.

ამ ზომაზე დაყრდნობით ჩვენ შეგვიძლია განვსაზღვროთ, თუ როდის არის სწავლის შედეგი მიღწეული. კერძოდ კი, თუ სრულდება Eϵ პირობა ყველა შესასწავლი სტრუქტურისთვის. აქ ϵ არის წინასწარ შერჩეული მცირე რიცხვი.

წონის კორექტირების პრინციპი

წონის დასაკორექტირებლად უნდა მივმართოთ მეთოდს, რომლის მიხედვითაც ცალკეული წონის ცვლილების სიდიდე უნდა იყოს იმის პროპორციული თუ რამდენი წვლილი შეიტანა მან შეცდომის ზომაში. სხვა სიტყვებით,

ΔwijEwij,

სადაც wij წარმოადგენს წახნაგის წონას, რომელიც აკავშირებს i-ურ და j-ურ ნეირონებს ორ მეზომელ შრეში.

გამოყვანა

ჩვენი ძირითადი მიზანი ახლა არის Ewij სიდიდის დათვლა.

შემდგომ განხილვაში ჩვენ ვიგულისხმებთ, რომ ჩვენი ქსელი შეიცავს მხოლოდ ერთ შიდა შრეს, თუმცა შედეგი ადვილი განსაზოგადებელია ნებისმიერი რაოდენობა შიდა შრისათვის. აგრეთვე წახნაგთა წონაში wij ვიგულისმხებთ, რომ პირველი ინდექსი აღნიშნავს მარცხენა შრეში, ხოლო მეორე ინდექსი მარჯვენა შრეში მდებარე ნეირონს. წახნაგის წონის აღნიშვნა wij გამოიყენება როგორც შემომავალი და შიდა, ასევე შიდა და გამავალი შრეების დამაკავშირებელ წახნაგებს, თუ ეს არ იწვევს გაუგებრობას; ხოლო თუ საჭიროა შიდა და გამავალი შრეების დამაკავშირებელი წახნაგის ცხადად გამოყოფა, უკანასკნელი აღინიშნება w'ij-თი.

ჩავწეროთ,

(*) Ewij=Eojojwij.

ამ გამოსახულების მარჯვენა მხარეში მეორე წევრი საკმაოდ ადვილი მისაღებია, ამისთვის ის კიდევ დავშალოთ, ojwij=ojnetjnetjwij. რადგან oj=f(netj), წინა განყოფილებაში ნაჩვენები f(netj)-ის თვისების მიხედვით ojnetj=oj(1oj); ხოლო netj=wikok გამოსახულების ყველა წევრი გვაძლევს ნულს wij-ზე დიფერენცირებისას, გარდა wijoj წევრისა, შესაბამისად netjwij=oi. თუ შევაჯამებთ,

ojwij=oioj(1oj).

(*) განტოლების მარჯვენა მხარეში პირველი წევრი შეიცავს დამოკიდებულებას არქიტექტურულ ნაწილზე. არსობრივად Eoj არის ცდომილების ცვლილების სიდიდე რომელიმე ნეირონის გამომავალი სიგნალის მიმართ. თუ ეს ნეირონი იმყოფება გამომავალ შრეზე, მაშინ ojtj, და გვაქვს

Eoj=(tjyj).

როდესაც ნეირონი იმყოფება შიდა შრეზე, მაშინ მისი გამომავალი სიგნალის ცვლილება იწვევს გამომავალი სიგნალის მნიშვნელობის შეცვლას ყველა გარე შრის ნეირონზეც, რომლებიც თავის მხრივ მოქმედებენ ცდომილების სიდიდეზე, ამიტომ შეგვიძლია წარმოვადგინოთ საძიებელი სიდიდე შემდეგი ჯამის სახით, Eoj=kEokokoj, სადაც აჯამება მიდის k ინდექსით რომელიც შეესაბამება გარე შრის ნეირონებს.