Main Content

softmax

채널 차원에 소프트맥스 활성화 적용

R2019b 이후

설명

소프트맥스 활성화 연산은 입력 데이터의 채널 차원에 소프트맥스 함수를 적용합니다.

소프트맥스 함수는 값의 합이 1이 되도록 채널 차원에서 입력 데이터의 값을 정규화합니다. 소프트맥스 함수의 출력값을 확률 분포로 간주할 수 있습니다.

참고

이 함수는 dlarray 데이터에 소프트맥스 연산을 적용합니다. dlnetwork 객체 내에서 소프트맥스를 적용하려면 softmaxLayer를 사용하십시오.

예제

Y = softmax(X)는 입력 데이터의 채널 차원에 소프트맥스 전달 함수를 적용하여 입력값 X의 소프트맥스 활성화를 계산합니다. Y의 모든 값의 범위는 0 ~ 1이고 합은 1입니다. 입력값 X는 형식이 지정된 dlarray여야 합니다. 출력값 YX와 차원 형식이 같은, 형식이 지정된 dlarray입니다.

Y = softmax(X,'DataFormat',FMT)X가 형식이 지정된 dlarray가 아닌 경우 차원 형식 FMT도 지정합니다. 출력값 YX와 차원 순서가 같은, 형식이 지정되지 않은 dlarray입니다.

예제

모두 축소

softmax 함수를 사용하여 모든 채널에서 입력 데이터의 모든 값이 01 사이의 값이고 그 합은 1이 되도록 설정합니다.

입력 분류 데이터를 확률 변수로 구성된 두 관측값으로 만듭니다. 데이터는 10개 범주 중 하나일 수 있습니다.

numCategories = 10;
observations = 2;

X = rand(numCategories,observations);
X = dlarray(X,'CB');

softmax 활성화를 계산합니다.

Y = softmax(X)
totalProb = sum(Y,1)
Y =

  10(C) x 2(B) dlarray

    0.1151    0.0578
    0.1261    0.1303
    0.0579    0.1285
    0.1270    0.0802
    0.0959    0.1099
    0.0562    0.0569
    0.0673    0.0753
    0.0880    0.1233
    0.1328    0.1090
    0.1337    0.1288
totalProb =

  1(C) x 2(B) dlarray

    1.0000    1.0000

Y의 모든 값의 범위는 0 ~ 1입니다. 각 관측값은 모든 채널에서 값의 합이 1입니다.

입력 인수

모두 축소

입력 데이터로, 형식이 지정된 dlarray 또는 형식이 지정되지 않은 dlarray로 지정됩니다. X가 형식이 지정된 dlarray가 아닌 경우 'DataFormat',FMT를 사용하여 차원 레이블 형식을 지정해야 합니다.

X'C' 채널 차원을 포함해야 합니다.

데이터형: single | double

데이터 차원에 대한 설명으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

데이터 형식은 문자들로 구성된 문자열로, 각 문자는 대응되는 데이터 차원의 유형을 설명합니다.

문자는 다음을 나타냅니다.

  • "S" — 공간

  • "C" — 채널

  • "B" — 배치

  • "T" — 시간

  • "U" — 지정되지 않음

예를 들어, 첫 번째, 두 번째, 세 번째 차원이 각각 채널, 관측값, 시간 스텝에 대응되는 시퀀스 배치를 포함하는 배열이 있다고 가정하겠습니다. 이 배열이 "CBT"(채널, 배치, 시간) 형식을 갖도록 지정할 수 있습니다.

"S" 또는 "U" 레이블의 차원은 여러 개 지정할 수 있습니다. 레이블 "C", "B", "T"는 최대 한 번만 사용할 수 있습니다. 두 번째 차원 뒤의 한원소 후행 "U" 차원은 무시됩니다.

입력 데이터가 형식이 지정된 dlarray 객체가 아닌 경우 FMT 옵션을 지정해야 합니다.

자세한 내용은 Deep Learning Data Formats 항목을 참조하십시오.

데이터형: char | string

출력 인수

모두 축소

소프트맥스 활성화로, dlarray로 반환됩니다. Y의 모든 값의 범위는 0 ~ 1입니다. 출력값 Y는 입력값 X와 기본 데이터형이 같습니다.

입력 데이터 X가 형식이 지정된 dlarray인 경우 YX와 차원 형식이 같습니다. 입력 데이터가 형식이 지정된 dlarray가 아닌 경우, Y는 입력 데이터와 차원 순서가 같은, 형식이 지정되지 않은 dlarray입니다.

알고리즘

모두 축소

소프트맥스 활성화

softmax 함수는 모든 채널 차원에서 입력값을 정규화하여 그 값의 합이 1이 되도록 합니다. 자세한 내용은 softmaxLayer 함수 도움말 페이지에서 소프트맥스 계층 정의를 참조하십시오.

딥러닝 배열 형식

대부분의 딥러닝 신경망과 함수는 입력 데이터의 각기 다른 차원에 대해 다른 방식으로 연산을 수행합니다.

예를 들어, LSTM 연산은 입력 데이터의 시간 차원에 대해 반복 작업을 수행하고 배치 정규화 연산은 입력 데이터의 배치 차원에 대해 정규화를 수행합니다.

차원에 레이블이 지정된 입력 데이터 또는 추가 레이아웃 정보가 포함된 입력 데이터를 제공하려면 데이터 형식을 사용하면 됩니다.

데이터 형식은 문자들로 구성된 문자열로, 각 문자는 대응되는 데이터 차원의 유형을 설명합니다.

문자는 다음을 나타냅니다.

  • "S" — 공간

  • "C" — 채널

  • "B" — 배치

  • "T" — 시간

  • "U" — 지정되지 않음

예를 들어, 첫 번째, 두 번째, 세 번째 차원이 각각 채널, 관측값, 시간 스텝에 대응되는 시퀀스 배치를 포함하는 배열이 있다고 가정하겠습니다. 이 배열이 "CBT"(채널, 배치, 시간) 형식을 갖도록 지정할 수 있습니다.

형식이 지정된 입력 데이터를 생성하려면 dlarray 객체를 생성하고 두 번째 인수를 사용하여 형식을 지정하십시오.

형식이 지정되지 않은 데이터에 추가 레이아웃 정보를 제공하려면 FMT 인수를 사용하여 형식을 지정하십시오.

자세한 내용은 Deep Learning Data Formats 항목을 참조하십시오.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.

버전 내역

R2019b에 개발됨