Softmax 함수
Softmax function시리즈의 일부 |
기계 학습 및 데이터 마이닝 |
---|
softargmax[1]: 184 또는 정규화 지수 [2]: 198 함수라고도 하는 softmax 함수는 K 실수의 벡터를 K 가능한 결과의 확률 분포로 변환합니다.로지스틱 함수를 다차원으로 일반화하며 다항 로지스틱 회귀 분석에 사용됩니다.softmax 함수는 종종 루스의 선택 공리에 기초하여 예측된 출력 클래스에 대한 확률 분포에 대한 네트워크의 출력을 정규화하기 위해 신경망의 마지막 활성화 함수로 사용됩니다.
정의.
소프트맥스 함수는 K 실수의 벡터 z를 입력으로 받아들여 입력 숫자의 지수에 비례하는 K 확률로 이루어진 확률 분포로 정규화한다.즉, softmax를 적용하기 전에는 일부 벡터 컴포넌트가 음수이거나 1보다 클 수 있습니다.또한 softmax를 적용하면 각 컴포넌트는 (1 (1의 간격으로 되어 컴포넌트의 합계는 1이 되어 확률로 해석됩니다.게다가 입력 컴포넌트가 클수록 확률도 커집니다.
표준(단위) 소프트맥스 함수 : R ( ,) K 는 K{\ K가 1보다 클 때 과 같이 정의된다.
간단히 말해 입력 z의 각 z 에 표준 지수 함수를 적용하고 이러한 값을 모든 지수의 합으로 나누어 정규화합니다. 이 정규화를 통해 출력 벡터 성분 의 합이 보장됩니다.은 1 입니다.
e 대신에 다른 베이스 b >0 을 사용할 수 있습니다.0 < b < 1 의 경우, 입력 컴포넌트가 작을수록 출력 확률이 높아집니다.또, b 의 값을 작게 하면, 가장 작은 입력치의 위치 주위에 보다 집중된 확률 분포가 작성됩니다.반대로 b > 1일 경우 입력 컴포넌트가 클수록 출력 확률이 높아지고 b 값을 늘리면 입력 값이 가장 큰 위치 주위에 더 집중된 확률 분포가 생성됩니다.b β {\ b}} e - {\e^{-\}}([a]실제 [b]β의 경우)로 쓰면 다음과 같은 [c]식이 생성됩니다.
일부 필드에서는 베이스가 고정 [d]스케일에 대응하여 고정되는 반면 다른 필드에서는 파라미터 β가 변화한다.
해석
스무스 arg 최대
"softmax"라는 이름은 오해의 소지가 있습니다. 함수는 매끄러운 최대값(최대 함수에 대한 부드러운 근사치)이 아니라 arg max 함수(값이 최대값을 갖는 함수)에 대한 부드러운 근사치입니다.실제로 "softmax"라는 용어는 매끄러운 최대값인 밀접하게 관련된 LogSumExp 함수에도 사용됩니다.이러한 이유로 일부는 더 정확한 용어인 "softargmax"를 선호하지만, "softmax"라는 용어는 기계 [3][4]학습에서 통용된다.이 섹션에서는 이 해석을 강조하기 위해 "softargmax"라는 용어를 사용합니다.
형식적으로는 arg max를 범주형1, \}(인덱스에 대응)의 함수로 간주하지 않고 출력을 원핫으로 나타내는 arg max 함수를 고려합니다(고유한 최대 arg가 있다고 가정합니다.
여기서 출력 y {} {displaystyle i}이의 최대값n인 경우에만 z 의고유한 최대값입니다예를 들어, 에서는 r m a (,, 10)( , ,1 {\ \)=( 입니다.세 번째 인수는 최대이기 때문입니다.
이는 1을 모든 max args로 나누어 여러 arg max값(최대값인 여러 개의 i으로 일반화할 수 있습니다.정식적으로 1/k는 최대값을 가정한 인수 수입니다.를 들어, 두 번째 인수와 세 번째 인수 r xµ (,, ) ( , 1/ ,/ )= ( \ { { )= ( , /2 )이 최대값입니다.모든 인수가 동일한 경우, 이것은 r m µ ( , , ) (1/n , ,1/ ). { , max } ( , \ , z ) = ( / , \ , / )입니다.} 여러 개의 arg max 값을 가진 포인트 z는 단수 포인트(또는 단수)이며, arg max 값이 1개인 포인트를 비단수 포인트 또는 정규 포인트라고 한다
서문에 제시된 마지막 식에서 softargmax는 이제 β β \ \ displaystyle 이므로 argmax의 부드러운 근사치가 된다.함수의 컨버전스에는 다양한 개념이 있습니다.softargmax는 arg max포인트로 수렴합니다.즉, 각 고정 입력 z에 β ( ) r m x ( ).{\ \{ } \ 입니다.s는 arg max에 균일하게 수렴하지 않는다. 즉, 직감적으로 다른 점이 다른 속도로 수렴하며 임의로 느리게 수렴할 수 있다.실제로 softargmax는 연속이지만 argmax는 연속함수의 균일한 한계가 연속함수인 단수집합에서 연속함수가 아니다.이 값이 균일하게 수렴되지 않는 이유는 2개의 좌표가 거의 동일하고(및 1개가 최대) 입력의 경우 arg max는 어느 한쪽의 인덱스이기 때문에 입력의 작은 변화가 출력에 큰 변화를 주기 때문입니다.예를 들어 ( ,) ( 0, {\ \1)이지만 ,. ( 0 {\ _} ()\ 0) 입니다.larset ( , , 는, 컨버지가 늦습니다.단, softargmax는 비싱글 집합에서 콤팩트하게 수렴합니다.
반대로, β - \ - infty} softargmax 는 같은 방법으로 argmin 으로 수렴하며, 여기서 단수 집합은 2개의 argmin 값을 갖는 포인트이다.softmax는 열대해석용어로 arg max 및 arg min의 변형 또는 "양자화"로, max-plus semiring(각각 min-plus-semiring) 대신 로그 semiring을 사용하는 것에 대응하며, 이 한계를 취함으로써 arg max 또는 arg min을 회복하는 것을 "열대화" 또는 "탈양자화"라고 한다.
또한 고정 β의 경우, 한 z i})가 온도와 된 다른 입력 z /β(\ T/\보다 훨씬 크면 출력은 대략 arg max입니다.예를 들어 온도 1에 비해 10의 차이가 큽니다.
그러나 온도와 비교하여 차이가 작을 경우 값은 arg max에 가깝지 않습니다.예를 들어 온도 100에 비해 10의 차이는 작습니다.
As , temperature goes to zero, , so eventually all differences become large (relative to a shrinking temperature), which gives another interpretation for the limit behavior.
확률론
확률론에서, softargmax 함수의 출력은 범주형 분포, 즉 K개의 다른 가능한 결과에 대한 확률 분포를 나타내기 위해 사용될 수 있다.
통계역학
통계 역학에서, softargmax 기능은 볼츠만 분포(또는 깁스 분포)로 알려져 있다.시스템의[5]:7지수는 1,…, k{\displaystyle{1,\dots ,k}}이 microstates, 입력 z 나는{\displaystyle z_{나는}}은 에너지의 상태이다;분모는으로 알려진 파티션 함수, 자주.β 인자는 냉도(또는 열역학적 베타 또는 역온도)라고 합니다.
적용들
softmax 함수는 다항 로지스틱 회귀 분석(softmax [2]: 206–209 regression이라고도 함) [1], 멀티클래스 선형 판별 분석, 네이비 베이즈 분류기, 인공 뉴럴 네트워크 [6]등 다양한 멀티클래스 분류 방법에 사용됩니다.구체적으로, 다항 로지스틱 회귀 분석과 선형 판별 분석에서 함수에 대한 입력은 K개의 구별된 선형 함수의 결과이며, 표본 벡터 x와 가중치 벡터 w가 주어진 j'번째 클래스에 대한 예측 확률은 다음과 같다.
이는 K x x 1, K\ \{ \ \{} ^ { \ } ^ { { } , \ { t} \ { w } \ ^ { w } \ mathbf { { { { 1 } \ } } 、 \ mathbf { { { { { { { { { { { } } } } }는 x 및 w의 내적을 나타냅니다.이 연산은 w \{w에 의해 정의된 선형 연산자를x {\ \}} 벡터에 적용하여 K차원 K {\^{에서 벡터로 변환하는 것과 동일합니다.
뉴럴 네트워크
표준 softmax 함수는 종종 뉴럴 네트워크 기반 분류기의 최종 레이어에서 사용됩니다.이러한 네트워크는 일반적으로 로그 손실(또는 교차 엔트로피) 체제에서 훈련되며, 다항 로지스틱 회귀의 비선형 변형을 제공한다.
함수는 벡터와 를 실제 값에 매핑하므로 도함수에서는 지수를 고려해야 합니다.
이 표현은 i i에서 대칭이므로 다음과 같이 나타낼 수도 있습니다.
여기서 크로네커 델타는 단순성을 위해 사용됩니다(cf).함수 자체를 통해 표현되는 Sigmoid 함수의 도함수).
도함수의 안정적인 수치 계산을 달성하기 위해 입력 벡터로부터 상수를 빼는 경우가 많다.이론적으로, 이것은 출력과 도함수를 바꾸지 않는다.그러나 각 지수에서 계산된 가장 큰 값을 명시적으로 제어할 수 있기 때문에 더 안정적입니다.
함수가 β {\로 스케일링되어 있는 경우 이들 에β {\를 곱해야 합니다.
softmax 활성화 함수를 사용하는 확률 모형은 다항 로짓(Logit)을 참조하십시오.
강화 학습
강화 학습 분야에서는 소프트맥스 함수를 사용하여 값을 액션 확률로 변환할 수 있습니다.일반적으로 사용되는 기능은 다음과 같습니다.[7]
여기서 값 t () {는 다음 동작 a의 예상 보상에 해당하며, {는 온도 파라미터(통계역학을 함축함)라고 합니다.고온( → \)의 경우, 모든 작용의 확률은 거의 동일하며 온도가 낮을수록 예상되는 보상이 확률에 영향을 미칩니다.낮은 온도( + \ 0의 경우, 예상되는 보상이 가장 높은 작용의 확률은 1이 된다.
계산의 복잡성과 해결 방법
뉴럴 네트워크 애플리케이션에서 가능한 결과의 수 K는 종종 크다. 예를 들어, 수백만 개의 가능한 [8]단어를 포함할 수 있는 어휘 중에서 가장 가능성이 높은 결과를 예측하는 뉴럴 언어 모델의 경우.이를 통해 softmax 레이어(,(\i를 결정하기 위한 행렬 곱셈, 그리고 softmax 함수 자체의 적용)의 계산 비용이 많이 [8][9]들 수 있습니다.또한 이러한 뉴럴 네트워크를 훈련하기 위한 구배 강하 역전파 방법은 모든 훈련 예에 대해 소프트맥스를 계산하여 훈련 예시의 수를 늘릴 수 있다.소프트맥스에 대한 계산 노력은 더 큰 신경 언어 모델의 개발에서 주요 제한 요소가 되었고, 훈련 [8][9]시간을 단축하기 위한 다양한 치료법에 동기를 부여했다.
보다 효율적인 계산을 위해 softmax 계층을 재구성하는 접근법에는 계층형 softmax와 차별화된 softmax가 [8]있습니다.계층적 소프트맥스(2005년 Morin과 Bengio에 의해 도입됨)는 결과(어휘 단어)가 잎이고 중간 노드가 결과의 "클래스"를 적절하게 선택하여 잠재 [9][10]변수를 형성하는 이진 트리 구조를 사용한다.원하는 리프 확률(softmax 값)은 루트에서 해당 [9]리프까지의 경로 상에 있는 모든 노드의 확률의 곱으로 계산할 수 있습니다.트리의 밸런스가 잡히면 계산의 복잡도가 O에서 O K[10]로 감소하는 것이 입니다.실제로 결과는 결과를 [9][10]클래스로 정리하기 위한 좋은 전략을 선택하는 것에 달려 있습니다.Google의 Word2vec 모델(2013년 도입)에서는 확장성을 [8]실현하기 위해 Huffman 트리가 사용되었습니다.
두 번째 종류의 구제책은 완전 정규화 [8]계수의 계산을 회피하는 수정된 손실 함수를 사용하여 (훈련 중) 소프트맥스를 근사하는 것에 기초한다.여기에는 정규화 합계를 결과의 표본으로 제한하는 방법(예: 중요도 표본 추출, 대상 표본 추출)[8][9]이 포함됩니다.
수학적 특성
기하학적으로 소프트맥스 함수는 벡터 R를표준-)의 경계에 매핑합니다style -simplex, (- )\style () \ (K-1} - dimensional simplex o 모든 출력의 합이 1이라는 선형 구속조건은 하이퍼플레인 상에 있음을 의미합니다.
주 대각선 )에따라 {\ softmax는 출력의 균일한 일 뿐입니다/ n, ,/ n \ / , \ , 1 / ) : 균일한 스코어가 산출됩니다.
보다 일반적으로, softmax는 각 좌표의 동일한 값으로 변환 시 불변합니다. 입력에 c ( , ,c) { {} = ( , \ \ mathbf { z )를 ( + ) ( z ) \ \ display \ mathbf { mathbf됩니다.이는 각 지수에 동일한 ec {\}를 곱하기 에 z + c = c e}+ e}}\c} } ) the it it it 。그래서 비율은 변경되지 않는다.
기하학적으로 softmax는 대각선을 따라 일정합니다.이것은 소거된 치수이며, 입력 스코어의 변환에 의존하지 않는 소프트맥스 출력에 대응합니다(0점 선택).합계가 0이라고 가정하면 입력 점수를 정규화할 수 있다(평균: {\{c 서 c n i n † {1} } \{) softmax는 의 점의 하이퍼 평면을 취한다.1 to (z ) \ )}= 지수가 0 ~ 1, 1e^{0}=1을 취하고 양수가 되는 것과 유사합니다.
반면 softmax는 스케일링 하에서도 불변하는 것은 아닙니다.를 들어, (,1 )( /( + ), /( + e) \ ( ( 0 , 1 \ } = ( / ( ){ \ =(, ) 1.
표준 로지스틱 함수는 (x, y) 평면의 x축과 같이 2차원 공간의 1차원 축에 대한 특수한 경우입니다.한 변수는 0으로 됩니다(: 0 {\2}= e 0 (\ e}=1})이고 변수는 1(\ 1}=이므로 e /text )입니다^{1) 표준 로지스틱 함수 e 2 /∑ = z / ( x+1), {^{=1) , (보완함수) ,1차원 입력은 ,- / 2){(/ - x / 2 /( / + -x/) e x/ ( x + ) { e {/ 2 / 2} / ( e ^ { x / 2 / 2 / 2 ) { x / 2 / 2} )로 표시할 수 있습니다.
softmax 함수는 LogSumExp 함수의 그라데이션이기도 하며 부드러운 최대값입니다.
서 LogSumExp 는 LSE ( 1,… , ) log ( ( 1 ) + + ) (zn) \ { LSE } ( { , \ , { n } ) \ left ( \ exp ( \ exp _1 ) + { )
역사
소프트맥스 함수는 영향력 있는 교과서 깁스(1902)[12]에서 공식화되고 대중화된 기초 논문 볼츠만(1868)[11]의 볼츠만 분포로 통계 역학에서 사용되었다.
결정 이론에서 softmax의 사용은 Luce( ) 에 기인한다: target: ([13]: 1 는 상대 선호에 대한 Luce의 선택 공리에서 softmax를 추론하기 위해 합리적인 선택 이론에서 관련 없는 대안의 독립 공리를 사용했다.
기계학습에서 "소프트맥스"라는 용어는 1989년 두 개의 컨퍼런스 페이퍼인 Bridle(1990a)[13]: 1 와 Bridle(1990b):[3]
복수의 출력을 가지는 피드 포워드 비선형 네트워크(Multiple-Layer Perceptron(MLP; 멀티 레이어 퍼셉트론))에 관심이 있습니다.우리는 네트워크의 출력을 입력에 따라 조건화된 대안(예: 패턴 클래스)의 확률로 취급하고 싶다.우리는 적절한 출력 비선형성과 네트워크의 매개변수(예: 무게)의 적응을 위한 적절한 기준을 찾는다.우리는 오차 제곱 최소화의 대안인 확률 점수 매김과 로지스틱 비선형성의 [14]: 227 정규화된 지수(소프트맥스) 다중 입력 일반화라는 두 가지 수정 사항을 설명한다.
모든 입력에 대해 출력은 모두 양의 값이어야 하며 합계가 유니티여야 합니다.
제약되지 않은 값 (x) { 를 지정하면 정규화된 지수 변환을 사용하여 두 조건을 모두 확인할 수 있습니다.
이 변환은 로지스틱의 다중 입력 일반화로 간주할 수 있으며, 전체 출력 계층에서 작동합니다.입력값의 순위를 유지하며, 최대값을 선택하는 '승자독식' 연산의 구별 가능한 일반화이다.이 때문에 softmax라고 부릅니다.[15]: 213
예
[1, 2, 3, 4, 1, 2, 3]을 입력하면 소프트맥스는 [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]가 됩니다.출력의 무게 대부분은 원래 입력에 '4'가 있었던 곳에 있습니다.이 함수는 일반적으로 가장 큰 값을 강조 표시하고 최대값보다 훨씬 낮은 값을 억제하기 위해 사용됩니다.단, softmax는 스케일 불변성이 없기 때문에 입력이 [0.1, 0.2, 0.3, 0.4, 0.1, 0.2, 0.3](합계 1.6)이면 소프트맥스는 [0.125, 0.138, 0.153, 0.169, 0.135, 0.135, 0.138, 0.138, 0.138, 0.135, 0.138, 0.153]가 됩니다.이는 0과 1의 softmax 값의 경우 실제로 최대값이 디컴포넌트됨을 나타냅니다(0.120은 0.475보다 작을 뿐만 아니라 초기 비율인 0.4/1.6=0.25보다 작다는 점에 유의하십시오).
Python 코드를 사용한 이 예제의 계산:
>>>수입품 수치 ~하듯이 np >>>a = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0] >>>np.exp(a) / np.합(np.exp(a)) 어레이([0.02364054, 0.06426166, 0.1746813, 0.474833, 0.02364054), 0.06426166, 0.1746813])
다음은 Julia 코드의 예입니다.
줄리아> A = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]; 인터랙티브 출력을 억제하기 위한 세미콜론 줄리아> exp.(A) ./ 합(exp.(A)) 7 요소 어레이 {Float64,1}: 0.0236405 0.0642617 0.174681 0.474833 0.0236405 0.0642617 0.174681
R 코드의 예를 다음에 나타냅니다.
>z <-> c(1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0) >소프트맥스 <-> exp(z)/합(exp(z)) >소프트맥스 [1] 0.02364054 0.06426166 0.17468130 0.47483300 0.02364054 0.06426166 0.17468130
iex >t = Nx.텐서([[1, 2], [3, 4]]) iex >Nx.나누다(Nx.exp(t), Nx.합(Nx.exp(t))) #Nx.텐서< f64[2][2] [ [0.03205860328008499, 0.08714431874203257], [0.23688281808991013, 0.6439142598879722] ] >
다음은 Raku 코드의 예입니다.
> my @z = [ 1.0 、 2.0 、 3.0 、 4.0 、 1.0 、 2.0 ] > say@z.ma p : { exp _ / sum ( @z . map : { expair _ ) } } } ( 0.064054302159138510416 0.0646125985)
「 」를 참조해 주세요.
- 소프트플러스
- 다항 로지스틱 회귀 분석
- 디리클레 분포 – 범주형 분포를 표본으로 추출하는 다른 방법
- 파티션 함수
- 지수 기울기 - Softmax를 보다 일반적인 확률 분포로 일반화.
메모들
레퍼런스
- ^ Goodfellow, Ian; Bengio, Yoshua; Courville, Aaron (2016). "6.2.2.3 Softmax Units for Multinoulli Output Distributions". Deep Learning. MIT Press. pp. 180–184. ISBN 978-0-26203561-3.
- ^ a b Bishop, Christopher M. (2006). Pattern Recognition and Machine Learning. Springer. ISBN 0-387-31073-8.
- ^ a b Sako, Yusaku (2018-06-02). "Is the term "softmax" driving you nuts?". Medium.
- ^ Goodfellow, Bengio & Courville 2016, 페이지 183–184:"softmax"라는 이름은 다소 혼란스러울 수 있습니다.함수는 max 함수보다 arg max 함수에 더 가깝습니다."소프트"라는 용어는 softmax 함수가 연속적이고 차별화 가능하다는 사실에서 파생되었습니다.arg max 함수는 결과가 원핫 벡터로 표현되어 연속적이거나 미분할 수 없습니다.따라서 softmax 함수는 arg max의 "소프트화된" 버전을 제공합니다.최대 함수의 대응하는 소프트 버전은 ( )z \입니다.소프트맥스 함수를 softargmax라고 부르는 것이 좋을지도 모르지만 현재 이름은 확립된 규칙입니다.
- ^ LeCun, Yann; Chopra, Sumit; Hadsell, Raia; Ranzato, Marc’Aurelio; Huang, Fu Jie (2006). "A Tutorial on Energy-Based Learning" (PDF). In Gökhan Bakır; Thomas Hofmann; Bernhard Schölkopf; Alexander J. Smola; Ben Taskar; S.V.N Vishwanathan (eds.). Predicting Structured Data. Neural Information Processing series. MIT Press. ISBN 978-0-26202617-8.
- ^ ai-faq 소프트맥스 활성화 기능이란?
- ^ Sutton, R.S. 및 Barto A. G. 강화 학습: 개요MIT 프레스, 케임브리지, 매사추세츠, 1998.Softmax 액션 선택
- ^ a b c d e f g Onal, Kezban Dilek; Zhang, Ye; Altingovde, Ismail Sengor; Rahman, Md Mustafizur; Karagoz, Pinar; Braylan, Alex; Dang, Brandon; Chang, Heng-Lu; Kim, Henna; McNamara, Quinten; Angert, Aaron (2018-06-01). "Neural information retrieval: at the end of the early years". Information Retrieval Journal. 21 (2): 111–182. doi:10.1007/s10791-017-9321-y. ISSN 1573-7659.
- ^ a b c d e f Chen, Wenlin; Grangier, David; Auli, Michael (August 2016). "Strategies for Training Large Vocabulary Neural Language Models". Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). Berlin, Germany: Association for Computational Linguistics: 1975–1985. doi:10.18653/v1/P16-1186.
- ^ a b c Morin, Frederic; Bengio, Yoshua (2005-01-06). "Hierarchical Probabilistic Neural Network Language Model" (PDF). International Workshop on Artificial Intelligence and Statistics. PMLR: 246–252.
- ^ Boltzmann, Ludwig (1868). "Studien über das Gleichgewicht der lebendigen Kraft zwischen bewegten materiellen Punkten" [Studies on the balance of living force between moving material points]. Wiener Berichte. 58: 517–560.
- ^ Gibbs, Josiah Willard (1902). Elementary Principles in Statistical Mechanics.
- ^ a b Gao, Bolin; Pavel, Lacra (2017). "On the Properties of the Softmax Function with Application in Game Theory and Reinforcement Learning". arXiv:1704.00805 [math.OC].
- ^ Bridle, John S. (1990a). Soulié F.F.; Hérault J. (eds.). Probabilistic Interpretation of Feedforward Classification Network Outputs, with Relationships to Statistical Pattern Recognition. Neurocomputing: Algorithms, Architectures and Applications (1989). NATO ASI Series (Series F: Computer and Systems Sciences). Vol. 68. Berlin, Heidelberg: Springer. pp. 227–236. doi:10.1007/978-3-642-76153-9_28.
- ^ Bridle, John S. (1990b). D. S. Touretzky (ed.). Training Stochastic Model Recognition Algorithms as Networks can Lead to Maximum Mutual Information Estimation of Parameters. Advances in Neural Information Processing Systems 2 (1989). Morgan-Kaufmann.
- ^ "Nx/Nx at main · elixir-nx/Nx".