Frederik Tobias Norsk Skjøth

Jeg samarbejder gennem 4. semester med virksomheden Bionic System Solutions(BSS). BSS specialiserer sig i akustisk dronedetektering, remote asset monitoring og vandbehandling.

Vi vil gennem 4. semester udvikle et system der ved hjælp af AI kan detektere dronelyde og genkende billeder og video feed med droner, sende varsler om detekteret drone samt opbevare data i skyen.

Fag

Mine valgfag er Machine Learning og Cloud Computing.

Machine Learning gør det muligt for algoritmer automatisk at lære fra data uden at være eksplicit programmeret. Ved at bruge algoritmer til at analysere store datamængder kan modellen identificere mønstre og lave forudsigelser eller beslutninger baseret på tidligere erfaringer.

Jeg vil gennem 4. semester bruge supervised learning(Classification) til at identificere billeder der indeholder droner samt unsupervised learning(Clustering) til at grupere droner efter deres karakteristika

Cloud Computing er en teknologi, der giver adgang til computerressourcer via internettet i stedet for lokale enheder. Dette muliggøre fleksibel og skalerbar IT-infrastruktur

Cloud computing opdeles typisk i tre modeller: Infrastructure as a Service (IaaS), Platform as a Service (PaaS) og Software as a Service (SaaS)

Jeg vil gennem 4. semester udvikle et cloud miljø gennem Azure der kan hoste mine AI modeller som et SaaS

Frederik Tobias Norsk Skjøth

Mandag

Genopfriskning af gruppemedlemmers emner samt deres rolle i projektet. Fik en klarere ide omkring hvad mine emner skulle fokusere på

Tirsdag

Blev præsenteret for semestret

Onsdag

Torsdag

Havde et møde med projektgruppen hvor vi disktuterede rammerne for projektet. Vi kom frem til enighed omkring en gruppekontrakt og oprettede diverse gruppe chatte.

Fredag

Fandt materiale til emnerne og brugte dette til at definere nogle af de første læringsmål

Mandag

. Afklare fokusområder

  • Bestemme specifikke emner inden for Cloud Computing og Machine Learning.

. Find relevant materiale

  • Søge efter bøger, artikler, kurser og dokumentation.

. Definere læringsmål

  • Formulere klare læringsmål baseret på materialet.

Tirsdag

. Afklare fokusområder

  • Bestemme specifikke emner inden for Cloud Computing og Machine Learning.

. Find relevant materiale

  • Søge efter bøger, artikler, kurser og dokumentation.

. Definere læringsmål

  • Formulere klare læringsmål baseret på materialet.

Onsdag

Torsdag

Påbegyndte 1 / 3 Standford : Machine Learning Specialization og fandt yderligere materiale til både Machine Learning og Cloud Computing

Brugte kurset til at identificere fremtidige læringsmål

Fredag

Lavede overvejelser omkring valg af materiale til cloud computing og valgte Azure som cloud provider

Lørdag

Fortsatte 1 / 3 Stanford kurset for at have en mere sikker forståelse af hvad mine mål for machine learning kunne være

Mandag

Lærte om den gode opstart af semesteret samt vedligeholdelse af motivation og fremskridt i ens process.

Fik gode foreslag til udforming af læringsplan.

Lavede ændringer i proteføljen så den afspejler de gode råd.

Tirsdag

Videre definerede læringsmål.

Lavede en plan for gennemgang af det materiale jeg har fundet

Påbegynder den første periode med fokus på læring gennem materiale og kurser i morgen

Onsdag

Jeg arbejdede med AZ-900 under kurserne "Describe cloud computing" og "Describe the benifits of using cloud services"

Her lærte jeg omkring overordnede emner som Shared responsibility model/Ansvars fordeling af forskellige cloud services mellem kunde og udbyder

Under kurserne kommer også ind på privat, offentlig og hybrid cloud modeller samt de forskellige services(IaaS, PaaS og SaaS) og en mere generel forståelse af fordelene ved cloud løsninger

Torsdag

Idag hørte vi et oplæg omkring AI, brugen af AI, AI databehandling, AI bias og hallucination. Udover dette blev vi også præsenteret for nogle gode promt teknikker

Fredag

Lavede AZ-900 undermodul "Describe cloud service types" og færdiggjorde derved den første learning path ud af 3 i AZ-900 forberedelsen

Jeg gik igang med den næste learning path i AZ-900 "Describe the core architectural components of Azure"

Denne del handler mere om infrastruktur eks. Regional pairs, availability zones

Udover dette lærte jeg også at oprette VMs gennem deres learn test environment samt at navigere i Azures resourcer

Mandag

Fik evaluering af portefølje og vil udvidde og rafinere min Læringsplan samt tilknytte kommentare til min litteraturliste.

Fortsatte med machine learning og kom mere i dybden med Unsupervised Learning algoritmer. Her ses en clustering algoritme der klassificerer DNA således DNA med fællestræk er grupperede

Her findes der også Anomaly detection og Dimensionality reduction som jeg kommer mere ind på længere hen på ugen

Lærte mere om Supervised learning og brugte Jupyter notebooks i forbindelse med Univeriable linear regression.
Her bruger man python og NumPy biblioteket pga de stærke array og linear algebra funktioner.

man bliver introduceret til alle termer, principper og syntax men jeg vil senere bruge et sepperat kursus kombineret med youtube til python

Tirsdag

Fortsatte med Linær regression.

For at finde værdier til w og b så vores forudsigelse er tæt på de realle værdier i træningssættet bruger vi en cost function. Her er squared error cost function den mest almindelige for linær regression

den viser hvor godt de valgte w og b værdier passer til ens træningset. Den måler forskellen mellem modellens forudsigelser og de sande værdier i træningssettet

Jo lavere J er jo mere præcist måler vores w og b værdier

Onsdag

Jeg arbejdede videre med Cost function og startede ud med nogle gode visualiseringer.

For at finde de bedste w og b værdier bruger man en algoritme der hedder Gradient decent.

Man kan visualisere gradient decent gennem et surface plot over mulige w og b og J(w,b) værdier.

Når man bruger square error cost function med linær regression har surface plottet altid kun ét globalt minimum da denne cost function er en voncex function

Her tager gradient decent algoritmen et skridt mod et lavere punkt indtil j ikke kan mindskes længere

I større neurale netværk ser man andre former for surface plots som eksempelvis dette

Her er der flere lokale minimum og alt efter hvilket start punkt algoritmen skal tage udgangspunkt i kan man ende i forskellige minimum.

Fik mit første python projekt op at køre i PyCharm og vil implimentere min første ML model næste uge på mandag

Torsdag

Har været til mine første erfa møder hvor vi delte erfaring, information og kilder. Fik gode fif til kilder og datasæt.

Fredag

Mine notater for uge 10 blev slettet af et roll back men jeg arbejdede udelukkende med cloud computing og lærte hovedsageligt om storage og satte forskellige slags storage resourcer op i azure

Mandag

Tirsdag

Jeg blev færdig med min Multiple Linear Regression Machine Learning Model idag

Modellen bruger datasæt fra kaggle link herunder

Modellen skal beregne Student Performance baseret på disse parametre givet i sættet, Hours Studied, Previous Scores, Extracurricular Activities, Sleep Hours og Sample Question Papers Practiced

Jeg skal dog her påpeje at de datasæt der er på kaggle ofte er saniteret og strukturerede så min Accuracy Rating(r2) værdi kommer til at være en del højere end den nok normalt ville være i virkeligheden

Jeg brugte Python gennem PyCharm. Jeg brugte også nogle libraries til at håndtere de forskellige afspekter af modellen

numpy til at sørge for vectorization gennem .dot metoden hvilket gør selve træningen af modellen væsentlig hurtigere gennem parallel processing capabilities af .dot functionen

bruger Cost function til at beregne cost error af de valgte værdier

Og gradient decent til at beregne de mest præcise værdier for


Jeg brugte pandas til loading og dataset processing

Jeg valgte også at implimentere visualisering af modellen gennem matplotlib som ser såden ud

Som tidligere nævnt er dette datasæt et ret rafineret og uproblematisk sæt så her ser man også en ret høj r2 værdi

Her kan man se de beregnede optimale feature værdier

Hours studiet : 7.40093109
Previous Scores : 17.63646538
Extracurricular Activities : 0.30430629
Sleep Hours : 0.81002051
Sample Question Papers Practiced : 0.54895455

Accuracy ratingen kan ses at være 98.8% hvilket er ret højt

Jeg tænker at mit næste fokuspunkt inde for ML skal være classification med henblik på billeder

alt ialt har linær regression har været ret givene

Onsdag

Jeg vil idag prøve at hoste min Multiple Linear Regression Machine Learning Model(MLRML) i et cloud miljø.

Jeg oprettede en ny recource group specifikt til dette formål kaldet ML_Test_Env hvor jeg vil teste ML funktionalitet i skyen.

Her bruger jeg blob storage til at store min trænings data

Torsdag

Jeg har været til erfa-møde og fik nogle gode tips til værktøjer og veje man kan gå inde for hvert fag

Fredag

Jeg lavede resten af mit Cloud miljø færdig til min ML og ændrede min Load_data method i python til nu at hente fra mit blob storage

Her kan man se modellens traffik på mit Blob storage

Mandag

Lavede en API i en container der skal kalde min ML
Jeg lavede den i python med flask og brugte azure web app til at hoste den

Her oprettede jeg en git organisation der skal holde repositories til source for min API så jeg kan pushe ændringer direkte fra pycharm

Her efter oprettede jeg forbindelsen mellem git og min API.
jeg kan nu pushe ændringer til git og de vil automatisk blive deployed til skyen

Tirsdag

I implimentationen fra igår kan alle GET endpoints blive kaldet

Men af en eller anden årsag bliver POST requests blokeret med en 405 returnering

Jeg troubleshootede en del. Implimenterede CORS, Authentication og ledte i settings under min Web App men jeg kunne ikke finde fejlen.

Jeg oprette en ny resource kaldet Application Insights til videre diagnosticering af problemet men jeg kan ikke finde noget detailjeret beskrivelse af 405 responsen nogen steder i Azures værktøjer

For at finde ud af om det var azure der ikke tillader mine endpoints kørte jeg applikationen på min computer

Som man kan se kan min model nu tage en request og forudsige ud fra de parametre man giver den.
Træningssættet ligger i skyen og hvis selve APIen også fungerede i skyen ville applikationen såden set være en SaaS hvilket var målet

Onsdag

Jeg arbejde videre med at løse 405 responsen på POST requests til min API. Så nogle videor men ingen virker til at have det samme problem som mig.

Jeg vil finde nogle videoer af hvordan man laver en API fra bunden da jeg vingede den lidt så jeg tænker at problemet må ligge i skabelsen af nogle af de resourcer jeg bruger.

Jeg var til mit første Process møde og fik nogle fif til forbedringer af min Porteføljie. Længere beskrivelser i litteraturlisten, Læringsplan og læringsmål skal ændres

Torsdag

Fredag

Arbejdei går og idag på et en Polynomial Regression ML

Man kan fortestille sig at der er scenarier hvor en lige streg ikke er optimal til at beskrive et datasæt.

Her kan man eksempelvis gøre man brug af polynomier

Her er der mange ting der går igen fra Min Linear Regression Model

En af de vigtigeste tilføjelser til koden er håntering af Polynomial Degrees

Den generere features op til en bestemt Degree.

Så hvis man har features x1, x2 og x3 og en Degree på 3 vil man få både linære led x1. Kvadratiske led x1^2 og kubiske led x1^3. Min model går op til 4 Degree

Her bruger jeg en ny metode der skal finde den optimale Degree for mit nye datasæt fra kaggle "Manufactoring.csv"

Denne metode træner modellen med alle Degrees og finder den Degree der generere den bedste r2 værdi

Her ses de forskellige Degrees samt de forskellige Feature værdier der giverden bedste r2 værdi for hver Degree

Jeg brugte også nogle andre visualiseringer

Et heatmap viser hvor tæt to features bevæger sig i forhold til hinanden. Her kan man spotte om der er nogle overflødige features.

I dette heatmap over min Model kan man overveje om enten Transformation Metric eller Material Fusion Metric burde fjernes da deres værdier er næsten identiske

Her kan man også se visualisering over hvordan modellen passer på dataen. Her kan der være tale om underfitting i og med den røde curve som repræsentere modellen kurver væk fra datasættet til sidst

Mandag

Siden jeg ikke kunne finde ud af hvorfor POST requests til min webapp ikke virker besluttede jeg at lave en function app med http trigger istedet

En function app med http trigger er essentielt en slags API. Man laver en function for hvert endpoint.

Jeg om strukturerede ML koden således træningssættet, trænings koden og den trænede ML model ligger i skyen meget på samme måde som den linære regressions model

Her er connection stringen dog secure og ligger gemt på azure i en environment variable under function appen

Tirsdag

Jeg har i øjeblikket kun en azure function man kan kalde fra APIet der hedder train_model

Den har jeg udarbejdet i vs code da det er en del nemmere at styre alle de biblioteker man skal bruge fra et IDE i stedet fra direkte fra azures portal

Her kan man også deploy ens functions direkte fra vs code ved at bruge azure extension.

Nu kan jeg træne modellen og gemme den i mit BLOB storage som en pickle fil gennem url

Onsdag

Havde eksamensforudsætning og så hvad de andre fra holdet har lavet gennem semestret. Fik inspiration til ændringer i portefølje

Torsdag

Havde gruppe møde hvor vi diskuterede arkitektur samt hvordan vores fag skal flætte sammen. Vi oprettede en azure dev ops forbundet til en github organisation som nu skal fungere som vores projektstyrings værktøj

Fredag

Jeg lavede et get_prediction endpoint til min serverless function API

Hele grunden til at jeg begyndte på azure functions var fordi jeg ikke kunne få web appen til at acceptere POST requests.

Endelig virker POST requests om man kan nu træne og få forudsigelser fra http.

Her forudsiger modellen en Quality rating på 100.9 hvilket er lidt for højt.
Det skylde at den data jeg har valgt at sende ikke nødvendigvis er en afspejling af værdier der kan forekomme i virkeligheden.

Jeg har nu gennemført mit første store mål. At hoste en ML gennem azure. Nu vil jeg gå væk fra regression og over til neurale netværk med henblik på billedegenkendelse. I cloud computing tænker jeg at jeg vil lave mere sofistikerede systemer med mere validering og automatisering

Mandag

Havde produkt møde hvor vi diskuterede fremskridt for de forige uger

Gik videre med Neurale netværk

Man kan tænke på neurale netværk lidt som logistisk regression. Outputlaget modtager nogle features og passere dem gennem sigmoid function hvilket essentielt er logistisk regression

Hver neuron i modellen udføre samme udregning så man kan sige at hvert lags output er resultatet af mange logistiske regressioner i parallel

I stedet for vi manuelt skal feature engineer som vi gjorde med polynomisk regression kan disse neurale netværk essentielt selv feature engineer

Så overordnet kan man tænke rent conceptuelt på neurale netværk som at være logistisk regression der selv kan lære gode features

I forhold til billede genkendelse kan man lave en vektor ud fra de pixels der opgøre billedet

Det er så denne vektor man kan fodre sin model

Nedenfor ses den overordnede struktur på et neuralt netværk

Den tager et input i form af en vektor hvert lag udføre udregninger og outputter en ny vektor der bruges af det næste lag osv indtil man til sidst ender med en endelig forudsigelse her set som vektoren a^[4]

Tirsdag

Onsdag

Jeg vil gerne lave mit eget neurale netværk. For at få en intuition om hvad der foregår i biblioteker som Pytorch og Tensorflow vil jeg selv implimentere forward propagation.

Jeg mangler viden inde selve implimenteringen og træningen af neurale netværk så det er det jeg vil arbejde videre med idag. Ud over det er der mange overvejelser man kunne gøre sig inde for neurale netværk jeg ikke kommer til at tage højde for her i første iteration af modellen

Jeg kunne mærke jeg manglede noget forståelse for logistisk regression så jeg gik tilbage i mit kursus og gik gennem materialet igen.

I logistisk regression prøver man at fit en

Torsdag

Var til IT dag for at få lidt inspiration til praktiksøgning.

Fredag

Har været til erfamøde i Machine learning og Cloud Computing.

Fik snakket og fik en fornemmelse for hvor langt jeg er med mit arbejde i forhold til de andre på studiet.

Blev intruduceret til andre algoritmer og ML strukture i forhold til Machine Learning

I cloud

Denne uge fokuserede jeg hårdt på at komme i kontakt med virksomheder i forhold til praktik. Det har taget noget tid og fokus fra studiet men jeg fik sporadisk lavet videre på min computer vision neurale netværk.

Fredag

Ferie. Lavede dog mere arbejde i forhold til virksomhedssøgning

Mandag

Tirsdag

Når man laver et neuralt netværk der skal kunne håndere billeder skal man først organisere dataen(data preprocessing).

Det data jeg har fået fra kaggle er allerede ensformet men er dog pakket i samme folder og desuden er der kun billeder der indeholder droner og ikke eksempler der ikke indeholder droner.

Her vil jeg gerne have muligheden for senere at kunne lægge billeder af forskellige landskaber uden droner ind i modellen uden at skulle ændre så meget i min kode.

Derfor deler scriptet datasættet op i både "no drone" og "drone" og dertil også videre op i selve billedfilerne og deres tilhørende txt filer med billedernes labels

Nu er datasættet klar til at blive brugt af vore neurale netværk

Onsdag

Jeg har gennem mit kursus lært om neurale netværk men i en mere generel forstand end hvad jeg har brug for for at lave object detection.

Jeg har her brug for at kunne lave et convolutional neural network. Et convolutional network er rigtig god til object detection. CNN har gode værktøjer til at håndtere grid-like data og derfor også billeder. Dette kræver en dybere forståelse af arkitekturen af modellen.

Et convolutional layer er den definerene feature af et CNN. et convolutional layer består af filters i stedet for neuroner. Hvert filter indeholder en matrix. Tallene i matricen definere hvad det tilhørende filter detektere. Størrelsen af matricen definere størrelsen af området filtret bevæger sig over. Dot produktet af hvert område filteret bevæger sig over bliver gemt i en ny matrix. når filtret har Convolved over et helt billede er det denne matrix der er outputtet som set nedenunder

Her kan man se at filtret outputter et feature map. Dette er essentielt et nyt billede hvor man gennem filtret highlighter overordnede mønstre

Her kan man bruge dette output som input i et pooling lag som her vil simplificere yderligere.

Selve filter værdierne i et convolutional layer lære modellen selv men hvert filter detektere specifikke mønstre. Her starter modellen med at detektere simple mønstre der gradvist gennem lagene bliver mere og mere komplekse som kan ses på deisse feature maps

Torsdag

Idag vil jeg omstrukturere min CNN så den bliver hosted gennem azure.

Fredag

Frederik Tobias Norsk Skjøth

Machine Learning

Den studerende har viden om:

  • Forskellige ML algoritmer(Supervised, Unsupervised).
  • Python syntax

Den studerende kan:

  • Definere maskinlæring
  • Definere Supervised Learning
  • Definere Unsupervised Learning
  • Skrive og køre Python-kode i Jupyter Notebooks
  • Definere en regressionsmodel
  • Implementere og visualisér en omkostningsfunktion
  • Implementere gradientnedstigning
  • Optimere en regressionsmodel ved hjælp af gradientnedstigning

Cloud Computing

Den studerende har viden om:

  • Forskellige Cloud udbydere og deres tilbud.
  • CLoud-modeller(SaaS, PaaS, IaaS)

Den studerende kan:

  • Definere cloud computing.
  • Beskrive modellen for delt ansvar.
  • Definere cloud-modeller, herunder offentlig, privat og hybrid.
  • Identificere passende anvendelsesscenarier for hver cloud-model.
  • Beskrive den forbrugsbaserede model.
  • Sammenligne cloud-prismodeller.
  • Beskrive fordelene ved høj tilgængelighed og skalerbarhed i cloud-miljøet.
  • Beskrive fordelene ved pålidelighed og forudsigelighed i cloud-miljøet.
  • Beskrive fordelene ved sikkerhed og governance i cloud-miljøet.
  • Beskrive Infrastructure as a Service (IaaS).
  • Beskrive Platform as a Service (PaaS).
  • Beskrive Software as a Service (SaaS).
  • Identificere passende anvendelsesscenarier for hver cloud-tjeneste (IaaS, PaaS, SaaS).
  • Beskrive Azure-regioner, regionspar og suveræne regioner
  • Beskrive tilgængelighedszoner
  • Beskrive Azure-datacentre
  • Beskrive Azure-ressourcer og ressourcegrupper
  • Beskrive abonnementer
  • Beskrive administrationsgrupper
  • Beskrive hierarkiet af ressourcegrupper, abonnementer og administrationsgrupper

Machine Learning

Den studerende har viden om:

  • Intuition omkring gradient decent værdier

Jeg kan lave en multiple linear regression model i python ud fra et datasæt fra kaggle

Jeg kan skrive basal kode i python

Cloud Computing

Jeg kan hoste en ML i azures cloud miljø som SaaS

Den studerende kan:

  • Lave containerized web apps gennem azure
    - Udforme API gennem web app
  • Lave automatisk deployment af API gennem web app og github
  • Bruge applæication insights til debugging

Machine Learning

Den studerende har viden om:

  • Hvad der adskiller polynomial regression fra linear regression
  • Intuition omkring valgte værdier til linear og polynomial regression

Den studerende kan:

  • Lave en polynomial ML model i vs code

Cloud Computing

Den studerende har viden om:

  • Debugging i azure
  • Authentication i azure

Den studerende kan:

  • Lave azure functions
  • Bruge automatic deployment
  • Fordele trafik gennem load balancers
  • Lave API'er gennem azure web app
  • Lave endpoints gennem Azure functions
  • Opsætte test environment i azure for ML modeller

Machine Learning

Den studerende har viden om:

  • Computer vision
  • Optimeringer af classifications modeller
  • Classifikations modeller
  • Live fodring af data til ML
  • Neurale netværk arkitektur
  • Tensorflow og Pytorch
  • Datarepræsentation i Tensorflow og Nympy

Den studerende kan:

  • Lave en Classifications model i python
  • Bruge tensorflow
  • Forwards Probagation

Cloud Computing

Den studerende kan:

  • Bruge load balancers
  • Bruge authentication og authorization

Machine Learning

Denne uge vil jeg implimentere et neuralt netværk og bruge forward probagation til at lave image classification

Jeg skal kunne

Den studerende kan:

  • Lave en Classifications model i python
  • Bruge tensorflow
  • Forwards Probagation

Cloud Computing

Den studerende kan:

  • Bruge load balancers
  • Bruge authentication og authorization

Frederik Tobias Norsk Skjøth

Machine Learning

Viden

Den studerende har viden om:

  • ML-algoritmer (supervised, unsupervised, deep learning).
  • Træning, validering og evaluering af ML-modeller.
  • ML’s anvendelse i billedgenkendelse.

Færdigheder

Den studerende kan:

  • Udvikle og træne en ML-model til Billedegenkendelse.
  • Optimere ML-modeller via feature engineering og tuning.
  • Dokumentere og præsentere ML-resultater (accuracy, recall, F1-score).

Kompetencer

Den studerende kan:

  • Selvstændigt arbejde med ML-frameworks (TensorFlow, PyTorch, Scikit-learn).
  • Deploye ML-modeller i cloud-miljøer.
  • Perspektivere ML til softwareudvikling, datavidenskab og etik.

Cloud Computing

Viden

Den studerende har viden om:

  • Cloud-modeller (IaaS, PaaS, SaaS) og arkitekturer (Public, Private, Hybrid).
  • Skalérbarhed, sikkerhed og ressourcestyring i cloud-løsninger.
  • Cloud-lagring og databaser (S3, Blob Storage, SQL, NoSQL).

Færdigheder

Den studerende kan:

  • Op sætte og konfigurere en cloud-løsning til ML-træning og deployment.
  • Vurdere cloud-sikkerhed, netværk og omkostninger.
  • Dokumentere og præsentere en cloud-baseret IT-løsning.

Kompetencer

Den studerende kan:

  • Arbejde selvstændigt med cloud-teknologier og automation.
  • Integrere cloud-løsninger i softwareudvikling og dataanalyse.
  • Perspektivere cloud computing til IT-sikkerhed og DevOps.

Frederik Tobias Norsk Skjøth

Machine Learning

Kurser

Andet

Scroll to Top