深度學習筆記 線性單元和梯度下降

2021-08-30 17:28:56 字數 1364 閱讀 6905

**參考了零基礎入門深度學習(2) - 線性單元和梯度下降這篇文章,我只對**裡可能存在的一些小錯誤進行了更改。至於線性單元的原理以及**裡不清楚的地方可以結合該文章理解,十分淺顯易懂。

from dl.perceptron import perceptron

# 定義啟用函式f

f = lambda x:x

class linearunit(perceptron):

def __init__(self,input_num):

'''param input_num: 初始化線性單元,設定輸入引數的個數

'''perceptron.__init__(self,input_num,f)

def get_training_dataset():

'''捏造5個人的收入資料

'''# 構建訓練資料

# 輸入向量列表,每一項是工作年限

input_vecs = [[5],[3],[8],[1.4],[10.1]]

# 期望的輸出列表,月薪,注意要與輸入一一對應

labels = [5500,2300,7600,1800,11400]

return input_vecs,labels

def train_linear_unit():

'''使用資料訓練線性單元

'''# 建立感知機,輸入引數的特徵數為1(工作年限)

lu = linearunit(1)

# 訓練,迭代10輪,學習速率為0.01

input_vecs,labels = get_training_dataset()

lu.train(input_vecs,labels,10,0.01)

# 返回訓練好的線性單元

return lu

if __name__ == '__main__':

'''訓練線性單元

'''linear_unit = train_linear_unit()

# 列印獲得的權重

print(linear_unit)

print('work 3.4 years, monthly salary = %.2f' %linear_unit.predict([3.4]))

print('work 15 years, monthly salary = %.2f' %linear_unit.predict([15]))

print('work 1.5 years, monthly salary = %.2f' %linear_unit.predict([1.5]))

print('work 6.3 years, monthly salary = %.2f' %linear_unit.predict([6.3]))

線性回歸 梯度下降筆記

含乙個 時 h x 含乙個 theta 時 h theta theta x 含乙個 時 h xc f h x y 2c f theta h theta x y 2 c f h x y 2 令 mi nc約等 於0 令minc約等於0 令minc約 等於0則gr ad c 則grad c theta ...

深度學習基礎 梯度下降

梯度檢驗 具體的梯度下降的理論和公式推導,部分部落格已經解釋的很詳盡了,本文更多的在於梯度下降的拓展問題。現有結果表明,在處理複雜任務上,深度網路比淺層的網路有更好的效果。但是,目前優化神經網路的方法都是基於反向傳播的思想,即根據損失函式計算的誤差通過梯度反向傳播的方式,指導深度網路權值的更新優化。...

深度學習 梯度下降和反向傳播

引用知乎上的乙個回答 那麼導數的本質是什麼?就是變化率唄,例如小王今年賣了100頭豬,去年90頭,前年80頭,也就是說每年增加10頭,這就是變化率,完整點就是說10頭 年,是有單位的,也就是說導數為10,說白點就是自變數單位變化量的基礎上因變數的變化量,自變數就是年份,單位為年,因變數為豬的數量,年...