diplomska-text/diploma.tex

1694 lines
94 KiB
TeX
Raw Normal View History

2023-07-31 16:30:31 +02:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% datoteka diploma-FRI-vzorec.tex
%
% vzorčna datoteka za pisanje diplomskega dela v formatu LaTeX
% na UL Fakulteti za računalništvo in informatiko
%
% na osnovi starejših verzij vkup spravil Franc Solina, maj 2021
% prvo verzijo je leta 2010 pripravil Gašper Fijavž
%
% za upravljanje z literaturo ta vezija uporablja BibLaTeX
%
% svetujemo uporabo Overleaf.com - na tej spletni implementaciji LaTeXa ta vzorec zagotovo pravilno deluje
%
\documentclass[a4paper,12pt,openright]{book}
%\documentclass[a4paper, 12pt, openright, draft]{book} Nalogo preverite tudi z opcijo draft, ki pokaže, katere vrstice so predolge! Pozor, v draft opciji, se slike ne pokažejo!
\usepackage[utf8]{inputenc} % omogoča uporabo slovenskih črk kodiranih v formatu UTF-8
\usepackage[slovene,english]{babel} % naloži, med drugim, slovenske delilne vzorce
\usepackage[pdftex]{graphicx} % omogoča vlaganje slik različnih formatov
\usepackage{fancyhdr} % poskrbi, na primer, za glave strani
\usepackage{amssymb} % dodatni matematični simboli
\usepackage{amsmath} % eqref, npr.
\usepackage{hyperxmp}
\usepackage[hyphens]{url}
\usepackage{csquotes}
\usepackage[pdftex, colorlinks=true,
citecolor=black, filecolor=black,
linkcolor=black, urlcolor=black,
pdfproducer={LaTeX}, pdfcreator={LaTeX}]{hyperref}
\usepackage{color}
\usepackage{soul}
2023-08-05 23:42:06 +02:00
\usepackage{listings}
\usepackage{xcolor}
2023-08-24 10:30:29 +02:00
\usepackage{float}
2023-08-05 23:42:06 +02:00
\lstset{
language=Python,
numbers=left,
commentstyle=\color{green},
keywordstyle=\color{blue},
numberstyle=\tiny\color{gray},
stringstyle=\color{red},
basicstyle=\ttfamily\scriptsize,
breaklines=true,
showstringspaces=false
}
2023-07-31 16:30:31 +02:00
\usepackage[
backend=biber,
style=numeric,
sorting=nty,
]{biblatex}
\addbibresource{literatura.bib} %Imports bibliography file
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% DIPLOMA INFO
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\ttitle}{Lokalizacija brezpilotnih letalnikov}
2023-07-31 17:09:58 +02:00
\newcommand{\ttitleEn}{UAV localization}
2023-07-31 16:30:31 +02:00
\newcommand{\tsubject}{\ttitle}
\newcommand{\tsubjectEn}{\ttitleEn}
\newcommand{\tauthor}{Gasper Spagnolo}
2023-07-31 17:09:58 +02:00
\newcommand{\tkeywords}{Lokalizacija UAV, geo-lokalizacija, globoko učenje, transformer}
\newcommand{\tkeywordsEn}{UAV localization, geo-localization, deep learning, transformer}
2023-07-31 16:30:31 +02:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% HYPERREF SETUP
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\hypersetup{pdftitle={\ttitle}}
\hypersetup{pdfsubject=\ttitleEn}
\hypersetup{pdfauthor={\tauthor}}
\hypersetup{pdfkeywords=\tkeywordsEn}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% postavitev strani
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\addtolength{\marginparwidth}{-20pt} % robovi za tisk
\addtolength{\oddsidemargin}{40pt}
\addtolength{\evensidemargin}{-40pt}
\renewcommand{\baselinestretch}{1.3} % ustrezen razmik med vrsticami
\setlength{\headheight}{15pt} % potreben prostor na vrhu
\renewcommand{\chaptermark}[1]%
{\markboth{\MakeUppercase{\thechapter.\ #1}}{}} \renewcommand{\sectionmark}[1]%
{\markright{\MakeUppercase{\thesection.\ #1}}} \renewcommand{\headrulewidth}{0.5pt} \renewcommand{\footrulewidth}{0pt}
\fancyhf{}
\fancyhead[LE,RO]{\sl \thepage}
%\fancyhead[LO]{\sl \rightmark} \fancyhead[RE]{\sl \leftmark}
\fancyhead[RE]{\sc \tauthor} % dodal Solina
\fancyhead[LO]{\sc Diplomska naloga} % dodal Solina
\newcommand{\BibLaTeX}{{\sc Bib}\LaTeX}
\newcommand{\BibTeX}{{\sc Bib}\TeX}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% naslovi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\autfont}{\Large}
\newcommand{\titfont}{\LARGE\bf}
\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
\setcounter{tocdepth}{1} % globina kazala
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% konstrukti
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newtheorem{izrek}{Izrek}[chapter]
\newtheorem{trditev}{Trditev}[izrek]
\newenvironment{dokaz}{\emph{Dokaz.}\ }{\hspace{\fill}{$\Box$}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PDF-A
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% define medatata
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\Title{\ttitle}
2023-07-31 17:09:58 +02:00
\def\Author{\tauthor, gs0104@student.uni-lj.si}
2023-07-31 16:30:31 +02:00
\def\Subject{\ttitleEn}
\def\Keywords{\tkeywordsEn}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \convertDate converts D:20080419103507+02'00' to 2008-04-19T10:35:07+02:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\convertDate{%
\getYear
}
{\catcode`\D=12
\gdef\getYear D:#1#2#3#4{\edef\xYear{#1#2#3#4}\getMonth}
}
\def\getMonth#1#2{\edef\xMonth{#1#2}\getDay}
\def\getDay#1#2{\edef\xDay{#1#2}\getHour}
\def\getHour#1#2{\edef\xHour{#1#2}\getMin}
\def\getMin#1#2{\edef\xMin{#1#2}\getSec}
\def\getSec#1#2{\edef\xSec{#1#2}\getTZh}
\def\getTZh +#1#2{\edef\xTZh{#1#2}\getTZm}
\def\getTZm '#1#2'{%
\edef\xTZm{#1#2}%
\edef\convDate{\xYear-\xMonth-\xDay T\xHour:\xMin:\xSec+\xTZh:\xTZm}%
}
%\expandafter\convertDate\pdfcreationdate
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% get pdftex version string
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcount\countA
\countA=\pdftexversion
\advance \countA by -100
\def\pdftexVersionStr{pdfTeX-1.\the\countA.\pdftexrevision}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% XMP data
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{xmpincl}
%\includexmp{pdfa-1b}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% pdfInfo
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pdfinfo{%
/Title (\ttitle)
2023-07-31 17:09:58 +02:00
/Author (\tauthor, gs0104@student.uni-lj.si)
2023-07-31 16:30:31 +02:00
/Subject (\ttitleEn)
/Keywords (\tkeywordsEn)
/ModDate (\pdfcreationdate)
/Trapped /False
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% znaki za copyright stran
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\CcImageCc}[1]{%
\includegraphics[scale=#1]{cc_cc_30.pdf}%
}
\newcommand{\CcImageBy}[1]{%
\includegraphics[scale=#1]{cc_by_30.pdf}%
}
\newcommand{\CcImageSa}[1]{%
\includegraphics[scale=#1]{cc_sa_30.pdf}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\selectlanguage{slovene}
\frontmatter
\setcounter{page}{1} %
\renewcommand{\thepage}{} % preprečimo težave s številkami strani v kazalu
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%naslovnica
\thispagestyle{empty}%
\begin{center}
{\large\sc Univerza v Ljubljani\\%
% Fakulteta za elektrotehniko\\% za študijski program Multimedija
% Fakulteta za upravo\\% za študijski program Upravna informatika
Fakulteta za računalništvo in informatiko\\%
% Fakulteta za matematiko in fiziko\\% za študijski program Računalništvo in matematika
}
\vskip 10em%
{\autfont \tauthor\par}%
{\titfont \ttitle \par}%
{\vskip 3em \textsc{DIPLOMSKO DELO\\[5mm] % dodal Solina za ostale študijske programe
% VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM\\ PRVE STOPNJE\\ RAČUNALNIŠTVO IN INFORMATIKA}\par}%
UNIVERZITETNI ŠTUDIJSKI PROGRAM\\ PRVE STOPNJE\\ RAČUNALNIŠTVO IN INFORMATIKA}\par}%
% INTERDISCIPLINARNI UNIVERZITETNI\\ ŠTUDIJSKI PROGRAM PRVE STOPNJE\\ MULTIMEDIJA}\par}%
% INTERDISCIPLINARNI UNIVERZITETNI\\ ŠTUDIJSKI PROGRAM PRVE STOPNJE\\ UPRAVNA INFORMATIKA}\par}%
% INTERDISCIPLINARNI UNIVERZITETNI\\ ŠTUDIJSKI PROGRAM PRVE STOPNJE\\ RAČUNALNIŠTVO IN MATEMATIKA}\par}%
\vfill\null%
% izberite pravi habilitacijski naziv mentorja!
{\large \textsc{Mentor}: doc. dr. Luka Cehovin Zajc\par}%
2023-07-31 17:09:58 +02:00
{\large \textsc{Somentor}: asist. Matej Dobrevski \par}%
2023-07-31 16:30:31 +02:00
{\vskip 2em \large Ljubljana, \the\year \par}%
\end{center}
% prazna stran
%\clearemptydoublepage
% izjava o licencah itd. se izpiše na hrbtni strani naslovnice
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%copyright stran
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\thispagestyle{empty}
\vspace*{5cm}
{\small \noindent
To delo je ponujeno pod licenco \textit{Creative Commons Priznanje avtorstva-Deljenje pod enakimi pogoji 2.5 Slovenija} (ali novej\v so razli\v cico).
To pomeni, da se tako besedilo, slike, grafi in druge sestavine dela kot tudi rezultati diplomskega dela lahko prosto distribuirajo,
reproducirajo, uporabljajo, priobčujejo javnosti in predelujejo, pod pogojem, da se jasno in vidno navede avtorja in naslov tega
dela in da se v primeru spremembe, preoblikovanja ali uporabe tega dela v svojem delu, lahko distribuira predelava le pod
licenco, ki je enaka tej.
Podrobnosti licence so dostopne na spletni strani \href{http://creativecommons.si}{creativecommons.si} ali na Inštitutu za
intelektualno lastnino, Streliška 1, 1000 Ljubljana.
\vspace*{1cm}
\begin{center}% 0.66 / 0.89 = 0.741573033707865
\CcImageCc{0.741573033707865}\hspace*{1ex}\CcImageBy{1}\hspace*{1ex}\CcImageSa{1}%
\end{center}
}
\vspace*{1cm}
{\small \noindent
Izvorna koda diplomskega dela, njeni rezultati in v ta namen razvita programska oprema je ponujena pod licenco GNU General Public License,
različica 3 (ali novejša). To pomeni, da se lahko prosto distribuira in/ali predeluje pod njenimi pogoji.
Podrobnosti licence so dostopne na spletni strani \url{http://www.gnu.org/licenses/}.
}
\vfill
\begin{center}
\ \\ \vfill
{\em
Besedilo je oblikovano z urejevalnikom besedil \LaTeX.}
\end{center}
% prazna stran
\clearemptydoublepage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% stran 3 med uvodnimi listi
\thispagestyle{empty}
\
\vfill
\bigskip
\noindent\textbf{Kandidat:} Gasper Spagnolo\\
\noindent\textbf{Naslov:} Lokalizacija brezpilotnih letalnikov\\
% vstavite ustrezen naziv študijskega programa!
2023-07-31 17:09:58 +02:00
\noindent\textbf{Vrsta naloge:} Diplomska naloga na univerzitetnem programu prve stopnje Računalništvo in informatika \\
2023-07-31 16:30:31 +02:00
% izberite pravi habilitacijski naziv mentorja!
2023-07-31 17:09:58 +02:00
\noindent\textbf{Mentor:} doc. dr. Luka Cehovin Zajc\\
\noindent\textbf{Somentor:} asist. Matej Dobrevski
2023-07-31 16:30:31 +02:00
\bigskip
\noindent\textbf{Opis:}\\
2023-08-23 20:30:16 +02:00
V zadnjem času postaja uporaba brezpilotnih letalnikov vse bolj razširjena in se uporablja v različnih področjih, kot so agrikultura, kartiranje, vojaške operacije in še mnogo drugih.
Kljub njihovi vsestranskosti pa se poraja ključno vprašanje: kako se droni obnašajo, ko izgubijo stik z GPS sistemom?
Diplomska naloga se osredotoča na to tematiko in predlaga metodo za lokalizacijo brezpilotnih letalnikov ob izgubi GPS signala.
2023-07-31 16:30:31 +02:00
\bigskip
2023-07-31 17:09:58 +02:00
\noindent\textbf{Title:} UAV localization
2023-07-31 16:30:31 +02:00
\bigskip
\noindent\textbf{Description:}\\
2023-08-23 20:30:16 +02:00
In recent times, the use of unmanned aerial vehicles (UAVs) has become increasingly prevalent, finding applications in various fields such as agriculture, mapping, military operations, and many others.
Despite their versatility, a critical question arises: how do drones behave when they lose connection to the GPS system?
This thesis focuses on this issue and proposes a method for localizing UAVs in the event of a GPS signal loss.
2023-07-31 16:30:31 +02:00
\vfill
\vspace{2cm}
% prazna stran
\clearemptydoublepage
% zahvala
2023-08-22 18:21:40 +02:00
%\thispagestyle{empty}\mbox{}\vfill\null\it%
%\noindent
%Zahvaljujem se mami in proskiju.
%\rm\normalfont
%
%% prazna stran
%\clearemptydoublepage
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% posvetilo, če sama zahvala ne zadošča :-)
%\thispagestyle{empty}\mbox{}{\vskip0.20\textheight}\mbox{}\hfill\begin{minipage}{0.55\textwidth}%
%Svoji dragi proskici.
%\normalfont\end{minipage}
%
%% prazna stran
%\clearemptydoublepage
2023-07-31 16:30:31 +02:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% kazalo
\pagestyle{empty}
\def\thepage{}% preprečimo težave s številkami strani v kazalu
\tableofcontents{}
% prazna stran
\clearemptydoublepage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% seznam kratic
\chapter*{Seznam uporabljenih kratic}
\noindent\begin{tabular}{p{0.11\textwidth}|p{.39\textwidth}|p{.39\textwidth}} % po potrebi razširi prvo kolono tabele na račun drugih dveh!
{\bf kratica} & {\bf angleško} & {\bf slovensko} \\ \hline
2023-07-31 17:09:58 +02:00
{\bf UAV} & unmanned aerial vehicle & brezpilotni letalnik \\
{\bf DNN} & deep neural network & globoka nevronska mreza \\
{\bf CNN} & convolutional neural network & konvolucijska nevronska mreza \\
{\bf RDS} & relative distance score & ocena relativne razdalje \\
{\bf MSE} & mean squared error & srednja kvadratna napaka \\
{\bf FPI} & finding point in an image & iskanje tocke v sliki \\
{\bf WAMF} & Weight-Adaptive Multi Feature fusion & Uteženo združevanje več značilk \\
{\bf PCPVT } & Pyramid Vision Transformer with Conditional Positional encodings & Piramidni vizualni transformer s pogojnimi pozicijskimi kodiranji \\
2023-07-31 16:30:31 +02:00
% \dots & \dots & \dots \\
\end{tabular}
% prazna stran
\clearemptydoublepage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% povzetek
\phantomsection
\addcontentsline{toc}{chapter}{Povzetek}
\chapter*{Povzetek}
\noindent\textbf{Naslov:} \ttitle
\bigskip
\noindent\textbf{Avtor:} \tauthor
\bigskip
%\noindent\textbf{Povzetek:}
\noindent V vzorcu je predstavljen postopek priprave diplomskega dela z uporabo okolja \LaTeX. Vaš povzetek mora sicer vsebovati približno 100 besed, ta tukaj je odločno prekratek.
Dober povzetek vključuje: (1) kratek opis obravnavanega problema, (2) kratek opis vašega pristopa za reševanje tega problema in (3) (najbolj uspešen) rezultat ali prispevek diplomske naloge.
\bigskip
\noindent\textbf{Ključne besede:} \tkeywords.
% prazna stran
\clearemptydoublepage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% abstract
\phantomsection
\selectlanguage{english}
\addcontentsline{toc}{chapter}{Abstract}
\chapter*{Abstract}
\noindent\textbf{Title:} \ttitleEn
\bigskip
\noindent\textbf{Author:} \tauthor
\bigskip
%\noindent\textbf{Abstract:}
\noindent This sample document presents an approach to typesetting your BSc thesis using \LaTeX.
A proper abstract should contain around 100 words which makes this one way too short.
\bigskip
\noindent\textbf{Keywords:} \tkeywordsEn.
\selectlanguage{slovene}
% prazna stran
\clearemptydoublepage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mainmatter
\setcounter{page}{1}
\pagestyle{fancy}
\chapter{Uvod}
2023-08-01 11:27:51 +02:00
2023-08-25 21:46:00 +02:00
Brezpilotni letalniki so postali nepogrešljivo orodje v številnih sektorjih, od vojaških operacij do kmetijskega nadzora.
Kljub njihovi široki uporabi pa se soočajo z izzivi pri avtonomni navigaciji, še posebej v okoljih, kjer je satelitski signal omejen ali nezanesljiv.
V idealnih razmerah brezpilotni letalniki za svojo navigacijo uporabljajo GPS signale.
Vendar pa lahko te signale motijo naravne in človeške ovire, kot so visoke stavbe, gorske formacije ali celo elektronske motnje.
Izguba GPS signala lahko postane kritična, še posebej v tistih trenutkih, ko je natančna lokacija letalnika ključna za njegovo nalogo.
Zato je iskanje alternativne metode za lokalizacijo brezpilotnih letalnikov postalo nujno.
Tradicionalne metode prepoznavanja slik se v kontekstu lokalizacije brezpilotnih letalnikov zdi kot obetavna alternativa.
Vendar pa se ob njihovi uporabi pojavi cela paleta izzivov. Prvič, potrebujemo ogromno slikovno bazo, ki vključuje kompresirane satelitske slike območij, nad katerimi letalnik leti.
Velikost in obseg te baze lahko povzroči precejšnje računske in pomnilniške zahteve, kar lahko oteži njeno integracijo v realnočasovih sistemih, kot so brezpilotni letalniki.
Drugič, vsaka posodobitev ali sprememba v osnovni nevronski mreži, ki se uporablja za prepoznavanje slik, zahteva ponovno obdelavo celotne slikovne baze.
To ne le da je časovno potratno, ampak tudi poveča stroške, saj morajo vse slike ponovno potekati skozi postopek predprocesiranja in razpoznave.
Tretjič, ko brezpilotni letalnik zajame sliko za primerjavo, mora ta slika biti primerjana z vsako sliko v bazi, da se ugotovi najboljše ujemanje.
V praksi to pomeni, da če imamo bazo sestavljeno iz milijonov slik, bo vsaka nova poizvedovalna slika potrebovala milijone primerjav, kar je zelo časovno potratno in računsko intenzivno.
V luči omejitev tradicionalnih metod prepoznavanja slik so raziskovalci razvili inovativen pristop imenovan FPI (Finding Point with Image) \cite{dai2022finding}.
Ta pristop se močno razlikuje od običajnih metod v smislu strukture in delovanja.
V osnovi metoda FPI vzame dva vhodna podatka: sliko posneto z dronom in pripadajočo satelitsko sliko.
V kontekstu te satelitske slike je mesto, kjer je bila dronska slika posneta.
Za obdelavo vsake slike se uporablja posebna nevronska mreža, kjer vsaka mreža obdeluje svoj nabor podatkov brez deljenja uteži z drugo.
Ko sta obe sliki obdelani in njihove značilke ekstrahirane, se med njima izvede operacija korelacije.
Ta korelacija se izraža v obliki toplotne karte, ki podaja podrobnosti o ujemanju med dronsko in satelitsko sliko.
Najvišja vrednost na toplotni karti natančno označuje mesto, kjer je dron posnel svojo sliko na večji satelitski sliki.
Ta informacija nato neposredno prevede v natančno lokalizacijo drona na satelitski sliki.
Kot je pogosto v znanosti, se iz ene inovacije rodijo druge.
Nadgradnja metode FPI, znana kot WAMF-FPI, je nadaljnje izboljšala natančnost in učinkovitost lokalizacije dronov \cite{dai2022finding}.
Ta metoda si je sposodila koncepte iz sledenja objektov in jih uporabila za lokalizacijo, kljub težavam, ki jih povzročajo razlike med slikami UAV in satelitskimi slikami.
Z uporabo dveh različnih uteži za izvleček značilnosti UAV in satelitskih slik, WAMF-FPI omogoča natančnejše in bolj zanesljivo ujemanje s slikami.
Dodatno izboljšanje je bilo doseženo z uporabo WAMF modula in Hanning loss, ki sta povečala učinkovitost modela.
WAMF-FPI je evolucija osnovne metode FPI in prinaša številne izboljšave v procesiranju slik.
Ključna prednost WAMF-FPI je njegova napredna piramidna struktura ekstrakcije značilk, ki omogoča bolj natančno in raznoliko analizo vhodnih podatkov.
Z uporabo te piramidne strukture se značilke ekstrahirajo na več različnih merilih in se nato skalirajo ter medsebojno primerjajo, da se pridobi bolj robusten in natančen sklop informacij.
Poleg tega WAMF-FPI optimizira kompresijske zmogljivosti, kar pripomore k hitrejšemu in učinkovitejšemu procesiranju podatkov.
Medtem ko je v osnovni FPI metodi končna velikost značilk bila stisnjena na 16-krat manjšo od izvorne satelitske slike, je v WAMF-FPI ta kompresijski faktor zmanjšan na samo 4-krat manjšo velikost. To omogoča WAMF-FPI, da ohrani več informacij in pridobi boljšo lokalizacijsko natančnost ob hkratnem zmanjšanju računske obremenitve.
Zaradi pomanjkanja dostopnih podatkovnih zbirk smo se odločili, da bomo ustvarili svojo.
To smo storili s pomočjo Google Earth Studio.
Naša zbirka vključuje 11 večjih evropskih mest z raznoliko strukturo.
Cilj izdelave te zbirke je bil zagotoviti raznolike podatke, ki bi lahko služili kot robustna osnova za testiranje in validacijo naše implementacije WAMF-FPI.
Zato smo se odločili, da bomo v tej diplomski nalogi sami implementirali WAMF-FPI, kakor je opisano v izvornem članku, in preverili njegovo delovanje.
Implementirali smo vse, kakor je v članku opisano, z namenom dobiti objektivno sliko o učinkovitosti in natančnosti metode.
V tej diplomski nalogi bomo podrobno raziskali te tehnike, njihove prednosti in pomanjkljivosti ter potencialne aplikacije in izboljšave za prihodnost.
Ocenjevali bomo njihovo učinkovitost in natančnost, s poudarkom na njihovi uporabi v realnih scenarijih lokalizacije brezpilotnih letalnikov.
Naš cilj je ponuditi temeljito analizo metode WAMF-FPI in njenih aplikacij, da bi olajšali nadaljnji razvoj in uporabo v industriji brezpilotnih letalnikov.
\section{Osnonvi pojmi in terminologija}
2023-08-01 11:27:51 +02:00
2023-08-25 21:46:00 +02:00
\subsection{Brezpilotni letalnik}
Brezpilotni letalniki, znani tudi kot droni, so daljinsko vodena ali avtonomna zračna plovila, opremljena s senzorji in GPS tehnologijo.
Uporabljajo se v različnih sektorjih, od vojaških do rekreativnih, in so postali ključni za zbiranje podatkov v realnem času, terenske raziskave in opravljanje potencialno nevarnih nalog.
Njihova prilagodljivost omogoča uporabo v številnih aplikacijah, kot so inspekcije, filmska produkcija in dostava.
Kljub hitremu razvoju in rasti trga pa tehnologija prinaša izzive, povezane z zasebnostjo, varnostjo in zakonodajo, kar spodbuja nadaljnje raziskave na tem področju.
2023-08-01 11:27:51 +02:00
2023-08-25 21:46:00 +02:00
\subsection{Satelit}
Sateliti so tehnološke naprave, ki krožijo okoli Zemlje ali drugih nebesnih teles.
Uporabljajo se za različne namene, kot so komunikacija, vremensko opazovanje, navigacija in znanstvene raziskave.
Komunikacijski sateliti omogočajo globalno povezovanje in prenos podatkov, medtem ko vremenski sateliti pomagajo pri napovedovanju vremena.
Sistem GPS, ki temelji na navigacijskih satelitih, je postal ključen za določanje lokacije. Znanstveni sateliti prispevajo k razumevanju vesolja in Zemlje.
2023-08-01 11:27:51 +02:00
2023-08-25 21:46:00 +02:00
\subsection{Geolokalizacija}
Geolokalizacija je proces ugotavljanja geografske lokacije naprav, kot so mobilni telefoni ali vozila.
Ključna je za GPS in navigacijske sisteme, omogoča ciljno usmerjanje oglasov, sledenje vozil, iskanje izgubljenih naprav in deljenje lokacij v socialnih omrežjih.
Uporablja se tudi v znanstvenih raziskavah, kot je spremljanje selitve živali.
Vendar natančnost varira glede na tehnologijo in okolje, prav tako pa se pojavljajo izzivi v zvezi z zasebnostjo in varnostjo.
2023-08-01 11:27:51 +02:00
2023-08-25 21:46:00 +02:00
\subsection{Toplotna karta}
Toplotna karta vizualno predstavlja podatke z barvami, ki odražajo vrednosti v matriki.
Uporabljena je za vizualizacijo razporeditve spremenljivk v dvodimenzionalnem prostoru in je koristna v znanstvenih ter poslovnih aplikacijah, kot so statistika, biologija in geografija.
Omogoča hitro razumevanje kompleksnih podatkov, saj barvni prehodi razkrivajo vzorce in trende.
2023-08-01 11:27:51 +02:00
2023-08-25 21:46:00 +02:00
\chapter{Metodologija}
\label{ch0}
2023-08-01 11:27:51 +02:00
2023-08-25 21:46:00 +02:00
V svetu računalniškega vida in strojnega učenja je razvoj učinkovitih metod za lokalizacijo specifičnih točk ali značilnosti v sliki ključnega pomena za številne aplikacije.
V okviru pristopa WAMF-FPI je ta problematika še posebej izpostavljena, saj se osredotoča na natančno določanje točke v sliki.
Da bi to dosegli, je potrebno uporabiti kombinacijo različnih arhitektur in tehnik, ki so se izkazale kot učinkovite v različnih scenarijih obdelave slik.
2023-08-01 11:27:51 +02:00
2023-08-25 21:46:00 +02:00
V tem poglavju bomo predstavili osnovne komponente, ki jih uporabljamo v našem modelu.
Začeli bomo s konvolucijskimi nevronskimi mrežami, ki so temeljni gradnik v večini modelov za obdelavo slik in nudijo močno orodje za izluščenje značilnosti iz vizualnih podatkov.
Nadaljevali bomo s predstavitvijo transformerske arhitekture, ki je revolucionirala področje obdelave naravnega jezika in se v zadnjem času vedno bolj uporablja tudi v računalniškem vidu.
Podrobneje se bomo osredotočili na zgradbo transformerja in njegove ključne komponente.
V nadaljevanju bomo razpravljali o Vision Transformerju (ViT) in njegovi razširjeni verziji - Piramidnem vision transformerju (PVT).
Posebno pozornost bomo posvetili tudi prilagojeni različici PVT, ki upošteva lokalne značilnosti, imenovani PCPVT.
Zaključili bomo s siamskimi nevronskimi mrežami, ki predstavljajo ključno komponento pri primerjavi vzorcev.
Te mreže so še posebej pomembne, ko želimo primerjati dva ali več podobnih vzorcev in ugotoviti, ali med njimi obstajajo razlike.
2023-08-01 11:27:51 +02:00
2023-08-25 21:46:00 +02:00
Z vključitvijo vseh teh komponent in tehnik v naš model WAMF-FPI želimo razviti robusten in natančen sistem za lokalizacijo točk v slikah.
V nadaljevanju poglavja bomo vsako od teh komponent podrobno raziskali, da bi bolje razumeli njihove lastnosti in kako prispevajo k celotnemu modelu.
2023-08-01 11:27:51 +02:00
2023-08-25 21:46:00 +02:00
\section{Konvolucijske nevronske mreze}
Konvolucijske nevronske mreže (CNN - Convolutional Neural Networks) so globoka učna metoda, specializirana za obdelavo vizualnih podatkov, zasnovana tako,
da avtomatsko in adaptivno izvaja izvleček značilnosti iz slik.
2023-08-01 11:27:51 +02:00
2023-08-25 21:46:00 +02:00
\subsection{Struktura in delovanje}
2023-08-01 11:27:51 +02:00
2023-08-25 21:46:00 +02:00
Osnovna struktura CNN vključuje stiri glavne vrste plasti: konvolucijsko, aktivacijsko, združevalno (pooling) in polno povezano plast.
2023-08-22 11:28:16 +02:00
2023-08-25 21:46:00 +02:00
\begin{enumerate}
\item \textbf{Konvolucijska plast}:
Vsak nevron v tej plasti je povezan z le majhnim območjem v prejšnji plasti, namesto da bi bil povezan z vsemi nevroni, kot je to v običajnih nevronskih mrežah.
Ko se filter (ali jedro) premika preko slike, izvaja konvolucijsko operacijo:
\begin{equation}
(I * K)(x,y) = \sum_{m} \sum_{n} I(m,n) \cdot K(x-m, y-n)
\end{equation}
\item \textbf{Aktivacijska funkcija}:
Po konvolucijski operaciji se uporabi aktivacijska funkcija za vsak izhod. Najpogosteje se uporablja funkcija \texttt{ReLU}:
\begin{equation}
\text{ReLU}(x) = \max(0, x)
\end{equation}
\item \textbf{Združevalna plast}:
Po konvolucijski in aktivacijski operaciji sledi združevalna plast, ki zmanjšuje dimenzije slike z uporabo operacij, kot je "max pooling":
\begin{equation}
P(i,j) = \max_{m,n \in R} I(i+m, j+n)
\end{equation}
\item \textbf{Polno povezane plasti}:
Delujejo kot klasične plasti v običajnih nevronskih mrežah. Vsak nevron je povezan z vsemi izhodi prejšnje plasti.
\end{enumerate}
2023-08-22 11:28:16 +02:00
2023-08-25 21:46:00 +02:00
\subsection{Učenje in optimizacija}
2023-07-31 16:30:31 +02:00
2023-08-25 21:46:00 +02:00
Glavni mehanizem učenja v CNN je nazajno širjenje napak (backpropagation).
To je iterativna metoda, ki minimizira kriterijsko funkcijo, da bi ugotovili optimalne uteži mreže.
Za mnoge naloge v obdelavi slik je kvadratna napaka (MSE) izbrana kot kriterijska funkcija:
2023-07-31 16:30:31 +02:00
2023-08-25 21:46:00 +02:00
\begin{center}
\begin{equation}
J(w) = \frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y}_i)^2
\end{equation}
\end{center}
Za optimizacijo uteži se uporablja gradientni sestop.
Za vsako iteracijo se uteži posodobijo v smeri negativnega gradienta kriterijske funkcije funkcije:
\begin{center}
\begin{equation}
w_{\text{novi}} = w_{\text{stari}} - \eta \nabla J(w_{\text{stari}})
\end{equation}
\end{center}
\subsection{Značilnosti in prednosti}
Konvolucijske mreže so sposobne avtomatskega zaznavanja hierarhičnih značilnosti.
Na nižjih ravneh mreže so zaznane nizkonivojske značilnosti, kot so robovi in teksture, na višjih ravneh pa se zaznavajo kompleksnejše strukture, kot so oblike in objekti.
To hierarhično značilnost je tisto, kar CNN omogoča, da dosega izjemno natančnost pri različnih nalogah obdelave slik.
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
\section{Transformerska arhitektura}
2023-08-05 23:42:06 +02:00
\subsection{Predhodni mehanizmi}
2023-08-08 11:14:53 +02:00
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).
2023-08-22 11:28:16 +02:00
Najpogostejša uporaba teh modelov v kontekstu strojnega prevajanja ali drugih nalog pretvarjanja zaporedja v zaporedje je bila uporaba strukture kodirnik-dekodirnik.
2023-08-08 11:14:53 +02:00
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.
2023-08-05 23:42:06 +02:00
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.
2023-08-22 11:28:16 +02:00
Č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.
2023-08-05 23:42:06 +02:00
\subsection{Razlaga RNN kodirnik-dekodirnik arhitekture}
Definirajmo problem strojnega prevajanja kot iskanje najboljše ciljne sekvence $\vec{E} = (e_0, e_1, ..., e_m)$ glede na dane izvorne besede $\vec{F} = (f_0, f_1, ..., f_n)$.
Ta problem lahko izrazimo kot optimizacijo pogojne verjetnosti $P(\vec{E}|\vec{F})$.
Začnimo z opisom RNN-kodirnik-dekodirnik arhitekture.
2023-08-08 11:14:53 +02:00
Imamo dva RNN modela, kodirnik $\text{RNN}_{\text{enc}}$ in dekodirnik $\text{RNN}_{\text{dec}}$.
2023-08-05 23:42:06 +02:00
Kodirnik z zaporedjem vektorjev $\vec{F}$ proizvede skrito stanje $h_n$:
\begin{equation}
h_n = \text{RNN}_\text{enc}(f_n, h_{n-1})
\end{equation}
2023-08-22 11:28:16 +02:00
Začetno stanje $h_0$ je pogosto postavljeno ali na nič ali se ga mreza nauči.
2023-08-05 23:42:06 +02:00
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}
2023-08-22 11:28:16 +02:00
Opomba: pri ucenju se za $e_{t-1}$ pogosto uporablja dejanska vrednost iz ciljnega zaporedja (ne izhod modela), kar je znano kot "teacher forcing".
2023-08-08 11:14:53 +02:00
Izvorna zaporedja besed $\vec{F}$ se tako vnašajo v kodirnik, ki generira skrita stanja za vsako besedo:
2023-08-05 23:42:06 +02:00
\begin{equation}
\vec{H} = \text{Encoder}(\vec{F})
\end{equation}
Za vsako besedo v ciljnem zaporedju $\vec{E}$ se potem izračuna ponderirana vsota skritih stanj iz kodirnika:
\begin{equation}
\vec{a}_t = \text{Attention}(\vec{H}, e_{t-1})
\end{equation}
Potem se ta vektor uporabi za napoved ciljne besede:
\begin{equation}
e_t = \text{Decoder}(\vec{a}_t, e_{t-1})
\end{equation}
Ta pristop omogoča, da dekodirnik upošteva vse besede v izvornem zaporedju, ne samo prejšnje besede v ciljnem zaporedju, kar izboljša kakovost prevoda.
Vendar je to zgolj matematična formulacija koncepta. Dejanski detajli, kot so vrste in struktura kodirnika in dekodirnika, so odvisni od specifičnega modela, ki ga uporabljamo.
\begin{figure}[h]
\centering
2023-08-23 14:36:44 +02:00
\includegraphics[width=0.9\textwidth]{./img/rnn.pdf}
\caption{Skica RNN modela}
2023-08-05 23:42:06 +02:00
\label{fig:rnn}
\end{figure}
\section{Zgradba transformerja}
V kontekstu strojnega prevajanja so avtorji v članku "Attention is all you need" \cite{vaswani2017attention} o pozornosti predstavili novo vrsto arhitekture, ki se loteva mnogih pasti modelov, ki temeljijo na RNN.
2023-08-23 20:30:16 +02:00
Kljub vsem napredkom pri kodirnikih-dekodirnikih RNN, ki smo jih obravnavali zgoraj, je ostalo dejstvo, da so RNN težko paralelizabilni, ker zaporedno obdelujejo vhod.
2023-08-08 11:14:53 +02:00
Ključna inovacija tega članka je, da so RNN in njihova skrita stanja v celoti nadomeščena z operacijami na osnovi pozornosti, ki so v mnogih problematičnih režimih bolj učinkovite.
2023-08-05 23:42:06 +02:00
2023-08-23 20:30:16 +02:00
Transformerski model je model kodirnika-dekodirnika. Kodirnik sestavljajo $N$ blokov na levi, dekodirnik pa $N$ blokov na desni, vidno na sliki \ref{fig:transformer_network}.
2023-08-05 23:42:06 +02:00
\begin{figure}[h]
\centering
\includegraphics[width=0.5\textwidth]{./img/transformer_network.jpg}
\caption{Izgled transformerskega modela, iz clanka "Attention is all you need" \cite{vaswani2017attention}.}
\label{fig:transformer_network}
\end{figure}
2023-08-08 11:14:53 +02:00
Med ucenjem se vhodne besede $\vec{F} = (f_0, ..., f_n)$ hkrati prenesejo v prvi blok kodirnika, izhod tega bloka pa se nato prenese v njegovega naslednika.
Postopek se ponavlja, dokler vseh $N$ blokov kodirnika ni obdelalo vhoda.
2023-08-23 20:30:16 +02:00
Vsak blok ima dve komponenti: plast večglave samopozornosti, ki ji sledi polno povezana plast z aktivacijami ReLU, ki obdeluje vsak element vhodne sekvence vzporedno.
Tako večglavi sloj pozornosti kot polno povezana plast sledita koraku \textit{Dodaj in Normiraj} - \textit{dodaj} se nanaša na residualno povezavo,
2023-08-08 11:14:53 +02:00
ki doda vhod vsake plasti na izhod, \textit{normiraj} pa se nanaša na normalizacijo plasti.
2023-08-05 23:42:06 +02:00
Ko je vhod prešel skozi vse bloke kodiranja, ostane kodirana predstavitev $\vec{F}$.
2023-08-08 11:14:53 +02:00
Dekodirnik pa sestoji iz treh korakov: maske večglave samopozornosti,
2023-08-23 20:30:16 +02:00
večglave plasti pozornosti, ki povezuje kodirano izvorno predstavitev z dekodirnikom, in polno povezane plasti z aktivacijami ReLU.
2023-08-08 11:14:53 +02:00
Tako kot v kodirniku, vsaki plasti sledi plast \textit{Dodaj in Normiraj}.
2023-08-05 23:42:06 +02:00
Dekodirnik sprejme vse ciljne besede $\vec{E} = (e_0, ..., e_m)$ kot vhod.
2023-08-08 11:14:53 +02:00
V procesu napovedovanja besede $e_i$ ima dekodirnik dostop do prej generiranih besed.
Ne more pa imeti dostopa do besed, ki sledijo $e_i$, saj te še niso bile generirane.
Maskiranje med ucenjem nam omogoča, da posnemamo pogoje, s katerimi se bo model soočil med sklepanjem.
2023-08-05 23:42:06 +02:00
Obstaja nekaj ključnih razlik od kodirnika - ena je, da so vhodi v prvo operacijo pozornosti v blokih dekodirnika maskirani, zato ime plasti.
2023-08-08 11:14:53 +02:00
To pomeni, da se lahko katera koli beseda v ciljnem izhodu nanaša samo na besede, ki so prišle pred njo.
2023-08-05 23:42:06 +02:00
Razlog za to je preprost: med sklepanjem generiramo predvideni prevod $\vec{E}$ besedo za besedo z uporabo izvornega stavka $\vec{F}$.
2023-08-08 11:14:53 +02:00
2023-08-05 23:42:06 +02:00
Druga razlika od kodirnika je druga večglava plast pozornosti, ki se imenuje tudi plast pozornosti kodirnika-dekodirnika.
Za razliko od plasti pozornosti na začetku blokov kodirnika in dekodirnika ta plast ni plast samopozornosti.
2023-08-22 11:28:16 +02:00
\subsection{Scaled Dot-Product Attention}
2023-08-08 11:14:53 +02:00
Ta funkcija se uporablja v vseh plasteh pozornosti v transformerju.
2023-08-05 23:42:06 +02:00
Za zdaj bomo razčlenili matematiko za to operacijo, samo da dobimo občutek, katera števila gredo kam.
2023-08-22 11:28:16 +02:00
Kasneje se bomo osredotočili na njegove aplikacije v članku \cite{vaswani2017attention}.
2023-08-05 23:42:06 +02:00
2023-08-22 11:28:16 +02:00
\begin{center}
\begin{equation}
\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V
\end{equation}
\end{center}
2023-08-05 23:42:06 +02:00
2023-08-23 20:30:16 +02:00
Scaled Dot-Product Attention je skoraj identičen Dot-Product Attention-u, omenjenem prej pri Luongu \cite{bahdanau2015neural}.
2023-08-05 23:42:06 +02:00
Edina razlika je, da je vhod v softmax skaliran s faktorjem $\frac{1}{\sqrt{d_k}}$.
2023-08-08 11:14:53 +02:00
V članku in predhodni literaturi se vrstice $Q \in \mathbb{R}^{m \times d_k}$ imenujejo "poizvedbe", vrstice $K \in \mathbb{R}^{n \times d_k}$ "ključi", in končno vrstice $V \in \mathbb{R}^{n \times d_v}$ "vrednosti".
Upoštevati je potrebno, da se za izvedbo mora število ključev in vrednosti $n$ ujemati, vendar se lahko število poizvedb $m$ razlikuje.
2023-08-05 23:42:06 +02:00
Prav tako se mora dimenzionalnost ključev in poizvedb ujemati, vendar se lahko dimenzionalnost vrednosti razlikuje.
2023-08-08 11:14:53 +02:00
Izpeljimo izracun pozornosti. Zaceli bomo z zapisom posameznih vrstic $Q$ in $K$, nato pa bomo izrazili produkt $QK^T$ v smislu teh vrstic:
2023-08-05 23:42:06 +02:00
2023-08-22 11:28:16 +02:00
\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}
2023-08-05 23:42:06 +02:00
2023-08-23 20:30:16 +02:00
Nato pridobimo naše uteži pozornosti tako, da vsak element delimo z $\sqrt{d_k}$ in uporabimo funkcijo softmax nad vsako vrstico:
2023-08-22 11:28:16 +02:00
\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}
2023-08-05 23:42:06 +02:00
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$:
2023-08-22 11:28:16 +02:00
\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}
2023-08-05 23:42:06 +02:00
2023-08-08 11:14:53 +02:00
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.
2023-08-05 23:42:06 +02:00
Vsaka od $m$ poizvedb v $Q$ rezultira v specifični uteženi vsoti vektorskih vrednosti.
2023-08-22 11:28:16 +02:00
Pomembno je omeniti, da v tem posebnem postopku ni nobenih učljivih parametrov - sestavljen je izključno iz matričnih in vektorskih operacij.
2023-08-08 11:14:53 +02:00
Poglejmo si se posamezno vrstico $i$ uteži pozornosti:
2023-08-05 23:42:06 +02:00
2023-08-22 11:28:16 +02:00
\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}
2023-08-05 23:42:06 +02:00
kjer je $S$ normalizacijska konstanta:
2023-08-22 11:28:16 +02:00
\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}
2023-08-05 23:42:06 +02:00
Če pogledamo, kako so uteži konstruirane, je izvor imen "poizvedbe", "ključi" in "vrednosti" jasnejši.
2023-08-08 11:14:53 +02:00
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:
2023-08-22 11:28:16 +02:00
\begin{center}
\begin{equation}
q_i \cdot k_j = |q_i||k_j|\cos(\theta)
\end{equation}
\end{center}
2023-08-05 23:42:06 +02:00
2023-08-08 11:14:53 +02:00
Uporaba eksponentne funkcije povečuje pozitivne vrednosti kosinusa in zmanjšuje negativne.
2023-08-22 11:28:16 +02:00
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.
2023-08-05 23:42:06 +02:00
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.
2023-08-23 20:30:16 +02:00
Še ena pomanjkljivost, ki so jo raziskovalci opazili pri modelih, ki temeljijo na RNN (Recurrent Neural Networks) arhitekturi, je, da imajo težave z uporabo informacij iz elementov, ki so bili opaženi daleč v preteklosti.
2023-08-08 11:14:53 +02:00
To je posledica tega, kar se imenuje "problem dolgih časovnih razdalj", kjer se informacije iz preteklih korakov postopoma izgubljajo skozi čas.
Bolj splošno, RNN imajo težave z povezovanjem zaporednih informacij, ki so med seboj daleč narazen. Tehnike, kot so pozornost na skritih stanjih (attention on hidden states) in dvosmerni modeli (bidirectional models), so bili poskusi za odpravo te težave in so služili kot naravni prehod v tehnike v tem članku.
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:
2023-08-22 11:28:16 +02:00
\begin{center}
\begin{equation}
\text{softmax}(x_i) = \frac{\exp(x_i)}{\sum_j \exp(x_j)}
\end{equation}
\end{center}
2023-08-08 11:14:53 +02:00
Gradient softmax funkcije je izračunan kot:
2023-08-22 11:28:16 +02:00
\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}
2023-08-08 11:14:53 +02:00
kjer $ \partial_{ij}$ je Kroneckerjev delta, ki je enak 1, če sta i in j enaka, in 0 sicer.
Če upoštevamo skaliranje, dobimo:
2023-08-22 11:28:16 +02:00
\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}
2023-08-08 11:14:53 +02:00
kjer C je faktor skaliranja. Iz tega lahko vidimo, da skaliranje zmanjšuje velikost gradientov, kar lahko pomaga pri stabilizaciji učenja.
\subsection{Multi-Head Attention}
Večglava pozornost (Multi-Head Attention) je razširitev mehanizma pozornosti Scaled Dot-Product Attention.
V večglavi pozornosti se vhodni podatki (poizvedbe, ključi in vrednosti) najprej transformirajo v več različnih prostorov z uporabo linearnih preslikav.
Nato se za vsak niz izračuna funkcija pozornosti Scaled Dot-Product Attention.
Rezultati teh funkcij pozornosti se nato združijo skupaj v eno matriko.
Končno, ta matrika se preslika nazaj v izvirni prostor z uporabo druge linearne preslikave, da se pridobi končni rezultat večglave pozornosti.
Avtorji to izrazijo v spodnji obliki:
\begin{equation}
\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W_O
\end{equation}
Vsak $\text{head}_i$ je rezultat izvajanja Scaled Dot-Product Attention na $i$-tem nizu transformiranih poizvedb, ključev in vrednosti:
\begin{equation}
\text{head}_i = \text{Attention}(QW_{Qi}, KW_{Ki}, VW_{Vi})
\end{equation}
kjer so $Q \in \mathbb{R}^{m \times d_{\text{model}}}$, $K \in \mathbb{R}^{n \times d_{\text{model}}}$, in $V \in \mathbb{R}^{n \times d_{\text{model}}}$.
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.
2023-08-22 11:28:16 +02:00
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}$.
2023-08-08 11:14:53 +02:00
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.
Vsak izračun glave ima drugačno linearno preslikavo za matrike ključev, poizvedb in vrednosti.
Vsaka od teh preslikav se nauči med ucenjem.
\subsubsection{Maskiranje vhodov}
En način za maskiranje vhodov je preprosto dodajanje matrike M k argumentu ki vsebuje 0 v spodnjem trikotniku in $-\infty$ povsod drugje:
\begin{equation}
\frac{1}{\sqrt{d_k}} Q' K'^T + M =
\end{equation}
2023-08-09 14:50:30 +02:00
\begin{align*}
\begin{pmatrix}
\frac{1}{\sqrt{d_k}}
\vec{q}'_0 \cdot \vec{k}'_0 & \vec{q}'_0 \cdot \vec{k}'_1 & \cdots & \vec{q}'_0 \cdot \vec{k}'_n \\
\vec{q}'_1 \cdot \vec{k}'_0 & \vec{q}'_1 \cdot \vec{k}'_1 & \cdots & \vec{q}'_1 \cdot \vec{k}'_n \\
\vdots & \vdots & \ddots & \vdots \\
\vec{q}'_n \cdot \vec{k}'_0 & \vec{q}'_n \cdot \vec{k}'_1 & \cdots & \vec{q}'_n \cdot \vec{k}'_n \\
\end{pmatrix}
+
\begin{pmatrix}
0 & -\infty & -\infty & \cdots & -\infty \\
-\infty & 0 & 0 & \cdots & -\infty \\
-\infty & \vdots & \vdots & \vdots & \vdots \\
-\infty & 0 & 0 & \cdots & 0 \\
-\infty & 0 & 0 & \cdots & 0 \\
\end{pmatrix}
\end{align*}
\begin{align*}
=
\frac{1}{\sqrt{d_k}}
\begin{pmatrix}
\vec{q}'_0 \cdot \vec{k}'_0 & -\infty & -\infty & \cdots & -\infty \\
\vec{q}'_1 \cdot \vec{k}'_0 & \vec{q}'_1 \cdot \vec{k}'_1 & -\infty & \cdots & -\infty \\
\vdots & \vdots & \ddots & \vdots \\
\vec{q}'_{n-1} \cdot \vec{k}'_0 & \vec{q}'_{n-1} \cdot \vec{k}'_1 & \vec{q}'_{n-1} \cdot \vec{k}'_2 & \cdots & -\infty \\
\vec{q}'_n \cdot \vec{k}'_0 & \vec{q}'_n \cdot \vec{k}'_1 & \vec{q}'_n \cdot \vec{k}'_2 & \cdots & \vec{q}'_n \cdot \vec{k}'_n \\
\end{pmatrix}
\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.
2023-08-22 11:28:16 +02:00
\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.
2023-08-08 11:14:53 +02:00
Medtem ko so pri samopozornosti vsi trije vhodi enaka matrika, to tukaj ne velja.
2023-08-09 14:50:30 +02:00
\begin{align*}
\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h) W_O, \quad \text{head}_i = f(Q, K, V)
\end{align*}
2023-08-08 11:14:53 +02:00
Ko govorimo o pozornosti med kodirnikom in dekodirnikom, je edina razlika od prej v tem, da $Q$ izhaja iz sloja maske večglave pozornosti, medtem ko sta $K$ in $V$ kodirani predstavitvi $\vec{F}$.
Lahko bi razmišljali o tem tako, da model zastavlja vprašanje o tem, kako se vsak položaj v ciljni sekvenci nanaša na izvor, in pridobiva predstavitve izvora za uporabo pri generiranju naslednje besede v cilju.
Pomembno je poudariti, da vsi bloki dekodirnika prejmejo enake podatke od kodirnika. Od prvega do $N$-tega bloka dekodirnika vsak uporablja kodirano izvorno sekvenco kot ključe in vrednosti.
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
\section{Vision Transformer (ViT)}
2023-08-08 11:14:53 +02:00
Transformerji so prvotno bili omejeni na obdelavo zaporedij, kar je idealno za jezik, vendar ne nujno za slike, ki so običajno 2D.
To se je spremenilo z razvojem Vision Transformerja (ViT) s strani Google-a \cite{vit}.
Namesto da bi slike obdelovali kot 2D mreže pikslov (kot to počnejo konvolucijske nevronske mreže), Vision Transformer slike obravnava kot zaporedje majhnih kvadratov ali "oblizev".
To omogoča uporabo enakih tehnik samo-pozornosti, ki so bile učinkovite v jezikovnih modelih, tudi za obdelavo slik.
Ta pristop je pokazal obetavne rezultate, saj je Vision Transformer dosegel ali presegel učinkovitost konvolucijskih nevronskih mrež na številnih nalogah računalniškega vida.
\subsubsection{ViT arhitektura}
\begin{itemize}
\item Razdelitev slike na oblize: Slika velikosti $H \times W \times C$ se razdeli na kvadrate (oblize) velikosti $P \times P$, kjer je $H$ višina, $W$ širina, $C$ število barvnih kanalov in $P$ velikost obliza.
To ustvari $(H \cdot W) / P^2$ oblizev. Vsak obliz se nato zravna v 1D vektor dolžine $P^2 \cdot C$.
Linearne projekcije: Vsak 1D vektor $x$ se prenese skozi enostaven linearni model (npr. polno povezano plast), da se pretvori v vektorski vložek. To se lahko zapiše kot:
2023-08-09 14:50:30 +02:00
\begin{align*}
z = Wx + b
\end{align*}
2023-08-08 11:14:53 +02:00
kjer sta $W$ in $b$ uteži in pristranskost linearne plasti.
\item Dodajanje pozicijskih vložkov: Ker transformerji ne vsebujejo nobene inherentne informacije o relativni ali absolutni poziciji vložkov v zaporedju, se dodajo pozicijski vložki.
To so enaki vektorji, ki se dodajo vložkom oblizev, da bi modelu dali nekaj informacij o tem, kje se obliz nahaja v sliki.
Če je $z_i$ vložek $i$-tega obliza in $p_i$ pozicijski vložek, potem je končni vložek $e_i$ določen kot:
2023-08-09 14:50:30 +02:00
\begin{align*}
e_i = z_i + p_i
\end{align*}
2023-08-08 11:14:53 +02:00
\item Transformerjevi bloki: Zaporedje vložkov (zdaj z dodanimi pozicijskimi vložki) se nato prenese skozi več blokov transformerjev.
Ti bloki vsebujejo večglavo samo-pozornost in mreže feed-forward, ki omogočajo modelu, da se nauči, kako povezati različne dele slike. Večglava samo-pozornost se lahko zapiše kot:
2023-08-09 14:50:30 +02:00
\begin{align*}
\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h) W_O
\end{align*}
2023-08-22 11:28:16 +02:00
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.
2023-08-08 11:14:53 +02:00
\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:
2023-08-09 14:50:30 +02:00
\begin{align*}
y = \text{softmax}(W_2\text{ReLU}(W_1e))
\end{align*}
2023-08-08 11:14:53 +02:00
kjer sta $W_1$ in $W_2$ uteži polno povezanih plasti, $e$ je vložek, ki izhaja iz transformerjevih blokov, in $\text{ReLU}$ in $\text{softmax}$ sta aktivacijski funkciji.
\end{itemize}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
\section{Piramidni vision transformer (PVT)}
2023-08-08 11:14:53 +02:00
Piramidni Vision Transformer (PVT) \cite{wang2021pyramid} je bil razvit z namenom vključitve piramidne strukture v okvir Transformerja, kar omogoča generiranje večrazsežnih značilnostnih map za naloge goste napovedi, kot so zaznavanje objektov in semantična segmentacija.
Arhitektura PVT je razdeljena na štiri stopnje.
Vsaka od teh stopenj je sestavljena iz plasti za vdelavo obližev, imenovane "patch embedding", in iz več plasti Transformer kodirnika.
Značilnost te arhitekture je, da izstopna ločljivost štirih stopenj postopoma zmanjšuje, kar sledi piramidni strukturi.
Na najvišji stopnji je ločljivost značilnostne mape največja, medtem ko se na najnižji stopnji zmanjša.
Za boljše razumevanje, poglejmo podrobneje prvo stopnjo: Vhodna slika velikosti $ H \times W \times 3 $ je razdeljena na obliže velikosti $4 \times 4 \times 3$.
To pomeni, da je število obližev enako $ HW/4^2 $. Vsak obliž je nato sploščen in prenesen v linearno projekcijo, kar rezultira v vdelanih obližih velikosti
$ HW / 4^2 \times C1 $. Ti vdelani obliži, skupaj z dodano vdelavo položaja, prehajajo skozi Transformer kodirnik z $L1$ plastmi.
Izhod iz tega kodirnika je nato preoblikovan v značilnostno mapo $ F1 $ velikosti $ H/4 \times W/4 \times C1 $.
Matematično to lahko izrazimo kot:
\begin{equation}
F1 = \frac{H}{4} \times \frac{W}{4} \times C1
\end{equation}
Naslednje stopnje PVT sledijo podobnemu pristopu, vendar z različnimi ločljivostmi in dimenzijami. Na primer, značilnostne mape $F2, F3 \text{ in } F4$
so pridobljene z različnimi koraki, ki so 8, 16 in 32 slikovnih pik glede na vhodno sliko.
Ena izmed ključnih inovacij v PVT je uporaba pozornosti za zmanjšanje prostorskega obsega (SRA) namesto tradicionalne večglave pozornostne plasti (MHA). Ta pristop omogoča PVT, da učinkovito obdela značilnostne mape visoke ločljivosti.
V primerjavi z Vision Transformer (ViT), PVT prinaša večjo prilagodljivost, saj lahko generira značilnostne mape različnih meril/kanalov v različnih fazah. Poleg tega je bolj vsestranski, saj se lahko enostavno vključi in uporabi v večini modelov za spodnje naloge. Prav tako je bolj prijazen do računalništva in spomina, saj lahko obdela značilnostne mape višje ločljivosti ali daljše sekvence.
2023-07-31 16:30:31 +02:00
2023-08-24 14:01:49 +02:00
\begin{figure}[h]
\centering
\includegraphics[width=0.9\textwidth]{./img/pvt.pdf}
\caption{Skica PVT modela}
\label{fig:pvt}
\end{figure}
2023-08-05 13:17:05 +02:00
\section{Piramidni vision transformer z uporabo lokalnih značilnosti (PCPVT)}
2023-08-08 11:14:53 +02:00
Twins-PCPVT \cite{chu2021twins} je zasnovan na osnovi PVT in CPVT \cite{chu2021conditional}. Glavna razlika med Twins-PCPVT in PVT je v načinu, kako se uporabljajo pozicijski kodiranji.
V PVT so uporabljena absolutna pozicijska kodiranja, medtem ko Twins-PCPVT uporablja pogojna pozicijska kodiranja (CPE), ki so bila predlagana v CPVT.
PVT je uvedel piramidni večstopenjski dizajn, da bi bolje obravnaval naloge goste napovedi, kot so zaznavanje objektov in semantična segmentacija.
Vendar je bilo presenetljivo ugotovljeno, da je manjša učinkovitost PVT-ja predvsem posledica uporabe absolutnih pozicijskih kodiranj.
Absolutna pozicijska kodiranja se soočajo s težavami pri obdelavi vhodov različnih velikosti, kar je pogosto v nalogah goste napovedi.
V Twins-PCPVT so absolutna pozicijska kodiranja nadomeščena s pogojnimi pozicijskimi kodiranji (CPE), ki so pogojena na vhodih in se lahko naravno izognejo zgoraj omenjenim težavam.
Generator pozicijskega kodiranja (PEG), ki generira CPE, je postavljen za prvim kodirnim blokom vsake stopnje.
Uporablja najpreprostejšo obliko PEG, tj. 2D globinsko konvolucijo brez normalizacije serije.
\begin{equation}
CPE = f(PEG(E_1, E_2, ..., E_n))
\end{equation}
Kjer je CPE pogojno pozicijsko kodiranje, $ f $ je funkcija, ki generira kodiranje na podlagi vhodnih značilnosti, in $E_i$ so značilnosti iz različnih stopenj kodirnika.
Twins-PCPVT združuje prednosti tako PVT kot CPVT, kar ga naredi enostavnega za učinkovito implementacijo.
Eksperimentalni rezultati so pokazali, da ta preprosta zasnova lahko doseže zmogljivost nedavno predlaganega Swin transformerja \cite{liu2021swin}.
2023-07-31 16:30:31 +02:00
2023-08-25 21:46:00 +02:00
\section{Siamska nevronska mreža za primerjavo vzorcev}
2023-08-09 14:50:30 +02:00
2023-08-25 21:46:00 +02:00
Pri obdelavi slik in vizualni analitiki je ena izmed ključnih nalog primerjava ali ujemanje vzorcev, znano tudi kot "template matching".
Tradicionalne metode, ki temeljijo na neposrednem ujemanju ali korelaciji, so občutljive na spremembe svetlobe, rotacije, deformacije in druge variacije v sliki.
S prihodom globokih nevronskih mrež, zlasti siamskih mrež, se je učinkovitost te naloge znatno povečala.
2023-08-09 14:50:30 +02:00
2023-08-25 21:46:00 +02:00
\subsection{Osnovna arhitektura siamske mreže za primerjavo vzorcev}
Klasična siamska mreža za primerjavo vzorcev sestoji iz dveh identičnih podmrež, ki delijo enake uteži.
Vsaka podmreža prejme sliko: ena je ciljna slika, druga pa je iskana slika.
Oba vhoda se preoblikujeta v značilnostne vektorje prek teh podmrež.
Nato se izračuna razdalja med obema vektorjema, običajno z evklidsko razdaljo, da se ugotovi, kako sta sliki podobni.
Matematično, za dve sliki $x_1$ in $x_2$, podmreži proizvedeta predstavitve $f(x_1; \theta)$ in $f(x_2; \theta)$.
Razdalja $D$ med tema dvema predstavitvama je določena kot:
\begin{center}
\begin{equation}
D(f(x_1; \theta), f(x_2; \theta)) = \| f(x_1; \theta) - f(x_2; \theta) \|_2
\end{equation}
\end{center}
\subsection{Učenje siamske mreže za primerjavo vzorcev}
Da bi siamsko mrežo usposobili za učinkovito primerjavo vzorcev, potrebujemo nabor učnih podatkov, ki vsebuje pare podobnih in različnih slik.
Med učenjem je cilj zmanjšati razdaljo med podobnimi slikami in povečati razdaljo med različnimi slikami.
Kriterijska funkcija, običajno uporabljena pri učenju siamskih mrež za primerjavo vzorcev, je kontrastna kriterijske funkcija, definirana kot:
\begin{center}
\begin{equation}
L(y, D(f(x_1; \theta), f(x_2; \theta))) = y \cdot \frac{1}{2} D^2 + (1-y) \cdot \frac{1}{2} \max(0, m - D)^2
\end{equation}
\end{center}
Kjer $y$ označuje oznako podobnosti (1 za podobne in 0 za različne), $m$ pa je prag, ki določa mejo med podobnimi in različnimi slikami.
\subsection{Aplikacije in prednosti}
Siamske mreže za primerjavo vzorcev so se izkazale za izjemno koristne v številnih aplikacijah, kot so prepoznavanje in sledenje objektom, biometrija ter varnost in nadzor.
V primerjavi s tradicionalnimi metodami imajo siamske mreže večjo odpornost na variacije v svetlobi, rotaciji, lestvici in drugih deformacijah.
Zaradi globlje hierarhične predstavitve slike so sposobne zaznati in primerjati kompleksne značilnosti, ki jih manj kompleksne metode morda ne bi opazile.
\chapter{Podatkovni set}
\label{ch1}
V raziskovalnem svetu je podatkovni set ključnega pomena za razvoj, testiranje in validacijo modelov.
Kljub pomembnosti modela WAMF-FPI avtorji niso javno delili originalnega podatkovnega seta, kar je postavilo pred nas izziv pri pripravi ustreznih podatkov za našo analizo.
Za doseganje konsistentnosti in kvalitete rezultatov smo se odločili samostojno kreirati in kurirati naš lastni podatkovni set, ki odraža realne pogoje in scenarije uporabe.
Podatkovni set, ki smo ga oblikovali, temelji na dveh glavnih virih vizualnih podatkov.
Prvi vir predstavljajo slike, pridobljene z brezpilotnimi letalniki.
Te slike so bile pridobljene preko orodja Google Earth Studio, ki omogoča natančno in realno reprezentacijo terenskih značilnosti iz ptičje perspektive.
Te slike nudijo bogate detajle in so ključne za razumevanje fine strukture terena.
Drugi vir podatkov predstavljajo satelitske slike, pridobljene preko Mapbox API.
Satelitske slike prinašajo širši pogled na regijo in omogočajo razumevanje večjih geografskih in prostorskih vzorcev.
V kombinaciji z dronskimi slikami te slike nudijo celovito sliko terena z različnih višin in ločljivosti.
Skupno naš podatkovni set vključuje več kot 11.000 dronskih slik in njihovih pripadajočih satelitskih slik.
Ta obsežna zbirka podatkov nam omogoča, da model WAMF-FPI testiramo in validiramo v številnih različnih scenarijih in pogojih, s čimer zagotavljamo njegovo robustnost in splošno uporabnost.
\section{Slike brezpilotnega letalnika}
2023-08-09 14:50:30 +02:00
Nabor podatkov, ki ga predstavljamo, je bil zasnovan z namenom raziskovanja in analize dronov v različnih mestnih scenarijih.
Osredotoča se na dve ključni območji:
\begin{enumerate}
\item Gosto pozidana mestna območja z zgradbami in
\item odprte zelene površine, kot so parki in travniki.
\end{enumerate}
Zajem slik je bil izveden na naključnih poteh po mestu, kar omogoča širok spekter scenarijev in situacij.
2023-08-22 18:21:40 +02:00
V mestnih območjih je poudarek na razumevanju, kako se brezpilotni letalniki lokalizirajo in navigirajo med visokimi zgradbami, kjer so lahko GPS signali zmanjšani ali moteni.
V zelenih območjih je cilj razumeti, kako se brezpilotni letalniki obnašajo v okoljih, kjer so vizualni vzorci manj raznoliki in se teren lahko zdi monoton.
2023-08-09 14:50:30 +02:00
V naboru podatkov za ucenje je 10.000 slik iz desetih mest, pri čemer vsako mesto prispeva 1.000 slik.
2023-08-22 18:21:40 +02:00
Brezpioltni letalniki so bili kalibrirani na višini 150 metrov nad navedeno nadmorsko višino mesta.
Kamere na brezpilotnih letalnikih imajo vidno polje 80 stopinj in so usmerjene pravokotno na središče Zemlje. Vse slike so bile ustvarjene z uporabo orodja Google Earth Studio
2023-08-09 14:50:30 +02:00
Mesta, vključena v ucni nabor podatkov, so:
\begin{itemize}
2023-08-14 19:49:31 +02:00
\item \textbf{Maribor:} Nadmorska višina: 272m, Višina drona: 150m, Skupaj: 422m nad morsko gladino.
\item \textbf{Trst:} Nadmorska višina: 23m, Višina drona: 150m, Skupaj: 173m nad morsko gladino.
\item \textbf{Zagreb:} Nadmorska višina: 158m, Višina drona: 150m, Skupaj: 308m nad morsko gladino.
\item \textbf{Gradec:} Nadmorska višina: 353m, Višina drona: 150m, Skupaj: 503m nad morsko gladino.
\item \textbf{Celovec:} Nadmorska višina: 446m, Višina drona: 150m, Skupaj: 596m nad morsko gladino.
\item \textbf{Videm:} Nadmorska višina: 113m, Višina drona: 150m, Skupaj: 263m nad morsko gladino.
\item \textbf{Pula:} Nadmorska višina: 17m, Višina drona: 150m, Skupaj: 167m nad morsko gladino.
\item \textbf{Pordenone:} Nadmorska višina: 24m, Višina drona: 150m, Skupaj: 174m nad morsko gladino.
\item \textbf{Szombathely:} Nadmorska višina: 212m, Višina drona: 150m, Skupaj: 362m nad morsko gladino.
\item \textbf{Benetke:} Nadmorska višina: -1m, Višina drona: 150m, Skupaj: 149m nad morsko gladino.
2023-08-09 14:50:30 +02:00
\end{itemize}
2023-08-25 21:46:00 +02:00
\begin{figure}[h]
\centering
\includegraphics[width=0.9\textwidth]{./img/cities.png}
\caption{Slika prikazuje lokacije mest, ki so vključena v nabor podatkov.}
\label{fig:cities}
\end{figure}
2023-08-09 14:50:30 +02:00
Dodatno je bil v nabor dodan tudi testni nabor podatkov za Ljubljano, ki vključuje 1.000 slik.
Vsaka slika je opremljena z oznakami lokacije kamere v sistemu ECEF. Sistem ECEF (Earth Centered, Earth Fixed) je globalni koordinatni sistem z izhodiščem v središču Zemlje.
2023-08-22 18:21:40 +02:00
Ta nabor podatkov ponuja vpogled v izzive in možnosti, ki jih brezpilotni letalniki srečujejo v različnih mestnih okoljih,
2023-08-09 14:50:30 +02:00
in je ključnega pomena za razvoj naprednih algoritmov za lokalizacijo in navigacijo.
2023-08-14 19:49:31 +02:00
\begin{figure}[h]
\centering
\includegraphics[width=0.8\textwidth]{./img/drone_image_example.jpeg}
\caption{Primer dronske slike.}
\label{fig:drone_image_example}
\end{figure}
2023-08-09 14:50:30 +02:00
\section{satelitske slike}
Za vsako dronsko sliko sem poiskal ustrezen satelitski "tile" ali ploščico.
Ta korak je bil ključnega pomena, saj je zagotovil, da so satelitske slike popolnoma usklajene z dronskimi slikami v smislu geografske lokacije.
2023-08-14 19:49:31 +02:00
Ko sem identificiral ustrezen satelitsko ploscico, sem jo prenesel neposredno iz Mapbox API-ja, priznanega vira za visokokakovostne satelitske slike.
Da bi zagotovil dodatno globino in kontekst za vsako lokacijo, nisem prenesel samo osrednje ploscice, temveč tudi vse njegove sosednje ploščice.
Te sosednje ploščice so bile nato združene z osrednjo ploscico za ustvarjanje enotne TIFF datoteke.
2023-08-09 14:50:30 +02:00
Ta pristop je omogočil, da sem imel na voljo širšo regijo za analizo in učenje.
Ko sem imel pripravljene TIFF datoteke, sem začel z učnim procesom. Za vsako iteracijo učenja sem iz vsake TIFF datoteke naključno izrezal regijo velikosti 400x400 pikslov.
Ključnega pomena je bilo, da se je točka lokalizacije vedno nahajala nekje znotraj te izrezane regije. Ta metoda je zagotovila, da je bil model izpostavljen širokemu naboru scenarijev in kontekstov, hkrati pa je ohranila natančnost in relevantnost lokalizacijskih podatkov.
S tem pristopom sem uspešno sestavil nabor podatkov, ki združuje najboljše iz obeh svetov: detajlnost dronskih slik in širino satelitskih slik, kar omogoča poglobljeno analizo in učinkovito učenje.
Ko govorimo o ploscicah v kontekstu kartografije in GIS (Geografski informacijski sistem), se običajno nanašamo na kvadratne segmente,
ki pokrivajo Zemljo in se uporabljajo za hitrejše in učinkovitejše prikazovanje zemljevidov na spletu.
Sistem ploscic je zelo priljubljen v spletnih kartografskih aplikacijah, kot je Google Maps.
Za pretvorbo geografskih koordinat (latitude in longitude) v ploscicne koordinate (x, y) na določeni ravni povečave z uporabo Mercatorjeve projekcije,
lahko izrazimo:
\begin{itemize}
\item Pretvorba geografskih koordinat v radiane:
\begin{align*}
\text{lat}_{\text{rad}} = \text{latitude} \times \frac{\pi}{180}, \\
\text{lon}_{\text{rad}}= \text{longitude} \times \frac{\pi}{180}
\end{align*}
\item Pretvorba radianov v normalizirane koordinate Mercatorja:
\begin{align*}
x = \frac{\text{lon}_{\text{rad}}= + \pi}{2\pi}, \\
y = \frac{\pi - \log(\tan(\frac{\pi}{4} + \frac{\text{lat}_{\text{rad}}}{2}))}{2\pi}
\end{align*}
\item Pretvorba normaliziranih koordinat v ploscicne koordinate:
\begin{align*}
\text{tile}_{\text{x}} = \text{floor}(x \times 2^z), \\
\text{tile}_{\text{y}} = \text{floor}(y \times 2^z)
\end{align*}
\end{itemize}
2023-08-14 19:49:31 +02:00
\begin{figure}[h]
\centering
\includegraphics[width=0.8\textwidth]{./img/corresponding_sat_image_example.png}
\caption{Primer pripadajoče satelitske slike za dronsko sliko.}
\label{fig:corresponding_sat_image_example}
\end{figure}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
\chapter{Implementacija}
2023-08-25 21:46:00 +02:00
\label{ch2}
2023-08-14 19:49:31 +02:00
\subsection{Motivacija}
Pri sledenju objektov raziskovalci sledenje izvajajo z izračunom podobnosti med predlogo in iskalnim območjem v trenutnem okviru.
Metoda iskanja točk znotraj slike izhaja iz metode na področju sledenja objektov, vendar je ta metoda bolj zapletena kot sledenje objektov.
To je zato, ker sta predloga (dronska slika) in iskalna slika (satelitske slike) iz različnih pogledov, kar povzroča veliko variabilnost.
Metoda iskanja točk z uporabo slike uporablja satelitsko sliko kot iskalno sliko in dronsko sliko kot poizvedbeno sliko.
Nato se slike, posnete z dronom, in satelitske slike ustreznih območij prenesejo v end-to-end (celovito?) omrežje.
2023-08-23 20:30:16 +02:00
Po obdelavi je rezultat toplotna karta, točka z najvišjo vrednostjo na toplotni karti pa je lokacija drona, kot jo napove model.
2023-08-14 19:49:31 +02:00
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}.
2023-08-23 20:30:16 +02:00
Nato se ekstrahirane značilnosti podvržejo izračunu podobnosti, da se pridobi toplotna karta.
Končno preslikamo lokacijo z najvišjo vrednostjo toplotne karte na satelitsko sliko, da določimo lokacijo brezpilotnega letalnika.
2023-08-14 19:49:31 +02:00
2023-08-22 11:28:16 +02:00
V FPI se za izračun podobnosti uporablja zadnja plast zemljevidnih značilnosti \cite{dai2022finding}.
2023-08-14 19:49:31 +02:00
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.
2023-07-31 16:30:31 +02:00
2023-08-22 11:28:16 +02:00
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.
2023-08-22 18:21:40 +02:00
\begin{figure}[h]
\centering
\includegraphics[width=\linewidth]{./img/model.pdf}
\caption{Skica arhitekture modela}
\label{fig:model_architecture}
\end{figure}
2023-08-22 11:28:16 +02:00
\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.
2023-08-22 18:21:40 +02:00
Zato veji slike brezpilotnega letalnika in satelitske slike v WAMF-FPI ne uporabljata metode deljenja uteži.
WAMF-FPI uporablja satelitske slike (400 × 400 × 3) in slike brezpilotnega letalnika (128 × 128 × 3) kot vhod modela, nato pa se značilnosti slik ekstrahirajo s pomočjo PCPVT-S.
2023-08-22 11:28:16 +02:00
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.
2023-08-22 18:21:40 +02:00
Po uporabi PCPVT-S za ekstrakcijo informacij iz slike, se izračun podobnosti izvede neposredno na zadnjih značilnostnih mapah.
Končni izhod pa je stisnjen le za faktor štiri v primerjavi z vhodom. Katerega se potem z bikubicno interpolacijo poveca na velikost vhodne satelitske slike.
2023-08-22 11:28:16 +02:00
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.
2023-08-22 18:21:40 +02:00
Stevilo izhodnih kanalov nastavljeno na 64, kar omogoča kompaktno in učinkovito predstavitev značilnosti.
2023-08-22 11:28:16 +02:00
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.
2023-08-22 18:21:40 +02:00
V osnovi ena značilnostna mapa (poimenovana poizvedba) "drsi" čez drugo značilnostno mapo (poimenovana iskalna regija) in izračuna podobnost med njima na vsaki lokaciji.
2023-08-22 11:28:16 +02:00
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}
2023-08-22 18:21:40 +02:00
Za dokončanje postopka se uporabi bikubična interpolacija, da se $\text{fused\_map}$ poveča na velikost vhodne satelitske slike.
Na izhodu dobimo toplotno karto iste velikosti kot vhodna satelitska slika v WAMF-FPI.
2023-08-22 11:28:16 +02:00
2023-08-25 15:43:41 +02:00
\subsection{RDS metrika}
Da bi lahko ovrednotili in primerjali zmogljivost našega modela, uporabljamo metriko RDS \cite{wang2023wamf}. Zaradi različnih meril podatkov v naboru podatkov vsak piksel v različnih satelitskih slikah predstavlja različno razdaljo.
Čeprav model morda najde točko, ki je na satelitski sliki blizu dejanske lokacije, lahko v resničnem prostoru povzroči veliko napako.
Da bi se izognili težavam zaradi spremembe merila, RDS izračuna relativno razdaljo na ravni pikslov med napovedano in dejansko točko.
Enačba za izračun RDS je naslednja:
\begin{equation}
RDS = e^{-k \times \sqrt{\left(\frac{dx}{w}\right)^2+\left(\frac{dy}{h}\right)^2}}
\end{equation}
Kjer so:
\begin{itemize}
\item \( w \) širina piksla satelitske slike,
\item \( h \) višina piksla satelitske slike,
\item \( dx \) pikselska razdalja med vodoravnimi koordinatami napovedane pozicije in dejanske pozicije,
\item \( dy \) pikselska razdalja med navpičnimi koordinatami napovedane pozicije in dejanske pozicije,
\item \( k \) je faktor merila, ki je v tem delu postavljen na 10.
\end{itemize}
2023-08-05 13:17:05 +02:00
\chapter{Eksperimenti}
2023-08-25 21:46:00 +02:00
\label{ch3}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
V tem poglavju se bom osredotocil na eksperimente, ki sem jih izvedel.
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
\section{Izbira kriterjiske funkcije}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
Zanimalo me je kako se bo model obnesel, ko izbiramo razlicne kriterijske funkcije.
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
\subsection{Hanningova kriterijska funkcija}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
V clanku WAMF-FPI \cite{wang2023wamf} so avtorji predlagali uporabo Hanningove kriterijske funkcije.
Prvi pomemben vidik te funkcije izgube je dodelitev uteži vzorcem.
Namesto enakega pomena vseh pozitivnih vzorcev, funkcija izgube Hanning dodeli različne uteži glede na lokacijo vzorca.
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
\begin{figure}[h]
\centering
\includegraphics[width=0.5\textwidth]{./img/gt_heatmap_with_label.jpg}
\caption{Primer vzorca, sredisce je tocka lokacije vzorca.}
\label{fig:gt_heatmap_with_label}
\end{figure}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
To je zato, ker je pomembnost središčnega položaja veliko večja kot pomembnost robovih položajev, kar v kontekstu satelitskih slik logično smiselno.
Za normalizacijo teh pozitivnih uteži se uporablja Hanningovo okno, za normalizacijo negativnih utezi, pa $$ 1 / \# \text{negativnih vzorcev} $$.
Uteži so dodeljene tako, da je vsota uteži pozitivnih in negativnih vzorcev enaka 1.
Toda ker je število negativnih vzorcev običajno večje od števila pozitivnih vzorcev, postane utež negativnih vzorcev manjša.
Da bi to popravili, se uvede hiperparameter , imenovan Negativna utež (NG), ki prilagodi utež negativnih vzorcev.
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
Hanningova funkcija:
\begin{equation}
\text{Hanning}(n) =
\begin{cases}
0.5 + 0.5 \cos\left(\frac{2\pi n}{M-1}\right) & \text{za } 0 \leq n \leq M - 1 \\
0 & \text{sicer}
\end{cases}
\end{equation}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
Utezi primerov:
\begin{itemize}
\item Utez negativnih vzorcev: $$w_{pos} = NG / (NN (NW + 1)) $$
\item Utez pozitivnih vzorcev: $$w_{neg} = HN(n) / (NW + 1) $$
\end{itemize}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
Kjer je:
\begin{itemize}
\item \textbf{NG} je Negativna utež
\item \textbf{NN} je stevilo vseh uzorcev
\item \textbf{NW} je normalizacijski faktor
\item \textbf{HN(n)} je vrednost Hanningove funkcije na lokaciji n
\end{itemize}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
\begin{figure}[h]
\centering
\includegraphics[width=0.5\textwidth]{./img/2d_hanning_kernel.jpg}
\caption{Hanningovo jedro}
\label{fig:hann_kernel}
\end{figure}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
\subsection{Gaussovo utezena srednja kvadratna napaka}
Gaussova utežena srednja kvadratna napaka (Gaussian Weighted Mean Squared Error - GWMSE) je modificirana funkcija izgube, namenjena izboljšanju modelov, ki obravnavajo podatke, kot so satelitske slike.
Glavna značilnost GWMSE je dodeljevanje uteži vzorcem, na zelo podoben nacin kot pri Hanningovi funkciji izgube.
Namesto enakega pomena vseh pozitivnih vzorcev, GWMSE različnim vzorcem dodeljuje različne uteži glede na njihovo lokacijo.
Za normalizacijo teh uteži se uporablja Gaussova funkcija.
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
Gaussova funkcija:
\begin{equation}
\text{Gauss}(n) =
\begin{cases}
\exp\left(-\frac{(n - \mu)^2}{2\sigma^2}\right) & \text{za } 0 \leq n \leq M - 1 \\
0 & \text{sicer}
\end{cases}
\end{equation}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
\begin{figure}[h]
\centering
\includegraphics[width=0.5\textwidth]{./img/2d_gaussian_kernel.jpg}
\caption{Gaussovo jedro}
\label{fig:gauss_kernel}
\end{figure}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
\subsection{Hanningovo utežena srednja kvadratna napaka}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
Hanningova utežena srednja kvadratna napaka (Hanning Weighted Mean Squared Error - HWMSE) je spremenjena funkcija izgube, namenjena izboljšanju modelov, ki obravnavajo podatke, kot so satelitske slike.
Glavna značilnost HWMSE je dodeljevanje uteži vzorcem na zelo podoben način kot pri Gaussovi funkciji izgube.
Namesto enakega pomena vseh pozitivnih vzorcev, HWMSE različnim vzorcem dodeljuje različne uteži glede na njihovo lokacijo.
Za normalizacijo teh uteži se uporablja Hanningovo okno.
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
Hanningova funkcija je podana kot:
\begin{equation}
\text{Hanning}(n) =
\begin{cases}
0.5 + 0.5 \cos\left(\frac{2\pi n}{M-1}\right) & \text{za } 0 \leq n \leq M - 1 \\
0 & \text{sicer}
\end{cases}
\end{equation}
2023-07-31 16:30:31 +02:00
2023-08-05 23:42:06 +02:00
\subsection{Križno utežena srednja kvadratna napaka}
2023-07-31 16:30:31 +02:00
2023-08-05 23:42:06 +02:00
Funkcija izgube križno utežena srednja kvadratna napaka (Cross-Weighted Mean Squared Error - CW-MSE) je napredna različica standardne srednje kvadratne napake (Mean Squared Error - MSE),
ki vključuje uteževanje dveh različnih skupin vzorcev: tistih, katerih resnična vrednost je večja od 0 (t.i. "resničnih" vzorcev) in tistih, katerih resnična vrednost je manjša ali enaka 0 (t.i. "ne-resničnih" vzorcev).
Končna funkcija izgube se izračuna kot utežena kombinacija srednjih kvadratnih napak za "resnične" in "ne-resnične" vzorce, pri čemer se uteži vzorcev različnih skupin prekrižajo.
Ta pristop se formalno izraža z naslednjo enačbo:
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
\begin{equation}
\text{loss} = \frac{\text{true\_weight} \cdot N_{\text{true}} \cdot \text{MSE}_{\text{false}} + \text{false\_weight} \cdot N_{\text{false}} \cdot \text{MSE}_{\text{true}}}{N_{\text{all}}}
\end{equation}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
\begin{itemize}
\item $N_{\text{true}}$: število vzorcev, katerih resnična vrednost je večja od 0.
\item $N_{\text{false}}$: število vzorcev, katerih resnična vrednost je enaka ali manjša od 0.
\item $N_{\text{all}}$: skupno število vzorcev.
2023-08-05 23:42:06 +02:00
\item $\text{MSE}{\text{true}} = \frac{1}{N{\text{true}}} \sum_{i=1}^{N_{\text{true}}} (y_i - \hat{y}_i)^2$ za vzorce, katerih resnična vrednost je večja od 0.
\item $\text{MSE}{\text{false}} = \frac{1}{N{\text{false}}} \sum_{i=1}^{N_{\text{false}}} (y_i - \hat{y}_i)^2$ za vzorce, katerih resnična vrednost je enaka ali manjša od 0.
2023-08-05 13:17:05 +02:00
\item $\text{true\_weight}$ in $\text{false\_weight}$: uteži, dodeljene skupinama \textit{true} in \textit{false}.
\end{itemize}
2023-07-31 16:30:31 +02:00
2023-08-05 23:42:06 +02:00
Python implementacija funkcije izgube CW-MSE je naslednja:
\begin{lstlisting}
class CrossWeightedMSE(nn.Module):
def __init__(self, true_weight=1, false_weight=1):
super(CrossWeightedMSE, self).__init__()
self.mse_loss = nn.MSELoss(reduction="none")
self.true_weight = true_weight
self.false_weight = false_weight
def forward(self, input, target):
N_all = target.numel()
N_true = torch.sum(target > 0.0).item()
N_false = N_all - N_true
true_mask = target > 0.0
false_mask = torch.logical_not(true_mask)
MSE_true = torch.mean(self.mse_loss(input[true_mask], target[true_mask]))
MSE_false = torch.mean(self.mse_loss(input[false_mask], target[false_mask]))
loss = (
self.true_weight * N_true * MSE_false
+ self.false_weight * N_false * MSE_true
) / N_all
return loss
\end{lstlisting}
2023-07-31 16:30:31 +02:00
2023-08-05 13:17:05 +02:00
\subsection{Primerjava rezultatov}
2023-08-05 23:42:06 +02:00
2023-08-24 10:30:29 +02:00
\begin{table}[ht]
\centering
\begin{tabular}{|c|c|c|c|}
\hline
Kriterijska funkcija & vrednost & $RDS_{\text{train}}$ & $RDS_{\text{val}}$ \\
\hline
Hanningova kriterijska funkcija & 8.49 & 0.893 & 0.709 \\
Gaussovo utezena srednja kvadratna napaka & 0.001 & 0.077 & 0.074 \\
Hanningovo utežena srednja kvadratna napaka & 4.04e-06 & 0.061 & 0.059 \\
Križno utežena srednja kvadratna napaka & 0.007 & 0.07 & 0.06 \\
\hline
\end{tabular}
\caption{Rezultati ob uporabi razlicnih kriterijskih funkij.}
\label{tab:metode}
\end{table}
\subsection{Analiza rezultatov}
\subsubsection{Hanningova kriterijska funkcija}
Hanningova kriterijska funkcija, znana tudi po svoji edinstveni značilnosti dodeljevanja uteži vzorcem glede na njihovo lokacijo, je v testiranju pokazala zavidljive rezultate.
S skupno vrednostjo 8.49 in $RDS_{\text{train}}$ vrednostjo 0.893 na učni množici se je izkazala kot izredno učinkovita za trening set.
Čeprav je bila njena učinkovitost na validacijski množici, kjer je dosegla $RDS_{\text{val}}$ vrednost 0.709, nekoliko nižja, so rezultati še vedno zelo obetavni.
2023-08-24 12:59:42 +02:00
Primer je viden na sliki \ref{fig:hanning_validation_plot}.
2023-08-24 10:30:29 +02:00
2023-08-24 12:59:42 +02:00
\begin{figure}[h]
2023-08-24 10:30:29 +02:00
\centering
2023-08-24 12:59:42 +02:00
\includegraphics[width=0.75\textwidth]{./img/hanning_validation_plot.png}
2023-08-24 10:30:29 +02:00
\caption{Primer izhoda ob uporabi Hanningove kriterijske funkcije}
2023-08-24 12:59:42 +02:00
\label{fig:hanning_validation_plot}
2023-08-24 10:30:29 +02:00
\end{figure}
2023-08-24 12:59:42 +02:00
Ključna prednost Hanningove funkcije je v njeni zmožnosti prilagajanja uteži vzorcem glede na njihov položaj, kar se zdi še posebej primerno pri analizi satelitskih slik.
V teh slikah je središčni položaj pogosto bistven, medtem ko robovi morda niso tako pomembni.
To naravno prilagodljivost Hanningove funkcije lahko opazimo v njenih rezultatih, ki jih dosegla v obravnavanem primeru.
2023-08-24 10:30:29 +02:00
\subsubsection{Gaussovo utežena srednja kvadratna napaka}
Čeprav je Gaussova utežena srednja kvadratna napaka prav tako zasnovana na principu dodeljevanja uteži glede na lokacijo vzorca, rezultati kažejo, da ne dosega enake uspešnosti kot Hanningova funkcija.
Z $RDS_{\text{train}}$ vrednostjo 0.077 na učni množici in $RDS_{\text{val}}$ vrednostjo 0.74 na validacijski množici so njeni rezultati precej slabši v primerjavi s Hanningovo funkcijo.
2023-08-24 12:59:42 +02:00
Primer je viden na sliki \ref{fig:gauss_mse_validation_plot}.
2023-08-24 10:30:29 +02:00
2023-08-24 12:59:42 +02:00
\begin{figure}[h]
2023-08-24 10:30:29 +02:00
\centering
2023-08-24 12:59:42 +02:00
\includegraphics[width=0.8\textwidth]{./img/mse_gauss_validation_plot.png}
2023-08-24 10:30:29 +02:00
\caption{Primer izhoda ob uporabi Gaussovo utežene srednje kvadratne napake}
2023-08-24 12:59:42 +02:00
\label{fig:gauss_mse_validation_plot}
2023-08-24 10:30:29 +02:00
\end{figure}
Čeprav obe funkciji temeljita na podobnem principu, se zdi, da Hanningova funkcija bolje odraža posebnosti in značilnosti satelitskih slik.
2023-08-24 10:30:29 +02:00
\subsubsection{Hanningovo utežena srednja kvadratna napaka}
Pri tej funkciji se je izkazalo, da mreža ni dosegla želenih rezultatov.
Namesto, da bi se mreža naučila prepoznati in interpretirati relevantne značilnosti satelitskih slik, se je večinoma učila šuma.
Praktično, model se ni naučil nič koristnega, kar nakazuje, da Hanningovo utežena srednja kvadratna napaka morda ni primerna za to vrsto podatkov ali za uporabljeni model.
2023-08-24 12:59:42 +02:00
Primer je viden na sliki \ref{fig:hanning_mse_validation_plot}.
2023-08-24 12:59:42 +02:00
\begin{figure}[h]
2023-08-24 10:30:29 +02:00
\centering
2023-08-24 12:59:42 +02:00
\includegraphics[width=0.8\textwidth]{./img/mse_hannings_validation_plot.png}
2023-08-24 10:30:29 +02:00
\caption{Primer izhoda ob uporabi Hanningove utežene srednje kvadratne napake}
2023-08-24 12:59:42 +02:00
\label{fig:hanning_mse_validation_plot}
2023-08-24 10:30:29 +02:00
\end{figure}
\subsubsection{Križno utežena srednja kvadratna napaka}
Podobno kot pri Hanningovi uteženi srednji kvadratni napaki se je tudi pri Križno uteženi srednji kvadratni napaki pokazalo, da mreža večinoma prepoznava in se uči šuma.
Rezultati so bili nezadovoljivi in kažejo na to, da ta funkcija ni najbolj primerna za analizo satelitskih slik s tem pristopom.
2023-08-24 12:59:42 +02:00
Primer je viden na sliki \ref{fig:gasuss_cwmse_validation_plot}.
2023-08-24 10:30:29 +02:00
2023-08-24 12:59:42 +02:00
\begin{figure}[h]
2023-08-24 10:30:29 +02:00
\centering
2023-08-24 12:59:42 +02:00
\includegraphics[width=0.8\textwidth]{./img/cwmse_gauss_validation_plot.png}
2023-08-24 10:30:29 +02:00
\caption{Primer izhoda ob uporabi Križno utežene srednje kvadratne napake}
2023-08-24 12:59:42 +02:00
\label{fig:gasuss_cwmse_validation_plot}
2023-08-24 10:30:29 +02:00
\end{figure}
\textbf{Zaključek:} Hanningova kriterijska funkcija se je v obravnavanem primeru izkazala kot najbolj učinkovita.
Njena edinstvena sposobnost prilagajanja uteži glede na lokacijo vzorca se zdi še posebej primerna za obravnavo satelitskih slik, kar je morda razlog za njeno premoč nad ostalimi obravnavanimi funkcijami izgube.
2023-07-31 16:30:31 +02:00
2023-08-22 18:21:40 +02:00
\section{Ucenje s Stratificiranim Vzorčenjem}
\subsection{Stratificirano vzorčenje}
Stratificirano vzorčenje je metoda vzorčenja, pri kateri se celoten nabor podatkov razdeli na ločene podskupine ali strate.
Vsak stratum predstavlja določeno kategorijo ali razred v naboru podatkov.
V kontekstu mest bi lahko vsako mesto predstavljalo svoj stratum.
Namen stratificiranega vzorčenja je zagotoviti, da je vsak vzorec reprezentativen za celoten nabor podatkov.
Zakaj je stratificirano vzorčenje pomembno?
\begin{enumerate}
\item \textbf{Ohranjanje Distribucije}:
Stratificirano vzorčenje zagotavlja, da se razmerje vzorcev v vsakem stratumu ohranja enako kot v celotnem naboru podatkov.
To je še posebej pomembno, ko je distribucija podatkov v vsakem stratumu (v tem primeru mesto) ključnega pomena za analizo.
Na primer, če želimo, da je naš vzorec reprezentativen za različna mesta, bi uporabili stratificirano vzorčenje, da zagotovimo, da so vsa mesta ustrezno zastopana.
\item \textbf{Natancnost}:
Stratificirano vzorčenje lahko poveča natančnost ocen, saj zmanjšuje variabilnost znotraj vsakega strata.
To pomeni, da so vzorci iz vsakega strata bolj homogeni, kar lahko vodi do natančnejših rezultatov.
\end{enumerate}
Slabosti stratificiranega vzorčenja:
\begin{enumerate}
\item \textbf{Omejena Generalizacija}:
Čeprav stratificirano vzorčenje zagotavlja, da so vse kategorije ali razredi v naboru podatkov ustrezno zastopani v vzorcu, to lahko pomeni, da model morda ni tako dobro pripravljen na povsem nove, nevidene podatke.
Model je lahko optimiziran za specifično distribucijo podatkov, ki je bila uporabljena med ucenjem in validacijo.
\item \textbf{"In-Distribution" Validacija}
Ker se vzorci za ucenje in validacijo izbirajo iz iste distribucije (stratificirane distribucije), model morda ne bo dobro deloval na "out-of-distribution" podatkih.
To pomeni, da čeprav model morda kaže visoko natančnost na validacijskem naboru, to ne zagotavlja, da bo enako dobro deloval na podatkih, ki se močno razlikujejo od originalne distribucije.
\end{enumerate}
\subsection{Rezultati}
2023-08-24 10:30:29 +02:00
\begin{table}[ht]
\centering
\begin{tabular}{|c|c|c|c|}
\hline
Nacin & Hanningova izguba & $RDS_{\text{train}}$ & $RDS_{\text{val}}$ \\
\hline
Train test split ucenje & 8.49 & 0.893 & 0.709 \\
Ucenje s stratificiranim uzorcenjem & 3.17 & 0.750 & 0.731 \\
2023-08-24 10:30:29 +02:00
\hline
\end{tabular}
\caption{Rezultati ob uporabi stratificiranega uzorcenja.}
\label{tab:stratified}
\end{table}
2023-08-22 18:21:40 +02:00
Iz rezultatov \ref{tab:stratified} je razvidno, da je uporaba stratificiranega vzorčenja vplivala na rezultate.
Za boljše razumevanje uspešnosti modelov je ključno upoštevati tudi njihovo zmogljivost na validacijskih naborih podatkov.
To je še posebej pomembno, saj nam validacija daje vpogled v to, kako dobro model predvideva rezultate na nevidenih podatkih.
Če primerjamo rezultate $RDS_{\text{val}}$ med obema pristopoma, opazimo, da je model, ki je bil naučen s stratificiranim vzorčenjem, dosegel rahlo višjo uspešnost (0.731) v primerjavi z modelom, ki je bil naučen s tradicionalno metodo "train-test split" (0.709).
To kaže, da se je model, ki je bil naučen s stratificiranim vzorčenjem, nekoliko bolje spoprijel s generalizacijo na nevidenih podatkih.
To dejstvo podkrepi tudi zmanjšana razlika med uspešnostjo na učni in validacijski množici v primeru stratificiranega vzorčenja.
Večja konsistentnost rezultatov med učno in validacijsko množico je lahko pokazatelj, da model ni pretirano prilagojen in se lahko bolje generalizira na nove podatke.
Torej, medtem ko je tradicionalna "train-test split" metoda dosegla višjo uspešnost na učni množici, se zdi, da stratificirano vzorčenje ponuja bolj zanesljive in stabilne rezultate na validacijski množici, kar je ključnega pomena za ocenjevanje realne zmogljivosti modela.
V našem primeru se zdi, da stratificirano vzorčenje ponuja bolj robusten in stabilen model za obravnavane satelitske slike.
Vendar pa je pomembno upoštevati tudi omejitve stratificiranega vzorčenja, kot so omejena generalizacija in potencialne težave pri "out-of-distribution" podatkih.
2023-08-23 20:30:16 +02:00
\section{Vpliv velikosti Hanningovega okna na rezultate}
Velikost Hanningovega okna igra ključno vlogo pri določanju uteži vzorcev. Zaradi narave Hanningove kriterijske funkcije velikost okna neposredno vpliva na razporeditev in obliko uteži, dodeljenih vzorcem v satelitskih slikah.
\subsection{Dinamika različnih velikosti Hanningovih oken}
Ko je velikost okna majhna, bo okno zajelo ožji del vzorcev, kar lahko povzroči težave s povratnim razširjanjem med učenjem modela. Če je obmocje, ki ga pokriva okno, premajhno, kriterijska funkcija ne more efektivno vplivati na celotno mrežo, kar vodi do potencialno slabše uspešnosti modela.
Nasprotno, preveliko okno lahko privede do izgube natančnosti. Čeprav kriterijska funkcija zajema širši del vzorcev, lahko pomembni detajli postanejo zamegljeni, kar vodi do manj natančnih rezultatov.
\subsection{Eksperimentalni rezultati}
V naših testiranjih smo ugotovili, da je najbolje najti uravnoteženo velikost Hanningovega okna, ki omogoča modelu, da efektivno uči in hkrati ohranja natančnost pri predikcijah. V ta namen smo izvedli več iteracij, kjer smo eksperimentirali z različnimi velikostmi oken.
2023-08-25 21:46:00 +02:00
\begin{figure}[H]
\centering
\includegraphics[width=0.9\textwidth]{./img/plot_different_hann_kernels.png}
\caption{Primerjava rezultatov ob uporabi razlicnih velikosti Hanningovega okna.}
\label{fig:corresponding_sat_image_example}
\end{figure}
2023-08-23 20:30:16 +02:00
2023-08-22 18:21:40 +02:00
\section{Regularizacija v modelu z uporabo izpuščanja nevronov}
\subsection{Izpuščanje nevronov}
V svetu strojnega učenja je regularizacija ključna tehnika, ki se uporablja za preprečevanje prekomernega prilagajanja modela.
Prekomerno prilagajanje se pojavi, ko model postane preveč specifičen za učni nabor podatkov, kar pomeni, da se "preveč nauči" podrobnosti in šuma v učnih podatkih,
kar vodi v slabo zmogljivost na novih, nevidenih podatkih.
Med različnimi tehnikami regularizacije je "izpuščanje nevronov" (v angleščini "dropout") ena izmed najbolj priljubljenih in učinkovitih metod za nevronske mreže.
2023-08-25 21:46:00 +02:00
Koncept izpuščanja nevronov je preprost, a močan: med ucenjem se določen odstotek nevronov v mreži naključno "izklopi" ali izpusti. To pomeni, da se med posameznim prehodom naprej določeni nevroni (in njihove povezave) začasno odstranijo iz mreže.
2023-08-22 18:21:40 +02:00
V modelu sem uporabil izpuščanje nevronov na več ključnih mestih:
\begin{enumerate}
\item \textbf{Izpuščanje Nevronov v Modelu Twins}:
Izpuščanje nevronov je bilo uporabljeno za regulacijo različnih komponent modela, vključno z deli, kot so \texttt{attn\_drop}, \texttt{proj\_drop}, \texttt{head\_drop}, \texttt{mlp\_drop1}, \texttt{mlp\_drop2} in \texttt{pos\_drops}..
Vsaka od teh komponent ima svojo specifično vlogo v arhitekturi modela.
Z dodajanjem izpuščanja nevronov na te komponente sem dodal dodatno raven regularizacije, ki pomaga preprečiti prekomerno prilagajanje.
\item \textbf{Izpuščanje Nevronov v Modulu za Združevanje Značilnosti}:
Po vsaki konvolucijski operaciji v fuzijskem delu modela sem dodal izpuščanje nevronov.
Konvolucijske plasti lahko hitro postanejo kompleksne in se prekomerno prilagodijo podatkom, zlasti ko delujejo na visokodimenzionalnih značilnostih.
Z dodajanjem izpuščanja nevronov po vsaki konvolucijski plasti sem zmanjšal to tveganje in povečal robustnost modela.
\end{enumerate}
Izpuščanje nevronov je ena izmed najbolj učinkovitih tehnik regularizacije za nevronske mreže.
Z njegovo uporabo v modelu sem zagotovil, da je model bolj robusten in manj nagnjen k prekomernemu prilagajanju na učne podatke.
V kompleksnih modelih, kot je Twins, kjer je veliko komponent, ki se lahko prekomerno prilagodijo podatkom, je uporaba izpuščanja nevronov ključnega pomena za zagotavljanje natančnih in zanesljivih rezultatov.
\subsubsection{Rezultati}
2023-08-24 10:30:29 +02:00
\begin{table}[h]
\centering
\label{tab:parametri_izpuscanje}
\begin{tabular}{|l|c|c|c|}
\hline
\textbf{Parameter} & \textbf{UAV} & \textbf{Satelit} & \textbf{Združevanje} \\
\hline
dropout & 0.1 & 0.1 & 0.1 \\
attn\_drop & 0.1 & 0.1 & - \\
proj\_drop & 0.1 & 0.1 & - \\
head\_drop & 0.1 & 0.1 & - \\
mlp\_drop1 & 0.1 & 0.1 & - \\
mlp\_drop2 & 0.1 & 0.1 & - \\
pos\_drops & 0.05 & 0.05 & - \\
\hline
\end{tabular}
\caption{Parametri z uravnovesenim izpustom nevronov.}
\end{table}
\begin{table}[h]
\centering
\label{tab:parametri_izpuscanje}
\begin{tabular}{|l|c|c|c|}
\hline
\textbf{Parameter} & \textbf{UAV} & \textbf{Satelit} & \textbf{Združevanje} \\
\hline
dropout & 0.15 & 0.05 & 0.05 \\
attn\_drop & 0.15 & 0.05 & - \\
proj\_drop & 0.15 & 0.05 & - \\
head\_drop & 0.15 & 0.05 & - \\
mlp\_drop1 & 0.15 & 0.05 & - \\
mlp\_drop2 & 0.15 & 0.05 & - \\
pos\_drops & 0.1 & 0.05 & - \\
\hline
\end{tabular}
\caption{Parametri z neuravnovesenim izpustom nevronov.}
\end{table}
\begin{table}[ht]
\centering
\begin{tabular}{|c|c|c|c|}
\hline
Nacin & Hanningova izguba & $RDS_{\text{train}}$ & $RDS_{\text{val}}$ \\
\hline
Brez izpuscanja nevronov & 8.49 & 0.893 & 0.709 \\
Z uravnovesenim izpuscanjem nevronov & 5.49 & 0.725 & 0.690 \\
Z neuravnovesenim izpuscanjem nevronov & 5.42 & 0.725 & 0.719 \\
\hline
\end{tabular}
\caption{Rezultati ob uporabi razlicnih izpustov.}
\label{tab:izpuscanje}
\end{table}
2023-08-22 18:21:40 +02:00
2023-07-31 16:30:31 +02:00
\chapter{Sklepne ugotovitve}
Uporaba \LaTeX{a} in \BibLaTeX{a} je v okviru Diplomskega seminarja \textbf{obvezna}!
Izbira -- \LaTeX\ ali ne \LaTeX\ -- pri pisanju dejanske diplomske naloge pa je pre\-pu\-šče\-na dogovoru med diplomantom in njegovim mentorjem.
Res je, da so prvi koraki v \LaTeX{}u težavni.
Ta dokument naj služi kot začetna opora pri hoji.
Pri kakršnihkoli nadaljnih vprašanjih ali napakah pa svetujemo uporabo Googla, saj je spletnih strani za pomoč pri odpravljanju težav pri uporabi \LaTeX{}a ogromno.
Preden diplomo oddate na sistemu STUDIS, še enkrat preverite, če so slovenske besede, ki vsebujejo črke s strešicami, pravilno deljene in da ne segajo preko desnega roba.
Poravnavo po vrsticah lahko kontrolirate tako, da izvorno datoteko enkrat testno prevedete z opcijo \texttt{draft}, kar vam pokaže predolge vrstice.
%\cleardoublepage
%\addcontentsline{toc}{chapter}{Literatura}
% če imaš težave poravnati desni rob bibliografije, potem odkomentiraj spodnjo vrstico
\raggedright
2023-08-23 14:36:44 +02:00
%\printbibliography[heading=bibintoc,type=article,title={Članki v revijah}]
%
%\printbibliography[heading=bibintoc,type=inproceedings,title={Članki v zbornikih}]
%
%\printbibliography[heading=bibintoc,type=incollection,title={Poglavja v knjigah}]
2023-07-31 16:30:31 +02:00
% v zadnji verziji diplomskega dela običajno združiš vse tri vrste referenc v en sam seznam in
% izpustiš delne sezname
\printbibliography[heading=bibintoc,title={Literatura}]
\end{document}