本文是干貨系列第二期,華為技術專家?guī)炜?,一起《聊聊AI和數(shù)學》,希望能給同學們啟發(fā)。 一、前言 我大學本科學的是數(shù)學專業(yè),工作后切換到計算機軟件行業(yè),最近又開始從事人工智能應用領域,深感做技術之難。借此文聊聊AI和數(shù)學的話題,分享一些感悟和體會,希望對學子們有些幫助。 我在從事互聯(lián)網(wǎng)的中間件研發(fā),屢屢在算法、架構(gòu)設計和建模中體會到數(shù)學抽象思維的重要性。2016年AlphaGo的橫空出世,震驚世人。才發(fā)現(xiàn)數(shù)學基礎不牢,概率論根本沒有吃透,數(shù)學的重要性不言而喻。如何在有限的時間里掌握好數(shù)學中最有用的部分,有更多的運用呢? 二、AI與數(shù)學 AI的基礎是算法,算法的基礎是數(shù)學。目前火熱的深度學習,離不開大學數(shù)學的三門基礎學科:微積分、線性代數(shù)和概率統(tǒng)計。從數(shù)學角度看,神經(jīng)網(wǎng)絡是一種多層非線性變換。深度學習就是學習如何利用矩陣的線性變換加激活函數(shù)的非線性變換,來逐層提取我們需要的特征信息。將原始輸入空間映射到線性可分/稀疏的空間去分類/回歸。 通過增加網(wǎng)絡的節(jié)點數(shù)來增加線性轉(zhuǎn)換能力,通過增加層數(shù)即增加激活函數(shù)的次數(shù),來增加非線性轉(zhuǎn)換能力。數(shù)學對AI的意義可見一斑。 數(shù)學通常分為基礎數(shù)學和應用數(shù)學。基礎數(shù)學有幾大分支:如代數(shù)、分析、幾何和拓撲。它們有一個公共的基礎: 集合論。集合的元素可以是數(shù)(實數(shù)、復數(shù)、四元數(shù)等),還可以是矩陣和函數(shù)。在上面賦予運算和距離后,就變成群、空間和流形。代數(shù)就是研究這些集合的結(jié)構(gòu)和之間的映射,它不關心里面元素的類型,定義的是哪種運算。它研究不同集合的同態(tài)、同構(gòu)和同胚。在這些結(jié)構(gòu)上我們可以采用微分手段進行分析。這是數(shù)學家建立的第一層抽象,也是最基本的符號系統(tǒng),學會使用字母和符號系統(tǒng)表達思維是做數(shù)學的基本功。 這里面有無數(shù)的概念和定理,無數(shù)的習題,我們無需深入鉆研,知道哪些東西在哪里即可。推薦看一下伽羅瓦理論和群表示論,因為它們深入到了現(xiàn)代科學的方方面面。如群表示論可以用來分析神經(jīng)網(wǎng)絡里參數(shù)的對稱性。楊振寧從數(shù)學里得到的主要啟發(fā)也是來自群論。 微積分作為最基本的數(shù)學工具,滲透到了數(shù)學各個分支中,無微積分不成數(shù)學。AI工程師不一定要會求解微分方程,能看懂常見的推導即可。深度學習會用到一些泛函和逼近論的知識。 矩陣也是一個基本工具,了解它的基本運算和數(shù)值計算,和一些適當?shù)木仃嚪纸庵R應該就能應對日常所需了。矩陣是一種具體數(shù)學,是向高維和抽象進攻的工具。AI的基本運算對象就是張量,其理論基礎也在矩陣中。華羅庚把矩陣玩得爐火純青,成為他解剖其它數(shù)學分支的解牛刀。如隨機矩陣理論來刻畫神經(jīng)網(wǎng)絡權(quán)值的譜分布。 幾何和拓撲相對來說離AI遠一點,但也是有關聯(lián)的。利用微分幾何流形來分析手寫識別的數(shù)據(jù),研究它從輸入到輸出之間的關系。還有專門研究對抗網(wǎng)絡與流形關系也是一個方向。時不時翻一翻這方面的基礎知識也是有幫助的。 再就是應用數(shù)學,包括概率統(tǒng)計、運籌優(yōu)化、計算數(shù)學、控制論等,這是搞AI必備的理論知識,值得AI工程師反復品味。 三、華為與數(shù)學 華為非常重視對數(shù)學對各項ICT技術的推動作用。未來的數(shù)字世界流的數(shù)據(jù)大得不可想象,需要用數(shù)學的辦法來解決這樣一個大流量下的管理。在物理器件的性能越來越逼近極限的情況下,物理方法來解決問題已趨近飽和,需要借助于軟件方法來實現(xiàn)性能的優(yōu)化,要重視數(shù)學方法的突起。數(shù)據(jù)管道變粗、變快以后,關鍵是數(shù)學、物理等基礎科學的能力。數(shù)學,是華為繼續(xù)前行指路燈,也是華為真正的“硬核”實力。三流器件做一流產(chǎn)品,核心也是算法和數(shù)學上要有突破。 華為自研的Flex Erasure Coding編解碼算法,在保持數(shù)據(jù)重構(gòu)效率的基礎上,重構(gòu)帶寬需求大幅度降低,極大地提升了故障時數(shù)據(jù)重構(gòu)性能,有效地縮短了重構(gòu)用時,保證數(shù)據(jù)的持久度和系統(tǒng)吞吐量。 此外,華為自研的數(shù)學優(yōu)化求解器,通過并行計算、LU分解加速、預處理等核心關鍵技術突破,在供應鏈供需模擬等場景上,極大提升了性能,商用在機場和其它交通項目。這樣的例子在華為各個產(chǎn)品線中還有很多,成為華為對數(shù)學投入的信心源泉。 四、學習建議 01 先面后點 先觀其大略,再追尋細節(jié)。了解一下數(shù)學和AI的發(fā)展簡史,如《古今數(shù)學思想》。數(shù)學學科之間是交叉的,互相印證的。多看看每個分支要解決哪些主要問題,從中也能發(fā)現(xiàn)自己的興趣所在。數(shù)學和AI的理論學習很容易耗費大量的光陰。 一個省事的方法,只讀結(jié)論和使用案例,略過繁瑣的證明過程。在必要時再回過頭來看細節(jié)。研究好的問題,閱讀經(jīng)典的論文,一個領域經(jīng)典論文也就三五篇,可以參照著讀。感覺費解時,把這個領域的同類著作找到,對照理解,常常能豁然開朗。 02 連點成線 喬布斯2005年在斯坦福大學演講時,講了三個故事,其中一個叫“Connecting the dots”,我很有同感,延伸一下: ??你曾經(jīng)學過的某個知識,當時看起來無用,日后在某個時間點突然派上用場,生發(fā)威力 ??將不同學科分支中的離散的問題連綴起來,可能就是一門新的理論 ??攻破一個系統(tǒng)靠一個漏洞還不行,通常需要挖掘到多個漏洞,把他們關聯(lián)起來,才能成為一把完整的鑰匙。解決一個問題通常是多個工具的組合,所以善于把看似不相關的東西連接起來,才能有所創(chuàng)新 03 問題驅(qū)動 中國人的學習方式是自下向上,外國人的學習方式是自頂向下。我們學習講究先打好基礎,一層層往上壘。老外則直接從問題出發(fā),根據(jù)需要再去補基礎。二者各有優(yōu)劣,脫離學校后,問題驅(qū)動是一種有效的學習方式。 數(shù)學家也需要通過問題去驅(qū)動數(shù)學研究,太脫離實際就容易走錯方向。希爾伯特拋出二十一個數(shù)學問題,養(yǎng)活了數(shù)學界一百多年。丘成桐做數(shù)學也不敢太抽象,他喜歡從實際物理應用中找問題。不求全面,先圍繞某個問題展開研究,從而帶動對相關知識的了解。 學習AI,可以用以點帶面的方式展開,例如把維特比算法,快速傅里葉變換,分支定界算法,期望最大化算法(EM算法),Dijkstra算法,梯度下降,牛頓方法/LLL算法這些點一個個先啃下來,再把它們系統(tǒng)化。 五、十大數(shù)學問題 最后,給出華為發(fā)布的在后香農(nóng)時代,信息產(chǎn)業(yè)面向數(shù)學的十大挑戰(zhàn)問題,作為大家的思考課題。 1?? 有損壓縮的極限問題(語義信息論) 2?? 突破信源編碼理論,挑戰(zhàn)無損信源壓縮極限 3?? 網(wǎng)絡基本業(yè)務模型問題 4?? Massive MIMO 容量域問題 5?? 非線性信道補償問題 6?? 大規(guī)模通信網(wǎng)絡的最優(yōu)控制問題 7?? 反問題高精度快速求解問題 8?? 高性能的糾錯碼——代數(shù)幾何(AG)碼 9?? 深度神經(jīng)網(wǎng)絡(DNN)的可解釋性 ?? 網(wǎng)絡級流量矩陣近似計算 六、結(jié)語 華為昇騰Atlas系列產(chǎn)品結(jié)合華為自研AI芯片,為AI提供算力支撐,提供了三種維度的計算能力(矩陣、向量、標量計算),為人工智能應用提供了全棧的解決方案。昇騰計算從下到上打造全場景Atlas(硬件)+CANN(算子庫)&MindSpore(AI框架)+MindX(昇騰應用使能)產(chǎn)品,面向智能邊緣和數(shù)據(jù)中心兩大場景,同時依托MindStudio開發(fā)工具和昇騰開發(fā)者社區(qū),構(gòu)建和繁榮開發(fā)者生態(tài)。 |
|