**參考了零基礎入門深度學習(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,說白點就是自變數單位變化量的基礎上因變數的變化量,自變數就是年份,單位為年,因變數為豬的數量,年...