Main Content

gelu

ガウス誤差線形単位 (GELU) 活性化の適用

R2022b 以降

    説明

    ガウス誤差線形単位 (GELU) 活性化演算は、ガウス確率分布に従って入力を重み付けします。

    この演算は次で与えられます。

    GELU(x)=x2(1+erf(x2)),

    ここで、erf は誤差関数を表します。

    メモ

    この関数は、GELU 演算を dlarray データに適用します。dlnetwork オブジェクト内に GELU 活性化を適用する場合は、geluLayer を使用します。

    Y = gelu(X) は、入力データ X に GELU 活性化を適用します。

    Y = gelu(X,Approximation=method) は、GELU 演算の近似法も指定します。たとえば、Approximation="tanh" は、基になる誤差関数の tanh 近似を指定します。

    すべて折りたたむ

    3 つのチャネルをもつ 28×28 のイメージが 128 個格納されたバッチを含む、形式を整えた dlarray オブジェクトを作成します。形式を "SSCB" (空間、空間、チャネル、バッチ) として指定します。

    miniBatchSize = 128;
    inputSize = [28 28];
    numChannels = 3;
    X = rand(inputSize(1),inputSize(2),numChannels,miniBatchSize);
    X = dlarray(X,"SSCB");

    入力データのサイズと形式を表示します。

    size(X)
    ans = 1×4
    
        28    28     3   128
    
    
    dims(X)
    ans = 
    'SSCB'
    

    GELU 活性化を適用します。

    Y = gelu(X);

    出力のサイズと形式を表示します。

    size(Y)
    ans = 1×4
    
        28    28     3   128
    
    
    dims(Y)
    ans = 
    'SSCB'
    

    入力引数

    すべて折りたたむ

    入力データ。形式を整えた (または形式を整えていない) dlarray オブジェクトとして指定します。

    近似法。次のいずれかの値として指定します。

    • "none" — 近似を使用しません。

    • "tanh" — 次を使用して基になる誤差関数を近似します。

      erf(x2)tanh(2π(x+0.044715x3)).

    ヒント

    MATLAB® では、tanh 近似の計算は通常、精度が低くなります。また、入力サイズが大きい場合、近似を使用せずに GELU 活性化を計算するよりも遅くなります。tanh 近似は、BERT や GPT-2 など、この近似を使用するモデルを再現する場合に使用します。

    出力引数

    すべて折りたたむ

    GELU 活性化。dlarray オブジェクトとして返されます。出力 Y の基となるデータ型は、入力 X と同じです。

    入力データ X が、形式を整えた dlarray オブジェクトである場合、Y の次元形式は X と同じになります。入力データが、形式を整えた dlarray オブジェクトでない場合、Y は、入力データと同じ次元の順序をもち、形式が整っていない dlarray オブジェクトになります。

    アルゴリズム

    すべて折りたたむ

    ガウス誤差線形単位活性化

    ガウス誤差線形単位 (GELU) 活性化演算は、ガウス確率分布に従って入力を重み付けします。

    この演算は次で与えられます。

    GELU(x)=x2(1+erf(x2)),

    ここで、erf は次で与えられる誤差関数を表します。

    erf(x)=2π0xet2dt.

    Approximation オプションが "tanh" の場合、ソフトウェアは次を使用して誤差関数を近似します。

    erf(x2)tanh(2π(x+0.044715x3)).

    参照

    [1] Hendrycks, Dan, and Kevin Gimpel. "Gaussian error linear units (GELUs)." Preprint, submitted June 27, 2016. https://arxiv.org/abs/1606.08415

    拡張機能

    バージョン履歴

    R2022b で導入