理論部分:
在模型訓練或**時,我們常常會同時處理多個資料樣本並用到向量計算。在介紹線性回歸的向量計算表示式之前,讓我們先考慮對兩個向量相加的兩種方法。
向量相加的一種方法是,將這兩個向量按元素逐一做標量加法。
向量相加的另一種方法是,將這兩個向量直接做向量加法。
為了簡單起見,這裡我們假設**只取決於房屋狀況的兩個因素,即面積(平方公尺)和房齡(年)。接下來我們希望探索**與這兩個因素的具體關係。線性回歸假設輸出與各個輸入之間是線性關係:pr
ice=
ware
a⋅ar
ea+w
age⋅
age+
b'>price=warea⋅area+wage⋅age+b
我們通常收集一系列的真實資料,例如多棟房屋的真實售出**和它們對應的面積和房齡。我們希望在這個資料上面尋找模型引數來使模型的****與真實**的誤差最小。在機器學習術語裡,該資料集被稱為訓練資料集(training data set)或訓練集(training set),一棟房屋被稱為乙個樣本(sample),其真實售出**叫作標籤(label),用來**標籤的兩個因素叫作特徵(feature)。特徵用來表徵樣本的特點。
在模型訓練中,我們需要衡量****值與真實值之間的誤差。通常我們會選取乙個非負數作為誤差,且數值越小表示誤差越小。乙個常用的選擇是平方函式。 它在評估索引為 i
'>i 的樣本誤差的表示式為l(
i)(w
,b)=
12(y
^(i)
−y(i
))2,
'>l(i)(w,b)=12(y^(i)−y(i))2,l(
w,b)
=1n∑
i=1n
l(i)
(w,b
)=1n
∑i=1
n12(
w⊤x(
i)+b
−y(i
))2.
'>l(w,b)=1n∑i=1nl(i)(w,b)=1n∑i=1n12(w⊤x(i)+b−y(i))2.
當模型和損失函式形式較為簡單時,上面的誤差最小化問題的解可以直接用公式表達出來。這類解叫作解析解(analytical solution)。本節使用的線性回歸和平方誤差剛好屬於這個範疇。然而,大多數深度學習模型並沒有解析解,只能通過優化演算法有限次迭代模型引數來盡可能降低損失函式的值。這類解叫作數值解(numerical solution)。
在求數值解的優化演算法中,小批量隨機梯度下降(mini-batch stochastic gradient descent)在深度學習中被廣泛使用。它的演算法很簡單:先選取一組模型引數的初始值,如隨機選取;接下來對引數進行多次迭代,使每次迭代都可能降低損失函式的值。在每次迭代中,先隨機均勻取樣乙個由固定數目訓練資料樣本所組成的小批量(mini-batch)b
'>b,然後求小批量中資料樣本的平均損失有關模型引數的導數(梯度),最後用此結果與預先設定的乙個正數的乘積作為模型引數在本次迭代的減小量。(w
,b)←
(w,b
)−η|
b|∑i
∈b∂(
w,b)
l(i)
(w,b
)'>(w,b)←(w,b)−η|b|∑i∈b∂(w,b)l(i)(w,b)
學習率: η
'>η代表在每次優化中,能夠學習的步長的大小
批量大小: b
'>b是小批量計算中的批量大小batch size
總結一下,優化函式的有以下兩個步驟:
向量相加的一種方法是,將這兩個向量按元素逐一做標量加法。
向量相加的另一種方法是,將這兩個向量直接做向量加法。
**實踐部分:
向量計算+線性回歸從0開始
線性回歸用pytorch來實現
DW機器學習task1
邏輯回歸是乙個分類演算法,它可以處理二元分類以及多元分類。雖然它名字裡面有 回歸 兩個字,卻不是乙個回歸演算法。那為什麼有 回歸 這個誤導性的詞呢?個人認為,雖然邏輯回歸是分類模型,但是它的原理裡面卻殘留著回歸模型的影子,本文對邏輯回歸原理做乙個總結。從線性回歸到邏輯回歸 我們知道,線性回歸的模型是...
Task 1 機器學習打卡 邏輯回歸
阿里天池訓練營第一次學習,關於邏輯回歸的一些看法。從sklearn中匯入邏輯回歸模型 from sklearn.linear model import logisticregression注 查得sklearn 版本0.21.3 的linear model資料夾下面已經沒有randomized l1...
eigen向量計算 EIgen基本運算學習
向量向量平方和 矩陣動態矩陣 在使用動態矩陣的時候發現乙個問題,在無法知道大小的時候直接初始化 int rows,cols 從其他地方獲取的尺寸行列數 eigen matrixxf tmp mat tmp mat eigen matrix zero 會報錯提示,初始化的時候必須使用const常量 這...