Изкуствени невронни мрежи с прости думи

  • мозък
  • Когато на бутилка бира започнах да говоря за невронни мрежи, хората обикновено започваха да ме гледат уплашено, ставаха тъжни, понякога очите им започваха да потрепват, а в крайни случаи пълзяха под масата. Но всъщност тези мрежи са прости и интуитивни. Да Да точно! И нека ви го докажа!

    Да кажем, че знам две неща за едно момиче - дали ме харесва или не, а също и дали имам какво да говоря с нея. Ако има, тогава ще го считаме за единица, ако не, тогава - нула. Приемаме подобен принцип за външен вид. Въпрос: „В кое момиче ще се влюбя и защо?“


    Можете да мислите просто и безкомпромисно: „Ако си хубава и има за какво да говорим, тогава ще се влюбя. Ако не е нито едно от двете, оставете го."



    Но какво ще стане, ако дамата е хубава за мен, но няма какво да говоря с нея? Или обратното?


    Ясно е, че за всеки от нас едно нещо ще бъде по-важно. По-точно, всеки параметър има своето ниво на важност или по-скоро своята тежест. Ако умножим параметъра по неговата тежест, получаваме съответно „влиянието на външния вид“ и „влиянието на приказливостта на разговора“.


    И сега, с чиста съвест, мога да отговоря на собствения си въпрос:


    „Ако влиянието на харизмата и влиянието на приказливостта като цяло е по-голямо от стойността на „любовността“, тогава ще се влюбя ...“



    Тоест, ако придавам голяма тежест на „приказливостта“ на една дама и малка тежест на външния вид, тогава в противоречива ситуация ще се влюбя в човек, с когото е приятно да разговаряте. И обратно.



    Всъщност това правило е неврон.


    Изкуственият неврон е функция, която трансформира множество входни факти в един изход.Чрез регулиране на теглата на тези факти, както и на прага на възбуждане, ние регулираме адекватността на неврона. По принцип за мнозина науката за живота свършва на това ниво, но тази история не е за нас, нали?


    Нека направим още изводи:

    • Ако и двете килограми са малки, тогава ще ми е трудно да се влюбя в някого.
    • Ако и двете тежести са прекалено големи, тогава ще се влюбя в поне кол.
    • Можете също да ме накарате да се влюбя в кол, като намалите прага на влюбеност, но моля ви, не ми причинявайте това! Нека просто забравим за него засега, става ли?

    Говорейки за праг

    Смешно е, но параметърът „любовност“ се нарича „праг на възбуда“. Но, за да не получи тази статия оценка „18+“, нека се съгласим да кажем просто „праг“, нали?

    Невронна мрежа

    Няма уникално привлекателни и недвусмислено общителни дами. Да, и влюбването е различно, каквото и да казва някой. Затова вместо бруталните и безкомпромисни "0" и "1", нека използваме проценти. Тогава можете да кажете - „Много съм влюбен (80%) или „тази дама не е много приказлива (20%)“.


    Нашият примитивен „неврон-максималист“ от първата част вече не ни подхожда. Той се заменя с „мъдрец неврон“, резултатът от който ще бъде число от 0 до 1, в зависимост от входните данни.



    „Невронният мъдрец“ може да ни каже: „тази дама е доста красива, но не знам за какво да говоря с нея, така че не й се възхищавам наистина“



    Малко терминология

    Между другото, входните факти на неврон се наричат ​​синапси, а изходната преценка се нарича аксон. Връзките с положително тегло се наричат ​​възбуждащи, а тези с отрицателно тегло - инхибиращи. Ако теглото е равно на нула, тогава се счита, че няма връзка (мъртва връзка).


    Да отидем по-нататък. Нека направим още една оценка въз основа на тези два факта: колко е добре да работиш (сътрудничиш) с такова момиче? Ще действаме по абсолютно същия начин - добавяме мъдър неврон и настройваме тежестите по удобен за нас начин.


    Но да съдиш едно момиче по две характеристики е много грубо. Да я съдим с три! Да добавим още един факт – парите. Която ще варира от нула (абсолютно бедна) до единица (дъщерята на Рокфелер). Нека да видим как нашите преценки ще се променят с появата на парите....


    За себе си реших, че от гледна точка на чар парите не са много важни, но шикозният външен вид все още може да ми повлияе, защото ще направя тежестта на парите малка, но положителна.


    В работата абсолютно не ме интересува колко пари има момичето, така че ще направя тежестта равна на нула.



    Да оценяваш едно момиче само по работа и влюбване е много глупаво. Нека добавим колко приятно ще бъде да пътуваме с нея:

    • Харизмата в тази задача е неутрална (нулево или ниско тегло).
    • Приказливостта ще ни помогне (положително тегло).
    • Когато парите за истинско пътуване свършат, започва истинското желание, така че ще направя тежестта на парите леко отрицателна.

    Нека комбинираме всичките тези три схеми в една и да открием, че сме преминали към по-дълбоко ниво на преценка, а именно: от харизма, пари и приказливост към възхищение, сътрудничество и комфорт от пътуването заедно. И забележете - това също са сигнали от нула до единица. И така, сега мога да добавя последния „неврон-максималист“ и да го оставя недвусмислено да отговори на въпроса - „омъжи се или не“?



    Добре, разбира се, не всичко е толкова просто (по отношение на жените). Нека внесем малко драма и реалност в нашия прост и преливащ се свят. Първо, нека направим неврона "ожени се - не се ожени" мъдър. Всеки има съмнения, по един или друг начин. И още нещо – нека добавим неврона „Искам деца от нея“ и, за да сме напълно честни, неврона „стой далеч от нея“.


    Нищо не разбирам от жени и затова примитивната ми мрежа сега изглежда като снимката в началото на статията.


    Входните преценки се наричат ​​„входен слой“, крайните преценки се наричат ​​„изходен слой“, а този, който е скрит в средата, се нарича „скрит“. Скритият слой са моите преценки, полуфабрикати, мисли, за които никой не знае. Може да има няколко скрити слоя или да няма нито един.

    Долу максимализма.

    Помните ли, говорих за отрицателното въздействие на парите върху желанието ми да пътувам с човек? И така - излъгах се. Пътуването е най-подходящо за човек, който има не малко и не много пари. Много ми е интересно и няма да обяснявам защо.


    Но тук се натъквам на проблем:


    Ако поставя тежестта на парите отрицателна, тогава колкото по-малко пари, толкова по-добре за пътуване.
    Ако е положителен, тогава колкото по-богат - толкова по-добре,
    Ако е нула - тогава парите са „отстрани“.


    При мен не работи така, с една тежест, да принудя неврона да разпознае ситуацията „нито повече, нито по-малко“!


    За да заобиколя това, ще направя два неврона - „много пари“ и „малко пари“, и ще ги захранвам с паричен поток от нашата дама.


    Сега имам две преценки: "много" и "малко". Ако и двете заключения са незначителни, тогава буквално ще се окаже „нито повече, нито по-малко“. Тоест, нека добавим още един неврон към изхода с отрицателни тегла:



    "Не много." Червени стрелки - положителни връзки, сини - отрицателни


    Като цяло това означава, че невроните са подобни на елементите на конструктора. Точно както процесорът е направен от транзистори, можем да сглобим мозък от неврони. Например, преценката „Или богат, или умен“ може да се направи по следния начин:



    Или или. Червени стрелки - положителни връзки, сини - отрицателни




    можем да заменим „мъдрите“ неврони с „максималистите“ и тогава получаваме логическия XOR оператор. Основното нещо - не забравяйте да регулирате праговете на възбуждане.


    За разлика от транзисторите и безкомпромисната ако-тогава логика на типичен програмист, невронната мрежа може да взема информирани решения. Техните резултати ще се променят плавно, с плавна промяна на входните параметри. Това е мъдрост!


    Бих искал да обърна внимание на факта, че добавянето на слой от два неврона позволи на неврона „нито повече, нито по-малко“ да направи по-сложна и балансирана преценка, да премине на ново ниво на логика. От „много“ или „малко“ - до компромисно решение, до по-дълбока, от философска гледна точка, преценка. Ами ако добавим още скрити слоеве? Можем да мислим за тази проста мрежа, но какво да кажем за мрежата, която има 7 слоя? Способни ли сме да проумеем дълбочината на нейните преценки? Ами ако във всеки от тях има около хиляда неврона, включително входния? На какво мислите, че е способна?


    Представете си, че продължих да усложнявам примера си за брак и влюбване и стигнах до такава мрежа. Някъде в него са скрити всичките ни девет неврона и това вече прилича повече на истината. С цялото желание е просто невъзможно да се разберат всички зависимости и дълбочината на преценките на такава мрежа. За мен преминаването от мрежа 3х3 към 7х1000 е съпоставимо с осъзнаването на мащаба, ако не на Вселената, то на галактиката - спрямо ръста ми. Просто казано, не мога да го направя. Решението на такава мрежа, светещият изход на един от нейните неврони, ще бъде необяснимо от логиката. Това е, което в ежедневието можем да наречем "интуиция" (поне - "една от .."). Неразбираемо желание на системата или нейният намек.


    Но, за разлика от нашия синтетичен пример 3x3, където всеки неврон от скрития слой е доста ясно формализиран, в реална мрежа това не е непременно така. В една добре настроена мрежа, чийто размер не е прекомерен за решаване на задачата, всеки неврон ще открие някаква характеристика, но това абсолютно не означава, че в нашия език има дума или изречение, което може да го опише. Ако се проектира върху човек, тогава това е някаква негова характеристика, която чувствате, но не можете да обясните с думи.

    образование.

    Няколко реда по-рано споменах една добре настроена мрежа, което вероятно провокира мълчалив въпрос: „Как можем да създадем мрежа, състояща се от няколко хиляди неврони? Колко „човекогодини” и загубени животи са необходими за това?.. Страх ме е да позная отговора на последния въпрос. Много по-добре е да автоматизирате такъв процес на конфигуриране - да принудите мрежата да се конфигурира сама. Този процес на автоматизация се нарича обучение. И за да дам повърхностна представа за това, ще се върна към първоначалната метафора за „много важен въпрос“:


    Ние се появяваме в този свят с чист, невинен мозък и невронна мрежа, която абсолютно не е настроена за дамите. Трябва да бъде правилно конфигуриран по някакъв начин, така че щастието и радостта да дойдат в нашия дом. За да направим това, имаме нужда от опит и има няколко начина да го придобием:


    1) Обучение с учител (за романтици). Вижте достатъчно холивудски мелодрами и прочетете много сълзливи романи. Или погледнете родителите и/или приятелите си. След това, в зависимост от извадката, преминете към проверка на получените знания. След неуспешен опит - да повторя всичко отначало, започвайки с романи.


    2) Учене без учител (за отчаяни експериментатори). Опитайте метода „мушкане“, за да се ожените за дузина или две жени. След всеки брак да си чешеш ряпата в недоумение. Повтаряйте, докато осъзнаете, че сте уморени и „вече знаете как се случва“.


    3) Учене без учител, вариант 2 (пътят на отчаяните оптимисти). Забравете за всичко, направете нещо в живота и един ден се омъжете. След това преконфигурирайте мрежата си в съответствие с текущата реалност, така че всичко да подхожда.



    Всичко по-горе е вярно за изкуствена невронна мрежа от типа "перцептрон". Останалите мрежи са сходни по основни принципи, но имат свои собствени нюанси.


    Успех с тежестите и страхотни тренировъчни примери! Е, ако това вече не е необходимо, кажете на някой друг за това.



    Теглата на моята невронна мрежа не са конфигурирани и по никакъв начин не мога да разбера към кой ресурс трябва да се отнася тази статия.

    В анкетата могат да участват само регистрирани потребители. Влез Моля.