Дълбока рамка за обучение от BAIR

загуба_тегло всички

В Caffe, както и в по-голямата част от машинното обучение, обучението се движи от a загуба функция (известна също като грешка, цена, или обективен функция). Функция за загуба определя целта на обучението чрез картографиране на настройките на параметрите (т.е. текущите мрежови тегла) в скаларна стойност, указваща „лошото“ на тези настройки на параметрите. Следователно целта на обучението е да се намери настройка на тежестите, която минимизира функцията на загуба.

Загубата в Caffe се изчислява чрез Forward pass на мрежата. Всеки слой взема набор от входни (долни) петна и произвежда набор от изходни (горни) петна. Някои от изходите на тези слоеве могат да се използват във функцията за загуби. Типичен избор на функция за загуба за класификационни задачи срещу всеки е функцията SoftmaxWithLoss, използвана в мрежова дефиниция, както следва, например:

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

Загуба на тежести

За мрежи с множество слоеве, произвеждащи загуба (напр. Мрежа, която едновременно класифицира входа, използвайки слой SoftmaxWithLoss, и го реконструира, използвайки слой EuclideanLoss), теглата на загубите могат да се използват за определяне на относителната им важност.

По правило типовете слоеве Caffe с суфикс Loss допринасят за функцията за загуба, но се приема, че други слоеве се използват чисто за междинни изчисления. Всеки слой обаче може да се използва като загуба чрез добавяне на поле loss_weight: към дефиницията на слоя за всяка горна петна, произведена от слоя. Слоевете с наставка Loss имат имплицитна загуба_тегло: 1 за първото горно петно ​​(и загуба_тегло: 0 за всички допълнителни горни s); другите слоеве имат неявна загуба_тегло: 0 за всички топ s. И така, горният слой SoftmaxWithLoss може да бъде еквивалентно написан като:

Въпреки това, на всеки слой, способен да се разпространи обратно, може да бъде дадено ненулево тегло на загуба, което позволява, например, да регулира активирането, произведено от някои междинни слоеве на мрежата, ако е необходимо. За не-единични изходи със свързана ненулева загуба загубата се изчислява просто чрез сумиране на всички записи на blob.

Тогава крайната загуба в Caffe се изчислява чрез сумиране на общата претеглена загуба в мрежата, както в следния псевдокод: