Нейро тармак, жасалма интеллект иштөө негизи


Нейро тармактын иштөө принциби

Достор нейро тармак же жасалма интеллект деп көп эле угуп жүрсөңөр керек? А бирок бул эмне? Анын иштөө принциптери кандай? Ушул макалада түшүндүрүп берейин. Программалоо тилинен алыс адамдарга жасалма интеллект татаал деген мифти жокко чыгаралы. Машиналык үйрөнүүнүн дээрлик көбү өтө жөнөкөй жана оңой принциптерде куралат. Анда баштайлы.

Нейро тармактын эң базалык мисалын карап чыгалы, булар – перцептрондор. Мындан мен нейро тармактардын кандай иштешин түшүндүм, эгер Сиздерге жашылап түшүндүрүп берсем, силер дагы оңой эле түшүнүп аласыңар деген ойдомун. Эсинерден чыгарбагыла! Бул жерде эч кандай сыйкыр жок, 4-5 класстагы окуучунун деңгээлиндеги жөнөкөй математика сабагындагы эсептер.

Бизде үч түрдүү бинардык шарт (жок же бар шарт) бар деп эсептейли жана натыйжа берүүчү бир бинардык чечим (жок же бар)

Үч киргизүү жана бир чыгаруудан турган жөнөкөй модель. Бул модель, нейро тармактын кандай үйрөтүлгөнүнө жараша, бардык адамдар үчүн ар түрдүү иштеп, ар түрдүү натыйжаларды берет. Бирок нейро тармак деген эмне? Бул жөн гана бири-бири менен байланышы бар, өзүнчө турган блоктор – нейрондор. Келгиле 3 нейрондон турган жөнөкөй нейро тармакты түзөлү.

Киргизүү жана чыгаруунун ортосундагы тегерекчелер, нейрондор. Азырынча алар эч нерсе менен байланышы жок, бирок бул алардын башкы өзгөчөлүгүн чагылдырат – бул алардын абстракттуулугу. Башкача айтканда нейрондор эч кандай чечим кабыл албайт, эч нерсени эсептебейт. Азырынча эстеп алгыла, нейрондор ирээттөө жана адам концептин жөнөкөйлөтүүдөн башка эч нерсе кылбайт. Эми нейротармактын эң маанилүү бөлүгүн тарталы – бул байланыштар.

Мына сага, роботтун мээсине же кандайдыр бир жасалма интеллектке окшоп калды. Эми катуу ойлонуп, татаал эсептерди чыгарабыз дагы, чачыбыз бир топ агарып, анан нейро тармак иштейт, ошондойбу? Андай эмес, көрсө бардыгы ойлогондон дагы жөнөкөй экен.

Ар бир киргизүүчү мааниге ээ болот экен: 0 же 1, жок же бар. Келгиле бул маанилерди киргизүүчүлөргө кошолу, биз дүкөнгө барбайбыз, ооба иштеп акча табабыз, ооба карызды беребиз деп эсептейли.

Муну чечишип алдык. Эми эмне кылабыз? Ушул жерден кызыктын баары башталат. Нейрондордун баштапкы абалын коюуунун эң эски, рандом (кечиргиле, рандомный деген сөздүн кыргызчасын билбедим) ыкмасын колдонолу.

Коюлган сандар бул байланыштардын салмагы. Эсиңердеби, нейрондор эч нерсе кылбайт деген? Байланыштар нейро тармактын түзүүчүлөрү. Байланыштардын салмагы деген эмне? Булар биз киргизген маанилерге көбөйтүп, убактылуу бош нейрондордо сакталуучу нерселер. Чындыгында сакталбайт, бирок ыңгалуулук үчүн нейрондорго салып койсо болот деп ойлойлу.

Математика кандай экен? Сандарды көбөйтө алдыңызбы? Шашпагыла, эң татаалы алдыда! Эми бир маанилерди кошобуз (перцептрондордун бир ишке ашыруусунда)

Мына… бүттү! Нейро тармак түзүлдү, а силер мунун каалаган керектөөңүз үчүн колдонсоңуз болот. Эгер сумма 0,5тен көп болсо, анда смартфон сатып алышыбыз керек. Эгер аз же барабар болсо, смартфон албайбыз.

Албетте, бул моделдин пайдасы жокко эсе, биз аны (ойлонууга деп айтпай эле коеюн) үйрөтүшүбүз керек. “Нейрондорду үйрөтүү” коркунучтуу фраза экен, туурабы? Туура эмес! Бардыгы ийне-жиптей жөнөкөй. Киргизүүдө кокус (случайный, мунун да кыргызчасын билбейт экенмин) маалыматтарды алабыз, үч нейрон аркылуу өткөрөбүз, жообун карайбыз – мейли жообу оң болсун (смартфон сатып алабыз), андан соң нейрон жоопту туура таптыбы текшеребиз. Эгер туура болсо – эч нерсе кылбайбыз. Эгер туура эмес болсо, нейрондордун салмагын кичине каалаган жакка жылдырабыз (бирден же үчөөнү тең). Мисалы, мындай:

Анан кайра текшеребиз, менин смартфонум бар да, дагы бирди албайм дейт жасалма интеллект. Иии, ошондойбу, анда мына сага деп салмакты дагы кичине жылдарабыз. Маанини кайра киргизип, нейрондор аркылуу өткөрөбүз, текшеребиз. Ошентип миллион, триллион жолу түрдүү маанилерди киргизип кайталайбыз. Албетте, бул жерде бизде 8 комбинация гана эле, тапшырмалар болсо ар түрдүү болот эмеспи (ал жөнүндө төмөндө айтып беребиз).

Нейро тармактардын негизги иштөө принциби ушундай. Дифференциация үчүн көбөйтүүнүн зарыл экени, перцептрондун иштөөсүн түшүнүү чырмалышкан тармактарды, рекурсивдик нейрондорду түзүүдө жана башка ушул сыяктуу балээни жасоодо керек.

Натыйжада, нейрон тармакты кайсы бир адам кабыл алган чечимге миллиард жолу өткөрүп, мүмкүн болгон нейрондордун салмактарын киргизип үйрөтүү менен алтын ортосуна же тең салмактуулукка келебиз. Мында адам болгон 3 баштапкы маанини киргизет, ал эми машина аны стабилдүү 3 нейрондор аркылуу өткөрүп отуруп жооп берет.

Белгисиз нерселердин жападан жалгызы бул жерде нейро байланыштардын салмактары болгон, жана дал ошолорду биз алып отурдук. Ошондуктан нейрондор эч нерсе чече албаган жок нерсе, ал эми байланыш салмактар эң маанилүү көпөстөр деп койсок да болот.

Андан кийики кадам, андан дагы жөнөкөй, бир катмардагы нейрондордун ордуна эки катмар жасайбыз да, ошол эле айтылган негизде эсептейбиз, же өткөрөбүз. Мында бир гана нерсе, нейрондор маанини экинчи катмардагы нейрондорго берет. Эгер башында 3 байланыш болсо эми 3 + 9 байланыш, салмактары менен. Анан үч, төрт катмар, рекурсивдик катмарлар, өзүнө-өзү циклденген жана башка ушул сыяктуу шумдуктар. Адамдын фантазиясы менен гана чектелет.

Мындай оңой болсо, а эмне үчүн машина үйрөтүү адистерине ушунчалык чоң акчалар төлөнөт? Кеп айтылган перцепторлорду ишке ашыруунун түрүндө, бул жаатта ушунчалык нюанстар көп болуп, аларды атап чыгуунун өзү эле өтө татаал.

Эгер киргизүүдө күчүктөрдүн жана мышыктардын сүрөттөрү болсо, жана аларды өз түрүнө бөлүп чыгуу талабы турса, 1000х1000 өлчөмүндөгү сүрөттүн ар бир пикселин не деген нейрондордон өткөрүп чыгуу керек. Ал үчүн чырмалышкан тармактар бар. Ал өзүнүн айланасындагы жакын жайгашкан 9 пикселди алып, RGB маанилерин орточолойт. Башкача айтканда сүрөттү тез эсептөө максатында кысат. Же кээ бир түстөрдөн бөлүп алат, мисалы көк түстү алып салат дагы сары түстү калтырат (мисалы мандариндерди эсептөөдө). Чырмалышкан тармактар нейрондордун маани киргизүүдөгү кошумча катмары, алар маанини нейро тармакка түшүнүктүү жана жөнөкөй түрүнө келтирет.

Маани салмактарын кайсыл жакка жана канчага жылдырууну түшүнүү маанилүү. Бул үчүн каталарды аягынан эсептөөчү түшүнүүгө оңой алгоритмдер бар. Мисалы: натыйжанын оң жагынан солду карай (нейрондун биринчи катмарына чейин). Мындай алгоритмдердин бири Back Propagation аталат.

Андан тышкары, маанилерди нормалдаштыруу үчүн өтө жөнөкөй алгоритмдер бар. Мисалы: маани киргизүүдө же кошуунун ортосунда 0дөн 1млнго чейин эмес, 0дөн 1ге чейин сандар чыга турган. Мындай ыкма эсептерди кыйла жеңилдетет.

Өзүңөр түшүнгөндөй эле машиналык акылды үйрөтүүдөгү чыныгы профессионалдар, оптималдаштырылган нейро тармактарды түзүүдө көптөгөн ыкмаларды билбестен, өзүнүн дагы ыкмаларын ойлоп чыгарууда. Нейрон тармактын фундаменталдуу түшүнүгү ушундай.

105 Бул ким, ал эмне 2020-01-15

Маалыматка пикир жазуу үчүн сайтка кириңиз же катталыңыз.