жүйенің логикалық сипаттамасы бойынша жүруі керек, бірақ нейронды желі параметрлерінің және оның логикалық сипаттамасының түзетілуі керек.
Енді эксперимет жасап көрейік.
«Иә-жоқ», «1 - 0» принципі бойынша берілген мәдіметтердің бульдік типін топшыладық. Егер анық сенімді деп түсінетін берілген мәліметтерді алмастырып, жалпылап жіберсек не болады? Немесе қандай да басқа тұрмыста жиі қолданылатын, ықтималдықтар теориясынан хабары жоқ және «толық оқиғалар жиыны» ұғымымен таныс емес өзара бағаларды қолдансақ?
Мысалы, ақпараттың дұрыс берілмеу нәтижесінде станция басшысы паровоз жылдамдығын не 60, не 80 км/сағ деп қабылдауды шешті. Бірақ негізінен 60 шығар!
Компьютерге барып ол А1 = 1, В1 = 0,7, В2 = 0,4 басады. Бұл қандай жағдайға ұқсайды және қандай шешім дұрыс болады? Есептейміз:
(1)
Көрініп тұрғандай қоздырудың максималды шамасына басты шешімді анықтаған R1 нейроны жетті. Бірақ біз аз басымдылықпен R2 шешімін де ескере аламыз. Белгілі формула бойынша математикалық күтімді есептесек:
Логикалық нейронды желінің структуралық негіздемесі
(2)
Біз үйретілген нейрожеліні қарапайым түрде құрылымдадық. Бірақ мұнда ескерілмеген жақтар бар. Егер сызықты қозғалыстары бойынша ғана ерекшеленетін (біз үшін) R1 мен R4 шешімдерін біріктірсек не болады? Сол құрылымыдылау принципі бойынша біз 24 суретіндегі сияқты желіні аламыз.
Сурет 1. Бір қабатты нейрожелінің іске жарамсыздығы
Біз тек R2 мен R3 нейрондарының максималды қоздыруларынталап ететін жағдайды қалыптастырғанда ғана R1 шешімі максималды қозатынын көру оңай. Желі «жанама әсер»
береді. Пайдаланушыға қосымша нұсқама беру керек. Ол мынаны білдіреді, егер шығу қабатының екі нейроны бірдей және максималды қозса және олардың бірі R1 болса, онда екіншісіне сену керек. Егер тек бір R1 нейроны қозса, онда ол дұрыс шешім береді. Бұл жағдайда конъюнкция мен дизъюнкция операцияларын бір & операциясымен алмастырғанда коллизия болды. Себебі R1 шешімінің қоздыруының логикалық предикаты келесідей болады:
(3)
Дәл осы жағдай статикалық тізбектің минималды ұзындығы туралы гипотезаға әкеледі.
Нейрожелі дұрыс жұмыс атқарады, егер оның құрылымы толығымен көрсетілген логикалық өрнектің құрылымын қайталаса. Бірақ ол үшін нейрожелі екі қабатты болу керек. Одан басқа, терең талдау бір (R1) шешіміне әкелетін А1, А2, В1, В2 жалпыланған эталон, басқа шешімдерге әкелетін жалпыланған эталондарды (мысалы, А1, В2) қамтып алғандығын көрсетеді. Онда 25 суретте келтірілген (үйретілген) нейрожеліні, «жасырын» 1 мен 2 нейрондарын енгізу арқылы қарастыруға болады.
Сурет 2. "Дұрыс" үйретіген нейрожелі
Нейрожеліні таңдау, үйрету -трассировка. Біз компьютер құрылғыларын жасайтын әйгілі маман-сұлбатехникашы әдістерін пайдаланып нейрожелі жасадық. Біз ойластырған функцияға сәйкес сигналдардың дұрыс таралуы үшін, тассировка жасап, элементтерді
«тізбекше» байланыстармен біріктірдік. Оның алдында да үйретілген желіні ұалай
(4)
Мұндағы Vi – аксондары осы нейронның дендриттерімен байланысты қоздыру шамалары, i – пайдаланылған дендрит индексі, ωi – синапсикалық байланыс салмағы.
Нейрожеліні үйрету мен салудағы бар фокус, ол синапсикалық салмақтар желідегі қоздырулардың жолын келтіру арқылы реттелетіндігі.
Сонымен, қандай да бағытталған ациклды граф салынған болсын (сурет 3) енді оған нейрон-төбелермен сәйкесендіріп сол жіберу функциясын нейрожелі мағынасына кірістіру керек:
Сурет 3. Үйрету үшін ұсынылған нейрожелі
Қандай әдіспен, шешімдерге сәйкес шығу қабаты нейрондарының қоздырулары максималды болатындай етіп, желіні көрінетін эталондарға жауап қайтаруға ұмтылдыруға болады? Ол үшін алдымен барлық салмақтарды нөлдік (не минималды) деп, кейбір салмақтарды арттырып, максималды салмаққа не бірге дейін жеткізу керек. Ең оңайы осы:
алдымен барлық салмақтар нөлдік («тізбекшелер» бар, олардың кедергілері жоғары болса да). Сосын кейбір салмақтарды бірге тең деп аламыз (оларды таңдау біздің мойнымызда).
Нейрожеліні үйретудің осы амалын трассировка деп атаймыз.
Нейрожеліні компьютермен өңдеу оңайланады, егер, желі ондағы байланыс оның салмағымен белгіленетін S жүру матрицасымен берілсе (сурет 4).
Сурет 4. Жүру матрицасы
1. {A1, B1} R1 нейрондар қоздыруының трассировкасын жасайық.
S матрицасынан бізді қызықтырмайтын кіру және шығу қабатының нейрондарына сәйкес келетін бағандар мен қатарларды алып тастаймыз. Матрица S1 түріне өзгереді сурет 28.
Сурет 5. Бірінші шешімді трассировкалау үшін жүру матрицасы Қоздырудың жүруін келесідей моделдейік.
S1 матрицасы кіруі – нөлдік қатарларға сәйкес келетін нейрондарға «қоздырулы»
белгісін тағайындайық. Осы кірулерге сәйкес бағандарды ерекшелейік. Осы бағандар жиынтығында максималды нөлдері бар бірінші қатарды ерекшелеп аламыз. Ол қатар нейрон 1–ге сәйкес келеді. Нөлдерді бірлермен алмастырамыз (самақтарын арттырамыз), енгізілген өлгерістерді S матрицасында көрсетеміз. S матрицасына баған қосамыз (мысалды қиындатпас үшін біз оны жасаған жоқпыз, бірақ салу нәтижесінде ескердік), оның әр позициясында қатардағы енгізілген бірліктер саны көрсетіледі. Бұл жағдайда, нейрон 1 сәйкес келетін осы бағанның қатарында т1 = 2 деп жазамыз. Бұл амал басқа шешімдерді қабылдауда «қайта қолдану» мүмкіндігіне ие болу үшін қажет. S1 матрицасынан өз қоздыруын беріп жіберген қатарлар мен бағандарды алып тастаймыз. Нейрон 1–ге
«қоздырылған» белгісін тағайындаймыз. S1 матрицасы келесідей өзгереді (сурет 6).
Сурет 7. Жүру матрицасының өзгеру қадамы
Жоғарыда айтылған амалдарды қайталаймыз, ол жалғыз нөлді бірмен алмастырады.
Аралық суретті келтірмей-ақ, А1 1, В1 1, 1 R1 байланыстардың жоғарғы (бірлік) байланысын растадық.
2. Трассировка жасайық {A1, B2} R2.
Қарастырудан A2, B1, R1, R3, R4 нейрондарын алып тастап S2 матрицасын құрастырамыз. (сурет 31).
Сурет 8. Екінші шешімді трассировкалайтын жүру матрицасы
Нейрон 1-ге сәйкес келетін қатарда т1 = 2 болса да, жалғыз бір бар. Осы нейронды қайта қолдануға жарамсыз ретінде қарастырудан алып тастаймыз. S2 матрицасы суреттегідей өзгереді (сурет 9).
Сурет 9. Жүру матрицасының өзгеру қадамы
(Мазмұндау қысқа болу үшін жүру матрицасына оңай енетін транзитивті байланыстарды қарастырмаймыз. Онда біз қарастырудан нейрон 3-ті алып тастауымызға болады, себебі 3 R2 байланысы жоқ) S2 матрицасының кірулеріне «қоздырылған» белгісін тағайындаймыз. Оған сәйкес бағандар арасынан максималды нөлдерден тұратын қатарды тауып аламыз. Ол қатар нейрон 2-ге сәйкес келеді. Ондағы нөлдерді бірлермен алмастырамыз да S матрицасында белгілейміз. т2 = 2 деп ұйғарайық. Нейрон 2-ге
«қоздырылған» белгісін тағайындаймыз да, А1 мен В2 нейрондарын қарастырудан алып
тастаймыз. Қалған қатарлар арасында нейрон 3-ке сәйкес келетін және «қоздырылған»
белгісі жоқ болатын «бос» қатар қалады. Оны да сәйкес бағанымен бірге алып тастаймыз. S2
матрицасы 33 суреттегідей болады.
Сурет 10. Жүру матрицасының өзгеру қадамы
Айқын амалдарды қайталау қалған нөлдерді бірліктермен алмастыруға әкеледі.
Осылайша, осы қадамдағы трассировка нәтижесінде бірлік салмақты A1 2, B2 2, 2 R2 байланыстар пайда болды.
3. {A2, B1} R3 трассировкалау нәтижесінде, салулар схемасын қайталай отыра бірлік салмақты A2 3, B1 3, 3 R3 байланысын табамыз.
4. Ал, {A2, B2} R4 соңғы қозу жолындағы трассировка нәтижесі желі
«қабаттылығынан» тұратын сыйлық әкеледі.
Қатарларында бірлік саны сәйкес т мәнінен кіші болатын нейрондардан бос S4
матрицасын құрастырамыз. Ондай матрица 34 суретінде көрсетілген. Онда ешқандай байланыс мүлде жоқ.
Сурет 11. Төртінші шешімді трассировкалау үшін жүру матрицасы
Оларды бірлік салмақпен енгізу керек. Себебі, біз дағдылануға міндетті емеспіз, ал өзімізге керек желіні жасауға дайынбыз. Біз не істей аламыз – осы желіні қабылдамай итеріп тастап, жаңасын іздеу ме? Көрініп тұрғандай бұл желі үш эталоннан артық эталонды қабылдай алмайды. Осылайша, бірлік салмақтары бар қосымша A2 R4, B2 R4 байланыстарды енгіземіз.
Соңғы үйрелілген желі 12 суретте көрсетілген, онда бірлік салмақты байланыстар ерекшеленген.
Сурет 12. Үйретілген нейрожелі
(5)
Есептеулерден көрінетіндей h = 1 үшін желі шығу қабатының нейрондарының қозуының бірдей шамасын қамтамасыз етіп, барлық эталонды жағдайларды дұрыс таниды.
Осылайша A1&B1 жағдайы кезінде нейрондар қозуының келесі шамаларын аламыз: V1 = 2, V2 = V3 = 0, VR1 = 2, VR2 = VR3 = VR4 = 0. Сол сияқты A1&B2 мен A2&B1 жағдайлары үшін де. A2&B2 жағдайы үшін V1 = V2 = V3 = 0, VR1 = VR2 = VR3 = 0, VR4 = 2. Желі сенімсіз жағдайларға дұрыс әрекет етуді кепілдеп жақсы жұмыс істейді.
Әдебиеттер
1. Агуров П. В. C#. Сборник рецептов. – Санкт-Петербург:БХВ-Петербург, 2007. – 432 б.
2. Головко В.А. Нейроинтеллект: Теория и применения. Книга 2. Самоорганизация, отказоустойчивость и применение нейронных сетей – Брест:БПИ, 1999, - 228б.
3. Горбань А.Н. Обучение нейронных сетей. М.: СССР – США СП «ParaGraph», 1990.
4. Кликс Ф., 1983. Пробуждающееся мышление: Пер с нем. М.: Прогресс, 1983 5. Троелсен. Э. С# и платформа .NET. – Питер, 2004. – 796 б.
6. Лабор В. В. Си Шарп: Создание приложений для Windows. – Минск: Харвест, 2003. – 384 б.
7. Новости искусственного интеллекта, № 1, 1998. Хроника. Научный семинар
"Отражение образного мышления и интуиции специалиста в системах искусственного интеллекта", 22-136 б.