動手學深度學習TF2.0第三課: 線性迴歸配合深度學習基本要素詳細分析

一. 核心點簡要歸納

  • 線性迴歸輸出是一個連續值(如預測房屋價格、銷售額等),因此它本身屬於一個迴歸問題

  • 分類問題的輸出是一個離散值(如圖像分類、垃圾郵件識別等),因此可以簡單的認爲輸出爲離散值的問題屬於分類問題。輸出值爲連續值的問題爲迴歸問題。

  • softmax迴歸則適用於分類問題 --- 單層神經網絡

二.深度學習模型的基本要素和表示方法(以線性迴歸爲例)

  • 1.模型定義

一個模型最終的輸出結果往往受到很多相關因素的影響,但每個不同因子的影響程度有所區別。所以對每一種因素都會產生一個權重w來衡量其重要程度。

例子爲房屋的價格預測,假設其僅與房屋的面積和年齡相關。

線性迴歸比較簡單,在這裏省略了很多因素之後可以得到下面的模型:

在這裏插入圖片描述

  • 2.模型訓練

通過數據來尋找特定的模型參數值。使得模型在數據上的誤差儘可能小。

2.1 訓練數據		
	收集一系列的真實數據,例如多棟房子的真實售價與他們對應的面積和年齡;
	// 一些涉及到的術語參數
	`訓練集(training set):` 多棟房子的價格和對應的面積、年齡	
	`樣本(sample):` 一棟房屋稱爲一個樣本
	`標籤(label):` 真實的售出價格
	`特徵(feature):` 用來預測標籤的兩個因素(面積/年齡)
	特徵是用來表徵樣本的特點。
	
2.2 損失函數
	在模型訓練中,需要衡量價格預測值與真實值之間的誤差。通常會選取一個非負數作爲誤差。且數值越小表示誤差越小。一個常用的選擇是平方函數。
	
	衡量誤差的函數稱爲損失函數(loss function).
	通常,我們用訓練數據集中`所有樣本誤差的平均`來衡量模型預測的質量;
	在模型訓練中,我們希望找出一組模型參數,使得訓練樣本的平均損失最小。
	
2.3 優化算法
	當模型和損失函數較爲簡單如上所示,就是誤差最小問題的解可以直接用公式表達出來。這類解叫做`解析解(analytical solution).`

	但,大多數深度學習模型並沒有解析解,只能通過優化算法有限次迭代模型參數來儘可能降低損失函數的值。這類解稱爲`數值解(numerical solution).`
	
	在數值解的優化算法中, 小批量隨機梯度下降(mini-batch stochastic gradient descent)應用較多。
	
	在模型優化中涉及到的權重係數更新迭代,其中有針對每個批量的樣本個數(批量大小,batch size), 以及學習率(learning rate).
	這兩個參數是人爲設定且需要調節的。因此這兩個參數稱之爲`超參數`。

但是在少數情況下, 超參數也可以通過模型訓練學出。

小批量隨機梯度下降方法:
在這裏插入圖片描述

  • 3.模型預測

就是通過訓練好的權重係數,代入模型中,當給出輸入值,可以給出預測房價信息。

三、算法模型與神經網絡

  • 1.將線性迴歸與神經網絡相結合
    在這裏插入圖片描述

    a) 輸入爲x1, x2(輸入層的輸入個數爲2); 輸出爲o(輸出層的輸出個數爲1);
    b) 輸入層不涉及計算, 所以上述神經網絡的層數爲1;
    c) 輸出層o爲神經元;
    d) 在這裏, o的計算依賴於x1和x2,也就是說輸出層的神經元和輸入層中各個輸入完全鏈接。因此這裏的輸出層又叫做全連接層(fully-connected layer)或者(dense layer)。

  • 2.向量的加法儘可能使用矢量加法

矢量計算,可顯著提升計算效率。

start = time()
c.assign(a + b)  // a 和 b 爲矢量加法、
time() - start
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章