• 10/08/2021

Днес ще продължим към дълбоката невронна мрежа. След като научих как работи дълбоката невронна мрежа за предаване напред, нотация и форма за всеки параметър и отклонение. Време е да комбинираме всички блокове заедно и да видим как изграждаме невронната мрежа от разпространение напред към разпространение назад.

Вече споменахме общото уравнение и векторизираното уравнение за разпространение напред. Доста лесно е да се изгради с for цикъл за повторение на всеки скрит слой. Предполагаме, че a[l-1] ще бъде входът и се оказва a[l] като изход, както следва,

a[l-1] ще бъде въведен и изчислен с w[i]&b[i]. След това получаваме a[l] като изход. В рамките на прогреса ще кешираме z[l] и ще го използваме за обратно разпространение. За обратно разпространение използваме градиентно спускане. Няма да покажа подробното уравнение, тъй като включваше много производни и уравнения. Тъй като ще започнем от функцията Loss, ще вземем da[l] като вход и ще получим da[l-1] до da[1]. Няма да изчисляваме da[0], тъй като няма никакво значение и нашата цел е да търсим dw[l] и db[l] за подобряване на w[l] и b[l]. Ще използваме w=w-α.dw & b=α.db, за да минимизираме загубата и да получим подходящо тегло и отклонение за висока точност и по-добра производителност. α ще бъде скоростта на обучение за мрежата. Обратното разпространение ще изглежда така,

Само си представете, че въвеждате X(a[0]) като вход и той преминава през слой номер m. Получихме краен изход (a[m]) за разпространението напред. След това правим някакво производно и получаваме da[m] и започваме от него за обратното разпространение, докато получим da[1]. В рамките на напредъка получихме много dw & db и можем да ги използваме, за да подобрим стойностите на теглото и отклонението за всеки скрит слой. След това можем да повтаряме целия процес отново и отново, докато няма очевидна промяна както за теглото, така и за отклонението или функцията за загуба. Само не забравяйте, че производната на функцията за активиране трябва да бъде същата като разпространението напред.

Това е, което научих за простата сграда за цялата дълбока невронна мрежа. Другото нещо, което може да ни притеснява относно производителността на невронната мрежа, е хиперпараметърът. Вместо параметъра (W,b), има някои хиперпараметъри, използвани за контролиране на стойността на W и b, като скоростта на обучение (α), брой итерации, брой скрити слоеве (L), брой скрити единици (n [l]) и избор на функция за активиране. Те са доста прости, но няма абсолютен перфектен хиперпараметър за невронна мрежа. Трябва да повторим цялата мрежа, като променим тези хиперпараметри отново и отново, за да получим по-добра производителност или да минимизираме функцията за загуба. Освен това GPU или CPU, които използвахме, може да се променят понякога или след като сте настроили мрежата по най-добрия начин, но може да се промени и след година. Следователно това няма да покрие всички, но също е доста важно.

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

При бързия изкуствен интелект прочетох как можем да използваме MNIST за получаване на данните. Те използваха пример, за да разпознаят числото 3 и 7. От MNIST получихме някои данни за обучение и тестване от базата данни. Мисля, че това е важно и полезно за изследванията и обучението за машинно обучение. Освен това се говори за това как цветът или изображението се представят в пиксели в компютъра. Те ще използват RGB(255) стойност за представяне на всеки пиксел и аз научих как можем да направим това и да го покажем с помощта на панди. Също така, това е първият път, когато знам как работи тензорът, вместо да използвам масив Numpy. Методът, който те предложиха да позволи на компютъра да получи как изглеждат 3 и 7, е, че се опитва да вземе средната стойност за пиксела, като използва функцията стек в pytorch. След това те ще използват MSE или RMSE за сравнение с извадката за тестване. След като пробата за тестване получи по-нисък MSE/RMSE от средното изображение на 3 в сравнение със средното изображение на 7. След това компютърът ще разпознае, че ще бъде число 3 вместо 7. Ще се опитам да го проуча и се надявам да мога да го запиша и да си спомня как всъщност се обработва в рамките на тази седмица.

Надявам се, момчета, да харесате тази тема и моля, уведомете ме, ако съм направил грешки.