算法淺談之梯度下降

一 起因
梯度下降其實算是神經(jīng)網(wǎng)絡(luò)能夠興起的原因之一吧。一開始的時候,在深度學(xué)習(xí)中,神經(jīng)網(wǎng)絡(luò)通常包含大量的參數(shù),特別是在深層網(wǎng)絡(luò)中。通過傳統(tǒng)的優(yōu)化方法,如基于解析梯度的方法,對于具有大量參數(shù)的深層網(wǎng)絡(luò)進行訓(xùn)練是非常困難的,因為計算梯度和更新參數(shù)的時間和計算成本會非常高。
然而,梯度下降算法及其改進的變體為深度學(xué)習(xí)提供了一種有效的優(yōu)化手段。梯度下降算法通過反向傳播計算神經(jīng)網(wǎng)絡(luò)的梯度,并通過迭代更新參數(shù),使得網(wǎng)絡(luò)能夠逐步優(yōu)化并適應(yīng)輸入數(shù)據(jù)的分布。
梯度下降算法不僅能夠處理具有大量參數(shù)的深層網(wǎng)絡(luò),還能夠應(yīng)對非線性的復(fù)雜模型。這一算法的革新,大大促進了圖像識別、自然語言處理、語音識別和機器翻譯等研究的發(fā)展。
當然啦,一篇推文是無法完全講明白這個算法的,所以這里通過一些簡單的科普與算法可視化,希望讀者能夠了解這個算法,知道該如何應(yīng)用它。
二?正文
2.1?常規(guī)函數(shù)的梯度下降過程
首先,給出一個簡單的實例,向大家展示如何常規(guī)函數(shù)是實現(xiàn)梯度下降。
實際上,梯度下降就是利用求導(dǎo)的概念對一個指定的函數(shù)進行求解,從而能夠有效的擬合這個函數(shù)。

2.2 神經(jīng)網(wǎng)絡(luò)的梯度下降過程
那么,對于神經(jīng)網(wǎng)絡(luò)呢,我們則是通過向量運算的方式,通過將導(dǎo)數(shù)設(shè)置為一組矩陣(用以乘以輸入向量)和偏差值。接著,通過前向和后向反饋的方式,我們能夠得到最佳的導(dǎo)數(shù)。
其梯度下降的方式也和之前的一樣

三?慣例小結(jié)
其實,神經(jīng)網(wǎng)絡(luò)的梯度下降從另一種意義上來講,也就是尋找最佳導(dǎo)數(shù)和偏差值的過程。只是,這種過程并不存在第一種那樣直觀的導(dǎo)數(shù)方式,因此,也就變得難以理解。不過,對于我們這種非算法開發(fā)崗的人而言,了解算法的原理及其應(yīng)用前景,已經(jīng)足夠我們用來解決生物學(xué)知識了。
四 公眾號其他資源(方便讀者使用)
本公眾號開發(fā)的相關(guān)軟件,Multi-omics Hammer軟件和Multi-omics Visual軟件歡迎大家使用。
Multi-omics Hammer軟件下載地址:
https://github.com/wangjun258/Multi-omics-Hammer
Multi-omics Visual軟件下載地址:https://github.com/wangjun258/Multi_omics_Visual/releases/tag/Multi_omics_Visual_v1.03
PS:因為本軟件是用python腳本撰寫,調(diào)用了部分依賴包,用戶首次使用需要安裝python以及對應(yīng)的包,安裝之后便可永久使用。
下面是本號在其他平臺的賬戶,也歡迎大家關(guān)注并多提意見。
簡書:WJ的生信小院
公眾號:生信小院
博客園:生信小院
最后,也歡迎各位大佬能夠在本平臺上:1傳播和講解自己發(fā)表的論文;2:發(fā)表對某一科研領(lǐng)域的看法;3:想要達成的合作或者相應(yīng)的招聘信息;4:展示自己以尋找博后工作或者博士就讀的機會;5:博導(dǎo)提供博后工作或者博士攻讀機會,都可以后臺給筆者留言。希望本平臺在進行生信知識分享的同時,能夠成為生信分析者的交流平臺,能夠?qū)崿F(xiàn)相應(yīng)的利益互補和雙贏(不一定能實現(xiàn),但是夢想總得是有的吧)。?
五 封面圖


