Нейрондық желіні жобалау
Дөңгелек құрттың (нематодтың) миы небәрі 302 нейроннан тұрады, бірақ дәстүрлі компьютерлер шеше алмайтын кейбір міндеттерді ол шешеді. Бұл фактіні білгеннен кейін «нейрондық желіні өзім де құрып көрсем ше?» деген сұрақ туындайды. Бүгін біз оны нақты Excel кестесінде қадам-қадаммен құрамыз.
Нейрон сигнал қабылдап қана қоймайды — ол белгілі бір шекке жеткенше «күтеді» де, содан кейін ғана сигнал шығарады. Бұл эффектіні математикалық түрде қалай көрсетуге болады?
Ең қарапайым жол — қадамдық функция (0 немесе 1). Бірақ табиғатта бәрі бірден «секіріп» өзгермейді, тегіс өзгереді. Сондықтан нейрон модельдерінде сигмоида қолданылады — қадамдық функцияның тегістелген, S-тәрізді нұсқасы:
y = 1 / (1 + e^(−x))
мұндағы x — нейронға кіретін сигналдардың қосындысы, y — нейронның шығыс сигналы (әрқашан 0 мен 1 арасында).
Табиғаттағыдай, әр нейронның алдында және одан кейін бірнеше нейрон тұрады. Мұны модельдеу үшін көпқабатты нейрондық құрылым қолданылады — алдыңғы және кейінгі қабаттар бөлек, әрбір нейрон келесі қабаттың әрбір нейронымен байланысқан. Аралық қабаттар жасырын қабаттар деп аталады.
Берілді: екі кірісі бар (a=1,1 және b=0,6) жасырын қабат түйіні. Байланыс салмақтары: W₁₁=0,8; W₁₂=0,3; W₂₁=0,2; W₂₂=0,8.
Табу керек: екінші қабаттың бірінші және екінші түйінінің шығыс сигналын есепте.
1-түйін: x = a·W11 + b·W21 = 1,1·0,8 + 0,6·0,2 = 1 y = 1/(1+e⁻¹) = 0,7310 2-түйін: x = a·W12 + b·W22 = 1,1·0,3 + 0,6·0,8 = 0,81 y = 1/(1+e⁻⁰·⁸¹) = 0,6921
Жауабы: бірінші түйіннің шығысы — 0,7310; екінші түйіннің шығысы — 0,6921.
Мұндай есептеулерді қолмен жасаудың орнына арнайы бағдарламалар — нейропакеттер (NeuroSolutions, BrainMaker Pro, Нейросимулятор 5.0) қолданылады. Олар үш алгоритм тобымен оқытады: градиенттік (қате функциясының туындысы бойынша), стохастикалық (кездейсоқ іздеу), генетикалық (екеуінің қасиетін біріктіреді).
Теорияны білдік, ал енді өз қолыңмен нейрон құрсаң ше? Оны бағдарламалау тілінсіз-ақ, тек Excel формулаларымен жасауға болады.
Персептрон — жасанды нейрон желілерінің қарапайым түрі; қабылдау, танып-білу процесін модельдейтін құрылғы (датчиктер, ассоциативтік және реакциялық элементтерден тұрады).
Берілді: нейрон екі кіріске ие (тәтті ме, суық па). Тапсырма — нейронды 4 тағамды («Ештеңе», «Шоколад», «Тұз», «Балмұздақ») ұнату/ұнатпауды ажыратуға үйрету.
| Тағам | S1 | S2 | Күтілетін нәтиже |
|---|---|---|---|
| Ештеңе | 0 | 0 | 0 |
| Шоколад | 0 | 1 | 0 |
| Тұз | 1 | 0 | 0 |
| Балмұздақ | 1 | 1 | 1 |
Шешуі:
1. Қосынды формуласы =B1*B2+D1*D2, ЕГЕР функциясы =ЕГЕР(C3>=C4;1;0) — шығыс осы жерде шығады.
2. Қате есептеледі: қате (e) = күтілетін жауап (d) − нақты жауап (o).
3. Салмаққа қосылатын түзету — Delta Weight: DwX = LR · e · X (LR — оқыту жылдамдығы, 0,01–0,5 аралығында таңдалады).
4. Жаңа салмақ: ескісіне DwX қосылады, Excel-де итеративті есептеулерді қосу арқылы циклдік формула жұмыс істейді.
5. Кіріс мәндерін 4 деп кезекпен өзгертіп, «Қайта есептеу» батырмасын басып, қате нөлге тең болғанша салмақты жаңартамыз.
Неге бірнеше рет қайталау керек? Бір рет есептеу жеткіліксіз — нейрон әр тағам үшін қатесін көріп, салмақты СЕКІРІП емес, БІРТІНДЕП дұрыс мәнге жақындатады.
Жауабы: бірнеше қайталаудан кейін нейрон салмақтары барлық 4 тағам үшін кестедегі күтілетін нәтижемен дәл сәйкес келетін мәнге жетеді.
Персептроннан бөлек, жіктеу есептерін шешуге арналған тағы бір желі түрі бар — радиалды-базистік функциялар (RBF) желісі. Оның ерекшелігі — оған арнайы оқыту қажет емес, себебі нейрон саны мен салмағы үйретілетін мәліметтермен бірге беріледі.
Жасырын қабаттың әрбір нейроны белсендіру функциясын есептейді:
φⱼ = e^(−(Σwᵢⱼ·xᵢ − 1)/σ²)
мұндағы σ — белсендіру функциясының параметрі, оны өзгерту арқылы желінің «қорытындылау» қабілетіне әсер етуге болады.
Берілді: 19 вектор-үлгіден тұратын оқыту іріктелімі (x₁, x₂ белгілерімен, үш класқа бөлінген). Белгісіз үлгі: x₁=4,5, x₂=3.
Шешуі: 1) Евклид қашықтығы |x| = √(x₁²+x₂²) есептеледі (Excel-де ТҮБІР функциясымен); 2) координаталар мөлшерленеді; 3) φⱼ белсендіру функциясы ЕХР функциясымен есептеледі; 4) СУММЕСЛИ функциясы әр класс бойынша Σφ қосындысын табады: 1-класс Σφ=0,17; 2-класс Σφ=0,51; 3-класс Σφ=0,00; 5) ПОИСКПОЗ пен СМЕЩ функциялары ең үлкен Σφ бар класты табады.
Жауабы: белгісіз үлгі — 2-класс (Σφ=0,51 ең үлкені).
- Сигмоида — қадамдық функцияның тегістелген нұсқасы, y = 1/(1+e⁻ˣ), нейрон шешімін модельдейді.
- Персептронды Excel-де LR·e·X (Delta Weight) формуласы арқылы қайталап оқытуға болады.
- RBF желісі жіктеу есебін шешеді, арнайы оқыту қажет емес, Евклид қашықтығына негізделеді.
- Нейропакеттер (градиенттік/стохастикалық/генетикалық алгоритммен) күрделі желілерді автоматты оқытады.