假定:
lr邏輯回歸假設樣本服從泊松0–1分布,因此p(y|x)表示式:
求最大似然估計:
進而求最大對數似然估計:
損失函式:
損失函式表徵**值與真實值之間的差異程度,如果**值與真實值越接近則損失函式應該越小。在此損失函式可以取為最大似然估計函式的相反數,其次除以m這一因子並不改變最終求導極值結果,通過除以m可以得到平均損失值,避免樣本數量對於損失值的影響。
這裡採用隨機梯度下降,損失函式對於\theta j偏導:
引數\theta 更新
# bgd 批梯度下降**實現
# sgd 隨機梯度下降**實現
import numpy as np
import random
def batchgradientdescent(x, y, theta, alpha, m, maxinteration):
x_train = x.transpose()
for i in range(0, maxinteration):
hypothesis = np.dot(x, theta)
# 損失函式
loss = hypothesis - y
# 下降梯度
gradient = np.dot(x_train, loss) / m
# 求導之後得到theta
theta = theta - alpha * gradient
return theta
def stochasticgradientdescent(x, y, theta, alpha, m, maxinteration):
data =
for i in range(4):
x_train = x.transpose()
for i in range(0, maxinteration):
hypothesis = np.dot(x, theta)
# 損失函式
loss = hypothesis - y
# 選取乙個隨機數
index = random.sample(data, 1)
index1 = index[0]
# 下降梯度
gradient = loss[index1] * x[index1]
# 求導之後得到theta
theta = theta - alpha * gradient
return theta
softmax用於多分類過程中,它將多個神經元的輸出,對映到(0,1)區間內,可以看成概率來理解,從而來進行多分類!
假設我們有乙個陣列,v,vi表示v中的第i個元素,那麼這個元素的softmax值就是
尤其在多分類的場景中使用廣泛。他把一些輸入對映為0-1之間的實數,並且歸一化保證和為1,因此多分類的概率之和也剛好為1。更形象的如下圖表示:
在神經網路反向傳播中,要求乙個損失函式,這個損失函式其實表示的是真實值與網路的估計值的誤差,知道誤差了,才能知道怎樣去修改網路中的權重。
損失函式可以有很多形式,這裡用的是交叉熵函式,主要是由於這個求導結果比較簡單,易於計算,並且交叉熵解決某些損失函式學習緩慢的問題。交叉熵的函式是這樣的:
《李巨集毅機器學習》task7
熵是用來衡量乙個系統混論程度的物理量,代表乙個系統中蘊含多少資訊量,資訊量越大表明乙個系統不確定性就越大,就存在越多的可能性。演算法支援模型 樹結構特徵選擇 連續值處理 缺失值處理 剪枝id3 分類多叉樹 資訊增益 不支援不支援 不支援c4.5 分類多叉樹 資訊增益比 支援支援 支援cart 分類 ...
李巨集毅機器學習 Introduction
人工智慧是我們想要達到的目標,即讓機器和人一樣智慧型。而機器學習是方法,讓機器從資料中學習,從而得到智慧型的方法。智慧型是什麼呢?對於人類智慧型而言,根據霍華德 加德納的多元智慧型理論,人類的智慧型分為以下七種智慧型 這不僅涵蓋了現在人工智慧的研究領域,計算機視覺 語音識別 自然語言處理等。而且也指...
李巨集毅機器學習attack model 學習筆記
loss函式及限制條件 無目標攻擊 l 負的 y 與y true 交叉熵 輸入的x 使y 與y true越遠越好 有目標攻擊 輸入的x 使y 與y true越遠越好且y 與y false越近越好 限制條件 x與x0距離需要小於乙個值,不被發現,否則攻擊就無意義 攻擊的目標是x在乙個小的變化內使模型失...