(文章打趣內容純屬娛樂,請勿當真,要是侵犯到hy的眼睛,非常抱歉)
近期鼠鼠我發現一招,辨別hy是否爲小南梁的好方法——Sigmoid函數,只要將hy的等級傳入其中,就可以得到hy是否爲小南梁的結果!
Sigmoid在這裏並非西格瑪,而是一個函數。
而我們要利用它實現我們想要辨別小南梁的目的,需要將Sigmoid函數之力注入機器學習之中。下面是Sigmoid的本體,和相應的代價函數(交叉熵),梯度公式
本體
交叉熵代價函數
梯度公式
代碼如下
關於Sigmoid函數爲什麼使用交叉熵代價函數
對於二分類問題,標籤y∈{0,1},我們希望模型輸出的預測概率y^=σ(z)接近真實標籤。
問題:當使用 Sigmoid 函數時,MSE 會導致代價函數非凸,存在多個局部極小值,梯度下降容易陷入局部最優。
正確選擇:交叉熵損失(Cross-Entropy Loss)
優勢:與 Sigmoid 函數配合時,能形成凸函數,保證梯度下降找到全局最優解。
若使用 MSE在y^接近 0 或 1 時會變得非常小,導致梯度消失,學習速度極慢。
而交叉熵避免了這個問題,無論預測值好壞,梯度都能保持合理大小,確保學習效率。
交叉熵代價函數來源參考最大似然估計相關內容
首先先拿我潛伏小黑盒多年的數據呈上(bushi)
分佈折線圖
現在調整學習率,調整迭代次數,我希望讓我的模型更加準確一點,損失函數值儘量小,再參考等級大致在0~40,我選擇學習率爲0.001,迭代次數100000次
代碼
代價函數值輸出結果
後面我也試了很多參數,最小值差不多都在這個範圍左右,可以說模型應該很準確了吧
直接測試一下吧,先來個20級別老登測試一下
代碼
輸出結果
測試函數
我累個,居然不是小南梁,我看看我的等級——10看看
代碼
輸出結果
,好好好,忘了按照結果輸出了
下次要在捏造數據的時候把閾值放到九級
下面是分割線
————————————
分類算法有非常多,sigmoid屬於分類算法的一種。
sigmoid算法做的很厲害的一件事就是將輸出y值控制在了0-1,但是仍然可以將sigmoid函數自變量看成線性或者非線性的其他函數,這讓sigmoid的泛用性也很強,不僅僅是處理一個特徵,多個也是可以的。
更多遊戲資訊請關註:電玩幫遊戲資訊專區
電玩幫圖文攻略 www.vgover.com