《李巨集毅機器學習》task5

2021-09-23 22:35:41 字數 2278 閱讀 7930

假定:

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在乙個小的變化內使模型失...