Разбиране на невронните мрежи - Прегледът на IA
Подобно на човешкия мозък, който за Федерик Леноар е неизследваният континент на 21 век, изкуственият интелект е неизследвана наука.

Подобно на човешкия мозък, който за Федерик Леноар е неизследваният континент на 21 век, изкуственият интелект е неизследваната наука на 21 век. И сравнението не свършва дотук. Както при човешкия интелект, така и при изкуствения интелект говорим невронни мрежи.
Човешкият мозък е толкова сложен, че дори най-големите невролози не могат да го опишат напълно. Въпреки това, с това, което знаем, можем да изградим нещо страхотно. Технология, на която се основават най-добрите AI днес: изкуствени невронни мрежи.
Тази технология е вдъхновена от функционирането на нервната система на мозъка ни. Биха били необходими стотици страници, за да го разберете в дълбочина, но тъй като сте много добри, няколко думи ще са достатъчни 🙂
От човешки неврони до изкуствени невронни мрежи
Преди да можем да говорим за изкуствени неврони, нека опишем как работи човешкият неврон.
Биологичният неврон е клетка, характеризираща се с няколко компонента. Синапсите са точките на връзка между невроните. Дендритите са входовете за неврона, а аксоните са изходите за други неврони.
Клетъчното тяло е отговорно за активирането на неврона повече или по-малко, в зависимост от електрическата интензивност на възбуждащите сигнали. Това активиране се случва, когато потенциалът за действие на неврона надвиши определен праг, който се нарича „потенциал за активиране“.
Диаграма на човешки неврон
За просто моделиране на биологични неврони, невролозите въвеждат през 40-те години математическото понятие за формален неврон.
Схематично официалният неврон има няколко входа и един изход. Разграничаваме активиращите синапси и инхибиращите синапси.
Математически първоначално предложените неврони са двоични неврони, които имат изход 0 или 1. Този изход се изчислява от неврона, като се използва претеглена сума от неговите входове. След това към тази сума се прилага функция за активиране. Ако резултатът е по-голям от "праг на активиране", изходът ще бъде 1, в противен случай ще бъде 0.
Какво е невронна мрежа ?
В изкуствения интелект невронните мрежи са възли от няколко слоя неврони. Има стотици различни видове невронни мрежи. Принципът винаги е един и същ, архитектурата е различна всеки път.
Архитектурата на невронните мрежи се различава в зависимост от приложението
Най-общо казано, невронните мрежи са набор от неврони, организирани в няколко слоя и свързани помежду си. Първият слой се нарича входен слой, последният изходен слой, а слоевете между тях се наричат скрити слоеве. В зависимост от областта на приложение може да има много голям брой.
Невронни мрежи за класификация
На практика невроните от първия слой ще предават проста информация към невроните от следващия слой. Което ще повлияе на степента им на активиране и т.н. След това последният слой ще ни предостави информация за резултата.
Например, за система за разпознаване на числа, входовете ще бъдат сивите нива на пикселите в изображението. Резултатът ще бъде вероятността дадено число да е въведено като вход. Ако сте въвели изображение, представляващо числото 5, бихте очаквали числото 5 да бъде свързано с по-голяма вероятност. И че останалите цифри са свързани с вероятности, близки до 0.
Фундаментална теорема
Този метод, който се основава на поредица от "прости" операции, може да приближи много сложни функции. McCulloch и Pitts доказаха това, като показаха, че официалната невронна мрежа има същата изчислителна мощ като машината на Тюринг. Отчасти поради това тази технология се утвърди като преобладаващ метод в машинното обучение.
Невронните мрежи проверяват фундаменталната теорема за универсално приближение. Това е, което ни уверява за съществуването на невронна мрежа, която за дадена функция ни дава приближение на тази функция с грешка, толкова малка, колкото искаме. Това е много силен резултат !
На практика всеки неврон има два параметъра - пристрастието и теглото. Следователно идеята е да се намери параметризацията на всички неврони на мрежата, която минимизира разликата между функцията, която искаме да сближим, и функцията, моделирана от мрежата. Съществуването на тази параметризация се извежда от предишната теорема.
За съжаление, за много функции е невъзможно да се намерят параметрите му, вие знаете само, че те съществуват. Биха били необходими гигантски времена за изчисление, за да може да ги намерите.
На практика обучението на невронна мрежа е упражнение за оптимизация
Невронните мрежи са методи на контролирано обучение. Следователно имаме първоначални данни, за които знаем изхода на мрежата.
Работата, която извършваме върху нашите мрежови параметри, има за цел да сведе до минимум разликата между очакваната продукция и действителната продукция (тази, предоставена от невронната мрежа). Това отклонение може да се изчисли чрез грешка с най-малки квадрати или други показатели на грешката, говорим за функция на загубите. Опитваме се да оптимизираме тази функция за загуби. Мрежовото обучение е търсене на пристрастия и тежести, които минимизират функцията на загуба.
В математиката и по-точно в оптимизацията има много методи за минимизиране на функциите. Този, който често се използва, е методът за градиентно спускане. За този метод са необходими изчисления на частични производни на функцията на загубите.