Sobes.tech
Middle — Senior

Čo je GELU a prečo je lepší ako ReLU v transformátoroch?

sobes.tech AI

Odpoveď od AI

GELU (Gaussova chybová lineárna jednotka) je aktivačná funkcia, ktorá sa často používa v transformeroch a iných moderných neurónových sieťach. Od klasického ReLU sa líši tým, že je hladká a zohľadňuje pravdepodobnostnú povahu aktivácie.

Približná formula GELU vyzerá takto:

[ \text{GELU}(x) = x \cdot \Phi(x) ]

kde ( \Phi(x) ) je funkcia rozdelenia štandardného normálneho rozdelenia.

Výhody GELU oproti ReLU:

  • Hladkosť: GELU je spojitá a diferencovateľná, čo zlepšuje učenie.
  • Stochastickosť: GELU zohľadňuje pravdepodobnosť aktivácie neurónu, čo pomáha modelu lepšie zvládať šum a neistotu.
  • Lepšia reprezentácia dát: pri NLP úlohách a transformeroch GELU podporuje efektívnejšie učenie a zlepšuje kvalitu modelu.

Príklad použitia v PyTorch:

import torch
import torch.nn.functional as F

def gelu(x):
    return 0.5 * x * (1 + torch.tanh(torch.sqrt(torch.tensor(2 / 3.1415)) * (x + 0.044715 * x ** 3)))

x = torch.tensor([-1.0, 0.0, 1.0])
print(gelu(x))

Takto GELU poskytuje plynulejšiu a informatívnejšiu aktiváciu v porovnaní s ReLU, čo je dôležité pre zložité modely, ako sú transformery.