주요 콘텐츠

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

gelu

GELU(Gaussian Error Linear Unit) 활성화 적용

R2022b 이후

    설명

    GELU(Gaussian Error Linear Unit) 활성화 연산은 가우스 분포의 확률에 따라 입력값에 가중치를 부여합니다.

    이 연산은 다음과 같이 표현됩니다.

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

    여기서 erf는 오차 함수를 나타냅니다.

    참고

    이 함수는 dlarray 데이터에 GELU 연산을 적용합니다. dlnetwork 객체 내에서 GELU 활성화를 적용하려면 geluLayer를 사용하십시오.

    Y = gelu(X)는 입력 데이터 X에 GELU 활성화를 적용합니다.

    예제

    Y = gelu(X,Approximation=method)는 GELU 연산에 대한 근사법도 지정합니다. 예를 들어, Approximation="tanh"는 기본 오차 함수의 근사를 tanh로 지정합니다.

    예제

    모두 축소

    3개의 채널이 있는 128개의 28×28 영상 배치를 포함하는 형식이 지정된 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 객체인 경우 YX와 차원 형식이 같습니다. 입력 데이터가 형식이 지정된 dlarray 객체가 아닌 경우, Y는 입력 데이터와 차원 순서가 같은, 형식이 지정되지 않은 dlarray 객체입니다.

    알고리즘

    모두 축소

    참고 문헌

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

    확장 기능

    모두 확장

    버전 내역

    R2022b에 개발됨