日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

6段Python代码刻画深度学习历史:从最小二乘法到深度神经网络

發布時間:2023/12/4 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6段Python代码刻画深度学习历史:从最小二乘法到深度神经网络 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.



最小二乘法


深度學習的一切都起源于這個數學片段(我把它用Python 寫了出來):

?


這一方法是 1805 年巴黎數學家阿德利昂·瑪利·埃·勒讓德首次提出的(1805,Legendre),勒讓德建立了許多重要的定理,尤其是在數論和橢圓積分(Elliptic Integrals)方面,提出了對素數定理(Prime Number Theorem)和二次互反律(Quadratic Reciprocity)的猜測并發表了初等幾何教科書。他對預測彗星的未來位置特別癡迷。他找到了根據彗星此前的幾個位置計算其軌跡的方法。

他嘗試了幾種方法,終于找到了一個讓他滿意的方法。勒讓德先猜測彗星的未來位置,然后平方其誤差,重新做出猜測,以減少平方誤差的和。這是線性回歸的種子。

?

上述代碼中,m 是系數,b是預測中的常數,坐標是彗星的位置。我們的目標是找到m和b的組合,使其誤差盡可能小。

?

?

這就是深度學習的核心理念:輸入,然后設定期望的輸出,找到二者的相關性。


梯度下降


勒讓德手工降低誤差率的方法很耗時。荷蘭諾貝爾獎得主Peter Debye 在一個世紀后(1909年,Debye)正式確定了解決方案。

讓我們想象一下,勒讓德有一個參數需要擔心——我們稱之為X。Y軸表示每個X的誤差值。勒讓德尋找的是最低誤差時X的位置。在這種圖形化表示中,我們可以看到誤差Y最小化時,X = 1.1。

?

?

彼得·德比(Peter Debye)注意到最低點左邊的斜率是負的,而另一邊則是正的。因此,如果知道任何給定X值的斜率值,就可以將Y 導向最小值。

這引出了梯度下降的方法。幾乎每一個深度學習模型中都在使用這個原則。

?

寫成Python:


?

這里要注意的是learning_rate。通過沿斜率相反方向接近最小值。此外,越接近最小值,斜率越小。每一步都會減少,因為斜率向零趨近。


num_iterations 是達到最小值前的預計迭代次數。


線性回歸


通過組合最小二乘法和梯度下降法,就可以得到線性回歸。 20世紀50年代和60年代,一批實驗經濟學家在早期的計算機上實現了這個想法。這個邏輯是在卡片計算機上實現的,那是真正的手工軟件程序。當時需要幾天的時間準備這些打孔卡,最多24小時才能通過計算機進行一次回歸分析。


現在用不著打孔卡了,用Python 寫出來是這樣的:

?


將誤差函數與梯度下降合并可能會有一點不好理解。可以運行代碼試一試。

?


感知器


查查弗蘭克·羅森布拉特(Frank Rosenblatt)這個人——他白天解剖大鼠的大腦,并在夜間尋找外星生命的跡象。1958 年,他造了一個模仿神經元的機器(1958,Rosenblatt ),登上了“紐約時報”的頭版《新海軍裝備學習》。

如果你給Rosenblatt的機器看50組圖像,每組中的一張標有“向左”,另一張標著“向右”,這臺機器能夠在沒有預編程的情況下對它們進行區分。公眾被機器真正能學習的這種可能性吸引了。



對于每個訓練周期,您從左側輸入數據。初始隨機權重添加到所有輸入數據上。權重之和被計算出來。如果和為負,則被寫為0,否則寫為1。


如果預測是正確的,那么該循環中的權重就不做任何調整。如果有錯誤的,就將誤差乘以學習率。這會相應地調整權重。

?

把感知器寫成Python:


?

經過頭一年的炒作,Marvin Minsky 和Seymour Papert 否定了這個想法(1969, Minsky& Papert)。當時,, Minsky 和 Papert 都在麻省理工學院的AI實驗室工作。他們寫了一本書,證明感知器只能解決線性問題。他們還駁斥了關于多層感知器的想法。不幸的是,弗蘭克·羅森布拉特兩年后遭遇了海難。


在, Minsky 和 Papert 專著出版一年之后,芬蘭的一名大學生發現了解決多層感知器的非線性問題的理論(Linnainmaa,1970)。由于感知器遭受的批評,AI相關投資枯竭了十多年。這被稱為AI 的第一個寒冬。


Minsky 和 Papert 的批評是XOR Problem。邏輯與OR邏輯相同,但有一個例外 - 當你有兩個true語句(1&1)時,返回False(0)。


?在 OR 邏輯中,可能將 true combination 從 false 中分離出來。但如你所見,你無法將 XOR 和一個線性函數分離。


人工神經網絡


到1986年,幾項實驗證明了,神經網絡可以解決復雜的非線性問題(Rumelhart等,1986)。當時的計算機比理論提出時快了一萬倍。這時,Rumelhart提出了他們具有傳奇色彩的論文:

?

我們描述了神經元式單元網絡的新的學習過程,反向傳播。該過程反復地調整網絡中的連接權重,以便最小化網絡的實際輸出向量與期望的輸出向量之間的差異。作為權重調整的結果,不屬于輸入或輸出的內部“隱藏”單元代表了任務域的重要特征,并且任務中的規則由這些單元的交互捕獲。創造有用的新函數的能力將反向傳播與早期更簡單的方法區分開來,例如感知器收斂過程“Nature 323,533-536(1986年10月9日)。

?

這一方法解決了XOR問題,解凍了第一個AI 寒冬。

?

請注意,X_XOR數據中添加的參數[1]是偏置神經元,它們與線性函數中的常量具有相同的行為。


?

反向傳播、矩陣乘法和梯度下降組合可能很難包圍你的頭腦。這個過程的可視化通常是對發生事情的簡化。請專注于理解背后的邏輯。


深度神經網絡


深層神經網絡是輸入層和輸出層之間具有很多層的神經網絡。這個概念是由Rina Dechter(Dechter,1986)引入的,但在2012年獲得了主流關注。不久之后就出現了IBM Watson 的Jeopardy 大勝和谷歌識貓的成功。

?

深度神經網絡的核心結構保持不變,但現在應用于幾個不同的問題。正則化也有很多改進。最初,這是一組數學函數,來簡化嘈雜的數據(Tikhonov,A.N,1963)。它們現在用于神經網絡,以提高其泛化能力。


創新的很大一部分是原因計算能力的飛躍。它改進了研究者的創新周期——80年代中期的超級計算機需要計算一年的東西,今天GPU 技術半秒就能算好。

?

計算方面的成本降低以及深度學習庫的發展現在已經眾所周知。我們來看一個普通的深度學習的例子,從底層開始:


  • GPU > Nvidia Tesla K80。硬件常用于圖形處理。與CPU相比,深度學習平均速度要快50-200倍。

  • CUDA > GPU的低級編程語言

  • CuDNN > Nvidia?優化 CUDA的庫

  • Tensorflow > Google?在?CuDNN?之上的深度學習框架

  • TFlearn > Tensorflow的前端框架


我們來看看MNIST圖像分類,深度學習的入門任務。


?

用 TFlearn 執行:


?

如您在TFlearn示例中所看到的,深度學習的主要邏輯仍然類似于Rosenblatt的感知器。不使用二進制Heaviside step function,今天的網絡大多使用Relu activition。在卷積神經網絡的最后一層,損失等于categorical_crossentropy。這是勒讓德最小二乘法的演變,是多類別的邏輯回歸。優化器adam起源于 Debye 梯度下降的工作。 Tikhonov的正則化概念以停用層和正則化函數的形式得到廣泛實施。

?

原文地址:http://blog.floydhub.com/coding-the-history-of-deep-learning/

來源:新智元



閱讀原文,即刻報名領取書籍

總結

以上是生活随笔為你收集整理的6段Python代码刻画深度学习历史:从最小二乘法到深度神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。