Hjælp til app: Neuralt netværk til regression

Herunder gives en gennemgang af hver af fanerne i Neuralt Netværk til Regression App. Du kan læse mere om matematikken bag i noten om simple kunstige neurale netværk til regression.

Data

Tryk på Browse… og vælg den datafil, du vil uploade. Det skal enten være en csv- eller excel-fil.


Hvis du uploader en fil i CSV format, kommer følgende frem:

Her skal du vælge, hvordan data er separeret. Der er følgende muligheder:

  • Auto
  • Komma (,)
  • Semikolon (; - Dansk/Excel)

Ved "Auto" prøver app’en selv at finde ud af, hvordan data er separeret. Hvis du ikke ved, hvad du skal vælge, så prøv alle muligheder og se efter, hvordan data bliver indlæst i højre side af skærmen.


Tryk herefter på Næste-knappen.


Variable

Target-variabel

Under Target-variabel vælger du den kolonne i dit datasæt, som angiver den klasse, der skal prædikteres. Du skal altså her vælge den kolonne, hvor target-værdierne står.


Feature-variable

Under feature-variable vælges alle de feature-/input-variable, som skal være en del af modellen.


Tryk herefter på Næste-knappen.


Træning

Antal neuroner i første skjulte lag

Her vælges antallet af neuroner i det første skjulte lag.


Antal neuroner i andet skjulte lag

Her vælges antallet af neuroner i det andet skjulte lag.


Learning rate

Når vægtene opdateres ved hjælp af gradientnedstigning benyttes denne opdateringsregel (hvor \(E\) er tabsfunktionen)

\[ w^{(\textrm{ny})} \leftarrow w - \eta \cdot \frac{\partial E }{\partial w} \]

her er \(\eta\) det, som kaldes for en learning rate. Hvis \(\eta\) vælges for stor, kan man risikere at "træde henover" minimum (det ses typisk ved at grafen for tabsfunktionen som funktion af antal iterationer – til højre i skærmbilledet – fluktuerer eller "stikker af"). Vælges \(\eta\) for lille går opdateringen for langsom, som ses ved at værdien af tabsfunktionen næsten ikke ændrer sig.


Iterationer

Iterationer angiver det antal gange vægtene opdateres i forbindelse med gradientnedstigning. Antal iterationer skal sættes stort nok til, at grafen for tabsfunktionen som funktion af antal iterationer begynder at flade ud.


Aktiveringsfunktion i skjulte lag

Under Aktiveringsfunktion i skjulte lag kan man vælge den aktiveringsfunktion, som bruges i alle de skjulte lag. Der kan vælges blandt:



Brug feature-skalering

Under indstillinger kan man fjerne fluebenet ved Brug feature-skalering. Default indstillingen er, at feature-skalering er slået til. Det er som regel nødvendigt for at få gradientnedstigning til at konvergere.

Alle AI modeller trænes ved at minimere en tabsfunktion, hvor en linear kombination af en række features \(x_1, x_2, \dots, x_n\) indgår:

\[ w_0 + w_1 \cdot x_1 + w_2 \cdot x_2 + \cdots + w_n \cdot x_n \]

For at bringe alle features på sammen skala anvender vi følgende standardisering:

\[ \frac{x-\mu}{\sigma} \] hvor \(\mu\) er et bud på middelværdien for featuren \(X\) og \(\sigma\) er et bud på spredningen. Du kan læse mere om feature-skalering i noten her. Gør man ovenstående for alle \(n\) features vil de fleste værdier ligge mellem \(-2\) og \(2\).

Det betyder, at de vægte, vi finder, i virkeligheden passer til følgende linear kombination:

\[ \begin{aligned} w_0 + w_1 \cdot \left (\frac{x_1-\mu_1}{\sigma_1} \right ) & + w_2 \cdot \left (\frac{x_2-\mu_2}{\sigma_2} \right ) \\ &+ \cdots + w_n \cdot \left (\frac{x_n-\mu_n}{\sigma_n} \right ) \end{aligned} \]

hvilket kan omskrives til

\[ \begin{aligned} &\left ( w_0 -\frac{w_1}{\sigma_1}\cdot \mu_1 - \frac{w_2}{\sigma_2}\cdot \mu_2- \cdots - \frac{w_n}{\sigma_n}\cdot \mu_n\right) \\ & \qquad \qquad \qquad \qquad + \frac{w_1}{\sigma_1} \cdot x_1 + \frac{w_2}{\sigma_2} \cdot x_2 + \cdots + \frac{w_n}{\sigma_n} \cdot x_n \end{aligned} \] De vægte som returneres i app’en er:

Feature Vægt
Bias \(w_0 -\frac{w_1}{\sigma_1}\cdot \mu_1 - \frac{w_2}{\sigma_2}\cdot \mu_2- \cdots - \frac{w_n}{\sigma_n}\cdot \mu_n\)
\(x_1\) \(\frac{w_1}{\sigma_1}\)
\(x_2\) \(\frac{w_2}{\sigma_2}\)
\(\vdots\) \(\vdots\)
\(x_n\) \(\frac{w_n}{\sigma_n}\)

Det vil altså sige, at de returnerede vægte svarer til de vægte, man ville få, hvis man ikke havde feature-skaleret. Man behøver således ikke at bekymre sig om feature-skalering, men man kan bruge vægtene direkte, selvom vi "nedenunder motorhjelmen" anvender feature-skalering for at få gradientnedstigning til at konvergere.


Reproducerbar træning

Under indstillinger kan man også fjerne fluebenet ved Reproducerbar træning, som afgør hvordan de tilfældige startværdier for vægtene genereres af computeren.

Når en computer genererer “tilfældige” tal gøres det med udgangspunkt i en starttilstand (som også kaldes et seed). Hvis man sætter computerens generator af tilfældige tal tilbage i samme starttilstand vil den producere de præcis samme “tilfældige” tal hver gang den kører.

Når reproducerbar træning er slået til, sættes generatoren i samme starttilstand hver gang man trykker på Træn model-knappen, og dermed gentages den præcis samme træning, fordi de tilfældige startværdier vælges ens hver gang.

Hvis man derimod fjerner fluebenet ved Reproducerbar træning, genereres startværdierne ud fra en ny starttilstand hver gang, man trykker på Træn model-knappen.



Tryk herefter på Træn model-knappen.


Output fra modellen

Når modellen er trænet ses outputtet i højre side af skærmen. Følgende vises:

  • Grafen for værdien af tabsfunktionen som funktion af antal iterationer. Her skal du holde øje med, at grafen flader ud svarende til, at gradientnedstigning er konvergeret.

  • Slutværdien af tabsfunktionen. Hvis du vil vide mere om, hvordan størrelsen af denne værdi kan vurderes, så se dette forløb.

Evaluering & Prædiktion

Evaluering

Der kan her vælges mellem tre evalueringsmetoder:

  • Evaluering på træningsdata
  • Evaluering på bruger-uploadet testdata
  • Evaluering via krydsvalidering

Når evalueringsmetoden er valgt, trykkes der på Kør evaluering-knappen.

Vælges Evaluering på træningsdata beregnes følgende:

Endelig er det muligt at downloade et datasæt, hvor træningsdatasættet er udvidet med en ekstra kolonne, hvor den prædikterede outputværdien \(o\) er beregnet for hvert træningseksempel.

Vælges Evaluering på bruger-uploadet testdata beregnes det samme som for Evaluering på træningsdata blot med udgangspunkt i et uploadet testdatasæt.

Endelig kan Evaluering via krydsvalidering vælges. Her beregnes RMSE og MAE baseret på krydsvalidering. Bemærk, at \(R^2\)-værdien ikke beregnes, da det viser sig, at denne værdi ikke giver mening i forbindelse med krydsvalidering. For eksempel kan værdien gå hen og blive negativ.