成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Softmax分類函數(shù)

BicycleWarrior / 1140人閱讀

摘要:對于多分類問題,我們可以使用多項(xiàng)回歸,該方法也被稱之為函數(shù)。函數(shù)的交叉熵?fù)p失函數(shù)的推導(dǎo)損失函數(shù)對于的導(dǎo)數(shù)求解如下上式已經(jīng)求解了當(dāng)和的兩種情況。最終的結(jié)果為,這個求導(dǎo)結(jié)果和函數(shù)的交叉熵?fù)p失函數(shù)求導(dǎo)是一樣的,再次證明函數(shù)是函數(shù)的一個擴(kuò)展板。

作者:chen_h
微信號 & QQ:862251340
微信公眾號:coderpai
簡書地址:https://www.jianshu.com/p/8eb...


這篇教程是翻譯Peter Roelants寫的神經(jīng)網(wǎng)絡(luò)教程,作者已經(jīng)授權(quán)翻譯,這是原文。

該教程將介紹如何入門神經(jīng)網(wǎng)絡(luò),一共包含五部分。你可以在以下鏈接找到完整內(nèi)容。

(一)神經(jīng)網(wǎng)絡(luò)入門之線性回歸

Logistic分類函數(shù)

(二)神經(jīng)網(wǎng)絡(luò)入門之Logistic回歸(分類問題)

(三)神經(jīng)網(wǎng)絡(luò)入門之隱藏層設(shè)計

Softmax分類函數(shù)

(四)神經(jīng)網(wǎng)絡(luò)入門之矢量化

(五)神經(jīng)網(wǎng)絡(luò)入門之構(gòu)建多層網(wǎng)絡(luò)

softmax分類函數(shù)

這部分教程將介紹兩部分:

softmax函數(shù)

交叉熵?fù)p失函數(shù)

在先前的教程中,我們已經(jīng)使用學(xué)習(xí)了如何使用Logistic函數(shù)來實(shí)現(xiàn)二分類問題。對于多分類問題,我們可以使用多項(xiàng)Logistic回歸,該方法也被稱之為softmax函數(shù)。接下來,我們來解釋什么事softmax函數(shù),以及怎么得到它。

我們先導(dǎo)入教程需要使用的軟件包。

import numpy as np 
import matplotlib.pyplot as plt  
from matplotlib.colors import colorConverter, ListedColormap 
from mpl_toolkits.mplot3d import Axes3D  
from matplotlib import cm 
Softmax函數(shù)

在之前的教程中,我們已經(jīng)知道了Logistic函數(shù)只能被使用在二分類問題中,但是它的多項(xiàng)式回歸,即softmax函數(shù),可以解決多分類問題。假設(shè)softmax函數(shù)?的輸入數(shù)據(jù)是C維度的向量z,那么softmax函數(shù)的數(shù)據(jù)也是一個C維度的向量y,里面的值是0到1之間。softmax函數(shù)其實(shí)就是一個歸一化的指數(shù)函數(shù),定義如下:

式子中的分母充當(dāng)了正則項(xiàng)的作用,可以使得

作為神經(jīng)網(wǎng)絡(luò)的輸出層,softmax函數(shù)中的值可以用C個神經(jīng)元來表示。

對于給定的輸入z,我們可以得到每個分類的概率t = c for c = 1 ... C可以表示為:

其中,P(t=c|z)表示,在給定輸入z時,該輸入數(shù)據(jù)是c分類的概率。

下圖展示了在一個二分類(t = 1, t = 2)中,輸入向量是z = [z1, z2],那么輸出概率P(t=1|z)如下圖所示。

# Define the softmax function
def softmax(z):
    return np.exp(z) / np.sum(np.exp(z))
# Plot the softmax output for 2 dimensions for both classes
# Plot the output in function of the weights
# Define a vector of weights for which we want to plot the ooutput
nb_of_zs = 200
zs = np.linspace(-10, 10, num=nb_of_zs) # input 
zs_1, zs_2 = np.meshgrid(zs, zs) # generate grid
y = np.zeros((nb_of_zs, nb_of_zs, 2)) # initialize output
# Fill the output matrix for each combination of input z"s
for i in range(nb_of_zs):
    for j in range(nb_of_zs):
        y[i,j,:] = softmax(np.asarray([zs_1[i,j], zs_2[i,j]]))
# Plot the cost function surfaces for both classes
fig = plt.figure()
# Plot the cost function surface for t=1
ax = fig.gca(projection="3d")
surf = ax.plot_surface(zs_1, zs_2, y[:,:,0], linewidth=0, cmap=cm.coolwarm)
ax.view_init(elev=30, azim=70)
cbar = fig.colorbar(surf)
ax.set_xlabel("$z_1$", fontsize=15)
ax.set_ylabel("$z_2$", fontsize=15)
ax.set_zlabel("$y_1$", fontsize=15)
ax.set_title ("$P(t=1|mathbf{z})$")
cbar.ax.set_ylabel("$P(t=1|mathbf{z})$", fontsize=15)
plt.grid()
plt.show()

softmax函數(shù)的導(dǎo)數(shù)

在神經(jīng)網(wǎng)絡(luò)中,使用softmax函數(shù),我們需要知道softmax函數(shù)的導(dǎo)數(shù)。如果我們定義:

那么可以得到:

因此,softmax函數(shù)的輸出結(jié)果y對于它的輸入數(shù)據(jù)z的導(dǎo)數(shù)?yi/?zj可以定義為:

注意,當(dāng)i = j時,softmax函數(shù)的倒數(shù)推導(dǎo)結(jié)果和Logistic函數(shù)一樣。

softmax函數(shù)的交叉熵?fù)p失函數(shù)

在學(xué)習(xí)softmax函數(shù)的損失函數(shù)之前,我們先從學(xué)習(xí)它的最大似然函數(shù)開始。給定模型的參數(shù)組θ,利用這個參數(shù)組,我們可以得到輸入樣本的正確預(yù)測,正如在Logistic損失函數(shù)推導(dǎo)中,我們可以仿照寫出這個的最大似然估計:

根據(jù)聯(lián)合概率,我們可以將似然函數(shù)改寫成:P(t,z|θ),根據(jù)條件分布,我們最終可以得到如下公式:

因?yàn)槲覀儾魂P(guān)心z的概率,所以公式又可以改寫為:L(θ|t,z)=P(t|z,θ)。而且,P(t|z, θ)可以被寫成P(t|z),如果θ會一個定值。因?yàn)?,每一個ti都是依賴于整個z,而且只有其中一個t將會被激活,所以我們可以得到下式:

正如我們在Logistic函數(shù)中推導(dǎo)損失函數(shù)的導(dǎo)數(shù)一樣,最大化似然函數(shù)就是最小化它的負(fù)對數(shù)釋然函數(shù):

其中,ξ表示交叉熵誤差函數(shù)。在二分類問題中,我們將t2定義為t2=1?t1。同理,在softmax函數(shù)中,我們也可以定義為:

n個樣本的批處理中,交叉熵誤差函數(shù)可以這樣計算:

其中,當(dāng)且僅當(dāng)tic1,那么樣本i是屬于類別c,yic是樣本i屬于類別c的概率。

softmax函數(shù)的交叉熵?fù)p失函數(shù)的推導(dǎo)

損失函數(shù)對于zi的導(dǎo)數(shù)?ξ/?zi求解如下:

上式已經(jīng)求解了當(dāng)i=ji≠j的兩種情況。

最終的結(jié)果為?ξ/?zi=yi?ti for all i ∈ C,這個求導(dǎo)結(jié)果和Logistic函數(shù)的交叉熵?fù)p失函數(shù)求導(dǎo)是一樣的,再次證明softmax函數(shù)是Logistic函數(shù)的一個擴(kuò)展板。

完整代碼,點(diǎn)擊這里


作者:chen_h
微信號 & QQ:862251340
簡書地址:https://www.jianshu.com/p/8eb...

CoderPai 是一個專注于算法實(shí)戰(zhàn)的平臺,從基礎(chǔ)的算法到人工智能算法都有設(shè)計。如果你對算法實(shí)戰(zhàn)感興趣,請快快關(guān)注我們吧。加入AI實(shí)戰(zhàn)微信群,AI實(shí)戰(zhàn)QQ群,ACM算法微信群,ACM算法QQ群。長按或者掃描如下二維碼,關(guān)注 “CoderPai” 微信號(coderpai)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/41184.html

相關(guān)文章

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<