人工智慧需要哪些高階的數學知識?

時間 2021-05-12 05:22:56

1樓:永無止境

確實,數學知識是永遠也學不完的。

每種人工智慧方法所依賴的數學知識都有所不同,可以先確定要學習哪種人工智慧方法,再針對性地補充數學知識。

建議從簡單的、不涉及高階數學知識的人工智慧方法開始學起,例如:

卷積神經網路是這次人工智慧熱潮的核心,簡單又實用。

卷積神經網路

殘差網路的深度可超過1000層,主要歸功於跨層恒等對映。

殘差網路

相較於普通的殘差網路,殘差收縮網路含有軟閾值化,更適於強噪資料的處理[1]

(適用於強噪情況的)殘差收縮網路

2樓:chenq100

個人看法,依賴發力方向:

如果是基礎方向:聚焦在基礎理論,新演算法的研究與發展,那數學無疑是必需的基礎,例如:

萬能擬合定理的發現與證明;

反向傳播演算法的發現與推導;

ResNet的發明與發展;等等

如果是應用方向:專注在利用已發明、已證明的方法來落地到各行各業中去,數學基礎要求可以放低,類似於「資料結構與演算法」能搞定的程度應該也可;

對基礎理論的深入理解與掌握,能對應用尤其應用創新帶來助益,對判斷的長遠與深度帶來更堅實的支撐;

但很多場景,更側重於理解市場,理解使用者;這時,能基本理解乙個方法能幹什麼?會比深入理解乙個方法怎麼幹的什麼,要來的實際些!!!

3樓:特里在納舍科技

用庫的話, 不需要什麼數學知識, 但是如果要理解的話 ,可能還是需要點數學知識的

比如Auto Encoder把資料「壓縮」,對映到乙個 Latent Space上,提取關鍵特徵出來。

那你需要一些理解下這個Space是幹嘛的,維度是啥, 向量是啥。

向量和矩陣是啥關係, 矩陣怎麼運算, 怎麼求距離,夾角,相似度。

在資料處理的時候,可能要用到一些統計分析PCA

說到壓縮,那不是你的遊戲壓縮包 ,而是高維資料對映嵌入到低維流型上面。

有一些數學知識會幫助你更好地理解這個網路,不僅僅是調參煉丹師。

概率的意識當然也需要建立起來, 需要明白概率空間大小估計如何坍縮到小的概率空間上。

另外數學訓練對你表達問題的能力提高會很大,要在計算機裡面解決問題(高效解決), 你首先需要把問題對映到數學的空間裡面, 比如離散的值你放到Vector Space裡面, 連續的你可以構造個或者擬合個函式出來 ,這樣你才好放到計算機裡面去處理, 去算下複雜度,時間的複雜度 ,空間的複雜度, best case, worst case怎麼在工程上處理。

數學的強大是有很多任務具可以使用, 你把問題對映到數學上, 在數學系統裡面解決掉,可以再對映回來現實環境裡面。

以上可能都是一些比較常用的數學,可以算是普通數學。

高階數學知識可能並不需要太多, 因為高階的數學是解決數學自身的問題,可能電腦科學裡面用到的不多。

可以看下大牛的幹活,了解下數學

乾貨 | MIT牛人解說數學體系 - 運籌OR帷幄的文章 - 知乎

運籌OR帷幄:乾貨 | MIT牛人解說數學體系

4樓:

現在的人工智慧本科教學的一些做法,類似於數學大類(0701)的資訊與計算科學專業(070102)。

我們可以看到,資訊與計算科學這個專業的學生,是非常迷惘的。數學理論比不上純數,演算法開發比不上電腦科學與技術,程式設計比不上軟體工程,應用領域不如通訊與控制。

本科專業類教學質量國家標準摘錄1

本科專業類教學質量國家標準摘錄2

現在我很擔心,人工智慧領域會出現同樣的情況,或者已經出現。

對於這個提問,有三個細分,第一,不同的人工智慧的本科人才培養目標需要不同的數學知識。第二,如何學習數學知識。第三,對於偏應用的人才培養目標來說,數學層次不至於拖後腿,使學生缺乏後勁,對於偏演算法的人才培養目標來說,數學層次不至於過於拔高,搞成資訊與資訊,甚至純數,使學生的出口過窄。

一般來說,在掌握基本的數學知識的時候,盡量培養鍛鍊一下數學思維模式,然後思考清楚,是進入工業界還是學術界。如果是工業界,那麼盡可能早一點接觸有一定檔次的專案,並且在專案中學習數學,也就是邊做邊學,邊學邊做。

5樓:下乙個明天

6樓:Bazinga

我不是這方面的專家,但有不少同學在學ML,道聽途說知道一些。首先,多元微積分+線性代數+統計概率+最優化要掌握,方可安身保命。隨機過程和時間序列我所知道的是quant學的多一點(可以理解為金融工程那邊的機器學習工程師...

),當然具體領域具體分析。微分幾何和李代數似乎不常用,當然專業研究人員另說。我收集過一些機器學習所需要的數學知識方面的講義。

比如UC Berkeley自己有一門課,學習目錄如下:

可以看到最主要的部分還是線性代數+多元微積分+統計概率論。另外有一本我自認為寫的不錯的書:

目錄如下:

7樓:

對於想搞AI的數學系本科生來說,我認為:

最最最重要的課:計算機原理(或者你們系教的其它的程式設計課),英語

能用到的課:線性代數,概率論,數理統計,數值分析。

可能能用到的課:時間序列分析,計量經濟學,回歸分析,測度論,可能還有其它統計專業大三大四的專業課。這些需要接觸具體的專案才有可能用到。

8樓:臨菲資訊科技港

如果是為了人工智慧學數學,正如題主所說,數學是學不完的,學數學的時候並不知道它究竟於AI有啥用,所以,我們的建議,也是我們的經驗,最佳的途徑是反過來:先確定對人工智慧的何種內容或者哪個層面感興趣,然後以學人工智慧的需求為牽引,跟隨人工智慧的學習需求,補學相應的數學知識,——因為你的目的是AI,而不是數學。

一種極端是,沒有數學就寸步難行,比如要研究AI的新的演算法,演算法其實就是計算,計算就是數學,我們「臨菲資訊科技港」一直認為:通訊、雷達、導航、甚至AI,其本質都是一回事——計算!只是各自的「約束」不同而已。

沒有相應的數學基礎,如何懂計算?

然而,另一種極端是,學AI,無需什麼高深的數學!本科生有點高等數學、線性代數、矩陣計算,最多有點非線性優化就足夠了,甚至,這些都不需要精通——如果做AI的實現,那就懂點程式設計比如C、Python就夠了。至於那些梯度、加權、優化是怎麼回事,都無需理睬它們——因為別人已經把演算法確定好了,你照著演算法程式設計就行,雖然這種說法有點極端,但相信在公司裡面工作的不少人都是這樣工作的,其實公司也未必想找很高數學的人來搞實現!

所以,對數學的需求,取決於想做AI哪個層面的工作。

但,想先把數學學好了再來學AI,不是一條好的途徑。

僅供參考

9樓:幻想鄉2

代數拓撲,泛函分析,代數數論,解析數論,代數幾何,微分幾何,辛幾何,實分析.....

統統都不需要。如果有人說需要,那就是在裝逼凸優化,圖論,演算法,計算數學,組合數學,資訊理論。。。。只在某些特定方面,或者學術方面有效。

微積分,線性代數,概率論,統計這四個才是真正的重點。

可以看到,人工智慧所需要的數學,不超過工科本科生的數學。

連我家那聰明孩子 ,才上高中,就已經會了一些簡單的神經網路和支援向量機。

建議聽聽吳恩達的公開課,這個在b站上就能找到。

10樓:

我們來看AI發展的方向,至少是要走向兩個方向,第一是無監督系統,第二是多系統耦合。無監督學習的底層思想其是就是relational theory,通過挖掘問題內部的relation去完成對問題結構的刻畫,看不懂的同學可以想一下word2vec是怎麼獲得word的嵌入的。 聽到relational theory大家應該知道和這個相關的數學是啥了,因為這個詞物理中考察的多一點。

多系統耦合,多個系統相互作用,比如注意力啦,GAN啦,其實這些近年來重要的工作都是屬於多系統耦合的內容。 個人理解,這個和複雜的動力系統有關係。

所以,那些說從統計啦,線性代數啦,優化啦來理解AI其實可能並不是正途,資訊理論也只是個表象的描述,比如資訊瓶頸,就是對DL更底層特徵的乙個表象的描述。

真正理解DL要什麼數學工具呢?我想,至少,物理所用的數學工具,你都要學,因為無論物理還是DL,都是解決客觀世界的物理問題的,學的越多,越對理解DL有幫助。

11樓:愛吃花椒的小龍

常用的積分求導,這個在神經網路的反向計算用到,矩陣的運算在資料並行處理中必然用到,先驗後驗概率求解模型,以及針對時間複雜度高的另類貪心演算法維特比演算法,針對隱變數無法表示(LDA,GMM)的EM演算法

這只是舉的很少一部分例子,相信聰明的你已經知道數學畫重點知識需要那些了吧

12樓:醉眼望長安

結論:數學很重要,但要根據自己的 project 所需來學,否則怎麼學得過來。

AI 從來就是兩個派別:

第一派,邏輯派或者符號派,其中的數學和邏輯知識不是普通非數學專業本科生在大學階段就學到的。這派現在處在低潮。

第二派,統計派,主要基於神經網路,目前是顯學。但是實在不幸的是,概率統計是最容易出民科的。往往某人以為自己懂了,而實際上自己卻錯了。

另外深度學習的數學基礎還不那麼清楚,很多事情即使做到了,也無法從數學上清楚的證明。大家更多的是通過超強計算力和超多引數的複雜模型來暴力破解實際問題,幸運的是目前效果還可以罷了。

13樓:

看你的興趣和專業基礎。

如果是要做Machine Learning相關的理論層次的研究,需要高數基礎及高階的知識,可以看看Mathematics for Machine Learning。

14樓:霍華德

先自黑一把,多學點數學,免得像我,打臉別人結果被反打臉:

學習深度學習是否要先學習機器學習?

知乎上有很多例子,都是非常好的

為什麼你需要學好矩陣?

面試官如何判斷面試者的機器學習水平?

為什麼你需要學好概率論?

奈米醬:如何單靠數學加速資料讀取

為什麼要學好凸優化?

奈米醬:關於深度學習的機理,優化和網路結構的一些個人觀點.

還有很多例子,為什麼word2vec訓練要用sgd,不能用adam。為什麼negative simpling可以估計分配函式?不一而足,需要學的太多了。

哪些程式設計工作需要高階數學知識?

靜風 我是程式設計師,我工作中用到過的數學知識有下面 1.訊號處理,這些主要用於各種感測器,包括手機,如手機加速度,用到fft速傅氏變換,波形去燥。高階的引伸有,模式識別,專家系統。其實很多程式設計都可以用訊號處理的知識,如日誌處理,可以根據日誌來調整伺服器的執行狀態。2.防止sql注入或構建自定義...

做演算法需要哪些數學知識?

摸魚 簡單的演算法對於數學的要求並不是很高,演算法看重的是邏輯思維,解決問題的方式有很多種,就看你能否找到簡單高效的方法,當然這需要大量的練習,熟能生巧這個道理大家誰都懂對吧。如果要往特定的演算法方向走的話,一些數學的知識肯定是不可或缺的。總的來說 數理統計 線性代數 運籌學 最優化.這些還是掌握吧...

研究湍流需要掌握哪些數學知識?

侯維 我覺得差不多了,可以直接開始看pope的turbulent flows,如果流體力學學的不多可以先看panton的incompressible flow 卡卡 我是做計算的,我覺得先從數學看起不太好,還是從流體力學開始看比較好,特別是粘性流體力學,畢竟湍流是乙個流體問題,而不僅僅是一組方程,流...