數(shù)學基礎(chǔ)
如果你能夠順暢地讀懂深度學習論文中的數(shù)學公式,可以獨立地推導新方法,則表明你已經(jīng)具備了必要的數(shù)學基礎(chǔ)。
掌握數(shù)學分析、線性代數(shù)、概率論和凸優(yōu)化四門數(shù)學課程包含的數(shù)學知識,熟知機器學習的基本理論和方法,是入門深度學習技術(shù)的前提。因為無論是理解深度網(wǎng)絡中各個層的運算和梯度推導,還是進行問題的形式化或是推導損失函數(shù),都離不開扎實的數(shù)學與機器學習基礎(chǔ)。
數(shù)學分析
在工科專業(yè)所開設(shè)的高等數(shù)學課程中,主要學習的內(nèi)容為微積分。對于一般的深度學習研究和應用來說,需要重點溫習函數(shù)與極限、導數(shù)(特別是復合函數(shù)求導)、微分、積分、冪級數(shù)展開、微分方程等基礎(chǔ)知識。在深度學習的優(yōu)化過程中,求解函數(shù)的一階導數(shù)是最為基礎(chǔ)的工作。當提到微分中值定理、Taylor公式和拉格朗日乘子的時候,你不應該只是感到與它們似曾相識。
線性代數(shù)
深度學習中的運算常常被表示成向量和矩陣運算。線性代數(shù)正是這樣一門以向量和矩陣作為研究對象的數(shù)學分支。需要重點溫習的包括向量、線性空間、線性方程組、矩陣、矩陣運算及其性質(zhì)、向量微積分。當提到Jacobian矩陣和Hessian矩陣的時候,你需要知道確切的數(shù)學形式;當給出一個矩陣形式的損失函數(shù)時,你可以很輕松的求解梯度。
概率論
概率論是研究隨機現(xiàn)象數(shù)量規(guī)律的數(shù)學分支,隨機變量在深度學習中有很多應用,無論是隨機梯度下降、參數(shù)初始化方法(如Xavier),還是Dropout正則化算法,都離不開概率論的理論支撐。除了掌握隨機現(xiàn)象的基本概念(如隨機試驗、樣本空間、概率、條件概率等)、隨機變量及其分布之外,還需要對大數(shù)定律及中心極限定理、參數(shù)估計、假設(shè)檢驗等內(nèi)容有所了解,進一步還可以深入學習一點隨機過程、馬爾可夫隨機鏈的內(nèi)容。
凸優(yōu)化
結(jié)合以上三門基礎(chǔ)的數(shù)學課程,凸優(yōu)化可以說是一門應用課程。但對于深度學習而言,由于常用的深度學習優(yōu)化方法往往只利用了一階的梯度信息進行隨機梯度下降,因而從業(yè)者事實上并不需要多少“高深”的凸優(yōu)化知識。理解凸集、凸函數(shù)、凸優(yōu)化的基本概念,掌握對偶問題的一般概念,掌握常見的無約束優(yōu)化方法如梯度下降方法、隨機梯度下降方法、Newton方法,了解一點等式約束優(yōu)化和不等式約束優(yōu)化方法,即可滿足理解深度學習中優(yōu)化方法的理論要求。
機器學習
歸根結(jié)底,深度學習只是機器學習方法的一種,而統(tǒng)計機器學習則是機器學習領(lǐng)域事實上的方法論。以監(jiān)督學習為例,需要你掌握線性模型的回歸與分類、支持向量機與核方法、隨機森林方法等具有代表性的機器學習技術(shù),并了解模型選擇與模型推理、模型正則化技術(shù)、模型集成、Bootstrap方法、概率圖模型等。深入一步的話,還需要了解半監(jiān)督學習、無監(jiān)督學習和強化學習等專門技術(shù)。
從一個輸入中產(chǎn)生一個輸出所涉及的計算可以通過一個流向圖(flow graph)來表示:流向圖是一種能夠表示計算的圖,在這種圖中每一個節(jié)點表示一個基本的計算并且一個計算的值(計算的結(jié)果被應用到這個節(jié)點的孩子節(jié)點的值)??紤]這樣一個計算集合,它可以被允許在每一個節(jié)點和可能的圖結(jié)構(gòu)中,并定義了一個函數(shù)族。輸入節(jié)點沒有孩子,輸出節(jié)點沒有父親。
這種流向圖的一個特別屬性是深度(depth):從一個輸入到一個輸出的最長路徑的長度。
傳統(tǒng)的前饋神經(jīng)網(wǎng)絡能夠被看做擁有等于層數(shù)的深度(比如對于輸出層為隱層數(shù)加1)。SVMs有深度2(一個對應于核輸出或者特征空間,另一個對應于所產(chǎn)生輸出的線性混合)。 需要使用深度學習解決的問題有以下的特征:
深度不足會出現(xiàn)問題。
人腦具有一個深度結(jié)構(gòu)。
認知過程逐層進行,逐步抽象。
深度不足會出現(xiàn)問題
在許多情形中深度2就足夠表示任何一個帶有給定目標精度的函數(shù)。但是其代價是:圖中所需要的節(jié)點數(shù)(比如計算和參數(shù)數(shù)量)可能變的非常大。理論結(jié)果證實那些事實上所需要的節(jié)點數(shù)隨著輸入的大小指數(shù)增長的函數(shù)族是存在的。
我們可以將深度架構(gòu)看做一種因子分解。大部分隨機選擇的函數(shù)不能被有效地表示,無論是用深的或者淺的架構(gòu)。但是許多能夠有效地被深度架構(gòu)表示的卻不能被用淺的架構(gòu)高效表示。一個緊的和深度的表示的存在意味著在潛在的可被表示的函數(shù)中存在某種結(jié)構(gòu)。如果不存在任何結(jié)構(gòu),那將不可能很好地泛化。
大腦有一個深度架構(gòu)
例如,視覺皮質(zhì)得到了很好的研究,并顯示出一系列的區(qū)域,在每一個這種區(qū)域中包含一個輸入的表示和從一個到另一個的信號流(這里忽略了在一些層次并行路徑上的關(guān)聯(lián),因此更復雜)。這個特征層次的每一層表示在一個不同的抽象層上的輸入,并在層次的更上層有著更多的抽象特征,他們根據(jù)低層特征定義。
需要注意的是大腦中的表示是在中間緊密分布并且純局部:他們是稀疏的:1%的神經(jīng)元是同時活動的。給定大量的神經(jīng)元,仍然有一個非常高效地(指數(shù)級高效)表示。
認知過程逐層進行,逐步抽象
人類層次化地組織思想和概念;
人類首先學習簡單的概念,然后用他們?nèi)ケ硎靖橄蟮模?/p>
工程師將任務分解成多個抽象層次去處理;
學習/發(fā)現(xiàn)這些概念(知識工程由于沒有反省而失?。浚┦呛苊篮玫?。對語言可表達的概念的反省也建議我們一個稀疏的表示:僅所有可能單詞/概念中的一個小的部分是可被應用到一個特別的輸入(一個視覺場景)。
總是說由淺入深,許多專業(yè)并不是專精一科就行,其中有許多的知識還涉及到別的專業(yè)知識。如果想要專精一科的話,由這一科聯(lián)系到的知識也應該多涉及一些;就像學計算機就要英語與數(shù)學兼顧,并不是只注重計算機一門課程就好;
那我們就要學習的面要廣,大致的知識面要都涉及一些;用的時候知道怎么可以找到。
基礎(chǔ)的知識是必備的,扎實的基礎(chǔ)是往后發(fā)展的前提,許多基礎(chǔ)知識的用處是很重要的!基礎(chǔ)扎實了可以避免走很多彎路。根基穩(wěn)固則一路通途。
再就是理論與實際相結(jié)合,很多理論上的東西在實際操作時候并不能全部體現(xiàn),所以可以借鑒,也要多實踐操作下,反復印證。
多問多學多看,祝愿你可以走的更。
1、先學會給自己定定目標(大、小、長、短),這樣學習會有一個方向;然后梳理自身的學習情況,找出自己掌握的薄弱環(huán)節(jié)、存在的問題、容易丟分的知識點;再者合理的分配時間,有針對性的制定學習任務,一一的去落實。
2、可以學習掌握速讀記憶的能力,提高學習復習效率。速讀記憶是一種高效的學習、復習方法,其訓練原理就在于激活“腦、眼”潛能,培養(yǎng)形成眼腦直映式的閱讀、學習方式。
速讀記憶的練習見《精英特全腦速讀記憶訓練》,用軟件練習,每天一個多小時,一個月的時間,可以把閱讀速度提高5、6倍,記憶力、理解力等也會得到相應的提高,最終提高學習、復習效率,取得好成績。如果你的閱讀、學習效率低的話,可以好好的去練習一下。
3、要學會整合知識點。把需要學習的信息、掌握的知識分類,做成思維導圖或知識點卡片,會讓你的大腦、思維條理清醒,方便記憶、溫習、掌握。
同時,要學會把新知識和已學知識聯(lián)系起來,不斷糅合、完善你的知識體系。這樣能夠促進理解,加深記憶。
4、做題的時候要學會反思、歸類、整理出對應的解題思路。遇到錯的題(粗心做錯也好、不會做也罷),最好能把這些錯題收集起來,每個科目都建立一個獨立的錯題集(錯題集要歸類),當我們進行考前復習的時候,它們是重點復習對象,保證不再同樣的問題上再出錯、再丟分。
深度學習需要有數(shù)學和計算機基礎(chǔ)。
深度學習(DL, Deep Learning)是機器學習(ML, Machine Learning)領(lǐng)域中一個新的研究方向,它被引入機器學習使其更接近于最初的目標——人工智能(AI, Artificial Intelligence)。
深度學習是學習樣本數(shù)據(jù)的內(nèi)在規(guī)律和表示層次,這些學習過程中獲得的信息對諸如文字,圖像和聲音等數(shù)據(jù)的解釋有很大的幫助。它的最終目標是讓機器能夠像人一樣具有分析學習能力,能夠識別文字、圖像和聲音等數(shù)據(jù)。 深度學習是一個復雜的機器學習算法,在語音和圖像識別方面取得的效果,遠遠超過先前相關(guān)技術(shù)。
深度學習在搜索技術(shù),數(shù)據(jù)挖掘,機器學習,機器翻譯,自然語言處理,多媒體學習,語音,推薦和個性化技術(shù),以及其他相關(guān)領(lǐng)域都取得了很多成果。深度學習使機器模仿視聽和思考等人類的活動,解決了很多復雜的模式識別難題,使得人工智能相關(guān)技術(shù)取得了很大進步。
關(guān)于數(shù)學基礎(chǔ)有的同學有數(shù)學基礎(chǔ),但是缺乏 C++/Python 編程語言;有的同學沒有數(shù)學基礎(chǔ),是否可以學?數(shù)學基礎(chǔ)需要到什么程度?如果提前學習是否有資料推薦?【回答】首先學習本門課程并不需要特別高的數(shù)學基礎(chǔ),只需要掌握大學本科階段學習的高等數(shù)學、線性代數(shù)和概率論等課程。
雖然從應用角度上來看:如果想要深入研究深度學習,比如完全自己實現(xiàn)不同結(jié)構(gòu)的網(wǎng)絡,設(shè)計網(wǎng)絡的層與參數(shù)最好能夠熟練運用矩陣理論中的相關(guān)工具,但是我相信如果職業(yè)道路規(guī)劃不是算法工程師,一般并不會深入到這一層面。對應于不同應用領(lǐng)域,還需要不同的數(shù)學工具,比如和圖像、信號識別相關(guān)的領(lǐng)域,圖形學等相關(guān)的基礎(chǔ)功底是必須要有的,但這個已經(jīng)是復雜的現(xiàn)實應用問題了,并不在本門課程的教學范圍之內(nèi),本門課程的應用領(lǐng)域還是相對較為簡單的。
實際上,如果你是一個工科生,你會發(fā)現(xiàn)學習數(shù)學最難的地方就是不理解這些數(shù)學工具到底能幫助我們?nèi)ソ鉀Q什么問題,因為大學老師大多數(shù)都是數(shù)學專業(yè)老師,并不會從學生各自專業(yè)的角度來講解數(shù)學問題。但是當你知道你需要用數(shù)學工具做什么,有一個明確目標后,你會發(fā)現(xiàn)你的動力和學習能力將會有一個突破,你不會覺得這些數(shù)學知識是枯燥乏味的。
因此哪怕你的數(shù)學基礎(chǔ)相對薄弱,有一個明確的目的,再去補充這些數(shù)學知識,相信學員自己一定能解決這個問題。數(shù)學也絕對不是學習這門課的障礙,但是如果你想以其作為職業(yè),去打好這個數(shù)學的底子是不可或缺的。
最后,如果你是數(shù)學專業(yè),或者覺得自己數(shù)學很好的學生,你們也更不用擔心不會 1、2 門語言,因為計算機語言只是一種工具,最關(guān)鍵的還是訓練自己的思維,這種思維的核心就是數(shù)學和算法。如果你數(shù)學很好,學習這些語言是很快的,而且本門課程中除了最后的 C++ 開發(fā),也不會應用到什么特別的語法特性。
但是另一方面也不要忽視學習好這些工具的重要性,只是希望學生自己能夠權(quán)衡。對數(shù)學好的同學來說,可能最致命的是一個誤區(qū),因為計算機的基礎(chǔ)是數(shù)學,所以完全使用數(shù)學思維去解決計算機問題是沒問題的,我這里只能說計算機有自己的思維模式,哪怕是那些基于數(shù)學原理的算法問題,所以數(shù)學專業(yè)的同學必須要學會認識到這種思維的差異并學會使用計算機的思維來解決問題,而機器學習則是計算機思維的一個典型代表,這個將會在課程中具體討論。
至于需要的數(shù)學基礎(chǔ),肯定是希望同學能夠?qū)W習高等數(shù)學中的微積分,線性代數(shù)和概率論的相關(guān)知識,對于沒有實際編程經(jīng)驗的學生則推薦深入學習一下離散數(shù)學(無關(guān)乎是否精于數(shù)學)。本門課程需要的數(shù)學基礎(chǔ)也就是這些了。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡傳播權(quán)保護條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:3.674秒