I dette projekt vil vi anvende dyb læring til at forudsige den fremtidige lukkepris på Google-aktier ved hjælp af en dyb læring regressionsmodel. Projektet benytter to datasæt: Google_Stock_Price_Train.csv og Google_Stock_Price_Test.csv, som henholdsvis anvendes til træning og validering af modellen. Begge datasæt kan findes på Springers FTP-side i mappen: "Students\Datasets\Google Stock Dataset".

Først skal vi oprette et nyt script i MATLAB og navngive det som "Stock_Price_Predictor.m". Dette script vil være fundamentet for koden til at bygge modellen. For at bygge en dyb læring model, kan vi referere til koden i Figur 5.93 i kapitel 5.9.2, hvor de første 22 linjer giver os den nødvendige trænings- og valideringsdata.

Et væsentligt skridt i forberedelsen af datasættet er at ændre formatet på Close-kolonnen i træningsdatasættet. Når du åbner datasættet, skal du markere Close-kolonnen og gå til Format-fanen. Vælg Format Cell, klik på Number-fanen og vælg “2” i Decimaler. Det er vigtigt, at du ikke markerer "Brug tusindseparator". Denne ændring er afgørende, da MATLAB anser data med tusindseparator som tekst og ikke som tal, hvilket kan føre til fejl som NaN ved kørsel af modellen.

Når datasættet er korrekt forberedt, kan vi begynde at bygge selve dyb læringsmodellen. Modellen vil bestå af fire lag. Første lag er et featureInputLayer, som har en inputSize på 1, da vi kun arbejder med én funktion: Close-prisen. Andet lag er et lstmLayer med 100 noder og OutputMode sat til "last". Det tredje lag er et fullyConnectedLayer med fire klasser, eftersom vi har fire inputprediktorer: Open, High, Low og Volume. Det sidste lag er et regressionLayer, da vi bygger en regressionsmodel.

En vigtig indstilling i træningen af modellen er MaxEpochs, som for dette projekt bør være sat til 20 for at sikre en kort træningstid og undgå unødig forsinkelse.

Efter træning af modellen er det vigtigt at evaluere dens præstationer og validere dens forudsigelser. Denne proces involverer både validering af træningsdatasættet og testdatasættet, så vi kan sikre os, at modellen generaliserer godt til nye data og ikke blot overfitter på træningsdataene.

At forstå den matematiske baggrund for LSTM-netværk (Long Short-Term Memory) er også nyttigt. LSTM-netværk anvendes ofte til tidsseriedata som aktiekurser, fordi de er i stand til at fange tidsmæssige afhængigheder i dataene. Modellen kan således lære mønstre fra fortiden, der hjælper med at forudsige fremtidige værdier.

Yderligere overvejelser bør være at sikre, at der anvendes passende evalueringsmetoder som Mean Squared Error (MSE) eller Root Mean Squared Error (RMSE), som begge er nyttige til regressionsproblemer. Disse metoder hjælper med at vurdere, hvor præcist modellen forudsiger de faktiske værdier.

Ved at følge de nævnte skridt kan du bygge en effektiv dyb læringsmodel til aktieprisforudsigelser. Det er dog vigtigt at forstå, at aktiekurser er påvirket af mange faktorer, som kan være svære at fange gennem en simpel model. Økonomiske forhold, globale begivenheder og virksomhedens præstationer kan alle have en stor indvirkning på aktiekurserne, og disse faktorer er ikke nødvendigvis nemme at modellere.

Således er det vigtigt at forstå, at dyb læring og LSTM-modeller kan give nyttige indsigter, men de er ikke fejlfrie og bør bruges som en del af en større analyse, hvor flere faktorer også tages i betragtning. Derudover kan eksperimentering med forskellige arkitekturer og hyperparametre være nødvendigt for at optimere modellen og forbedre dens præstationer over tid.

Hvordan implementeres ANFIS til kalibrering af positionsfejl i robotter?

I et typisk scenarie for anvendelsen af et Adaptive Neuro-Fuzzy Inference System (ANFIS) til kalibrering af positionsfejl i robotter, er det nødvendigt at estimere de interne parametre i systemet ved hjælp af en samling af positiondata. Dette gøres ved at sammenligne faktiske positionsfejl med outputtet fra ANFIS, som er trænet på et datasæt. For at opnå de bedste resultater benyttes en træningssæt af data samt et testdatasæt, der begge er nødvendige for at validere systemet.

Når systemet er trænet, analyseres de gennemsnitlige positionsfejl, maksimale fejl og standardafvigelser (STD) mellem ANFIS-kalibreringsmetoden og den mere traditionelle intervaltype-2 Fuzzy Inference System (IT2 FIS)-metode. Simulationerne viser, at ANFIS-teknikken reducerer positionsfejlene med ca. 30% sammenlignet med IT2-metoden, hvilket gør ANFIS til en mere præcis metode til robotkompensation.

I den praktiske implementering af ANFIS i MATLAB, benyttes enten et grafisk interface kaldet Neuro-Fuzzy Designer, som er velegnet til begyndere, eller en række funktioner, der er mere avancerede og giver erfarne brugere mulighed for at skabe mere komplekse ANFIS-relaterede projekter. Neuro-Fuzzy Designer giver en brugervenlig GUI, der gør det muligt hurtigt og nemt at opbygge et ANFIS-projekt, mens de funktionelle metoder giver mulighed for større fleksibilitet i projektudviklingen.

Før man kan begynde at bruge ANFIS til kalibrering, er det nødvendigt at have et passende datasæt. Et vigtigt skridt i denne proces er at generere og præbehandle dataene, så de bliver egnede til anvendelse i ANFIS. Et eksempel på et sådant datasæt er aktiekurserne fra Google, som omfatter åbne, høje, lave og lukkede aktiekurser samt volumen fra 2012 til 2016. Dette datasæt anvendes til at træne ANFIS, der så kan bruges til at forudsige aktiekurser, hvilket illustrerer, hvordan man kan bygge et ANFIS-projekt baseret på en realistisk applikation.

Når man arbejder med ANFIS, er det ikke kun selve træningssættet af data, der er vigtigt. Det er også nødvendigt at have et testsæt, som kan bruges til at validere systemets præstationer. Disse datasæt bør være forskellige, men stadig have en logisk sammenhæng, således at de korrekt afspejler forholdet mellem input og output i det designede system. Det betyder, at man ikke blot kan anvende det samme datasæt til både træning og test, da det ikke vil give en præcis vurdering af systemets effektivitet.

I processen med at bygge et ANFIS-projekt er der flere vigtige faktorer, som kan påvirke præstationen af systemet. En af de vigtigste overvejelser er valget af medlemskabfunktioner (MF) for inputdataene i både x- og y-retningerne. Disse funktioner spiller en central rolle i, hvordan inputdataene bearbejdes og behandles i systemet. Figur 10.4 viser de medlemskabsfunktioner, der anvendes i x- og y-retningerne, som illustrerer, hvordan de forskellige positionsfejl vurderes i forhold til deres medlemskabsgrad.

En vigtig del af ANFIS-træningen er også valget af de interne parametre og regler, som definerer relationerne mellem input og output i systemet. For eksempel, i tilfælde af input x, kan reglerne være:

  1. Hvis x er W, så f11 = p1x + r1.

  2. Hvis x er E, så f12 = p2x + r2.

Tilsvarende regler gælder for input y. Disse regler skal justeres, så systemet korrekt kan vurdere positionsfejl og justere robotens bevægelser for at reducere disse fejl. Under træningen justeres disse parametre for at finde de optimale værdier, der giver de mindste fejl.

Simuleringer, som f.eks. de, der er præsenteret i figur 10.5, giver en visuel sammenligning af de faktiske positionsfejl og de forudsagte fejl efter træning af ANFIS. Disse resultater viser tydeligt, hvordan ANFIS effektivt kan reducere fejl sammenlignet med andre metoder som IT2 FIS. Det er dog vigtigt at forstå, at disse resultater kun er en del af hele processen. For at få et vellykket ANFIS-system, er det nødvendigt at arbejde med de rigtige datasæt og sørge for, at træningen og valideringen af systemet er ordentligt udført.

Endelig, når man bygger et ANFIS-projekt i MATLAB, er det vigtigt at forstå, at selvom det kan være fristende at bruge færdiglavede datasæt, vil prebehandling af data ofte være nødvendigt for at sikre, at de er egnede til den specifikke opgave. Dette kan omfatte normalisering af data, fjernelse af støj eller andre forbehandlingsteknikker, der hjælper med at gøre datasættet mere præcist og anvendeligt til træning af systemet.