1. 程式人生 > >softmax函式簡介

softmax函式簡介

Softmax在機器學習中有非常廣泛的應用,但是剛剛接觸機器學習的人可能對Softmax的特點以及好處並不理解,其實你瞭解了以後就會發現,Softmax計算簡單,效果顯著,非常好用。

我們先來直觀看一下,Softmax究竟是什麼意思

我們知道max,假如說我有兩個數,a和b,並且a>b,如果取max,那麼就直接取a,沒有第二種可能

但有的時候我不想這樣,因為這樣會造成分值小的那個飢餓。所以我希望分值大的那一項經常取

到,分值小的那一項也偶爾可以取到,那麼我用softmax就可以了

現在還是a和b,a>b,如果我們取按照softmax來計算取a和b的概率,那a的softmax值大於b的,

以a會經常取到,而b也會偶爾取到,概率跟它們本來的大小有關。所以說不是max,而是 Soft max

那各自的概率究竟是多少呢,我們下面就來具體看一下

定義

假設我們有一個數組,V,Vi表示V中的第i個元素,那麼這個元素的Softmax值就是

S_i = \frac{e^{V_i}}{\sum_j{e^{V_j}}}

也就是說,是該元素的指數,與所有元素指數和的比值

這個定義可以說非常的直觀,當然除了直觀樸素好理解以外,它還有更多的優點

1.計算與標註樣本的差距

在神經網路的計算當中,我們經常需要計算按照神經網路的正向傳播計算的分數S1,和按照正確標

注計算的分數S2,之間的差距,計算Loss,才能應用反向傳播。Loss定義為交叉熵

L_i=-log(\frac{e^{f_{y_i}}}{\sum_j{e^j}})

取log裡面的值就是這組資料正確分類的Softmax值,它佔的比重越大,這個樣本的Loss也就越小,


這種定義符合我們的要求

2.計算上非常非常的方便

當我們對分類的Loss進行改進的時候,我們要通過梯度下降,每次優化一個step大小的梯度

我們定義選到yi的概率是

P_{y_i}=\frac{e^{f_{y_i}}}{\sum_j{e^j}}

然後我們求Loss對每個權重矩陣的偏導,應用鏈式法則(中間推導省略)

\frac{\partial{L_i}}{\partial{f_{y_i}}}=\frac{\partial(-\ln(\frac{e^{f_{y_{i}}}}{\sum_{j}e^{{j}}}))}{\partial{f_{y_i}}}=P_{f_{y_i}}-1

最後結果的形式非常的簡單,只要將算出來的概率的向量對應的真正結果的那一維減1,就可以了

舉個例子,通過若干層的計算,最後得到的某個訓練樣本的向量的分數是[ 1, 5, 3 ],

那麼概率分別就是[0.015,0.866,0.117],如果這個樣本正確的分類是第二個的話,那麼計算出來的偏

導就是[0.015,0.866−1,0.117]=[0.015,−0.134,0.117],是不是很簡單!!然後再根據這個進行back


propagation就可以了

相關推薦

softmax函式簡介

Softmax在機器學習中有非常廣泛的應用,但是剛剛接觸機器學習的人可能對Softmax的特點以及好處並不理解,其實你瞭解了以後就會發現,Softmax計算簡單,效果顯著,非常好用。 我們先來直觀看一下,Softmax究竟是什麼意思 我們知道max,假如說我有兩個數,a和b

交叉熵與softmax函式

交叉熵與softmax函式 在神經網路中,在對超引數進行優化過程當中,需要有一個優化的目標值,也就是真實值與預測值之間的差距要儘量小,差距越小說明預測越精確。這個差距往往用loss表示 在分類問題當中,我們用交叉熵來表示這個loss值。 1. 熵的概念 熵是物理學中的一個名詞

Python基礎篇--函式簡介

python函式     python中函式有兩種,一種是內建函式,一種是自定義函式。這裡不曉得有沒有大牛知道為什麼內建函式可以直接呼叫,沒見在哪裡定義了。另外一種是自定義函式,函式的定義方式如下,關鍵字def後面跟空格,再跟函式名,引數,函式體,函式名的命名可以使用posix

PCRE函式簡介和使用示例

PCRE是一個NFA正則引擎,不然不能提供完全與Perl一致的正則語法功能。但它同時也實現了DFA,只是滿足數學意義上的正則。   PCRE提供了19個介面函式,為了簡單介紹,使用PCRE內帶的測試程式(pcretest.c)示例用法。 1. pcre_compile &n

softmax函式注意事項及程式碼實現

import numpy as np def softmax(x): """ softmax function """ # assert(len(x.shape) > 1, "dimension must be larger than 1") # print

3種softmax函式python實現方式(顯式迴圈,向量,矩陣)

Python三種方式實現Softmax損失函式計算 python實現的softmax損失函式程式碼,我們先回顧一下softmax損失函式的定義: 其中右邊一項為第y=j項的概率值。令J(w) = log(J(w)): 損失函式的梯度:   import

關於Softmax函式

定義評分函式:                                        &

SQL ——視窗函式簡介

目錄 1、視窗函式的描述 2、視窗函式中的元素 2.1、分割槽 2.2、排序 2.3、框架 3、支援視窗函式的查詢元素 4、視窗函式類別 4.1、排名函式 4.2、分佈函式 4.3、偏移函式   1、視窗函式的描述 視窗函式作用於

Python函式簡介

函式: 指在開發程式時,需要某塊程式碼使用多次,為了提高編寫的效率和程式碼的複用,把具有獨立功能的程式碼塊組織為一個小模組,這就是函式。 函式的定義: def 函式名(): 程式碼 呼叫函式:定義完函式的時候,函式時不會立即自動執行,需要呼叫才會執行,我們通過函式名()就可以

【 MATLAB 】sinc 函式簡介

為了內容的完整性,這裡簡單的介紹了sinc函式,這個函式的更多應用實在訊號處理中,其他方便不清楚,因此,先基本瞭解,之後關於取樣函式的重構等知識在相關學科中再瞭解吧。   這是一個最基本的例子,畫出來

高斯(核)函式簡介

轉自:http://keendawn.blog.163.com/blog/static/88880743200922411743299 1 函式的基本概念 所謂徑向基函式 (Radial Basis Function 簡稱 RBF), 就是某種沿徑向對稱的標

神經網路(二):Softmax函式與多元邏輯迴歸

一、 Softmax函式與多元邏輯迴歸 為了之後更深入地討論神經網路,本節將介紹在這個領域裡很重要的softmax函式,它常被用來定義神經網路的損失函式(針對分類問題)。 根據機器學習的理論,二元邏輯迴歸的模型公式可以寫為如下的形式: (1)P(y=1)=11

tf.nn.conv2d函式、padding型別SAME和VALID、tf.nn.max_pool函式、tf.nn.dropout函式、tf.nn.softmax函式、tf.reduce_sum函式

tf.nn.conv2d函式: 該函式是TensorFlow裡面實現卷積的函式。 函式形式: tf.nn.conv2d (input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None,

15.1 非同步函式簡介

15.1.1 初識非同步型別 1 public partial class AsyncForm : Form 2 { 3 Label label; 4 Button button; 5 public AsyncForm(

15.1 非同步函式簡介與思考

  1 public partial class AsyncForm : Form 2 { 3 Label label; 4 Button button; 5 public AsyncForm() 6

利用softmax函式對mnist資料集簡單分類

mnist資料集的特點 每一張圖片包含28**28個畫素,我們把這一個陣列展開成一個向量,長度是28*28=784。因此在 MNIST訓練資料集中mnist.train.images 是一個形狀為 [60000, 784] 的張量,第一個維度數字用 來索引圖片

SQLServer之函式簡介

使用者定義函式定義 與程式語言中的函式類似,SQL Server 使用者定義函式是接受引數、執行操作(例如複雜計算)並將操作結果以值的形式返回的例程。 返回值可以是單個標量值或結果集。 使用者定義函式準則 在函式中,將會區別處理導致語句被取消並繼續執行模組(如觸發器或儲

Softmax Regression簡介

Softmax Regression簡介 處理多分類任務時,通常使用Softmax Regression模型。 在神經網路中,如果問題是分類模型(即使是CNN或者RNN),一般最後一層是Softmax Regression。它的工作原理是將可以判定為某類的特徵相加,然後將這些特徵轉化為判定是這一

SQL中 decode()函式簡介

今天看別人的SQL時看這裡面還有decode()函式,以前從來沒接觸到,上網查了一下,還挺好用的一個函式,寫下來希望對朋友們有幫助哈!   decode()函式簡介: 主要作用:將查詢結果翻譯成其他值(即以其他形式表現出來,以下舉例說明); 使用方法: Selec

softmax函式詳解

答案來自專欄:機器學習演算法與自然語言處理 這幾天學習了一下softmax啟用函式,以及它的梯度求導過程,整理一下便於分享和交流。 softmax函式 softmax用於多分類過程中,它將多個神經元的輸出,對映到(0,1)區間內,可以看成概率來理解,從而來進行多分類! 假設我們有一個數組,V,Vi表示V中