Add implementation details

main
Gašper Spagnolo 2023-08-22 11:28:16 +02:00
parent e9fa2f7182
commit d33c245563
No known key found for this signature in database
GPG Key ID: 2EA0738CC1EFEEB7
2 changed files with 211 additions and 49 deletions

Binary file not shown.

View File

@ -409,7 +409,7 @@ A proper abstract should contain around 100 words which makes this one way too s
\chapter{Uvod}
Droni in sateliti se uporabljajo za iskanje in reševanje, kartiranje terena, kmetijsko spremljanje, navigacijo dronov in podobne naloge.
Raznolikost platform za tehnologijo oddaljenega zaznavanja prinaša veliko prednosti na teh področjih.
Ljudje lahko ne le prek satelitov pridobijo podatke velikega obsega, temveč tudi s pomočjo platform dronov pridobijo bolj jasne lokalne slike.
Ljudje ne lahko le prek satelitov pridobijo podatkov velikega obsega, temveč tudi s pomočjo platform dronov pridobijo bolj jasne lokalne slike.
Trenutno se droni v glavnem zanašajo na satelitske signale za navigacijo in določitev položaja med letom.
Vendar se v praksi satelitski signal močno oslabi po dolgi razdalji, kar lahko povzroči motnje sprejetega satelitskega signala na dronu.
@ -428,7 +428,7 @@ Metoda prepoznavanja slik je na nekaterih naborih podatkov dosegla odlične rezu
\end{itemize}
Povzemajoč, metoda prepoznavanja slik zahteva veliko predobdelovalnih operacij. Hkrati pa so tudi zahteve za skladiščno zmogljivost in računalniško moč precej velike.
S hitrim razvojem računalniškega vida se pojavlja geolokacija dronov na podlagi satelitskih slik.
S hitrim razvojem računalniškega vida se pojavlja geolokacija dronov na podlagi satelitskih slik, kjer iscemo tocko v sliki.
Ta metoda, podobna sinergiji med človeškimi očmi in možgani, omogoča iskanje ustrezne lokacije v iskalnem zemljevidu (satelitska slika) na podlagi slike drona.
Ko je lokacija iskanja najdena na iskalnem zemljevidu, lahko iz podatkov o zemljepisni širini in dolžini iskalnega zemljevida sklepamo o trenutnem položaju drona.
@ -502,6 +502,21 @@ Na koncu se uporabljajo popolnoma povezane plasti, ki združijo lokalne značiln
CNN se izkaže za zelo učinkovito v primerjavi z drugimi tipi nevronskih mrež v nalogah, povezanih z obdelavo slik, zlasti zaradi sposobnosti zajemanja prostorskih hierarhij značilnosti.
To pomeni, da so sposobne razumeti in reprezentirati sliko na več ravneh abstrakcije.
\subsection{Siamska nevronska mreža}
Siamska nevronska mreža (Siamese Neural Network) je posebna vrsta nevronske mreže, ki se uporablja predvsem za primerjavo ali razlikovanje med dvema vhodoma.
Glavna značilnost siamske nevronske mreže je, da ima dva ali več identičnih podmrež, ki delijo iste uteži in parametre.
Te podmreže vzporedno obdelujejo vhodne podatke in na koncu se rezultati združijo, da se določi razlika ali podobnost med vhodnimi podatki.
Struktura:
\begin{itemize}
\item \textbf{Dva vhoda}: Siamska mreža sprejme dva vhoda, ki ju želi primerjati.
\item \textbf{Dve identični podmreži}: Vsak vhod se obdeluje skozi svojo podmrežo. Obe podmreži imata enako strukturo in delita iste uteži.
\item \textbf{Združevanje rezultatov}: Na koncu se izhodi obeh podmrež združijo, da se določi razlika ali podobnost med vhodnimi podatki.
\end{itemize}
Siamske nevronske mreže se pogosto uporabljajo v nalogah, kot so preverjanje podobnosti, prepoznavanje obrazov, preverjanje pristnosti in druge naloge, kjer je pomembno ugotoviti, ali sta dva vzorca podobna ali različna.
\subsection{Toplotna karta}
Toplotna karta je grafična predstavitev podatkov, kjer vrednosti v matriki predstavljajo različne barve.
Ponavadi se uporablja za prikazovanje, kako se določena spremenljivka razporedi po dvodimenzionalnem prostoru.
@ -521,14 +536,15 @@ Vizualizacija barvnih prehodov pomaga opazovalcu, da hitro zazna vzorce in trend
\subsection{Predhodni mehanizmi}
Preden so obstajali transformerji, so bile najpogostejše metode za obvladovanje zaporedij v jezikovnih modelih rekurentne nevronske mreže (RNN) in njihove različice, kot so dolgokratni kratkotrajni spomini (LSTM) in obogatene RNN (GRU).
Najpogostejša uporaba teh modelov v kontekstu strojnega prevajanja ali drugih nalog zaporedja v zaporedje je bila uporaba strukture kodirnik-dekodirnik.
Najpogostejša uporaba teh modelov v kontekstu strojnega prevajanja ali drugih nalog pretvarjanja zaporedja v zaporedje je bila uporaba strukture kodirnik-dekodirnik.
V tej strukturi je bilo zaporedje vhodnih besed ali tokenov kodirano v latentni prostor z uporabo RNN (kodirnik), ta latentni vektor pa je bil nato uporabljen za generiranje zaporedja izhodnih besed ali tokenov z uporabo drugega RNN (dekodirnik).
Problem s to strukturo je bil, da je bil latentni prostor omejen na velikost fiksne dolžine in je moral vsebovati vse informacije iz izvornega zaporedja, ki so potrebne za generiranje ciljnega zaporedja.
To je omejevalo model pri obvladovanju dolgih zaporedij, saj je bilo težko ohraniti informacije iz zgodnjega dela zaporedja do konca.
Da bi to težavo rešili, so raziskovalci vključili mehanizem pozornosti, ki je omogočil dekodirniku, da se osredotoči na različne dele izvornega zaporedja na različnih stopnjah generiranja ciljnega zaporedja.
To je bil velik napredek, ki je omogočil boljše obvladovanje dolgih zaporedij.
Članek, ki je predstavil to idejo za strojno prevajanje, je bil "Neural Machine Translation by Jointly Learning to Align and Translate" \cite{bahdanau2015neural}, objavljen leta 2015. To je bil ključni korak k razvoju Transformer arhitekture, ki je bila kasneje predstavljena v članku "Attention is All You Need" \cite{vaswani2017attention} leta 2017.
Članek, ki je predstavil to idejo za strojno prevajanje, je bil "Neural Machine Translation by Jointly Learning to Align and Translate" \cite{bahdanau2015neural}, objavljen leta 2015.
To je bil ključni korak k razvoju Transformerske arhitekture, ki je bila kasneje predstavljena v članku "Attention is All You Need" \cite{vaswani2017attention} leta 2017.
\subsection{Razlaga RNN kodirnik-dekodirnik arhitekture}
@ -541,13 +557,13 @@ Kodirnik z zaporedjem vektorjev $\vec{F}$ proizvede skrito stanje $h_n$:
h_n = \text{RNN}_\text{enc}(f_n, h_{n-1})
\end{equation}
Začetno stanje $h_0$ je pogosto postavljeno na nič ali se nauči med treniranjem.
Začetno stanje $h_0$ je pogosto postavljeno ali na nič ali se ga mreza nauči.
Dekodirnik nato uporablja to skrito stanje, da generira ciljno zaporedje $\vec{E}$:
\begin{equation}
e_{t} = \text{RNN}_\text{dec}(e_{t-1}, h_{t-1})
\end{equation}
Opomba: pri treniranju se za $e_{t-1}$ pogosto uporablja dejanska vrednost iz ciljnega zaporedja (ne izhod modela), kar je znano kot "teacher forcing".
Opomba: pri ucenju se za $e_{t-1}$ pogosto uporablja dejanska vrednost iz ciljnega zaporedja (ne izhod modela), kar je znano kot "teacher forcing".
Izvorna zaporedja besed $\vec{F}$ se tako vnašajo v kodirnik, ki generira skrita stanja za vsako besedo:
\begin{equation}
\vec{H} = \text{Encoder}(\vec{F})
@ -610,14 +626,16 @@ Druga razlika od kodirnika je druga večglava plast pozornosti, ki se imenuje tu
Za razliko od plasti pozornosti na začetku blokov kodirnika in dekodirnika ta plast ni plast samopozornosti.
\section{Scaled Dot-Product Attention}
\subsection{Scaled Dot-Product Attention}
Ta funkcija se uporablja v vseh plasteh pozornosti v transformerju.
Za zdaj bomo razčlenili matematiko za to operacijo, samo da dobimo občutek, katera števila gredo kam.
Kasneje se bomo osredotočili na njegove aplikacije v članku.
Kasneje se bomo osredotočili na njegove aplikacije v članku \cite{vaswani2017attention}.
\begin{align*}
\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V
\end{align*}
\begin{center}
\begin{equation}
\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V
\end{equation}
\end{center}
Scaled Dot-Product Attention je skoraj identičen Dot-Product Attention, omenjenem prej pri Luongu \cite{bahdanau2015neural}.
Edina razlika je, da je vhod v softmax skaliran s faktorjem $\frac{1}{\sqrt{d_k}}$.
@ -628,48 +646,70 @@ Prav tako se mora dimenzionalnost ključev in poizvedb ujemati, vendar se lahko
Izpeljimo izracun pozornosti. Zaceli bomo z zapisom posameznih vrstic $Q$ in $K$, nato pa bomo izrazili produkt $QK^T$ v smislu teh vrstic:
\begin{align*}
Q &= \begin{pmatrix} q_0 \\ q_1 \\ \vdots \\ q_m \end{pmatrix}, \\
K^T &= \begin{pmatrix} k_0 & k_1 & \cdots & k_n \end{pmatrix}, \\
QK^T &= \begin{pmatrix} q_0 \cdot k_0 & q_1 \cdot k_0 & \cdots & q_m \cdot k_0 \\ q_0 \cdot k_1 & q_1 \cdot k_1 & \cdots & q_m \cdot k_1 \\ \vdots & \vdots & \ddots & \vdots \\ q_0 \cdot k_n & q_1 \cdot k_n & \cdots & q_m \cdot k_n \end{pmatrix}
\end{align*}
\begin{center}
\begin{equation}
\begin{split}
Q &= \begin{pmatrix} q_0 \\ q_1 \\ \vdots \\ q_m \end{pmatrix}, \\
K^T &= \begin{pmatrix} k_0 & k_1 & \cdots & k_n \end{pmatrix}, \\
QK^T &= \begin{pmatrix} q_0 \cdot k_0 & q_1 \cdot k_0 & \cdots & q_m \cdot k_0 \\ q_0 \cdot k_1 & q_1 \cdot k_1 & \cdots & q_m \cdot k_1 \\ \vdots & \vdots & \ddots & \vdots \\ q_0 \cdot k_n & q_1 \cdot k_n & \cdots & q_m \cdot k_n \end{pmatrix}.
\end{split}
\end{equation}
\end{center}
Nato pridobimo naše uteži pozornosti tako, da vsak element delimo z $\sqrt{d_k}$ in uporabimo funkcijo softmax na vrstico:
\begin{align*}
\text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) &= \begin{pmatrix} \text{softmax}\left(\frac{1}{\sqrt{d_k}} \cdot \langle q_0 \cdot k_0, q_1 \cdot k_0, \ldots, q_m \cdot k_0 \rangle\right) \\ \text{softmax}\left(\frac{1}{\sqrt{d_k}} \cdot \langle q_0 \cdot k_1, q_1 \cdot k_1, \ldots, q_m \cdot k_1 \rangle\right) \\ \vdots \\ \text{softmax}\left(\frac{1}{\sqrt{d_k}} \cdot \langle q_0 \cdot k_n, q_1 \cdot k_n, \ldots, q_m \cdot k_n \rangle\right) \end{pmatrix} \\
&= \begin{pmatrix} s_{0,0} & s_{1,0} & \cdots & s_{m,0} \\ s_{0,1} & s_{1,1} & \cdots & s_{m,1} \\ \vdots & \vdots & \ddots & \vdots \\ s_{0,n} & s_{1,n} & \cdots & s_{m,n} \end{pmatrix}^T
\end{align*}
\begin{center}
\begin{equation}
\begin{aligned}
\text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) &= \begin{pmatrix} \text{softmax}\left(\frac{1}{\sqrt{d_k}} \cdot \langle q_0 \cdot k_0, q_1 \cdot k_0, \ldots, q_m \cdot k_0 \rangle\right) \\ \text{softmax}\left(\frac{1}{\sqrt{d_k}} \cdot \langle q_0 \cdot k_1, q_1 \cdot k_1, \ldots, q_m \cdot k_1 \rangle\right) \\ \vdots \\ \text{softmax}\left(\frac{1}{\sqrt{d_k}} \cdot \langle q_0 \cdot k_n, q_1 \cdot k_n, \ldots, q_m \cdot k_n \rangle\right) \end{pmatrix} \\
&= \begin{pmatrix} s_{0,0} & s_{1,0} & \cdots & s_{m,0} \\ s_{0,1} & s_{1,1} & \cdots & s_{m,1} \\ \vdots & \vdots & \ddots & \vdots \\ s_{0,n} & s_{1,n} & \cdots & s_{m,n} \end{pmatrix}^T
\end{aligned}
\end{equation}
\end{center}
kjer za vsako vrstico $i$, kot rezultat operacije softmax, velja $\sum_{j=0}^{n} s_{i,j} = 1$.
Zadnji korak je množenje te matrike z $V$:
\begin{align*}
\text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V &= \begin{pmatrix} s_{0,0} & s_{1,0} & \cdots & s_{m,0} \\ s_{0,1} & s_{1,1} & \cdots & s_{m,1} \\ \vdots & \vdots & \ddots & \vdots \\ s_{0,n} & s_{1,n} & \cdots & s_{m,n} \end{pmatrix} \begin{pmatrix} v_0 \\ v_1 \\ \vdots \\ v_n \end{pmatrix} \\
&= \begin{pmatrix} \sum_{i=0}^{m} s_{i,0}v_0 \\ \sum_{i=0}^{m} s_{i,1}v_1 \\ \vdots \\ \sum_{i=0}^{m} s_{i,n}v_n \end{pmatrix}
\end{align*}
\begin{center}
\begin{equation}
\begin{aligned}
\text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V &= \begin{pmatrix} s_{0,0} & s_{1,0} & \cdots & s_{m,0} \\ s_{0,1} & s_{1,1} & \cdots & s_{m,1} \\ \vdots & \vdots & \ddots & \vdots \\ s_{0,n} & s_{1,n} & \cdots & s_{m,n} \end{pmatrix} \begin{pmatrix} v_0 \\ v_1 \\ \vdots \\ v_n \end{pmatrix} \\
&= \begin{pmatrix} \sum_{i=0}^{m} s_{i,0}v_0 \\ \sum_{i=0}^{m} s_{i,1}v_1 \\ \vdots \\ \sum_{i=0}^{m} s_{i,n}v_n \end{pmatrix}
\end{aligned}
\end{equation}
\end{center}
Tukaj lahko opazimo, da mehanizem pozornosti rezultira v seriji uteženih povprečij vrstic $V$, kjer uteži določajo vhodne poizvedbe in ključe.
Vsaka od $m$ poizvedb v $Q$ rezultira v specifični uteženi vsoti vektorskih vrednosti.
Pomembno je, da v tem posebnem postopku ni nobenih učljivih parametrov - sestavljen je izključno iz matričnih in vektorskih operacij.
Pomembno je omeniti, da v tem posebnem postopku ni nobenih učljivih parametrov - sestavljen je izključno iz matričnih in vektorskih operacij.
Poglejmo si se posamezno vrstico $i$ uteži pozornosti:
\begin{align*}
\text{softmax}\left(\frac{1}{\sqrt{d_k}} \cdot Q \cdot K_i\right) &= \frac{1}{S} \cdot \exp\left(\frac{Q \cdot K_i}{\sqrt{d_k}}\right)
\end{align*}
\begin{center}
\begin{equation}
\begin{aligned}
\text{softmax}\left(\frac{1}{\sqrt{d_k}} \cdot Q \cdot K_i\right) &= \frac{1}{S} \cdot \exp\left(\frac{Q \cdot K_i}{\sqrt{d_k}}\right)
\end{aligned}
\end{equation}
\end{center}
kjer je $S$ normalizacijska konstanta:
\begin{align*}
S = \sum_{j=0}^{m} \exp\left(\frac{q_j \cdot k_i}{\sqrt{d_k}}\right)
\end{align*}
\begin{center}
\begin{equation}
S = \sum_{j=0}^{m} \exp\left(\frac{q_j \cdot k_i}{\sqrt{d_k}}\right)
\end{equation}
\end{center}
Če pogledamo, kako so uteži konstruirane, je izvor imen "poizvedbe", "ključi" in "vrednosti" jasnejši.
Tako kot v zgosceni tabeli tabeli ta operacija izbira želene vrednosti preko ustrezajočih, ena-na-ena ključev.
Ključi, ki jih iščemo, so označeni z poizvedbami - skalarni produkt med danim ključem in poizvedbo lahko izrazimo kot kot $\theta$ med njima:
\begin{align*}
q_i \cdot k_j = |q_i||k_j|\cos(\theta)
\end{align*}
\begin{center}
\begin{equation}
q_i \cdot k_j = |q_i||k_j|\cos(\theta)
\end{equation}
\end{center}
Uporaba eksponentne funkcije povečuje pozitivne vrednosti kosinusa in zmanjšuje negativne.
To pomeni, da če sta dva vektorja bolj poravnana (manjši kot med njima), bo njihova zastopanost v vektorju pozornosti večja. Nasprotno pa, če sta dva vektorja manj poravnana (večji kot med njima), bo njihova zastopanost v vektorju pozornosti manjša.
To je smiselno, saj želimo, da model daje večjo pozornost tistim ključem, ki so bolj relevantni za dano poizvedbo.
Zato je bližje kot sta si ključ $\vec{k}_j$ in poizvedba $\vec{q}_i$ po kotu, večja je njihova zastopanost v vektorju pozornosti.
Še ena pomanjkljivost, ki so jo raziskovalci opazili pri modelih, ki temeljijo na RNN (Recurrent Neural Networks), je, da imajo težave z uporabo informacij iz elementov, ki so bili opaženi daleč v preteklosti.
@ -679,23 +719,29 @@ Bolj splošno, RNN imajo težave z povezovanjem zaporednih informacij, ki so med
Avtorji pozornosti omenijo, da delijo vhode v softmax funkcijo z $\sqrt(d_k)$, da bi ublažili učinke velikih vhodnih vrednosti, ki bi vodile do majhnih gradientov med ucenjem.
Za lazje razumevanje, zakaj veliki argumenti softmax vodijo do majhnih gradientov, lahko konstruiramo primer. Začnimo z definicijo softmax funkcije:
\begin{align*}
\text{softmax}(x_i) = \frac{\exp(x_i)}{\sum_j \exp(x_j)}
\end{align*}
\begin{center}
\begin{equation}
\text{softmax}(x_i) = \frac{\exp(x_i)}{\sum_j \exp(x_j)}
\end{equation}
\end{center}
Gradient softmax funkcije je izračunan kot:
\begin{equation}
\frac{\partial \text{softmax}(x_i)}{\partial x_j} = \text{softmax}(x_i) * (\delta_{ij} - \text{softmax}(x_j))
\end{equation}
\begin{center}
\begin{equation}
\frac{\partial \text{softmax}(x_i)}{\partial x_j} = \text{softmax}(x_i) * (\delta_{ij} - \text{softmax}(x_j))
\end{equation}
\end{center}
kjer $ \partial_{ij}$ je Kroneckerjev delta, ki je enak 1, če sta i in j enaka, in 0 sicer.
Če upoštevamo skaliranje, dobimo:
\begin{equation}
\frac{\partial \text{softmax}(x_i/C)}{\partial x_j} = \frac{1}{C} * \text{softmax}(x_i/C) * (\delta_{ij} - \text{softmax}(x_j/C))
\end{equation}
\begin{center}
\begin{equation}
\frac{\partial \text{softmax}(x_i/C)}{\partial x_j} = \frac{1}{C} * \text{softmax}(x_i/C) * (\delta_{ij} - \text{softmax}(x_j/C))
\end{equation}
\end{center}
kjer C je faktor skaliranja. Iz tega lahko vidimo, da skaliranje zmanjšuje velikost gradientov, kar lahko pomaga pri stabilizaciji učenja.
@ -720,8 +766,8 @@ kjer so $Q \in \mathbb{R}^{m \times d_{\text{model}}}$, $K \in \mathbb{R}^{n \ti
Poleg tega, ob upoštevanju hiperparametra $h$, ki označuje število glav pozornosti, velja: $W_{Qi} \in \mathbb{R}^{d_{\text{model}} \times d_k}$, $W_{Ki} \in \mathbb{R}^{d_{\text{model}} \times d_k}$, $W_{Vi} \in \mathbb{R}^{d_{\text{model}} \times d_v}$, in $W_O \in \mathbb{R}^{hd_v \times d_{\text{model}}}$.
Dokazimo, da se matrično množenje izide.
Najprej vemo iz prejšnjega razdelka, da bo vsaka matrika $\text{head}i$ imela enako število vrstic kot $QW{Qi}$ in enako število stolpcev kot $VW_{Vi}$.
Ker velja $QW_{Qi} \in \mathbb{R}^{m \times d_k}$ in $VW_{Vi} \in \mathbb{R}^{n \times d_v}$, to pomeni, da je $\text{head}i \in \mathbb{R}^{m \times d_v}$.
Najprej vemo iz prejšnjega razdelka, da bo vsaka matrika $\text{head}_i$ imela enako število vrstic kot $QW{Qi}$ in enako število stolpcev kot $VW_{Vi}$.
Ker velja $QW_{Qi} \in \mathbb{R}^{m \times d_k}$ in $VW_{Vi} \in \mathbb{R}^{n \times d_v}$, to pomeni, da je $\text{head}_i \in \mathbb{R}^{m \times d_v}$.
Ko združimo $h$ takih matrik, dobimo matriko v $\mathbb{R}^{m \times hd_v}$. Množenje z $W_O$ daje matriko v $\mathbb{R}^{m \times d{\text{model}}}$.
Kar drzi - začeli smo z $m$ poizvedbami v $Q$ in končali z $m$ odgovori v izhodu operatorja.
@ -766,7 +812,10 @@ En način za maskiranje vhodov je preprosto dodajanje matrike M k argumentu ki v
\end{align*}
Nato ima izvajanje softmaxa na vsaki vrstici učinek pošiljanja vseh $-\infty$ celic na 0, pri čemer ostanejo samo veljavni izrazi za pozornost.
Tretja in zadnja uporaba večglave pozornosti v članku je pozornost kodirnik-dekodirnik, ki se uporablja v blokih dekodirnika neposredno po sloju maske večglave pozornosti, da se povežejo izvorne in ciljne sekvence.
\subsection{Pozornost kodirnik-dekodirnik}
Tretja in zadnja uporaba pozornosti v članku \cite{vaswani2017attention} je pozornost kodirnik-dekodirnik, ki se uporablja v blokih dekodirnika neposredno po sloju maske večglave pozornosti, da se povežejo izvorne in ciljne sekvence.
Medtem ko so pri samopozornosti vsi trije vhodi enaka matrika, to tukaj ne velja.
\begin{align*}
@ -808,7 +857,7 @@ Ta pristop je pokazal obetavne rezultate, saj je Vision Transformer dosegel ali
\begin{align*}
\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h) W_O
\end{align*}
kjer je $\text{head}i = \text{Attention}(QW{Qi}, KW_{Ki}, VW_{Vi})$, $Q$, $K$ in $V$ so poizvedbe, ključi in vrednosti, $W_{Qi}$, $W_{Ki}$, $W_{Vi}$ in $W_O$ so uteži, ki se naučijo, in $\text{Attention}$ je funkcija samo-pozornosti.
kjer je $\text{head}_i = \text{Attention}(QW{Qi}, KW_{Ki}, VW_{Vi})$, $Q$, $K$ in $V$ so poizvedbe, ključi in vrednosti, $W_{Qi}$, $W_{Ki}$, $W_{Vi}$ in $W_O$ so uteži, ki se naučijo, in $\text{Attention}$ je funkcija samo-pozornosti.
\item Klasifikacijska glava: Na koncu se uporabi klasifikacijska glava (ponavadi ena polno povezana plast), da se izračuna končna napoved za dano nalogo (npr. klasifikacija slik). To se lahko zapiše kot:
\begin{align*}
@ -968,12 +1017,125 @@ Po obdelavi je rezultat toplotni zemljevid, točka z najvišjo vrednostjo na top
Nato to lokacijo preslikamo na satelitsko sliko. Položaj drona lahko določimo glede na informacije o geografski širini in dolžini, ki jih ohranja satelitska slika.
V FPI avtorji uporabljajo dva Deit-S brez deljenih uteži kot modula za ekstrakcijo značilnosti za vertikalne poglede slik drona in satelitskih slik \cite{dai2022finding}.
Nato se ekstrahirane značilnosti podvržejo izračunu podobnosti, da se pridobi toplotni zemljevid.
Končno preslikamo lokacijo z najvišjo vrednostjo toplotnega zemljevida na satelitsko sliko, da določimo lokacijo UAV.
Končno preslikamo lokacijo z najvišjo vrednostjo toplotnega zemljevida na satelitsko sliko, da določimo lokacijo brezpilotnega letalnika.
V FPI se za izračun podobnosti uporablja zadnja plast zemljevidov značilnosti \cite{dai2022finding}.
V FPI se za izračun podobnosti uporablja zadnja plast zemljevidnih značilnosti \cite{dai2022finding}.
Ker je končni izhodni zemljevid stisnjen 16-krat, model izgubi veliko prostorskih informacij.
Izguba prostorskih informacij prinese nepopravljivo izgubo končne natančnosti pozicioniranja.
Za izboljšanje lokalizacijske zmogljivosti modela je bila uporabljena struktura piramidnih značilnosti (Twins-PCPVT) in modul utežno prilagodljivega združevanja večznačilnostnih lastnosti(WAMF)
V osnovi modela so bile narejene izboljšave z uporabo dveh močnejših PCPVT-S kot modulov za ekstrakcijo značilnosti iz brezpilotnega letalnika in satelitske slike.
Da bi bolje izvlekli informacije večih meril in obdržali več prostorskih informacij, so prvotno izvlečene značilnosti poslane v omrežje piramide značilnosti za nadaljnjo ekstrakcijo značilnosti,
nato pa se modul WAMF uporablja za izračun podobnosti in fuzijo več značilnosti. Končno so združene značilnosti povečane, da se ustvari končna izhodna napovedna mapa.
Na izhodu dobimo toplotno karto iste velikosti kot vhodna satelitska slika v WAMF-FPI.
\subsection{Modul za ekstrakcijo značilnosti}
WAMF-FPI uporablja strukturo, podobno omrežju Siamese, vendar se razlikuje od tradicionalnega sledenja objektom.
Med satelitskimi in slikami brezpilotnega letalnika je velika razlika, saj izvirajo iz različnih naprav.
Zato veji UAV in satelitski pogled v WAMF-FPI ne uporabljata metode deljenja uteži.
WAMF-FPI uporablja satelitske slike (400 × 400 × 3) in UAV slike (128 × 128 × 3) kot vhod modela, nato pa se značilnosti slik ekstrahirajo s pomočjo PCPVT-S.
Natančneje, odstranili smo zadnjo stopnjo PCPVT-S in uporabili samo prve tri stopnje za ekstrakcijo značilnosti.
Ko je velikost vhodnih slik 400 × 400 × 3 in 128 × 128 × 3, lahko iz obeh vej pridobimo značilnostne mape z obliko 25 × 25 × 320 in 8 × 8 × 320.
V nasprotju z Deit-S, uporabljenim v FPI \cite{dai2022finding}, ima PCPVT-S piramidno strukturo, ki se lahko bolje prilagodi nalogi goste napovedi.
Uporaba piramidne strukture postavlja temelje za kasnejšo uporabo modula WAMF.
Hkrati omrežje z piramidno strukturo lahko učinkovito zmanjša količino izračunov in izboljša hitrost izračuna. To je zelo pomembno za dejansko implementacijo metode.
Po uporabi PCPVT-S za ekstrakcijo informacij iz slike, se izračun podobnosti izvede neposredno na zadnjih značilnostnih mapah, bo nizka ločljivost izhodne značilnostne mape neposredno vplivala na natančnost končnih rezultatov modela (mapa 25 × 25 na 400 × 400).
V ta namen smo uporabili strukturo piramide značilnosti za združevanje izvirnih značilnostnih map z uporabo upsamplinga in lateralne povezovalne strukture, končni izhod pa je bil stisnjen le za faktor štiri v primerjavi z vhodom.
Lokalizacijska pristranskost, ki jo povzroča nizka ločljivost značilnostne mape, je izključena pri viru. Ker ima plitva značilnostna mapa z visoko ločljivostjo več prostorskih informacij, je globoka značilnostna mapa z bogatimi semantičnimi informacijami združena z lateralno povezovalno strukturo.
WAMF-FPI uporablja konvolucijske mreže za ekstrakcijo značilnosti iz vhodnih slik. Konvolucija je matematična operacija, ki omogoča filtriranje vhodnih podatkov (v tem primeru slik) z uporabo določenega jedra ali filtra.
Ta operacija omogoča modelu, da "vidi" in prepozna različne vzorce in značilnosti v slikah.
Začetno fazo obdelave v WAMF-FPI predstavlja uporaba konvolucijskega jedra velikosti ena.
Ta korak je namenjen prilagoditvi kanalske dimenzije tri-stopnjske značilnostne mape, ki je bila pridobljena s pomočjo PCPVT-S.
V praksi je bilo število izhodnih kanalov nastavljeno na 64, kar omogoča kompaktno in učinkovito predstavitev značilnosti.
Po tem koraku se na značilnostnih mapah zadnjih dveh stopenj izvede operacija upsamplinga.
Ta operacija poveča ločljivost značilnostnih map, kar omogoča bolj natančno lokalizacijo.
Pridobljene značilnostne mape se nato združijo z značilnostnimi mapami istega merila, ki jih izhaja iz osnovnega modela.
V zadnjem koraku se značilnosti dodatno ekstrahirajo z uporabo konvolucijskega jedra velikosti 3.
Ta korak omogoča modelu, da izloči bolj kompleksne in globoke značilnosti iz združenih map.
Končni rezultat je združena značilnostna mapa, ki vsebuje tako plitve (prostorske) kot globoke (semantične) značilnosti.
Ta kombinacija omogoča modelu, da učinkovito prepozna in lokalizira objekte na vhodnih slikah.
\subsection{Arhitektura utežno prilagodljivega združevanja večznačilnostnih lastnosti(WAMF)}
Modul za združevanje znaclinosti je zasnovan tako, da združuje informacije iz dveh ločenih vhodnih tokov, v tem primeru iz UAV (brezpilotnega letalnika) in SAT (satelita).
Ta modul uporablja piramido značilnosti iz obeh in izračuna korelacije med njimi, da jih združi v en sam izhod.
Za začetek se izvedejo konvolucijske operacije na značilnostnih mapah UAV in SAT. Konvolucijske operacije so izvedene s konvolucijskimi jedri velikosti
$1 \times 1$, kar omogoča prilagoditev kanalskih dimenzij značilnostnih map.
Za UAV značilnostne mape:
\begin{center}
\begin{equation}
U1_{\text{UAV}} = \text{Conv1}_{\text{UAV}}(s3_{\text{UAV}})
\end{equation}
\begin{equation}
U2_{\text{UAV}} = \text{Upsample}(U1_{\text{UAV}}) + \text{Conv2}_{\text{UAV}}(s2_{\text{UAV}})
\end{equation}
\begin{equation}
U3_{\text{UAV}} = \text{Upsample}(U2_{\text{UAV}}) + \text{Conv3}_{\text{UAV}}(s1_{\text{UAV}})
\end{equation}
\end{center}
Za SAT značilnostne mape:
\begin{center}
\begin{equation}
U1_{\text{SAT}} = \text{Conv1}_{\text{SAT}}(s3_{\text{SAT}})
\end{equation}
\begin{equation}
U2_{\text{SAT}} = \text{Upsample}(U1_{\text{SAT}}) + \text{Conv2}_{\text{SAT}}(s2_{\text{SAT}})
\end{equation}
\begin{equation}
U3_{\text{SAT}} = \text{Upsample}(U2_{\text{SAT}}) + \text{Conv3}_{\text{SAT}}(s1_{\text{SAT}})
\end{equation}
\end{center}
Kjer je Upsample funkcija, ki poveča prostorsko resolucijo značilnostne mape z uporabo bikubične interpolacije.
\begin{center}
\begin{equation}
A1 = \text{corr}(U1_{\text{UAV}}, U3_{\text{SAT}})
\end{equation}
\begin{equation}
A2 = \text{corr}(U2_{\text{UAV}}, U3_{\text{SAT}})
\end{equation}
\begin{equation}
A3 = \text{corr}(U3_{\text{UAV}}, U3_{\text{SAT}})
\end{equation}
\end{center}
Kjer je $\text{corr}$ funkcija za izračun korelacije med dvema značilnostnima mapama.
Korelacija v kontekstu obdelave slik je postopek izračuna podobnosti med dvema slikama ali značilnostnima mapama.
V osnovi se ena značilnostna mapa (poimenovana poizvedba) "drsi" čez drugo značilnostno mapo (poimenovana iskalna regija) in izračuna podobnost med njima na vsaki lokaciji.
Rezultat tega postopka je nova značilnostna mapa, imenovana korelacijska mapa, kjer vsaka vrednost predstavlja stopnjo podobnosti med poizvedbo in delom iskalne mape na določeni lokaciji.
Matematično je korelacija med dvema funkcijama $f$ in $g$ definirana kot:
\begin{center}
\begin{equation}
(f \star g)(t) = \int_{-\infty}^{\infty} f^*(\tau) g(t+\tau) d\tau
\end{equation}
\end{center}
Kjer je $f^*$ kompleksno konjugirana funkcija $f$.
V kontekstu diskretnih signalov, kot so slike ali značilnostne mape, je korelacija definirana kot:
\begin{center}
\begin{equation}
(f \star g)[n] = \sum_{m=-\infty}^{\infty} f^*[m] g[n+m]
\end{equation}
\end{center}
Nazadnje se izvede uteženo združevanje teh treh koreliranih značilnostnih map s pomočjo naučljivih uteži:
\begin{center}
\begin{equation}
\text{fused\_map} = w_1 \cdot A1 + w_2 \cdot A2 + w_3 \cdot A3
\end{equation}
\end{center}
\chapter{Eksperimenti}
\label{ch4}