E: Neuralt netværk med SiLU

SiLU-neuron, gradient, parameterantal og tegn på overfitting.

Aktiveringsfunktionen SiLU er defineret som

$$\mathrm{SiLU}(z)=\frac{z}{1+e^{-z}}$$

En neuron med to input og SiLU-aktivering:

$$f(x_1,x_2)=\mathrm{SiLU}(w_0+w_1\cdot x_1+w_2\cdot x_2)$$
model = torch.nn.Sequential(torch.nn.Linear(2,1), torch.nn.SiLU())

Parametre: $w_0=w_1=w_2=1$. (SiLU-kurve og træningsfigurer: se PDF.)

Spørgsmål E.1

Beregn neuronens output for $x_1=1$ og $x_2=2$, dvs. $f(1,2)$.

Vis svar Skjul svar
Svar E.1
$$f(1,2)=\mathrm{SiLU}(1+1\cdot 1+1\cdot 2)=\mathrm{SiLU}(4)=\frac{4}{1+e^{-4}}\approx 3.93$$

≈ 3.93

Spørgsmål E.2

Beregn gradienten af $f$ for $x_1=1$ og $x_2=-2$, dvs. $\nabla f(1,-2)$.

Vis svar Skjul svar
Svar E.2

Gradienten er $\nabla f=[\partial f/\partial w_0,\,\partial f/\partial w_1,\,\partial f/\partial w_2]^\top$. Med kædereglen og $x_0=1$:

$$\frac{\partial f}{\partial w_i}=\frac{d\,\mathrm{SiLU}(z)}{dz}\,x_i$$

$z^*=w_0+w_1 x_1+w_2 x_2=1+1-2=0$. Afledt af SiLU i $z^*=0$:

$$\left.\frac{d\,\mathrm{SiLU}}{dz}\right|_{z=0}=\frac{1+e^{0}+0}{(1+e^{0})^2}=\frac{2}{4}=0.5$$
$$\nabla f(1,-2)=[0.5,\,0.5,\,-1]^\top$$

[0.5, 0.5, −1]ᵀ

model = torch.nn.Sequential(
    torch.nn.Linear(2, 32),
    torch.nn.SiLU(),
    torch.nn.Linear(32, 1)
)
Spørgsmål E.3

Hvor mange parametre har dette neurale netværk i alt?

Vis svar Skjul svar
Svar E.3

Første lag: 32 neuroner × (2 vægte + 1 bias) = 96. Andet lag: 32 vægte + 1 bias = 33. I alt $96+33=129$ parametre.

129

Spørgsmål E.4

Ses der nogen tegn på overfitting? Begrund dit svar. (Se loss-kurven i PDF’en.)

Vis svar Skjul svar
Svar E.4

Validerings-loss falder først, men begynder derefter at stige igen. Det viser, at den endelige model ikke opnår den bedste generalisering — den stigende validerings-loss er et tydeligt tegn på overfitting.

Ja — stigende validation loss (overfitting).