#3.1線性迴歸 ---動手學深度學習——pytorch1.10

學了本文你能學到什麼?僅供學習,如有疑問,請留言。。。

注:紅色是小結,     紫色是重點,能像被課文一樣背誦,初次系統性的學習,請多多指點

目錄

3.1線性迴歸

 3.1.1 線性迴歸的基本要素

3.1.1.1 模型定義

 3.1.1.2 模型訓練

3.1.2 線性迴歸的表示方法

3.1.2.1 神經網絡圖

3.1.2.2 矢量計算表達式




"小結"
'''
1.和大多數深度學習模型一樣,對於線性迴歸這樣一種單層神經網絡,它的基本要素包括模型、訓練數據、損失函數和優化算法。
2.既可以用神經網絡圖表示線性迴歸,又可以用矢量計算表示該模型。
3.應該儘可能採用矢量計算,以提升計算效率。
'''


#3.1線性迴歸


"線性迴歸輸出是一個連續值,因此適用於迴歸問題。"
"與迴歸問題不同,分類問題中模型的最終輸出是一個離散值。"
"我們所說的圖像分類、垃圾郵件識別、疾病檢測等輸出爲離散值的問題都屬於分類問題的範疇。" \
"softmax迴歸則適用於分類問題。"

 

# 3.1.1 線性迴歸的基本要素


"我們以一個簡單的房屋價格預測作爲例子來解釋線性迴歸的基本要素。"

"爲了簡單起見,這裏我們假設價格只取決於房屋狀況的兩個因素,即面積(平方米)和房齡(年)。

接下來我們希望探索價格與這兩個因素的具體關係。"

 

 

# 3.1.1.1 模型定義

# 3.1.1.2 模型訓練


"接下來我們需要通過數據來尋找特定的模型參數值,使模型在數據上的誤差儘可能小。這個過程叫作模型訓練(model training)。下面我們介紹模型訓練所涉及的3個要素。"
# (1) 訓練數據
"我們通常收集一系列的真實數據,例如多棟房屋的真實售出價格和它們對應的面積和房齡。我們希望在這個數據上面尋找模型參數來使模型的預測價格與真實價格的誤差最小。"
"在機器學習術語裏,該數據集被稱爲訓練數據集(training data set)或訓練集(training set)"
"一棟房屋被稱爲一個樣本(sample),其真實售出價格叫作標籤(label),用來預測標籤的兩個因素叫作特徵(feature)。特徵用來表徵樣本的特點。"

#(2) 損失函數
 

# (3) 優化算法
"當模型和損失函數形式較爲簡單時,上面的誤差最小化問題的解可以直接用公式表達出來。這類解叫作解析解(analytical solution)"

# 3.1.1.3 模型預測


這裏的估算也叫作模型預測、模型推斷或模型測試。

# 3.1.2 線性迴歸的表示方法


"我們已經闡述了線性迴歸的模型表達式、訓練和預測。下面我們解釋線性迴歸與神經網絡的聯繫,以及線性迴歸的矢量計算表達式。"

 

# 3.1.2.1 神經網絡圖


"在深度學習中,我們可以使用神經網絡圖直觀地表現模型結構.神經網絡圖隱去了模型參數權重和偏差。輸入個數也叫特徵數或特徵向量維度。"
"全連接層(fully-connected layer)或稠密層(dense layer)。在pytorch中就是用dense作爲全連接層"

# 3.1.2.2 矢量計算表達式


"在模型訓練或預測時,我們常常會同時處理多個數據樣本並用到矢量計算。在介紹線性迴歸的矢量計算表達式之前,讓我們先考慮對兩個向量相加的兩種方法。"
import torch
from time import time
a = torch.zeros(1000)
b = torch.zeros(1000)

# 向量相加的一種方法是,將這兩個向量按元素逐一做標量加法。
start = time()
c = torch.zeros(1000)
for i in range(1000):
    c[i] = a[i] + b[i]
print(time() - start)  #0.015959501266479492

#向量相加的另一種方法是,將這兩個向量直接做矢量加法。

start = time()
d = a + b
print(time() - start)  #0.0
# 結果很明顯,後者比前者更省時。因此,我們應該儘可能採用矢量計算,以提升計算效率。
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章