Hopp til innhald

DAT158 Maskinlæring og videregående algoritmer

Emneplan for studieåret 2024/2025

Innhold og oppbygning

Kurset er todelt, hver del har omfang på 5 studiepoeng.

Maskinlæring:

I løpet av de siste årene har det skjedd en dramatisk utvikling innen en rekke områder knyttet til kunstig intelligens. Datamaskiners evne til å gjenkjenne og klassifisere objekter i bilder og videoer har gått fra være omtrent unyttig til å bli en sentral del av en rekke produkter; fra svært begrenset evne til å prosessere og syntetisere tekst, tale og bilder til utstrakt bruk av personlige digitale assistenter og generative modeller; fra amatørnivå i sjakk, poker, Go og Dota til verdens beste; fra kjøreassistanse til autonome kjøretøy.

Årsaken til dette er gjennombrudd innen maskinlæring. Feltet består av teknikker som gjør datamaskiner i stand til å avdekke kompliserte mønstre og sammenhenger i store datasett. Maskinlæring har hatt mange viktige anvendelser opp gjennom årene, men har aldri vært så gjennomgripende innen teknologi, vitenskap og programvareutvikling som i dag.

Kurset utforsker maskinlæring på et praktisk, prosjektbasert, ingeniør-fokusert, hands-on vis, med fokus på å løse problemer fra den virkelige verden.

Innen kurset er omme vil du ha en solid forståelse av de fundamentale ideene i feltet. Du vil ha erfaring med å takle virkelig-verden-problemer ved bruk av standard arbeidsflyt og moderne verktøy og rammeverk fra data-analyse, programvareutvikling og maskinlæring. Du vil også kjenne til feltets begrensninger, når det kan anvendes og ikke, og hvordan det er relatert til ultimate målsettinger innen kunstig intelligens.

Kurset vil gi en solid bakgrunn som du kan bygge videre på, for eksempel i en spesialisering innen kunstig intelligens eller videre på mastergrad, der emnet DAT255 gir en naturlig videreføring.

Videregående algoritmer:

I kurset gis det en innføring i avanserte og velkjente algoritmer innenfor ulike områder. Ulike typer problemløsning og rekursiv tenkning vil også bli gjennomgått. I tillegg vil det bli gjennomgått ulike aspekter av kompleksitetsteori med vekt på klassene P og NP samt mulige approksimative løsninger av NP-komplette problem.

Eksempler på algoritmer som blir gjennomgått er evolusjonære algoritmer og simulering av disse, splitt og hersk algoritmer og dynamisk programmering, tilnærmingsalgoritmer, randomiserte algoritmer, grafalgoritmer, heuristiske algoritmer, og algoritmer for tekstprosessering.

Læringsutbytte

Kunnskaper

  • Kan beskrive fundamentale maskinlærings-konsepter og -algoritmer, samt deres implementasjon
  • Kan forklare hvordan maskinlæring kan brukes til å løse praktiske problemer fra et bredt spekter av områder, og hvordan maskinlæring kan brukes til å utvikle «intelligente» applikasjoner.
  • Ha forståelse for at praktisk maskinlæring er en dataingeniørdisiplin ("machine learning engineering" og MLOps)
  • Gjøre rede for hvordan videregående algoritmer virker
  • Forklare hvordan teori for videregående algoritmer kan utnyttes innenfor computer science og ingeniørfag
  • Gjøre rede for hvordan videregående algoritmer kan brukes til å løse praktiske problemer av ulik type

Ferdigheter

  • Kan utvikle løsninger på konkrete, praktiske problemer ved hjelp av maskinlæring
  • Kan utvikle, finne og bruke moderne, «state-of-the-art» programvaresystemer og rammeverk for data-analyse, visualisering og rapportering.
  • Kan designe, utvikle og sette i drift maskinlærings-applikasjoner.
  • Utvikle applikasjoner for løsning av problem innenfor ulike områder
  • Designe og utvikle applikasjoner for hvordan teori for videregående algoritmer kan brukes til å bygge mer intelligente applikasjoner
  • Konstruere effektive algoritmer for algoritmiske problemer

Generell kompetanse

  • I stand til å formulere og utføre et maskinlæringsprosjekt.
  • I stand til å presentere ens arbeid, både skriftlig og muntlig.
  • Evne til samarbeid.
  • Å håndtere komplekse algoritmiske problemer, enten ved å konstruere en eksakt eller en tilnærmingsalgoritme, eller ved å lage en heuristisk løsning.
  • Å vurdere ulike algoritmiske løsninger opp mot hverandre.

Krav til forkunnskaper

Ingen

Anbefalte forkunnskaper

Anbefalte forkunnskaper: Grunnleggende kunnskaper i programmering og matematikk svarende til første studieår i studieprogrammene dataingeniør og informasjonsteknologi. I tillegg bør man ha bakgrunn i algoritmer tilsvarende DAT102 Algoritmer og datastrukturer. Kjennskap til Python, Numpy og Pandas er en stor fordel. Kurset vil gi tilgang til en rekke nettressurser som kan brukes til å tilegne seg anbefalt bakgrunnskunnskap ved kursstart.

Undervisnings- og læringsformer

I Bergen blir forelesninger og lab gitt fysisk i tillegg til elæringsressurser.

I Førde blir det tilbudt et nettbasert undervisningsopplegg fra Bergen.

Obligatorisk læringsaktivitet

Fire obligatoriske øvinger må være gjennomført til fastsatte frister og godkjent før eksamen kan avlegges. Vurderes som godkjent/ikke-godkjent.

Vurderingsform

4 timer skriftlig eksamen.

Karakterskala A-F, der F tilsvarer ikke bestått.

Hjelpemidler ved eksamen

Ingen

Mer om hjelpemidler

Faglig overlapping

  • DAT157 - Nevrale nett og avanserte algoritmar - Reduksjon: 5 studiepoeng
  • DAT801 - Maskinlæring for forretningsutvikling - Reduksjon: 5 studiepoeng