Neuronová síť kapslí - Capsule neural network
A Neuronová síť kapslí (CapsNet) je systém strojového učení, který je typem umělá neuronová síť (ANN), které lze použít k lepšímu modelování hierarchických vztahů. Tento přístup je pokusem o bližší napodobení biologické neurální organizace.[1]
Cílem je přidat struktury zvané „tobolky“ do a konvoluční neuronová síť (CNN) a znovu použít výstup z několika z těchto tobolek, aby vytvořily stabilnější (s ohledem na různé poruchy) reprezentace vyšších tobolek.[2] Výstupem je vektor skládající se z pravděpodobnost pozorování a představují pro toto pozorování. Tento vektor je podobný tomu, co se děje například při provádění klasifikace s lokalizací v CNN.
Mezi další výhody patří kapsle, které se zabývají „problémem Picassa“ v rozpoznávání obrázků: obrázky, které mají všechny správné části, ale které nejsou ve správném prostorovém vztahu (např. V „obličeji“ se mění pozice úst a jednoho oka ). Pro rozpoznávání obrázků využívají kapslové sítě skutečnost, že zatímco změny pohledu mají nelineární efekty na úrovni pixelů, mají lineární efekty na úrovni části / objektu.[3] To lze přirovnat k invertování vykreslení objektu z více částí.[4]
Dějiny
V roce 2000 Geoffrey Hinton et al. popsal zobrazovací systém, který kombinoval segmentace a rozpoznávání do jednoho odvozovacího procesu pomocí analyzovat stromy. Tzv. Sítě důvěryhodnosti popsaly společné rozdělení přes latentní proměnné a přes možné parse stromy. Tento systém se ukázal jako užitečný pro MNIST ručně psaná databáze číslic.[4]
Mechanismus dynamického směrování pro kapslové sítě zavedl Hinton a jeho tým v roce 2017. Tvrdilo se, že tento přístup snižuje chybovost na MNIST a zmenšit velikost tréninkové sady. Výsledky byly prohlášeny za výrazně lepší než CNN na vysoce překrývajících se číslicích.[1]
V Hintonově původním nápadu by jeden miniko sloupec představoval a detekoval jednu vícerozměrnou entitu.[5][poznámka 1]
Transformace
An neměnný je vlastnost objektu, která se nemění v důsledku nějaké transformace. Například oblast kruhu se nezmění, pokud je kruh posunut doleva.
Neformálně, an ekvivariant je vlastnost, která se při transformaci předvídatelně mění. Například střed kruhu se při posunutí pohybuje o stejnou částku jako kruh.[6]
Nonequivariant je vlastnost, jejíž hodnota se při transformaci předvídatelně nezmění. Například transformace kruhu na elipsu znamená, že jeho obvod již nelze vypočítat jako π krát průměr.
V počítačovém vidění se očekává, že třída objektu bude neměnná během mnoha transformací. Tj. Kočka je stále kočkou, pokud je posunutá, obrácená vzhůru nohama nebo zmenšená. Mnoho dalších vlastností je však místo toho ekvivalentních. Objem kočky se mění, když je zmenšen.
Ekvivariantní vlastnosti, jako je prostorový vztah, jsou zachyceny v a pózadata popisující objekt překlad, otáčení, měřítko a odraz. Překlad je změna umístění v jedné nebo více dimenzích. Rotace je změna orientace. Měřítko je změna velikosti. Odraz je zrcadlový obraz.[1]
Bez dozoru capsnets se učí globálně lineární potrubí mezi objektem a jeho pózou jako matice vah. Jinými slovy, kapsle mohou identifikovat objekt nezávisle na jeho póze, než aby se museli naučit rozpoznávat objekt a zároveň zahrnout jeho prostorové vztahy jako součást objektu. V kapsách může póza obsahovat jiné vlastnosti než prostorové vztahy, např. Barvu (kočky mohou mít různé barvy).
Vynásobením objektu rozdělovačem se získá objekt (pro objekt v prostoru).[7]
Sdružování
Kapsety odmítají sdružovací vrstva strategie konvenčních CNN, která snižuje množství detailů, které mají být zpracovány v další vyšší vrstvě. Sdružování umožňuje určitý stupeň translační invariance (dokáže rozpoznat stejný objekt na poněkud jiném místě) a umožňuje reprezentaci většího počtu typů prvků. Navrhovatelé Capsnet tvrdí, že sdružování:[1]
- porušuje vnímání biologického tvaru tím, že nemá žádný vlastní souřadnicový rámec;
- poskytuje invariance (vyřazení pozičních informací) namísto ekvivariance (rozdělení těchto informací);
- ignoruje lineární potrubí, které je základem mnoha variací mezi obrázky;
- namísto sdělování potenciálního „nálezu“ funkci, která ji dokáže ocenit, směruje staticky;
- poškodí blízké detektory funkcí odstraněním informací, na které spoléhají.
Kapsle
Kapsle je sada neuronů, které se jednotlivě aktivují pro různé vlastnosti typu objektu, jako je poloha, velikost a odstín. Formálně je kapsle sada neuronů, které společně produkují vektor aktivity s jedním prvkem pro každý neuron, který udržuje hodnotu instance neuronu (např. odstín).[1] Grafické programy používají k vykreslení objektu hodnotu instance. Kapsety se je snaží odvodit ze svého vstupu. Pravděpodobnost přítomnosti entity na konkrétním vstupu je délka vektoru, zatímco orientace vektoru kvantifikuje vlastnosti kapsle.[1][3]
Umělé neurony tradičně vydávají skalární aktivaci se skutečnou hodnotou, která volně představuje pravděpodobnost pozorování. Capsnets nahrazují detektory funkcí skalárního výstupu kapslemi s vektorovým výstupem a max-pooling s routing-by-agreement.[1]
Vzhledem k tomu, že kapsle jsou nezávislé, je-li více tobolek shodných, je pravděpodobnost správné detekce mnohem vyšší. Minimální shluk dvou tobolek, který uvažuje o šestrozměrné entitě, by souhlasil do 10% náhodou pouze jednou z milionu pokusů. Jak se počet dimenzí zvyšuje, pravděpodobnost náhodného souhlasu napříč větším klastrem s vyššími dimenzemi exponenciálně klesá.[1]
Kapsle ve vyšších vrstvách přijímají výstupy z kapslí ve spodních vrstvách a přijímají ty, jejichž výstupy se shlukují. Shluk způsobí, že vyšší kapsle vyprodukuje vysokou pravděpodobnost pozorování, že je přítomna entita, a také vyprodukuje vysoko-dimenzionální (20-50 +) pózu.[1]
Kapsle vyšší úrovně ignorují odlehlé hodnoty a soustředí se na shluky. To je podobné jako Hough transformace, RHT a RANSAC od klasiky digitální zpracování obrazu.[1]
Směrování po dohodě
Výstupy z jedné tobolky (dítě) jsou směrovány do tobolek v další vrstvě (rodič) podle schopnosti dítěte předvídat výstupy rodičů. V průběhu několika iterací se výstupy každého rodiče mohou sblížit s předpovědi některých dětí a odchýlit se od předpovědí ostatních, což znamená, že daný rodič je na scéně přítomen nebo chybí.[1]
Pro každého možného rodiče každé dítě vypočítá vektor predikce vynásobením jeho výstupu váhovou maticí (trénovanou uživatelem zpětná propagace ).[3] Dále je výstup nadřazeného prvku vypočítán jako skalární součin predikce s koeficientem představujícím pravděpodobnost, že toto dítě patří tomuto rodiči. Dítě, jehož předpovědi jsou relativně blízké výslednému výstupu, postupně zvyšuje koeficient mezi tímto rodičem a dítětem a snižuje jej u rodičů, které se mu méně dobře shodují. Tím se zvyšuje příspěvek, který dané dítě přispívá tomuto rodiči, čímž se zvyšuje skalární součin predikce kapsle s výstupem rodiče. Po několika iteracích koeficienty silně spojí rodiče s jeho nejpravděpodobnějšími dětmi, což naznačuje, že přítomnost dětí znamená přítomnost rodiče ve scéně.[1] Čím více dětí, jejichž předpovědi se blíží výstupu rodičů, tím rychleji rostou koeficienty, což vede ke konvergenci. Póza rodiče (odráží se v jeho výstupu) se postupně stává kompatibilní s pózou jejích dětí.[3]
Počáteční logity koeficientů jsou pravděpodobnosti předchozího protokolu, že dítě patří rodiči. Předkové mohou být trénováni diskriminačně spolu s váhami. Prior závisí na umístění a typu kapslí dítěte a rodiče, ale ne na aktuálním vstupu. Při každé iteraci se koeficienty upravují pomocí „směrování“ softmax takže pokračují v součtu 1 (k vyjádření pravděpodobnosti, že daná tobolka je rodičem daného dítěte.) Softmax zesiluje větší hodnoty a snižuje menší hodnoty nad jejich podíl na celkovém počtu. Podobně pravděpodobnost, že je ve vstupu přítomna nějaká vlastnost, je zveličena nelineární funkcí „squashing“, která snižuje hodnoty (menší drasticky a větší tak, že jsou menší než 1).[3]
Tento mechanismus dynamického směrování poskytuje nezbytné zastarání alternativ („vysvětlení“), které jsou potřebné pro segmentaci překrývajících se objektů.
Toto naučené směrování signálů nemá jasný biologický ekvivalent. Některé operace lze nalézt v kortikálních vrstvách, ale zdá se, že tuto techniku nesouvisí.
Matematika / kód
Póza vektor se otáčí a překládá maticí do vektoru který předpovídá výstup mateřské kapsle.
Kapsle v další vyšší úrovni se přivádí součet předpovědí ze všech tobolek ve spodní vrstvě, každá s vazebním koeficientem
Postup softmax
Spojovací koeficienty z kapsle ve vrstvě na všechny tobolky ve vrstvě součet k jedné a jsou definovány „směrování softmax ". Počáteční logity jsou předchozí pravděpodobnosti protokolu pro směrování. Toto je předchozí pravděpodobnost ta kapsle ve vrstvě by se měl připojit k tobolce ve vrstvě . Normalizace vazebních koeficientů:[1]
Aby byl tento postup optimální, musel by si zapamatovat několik hodnot a resetovat tyto hodnoty při každé iteraci. To je v případě, že vektor změny, pak musí být hodnoty uložené do paměti aktualizovány. Není ukázáno, jak by to mělo být provedeno. Nezobrazí se ani zapamatování dělitele.[1]
Postup squash
Protože délka vektorů představuje pravděpodobnosti, měly by být mezi nulou (0) a jednou (1), a k tomu je použita squashingová funkce:[1]
Vektor stlačený na nulu má mizející gradient.
Směrování postupu
Jeden přístup ke směrování je následující[1]
Na řádku 8 lze funkci softmax nahradit jakýmkoli typem vítěz bere vše síť. Biologicky to trochu připomíná lustrové buňky, ale mohou se také podílet na výpočtu vazebních koeficientů (řádek 9) nebo výpočtu dohod (řádek 11).
Na řádku 9 je zobrazena váhová matice pro vazební koeficienty a skrytá predikční matice. Struktura ve vrstvách I a II je poněkud podobná struktuře mozková kůra -li hvězdné buňky Předpokládá se, že se účastní transpozice vstupních vektorů. Zda oba typy hvězdicových buněk mají stejnou funkci, není jasné, protože vrstva I má excitační ostnaté buňky a vrstva II má inhibiční aspinové buňky. Druhá označuje mnohem jinou síť.
Na řádku 10 lze squashovou funkci nahradit jinými funkcemi a topologiemi sítě, které zachovávají směr vektoru.
Postup probíhá iterace, obvykle 4–5, s index pro vrstvu zdrojové kapsle nebo primární vrstvu, kam směřuje směrování za vrstva tobolky další vyšší vrstva.
Výcvik
Učení je pod dohledem.[3] Síť je trénována minimalizací euklidovská vzdálenost mezi obrazem a výstupem CNN, který rekonstruuje vstup z výstupu koncových pouzder.[1]
Síť je diskriminačně proškolena pomocí iterativního směrování podle dohody.[1]
Vektory aktivity všech kromě správného rodiče jsou maskované.[1]
Ztráta marže
Délka vektoru instance představuje pravděpodobnost, že se ve scéně nachází entita kapsle. Kapsle nejvyšší úrovně má dlouhý vektor právě tehdy, je-li přítomna její přidružená entita. Chcete-li povolit více entit, samostatný ztráta marže se počítá pro každou kapsli. Snížení váhy ztráty pro chybějící entity zastaví učení od zmenšování délek vektorů aktivity pro všechny entity. Celková ztráta je součtem ztrát všech subjektů.[1] V Hintonově příkladu je funkce ztráty:[1]