數據學習背后的數學原理
- 作者:
- 安徽新天源建設咨詢有限公司
- 最后修訂:
- 2020-09-29 09:50:10
摘要:
數據學習背后的數學原理
張靖笙
由于工作需要和虛榮心驅使,我慢慢接受并且享受人家對我大數據專家的稱呼,雖然這么多年一線數據工作經驗也壯了我這個膽,但在數學面前還是情不自禁要打起了哆嗦。我也專門寫過文章論述過數據和數學的關系,但這并不能掩蓋我數學認知上的膚淺。
同樣,數據學習也是根植于豐厚的數學土壤,如果今天我們看到各種人工智能大數據應用的如火如荼,其實是各種深厚應用數學的開花結果,本質上,數據學習和數學是一體的,套用我所喜愛的冰山模型來比喻,數學是整個冰山,數據學習僅僅是冰山水面上露出來的那一個角,如果沒有水底過千倍的體量支撐,這一個角也顯露不出來,說句題外話,我不想用金字塔來形容此山,因為數據學習無論如何都沒資格座在山頂。
提出數據學習的概念,我套用了機器學習的定義,當然機器學習背后仍然是幾乎令人望而卻步的高深數學,但在人工智能越演越烈的今天,我們每個人都要學會和眾多的人工智能“生命”和諧相處,就不可避免地要了解人工智能的“心思”,可以說今天我們每個人都是被數字智能時代倒逼著學習數據,也要硬著頭皮面對那些當初高懸在象牙塔尖的數學。
像我這種天生腦子并不靈光的學生,當初學生時代的數學雖然不算太差,但肯定不會太好,于是能給我留下對數學的學生記憶,是從華南理工大學(當時還叫華南理工學院)一年級開始的對計算機產生濃厚興趣之時。雖然那時的我對計算機尚且無知到把微機主板里面的大電容誤認為是硬盤,但也不可阻擋我摸著石頭過河學習各種編程知識,這個遙遠的記憶和數據學習距離不是一般的遠,卻和數學的距離無比地近。
當年大學一年級我玩的是華南理工大學27號樓微機房的286,編程語言是BasicA(后面加個A表示的是高級),而27號樓微機房在當時顯出神圣光芒之處,那里的286和BasicA居然是可以支持圖像模式編程的,而且分辨率在當時的電腦來說還不算低,這和我高中時期走馬觀花接觸過的字符界面老蘋果微機簡直是天壤之別,于是那個微機房磁鐵一樣吸引了包括本人在內的很多華工男愣頭青,有些人在那里玩那個美國的阿帕奇直升機戰斗游戲,這在當時絕對是被膜拜的高科技。
本人卻在華工圖書館找到了一本當年著名的沙老師編寫的《Basic高級編程》教材,里面有大量的教導如何用BasicA作圖的內容,特別是那種三維幾何圖形的透視旋轉操作程序,我依葫蘆畫瓢輸入書本中的程序在屏幕中浮現出了各種簡單圖形,比如立方體之類,按下按鈕旋轉不同角度觀察其變化,這讓我感覺非常興奮,于是結合自己當時所讀的船舶工程專業,立下了要搞計算機輔助設計(CAD)的志向,轉行金融信息化是后話。
坦白說,早期寫程序還是很挑戰智商的,不像今天的程序員已經有豐富的組件、模板、SDK、API、函數等資源可供調用,我們當時要處理非常多的邏輯細節,從數據如何被輸入,到在內存如何存儲和加工,再到屏幕如何顯示和畫圖,越生動出彩的程序越要對其數據結構和算法邏輯做精心的設計,所以當我們這些早年的碼牛們終于爬到了匯編和C語言,大部分人的選擇就是果斷地放棄原來的Basic,可偏偏后者才是計算機高級語言。
由此可以看到,在算法為王的年代,我們的數據處理也就是記憶、理解這種淺表學習的水平,連決策支持的應用層次都還觸及不到,當然這不代表沒有應用數學,只是大多數還就只是用到中小學的數學知識,常用的包括代數、函數、數組、排列組合、矩陣計算等等,當然我要搞CAD繪圖也需要用包括三角函數之類的解析幾何知識。
后來我在計算機方面的學習始終離不開數學應用的深入,雖然我的數學應用總是點到解決了當時的問題就打住了,但還是緩慢地取得一些進步。對此我有一些體會,以前呢我們解數學題也就是為了測驗或者考試,好像都是一些純智力的燒腦難題,我這種腦子不靈光的人常常被一些題目難住了,那種看著都認識的數學符號卻無從下手的感覺的確有些難受,內心那種敬而遠之的感覺是揮之不去的。而當我開始搞計算機程序的時候,那個心情是很不一樣的,我們總是千方百計地想辦法把自己編的程序弄得更好使,于是心甘情愿去惡補程序所涉及的數學原理也就甘之如飴了,從這點我的感受是,兒童編程在激發小孩的數學思維方面應該是有科學作用的,只是我小孩現在才小學一年級,我不急于讓她去弄計算機程序,雖然她從五歲起已經在玩Scratch,而在蘋果版本的ScratchJr她完全可以自己編寫一些故事化的程序。
大家都知道我有多年的商業智能數據應用開發經驗,之前分享過點滴經驗。既然是商業智能就不能不用數據來支持管理層的決策需求,所以我的數據學習也進化到應用和分析的學習層級,應用還是屬于淺表學習,分析已經摸到了深度學習的邊邊。對于這兩者,我統一在商業智能旗下分析其背后的數學原理。
這個商業智能首先要解決的第一個問題,是如何轉化數據為信息的問題。剛才提到的記憶、理解這樣淺表數據學習應用不贅述了,商業智能里面有一個很常用的OLAP數據多維分析應用。
先給大家補補OLAP這個技術的淵源。上世紀60年代,關系數據庫之父E.F.Codd提出了關系模型,促進了聯機事務處理(OLTP)的發展(數據以二維表格的形式存儲)。1993年,E.F.Codd提出了OLAP概念,認為OLTP已不能滿足終端用戶對數據庫查詢分析的需要,SQL對大型數據庫進行的簡單查詢也不能滿足終端用戶分析的要求。用戶的決策分析需要對關系數據庫進行大量計算才能得到結果,而查詢的結果并不能滿足決策者提出的需求。因此,E.F.Codd提出了多維數據庫和多維分析的概念,即OLAP。OLAP的目標是滿足決策支持或多維環境特定的查詢和報表需求,它的技術核心是“維”這個概念,因此OLAP也可以說是多維數據分析工具的集合。
多維分析是一種數據分析過程,在此過程中,將數據分成兩類:維度(dimensions)和度量(metrics/measurements)。維度和度量的概念都出自于圖論(graph theory),維度指能夠描述某個空間中所有點的最少坐標(coordinate)數,即空間基數;度量指的是無向圖中頂點(vertices)間的距離,這個維度撐起來的坐標空間,這個空間中每個頂點均可有對應的取值,這種數據模型業界簡稱為OLAP cube(立方體)。
在多維分析領域,維度一般包括字段值為字符類或者字段基數值較少且作為約束條件的離散數值類型;而度量一般包括基數值較大且可以參與運算的數值類字段,一般也稱為指標。
OLAP cube數學描述如下:如果用X、Y、Z代表OLAP cube的三軸,通過定義函數關系 F:( X,Y,Z)->W,W則表示每一個(X,Y,Z)元組所映射的數據集合,每個元組我們稱為OLAP cube的一個單元(cell),我們也可以簡單把OLAP cube理解為計算機程序里面常用的數據結構,多維數組,這個X、Y、Z就是數組的下標值,而W就是數組中存儲的值,于是F:( X,Y,Z)->W就是從這個數組中讀出下標為X、Y、Z的數組單元中存儲的值W。
因此OLAP cube可以簡單描述為“多維數據集”。cube,我們可以想象為數據指標根據多維度封裝成的一個立方體結構(以三維空間為例,如果維度數超過3,我們則稱為“Hypercube”),OLAP cube的數學原理我就點到這算了,我們更關心的是其用途。
我們在平時工作中,會遇到各種問題,在分析問題的時候,同樣的現象,我們會從多個角度去分析考慮,并且有時候我們還會從幾個角度綜合起來進行分析。這就是OLAP分析最基本的概念:從多個觀察角度的靈活組合來觀察數據,從而發現數據內在規律。
OLAP將數據分為兩種特征,一種為表現特征,比如一個銷售分析模型中的銷售額、毛利等;還有一種為角度特征,比如銷售分析中的時間周期、產品類型、銷售模式、銷售區域等。前者是被觀察的對象,OLAP術語稱之為“度量數據”,后者為觀察視角,OLAP術語稱之為“維數據”。
有了OLAP cube這個數據煉丹神器,很多原來白開水一樣的數據結合不同的觀察角度,就可以化腐朽為神奇讓管理者看到很多問題成因的端倪,比如把一個產品的銷售業績從時間地區等維度做個比較分析,我們可以從數據中學習到這個產品在什么時間什么地方比較好賣,那管理層就可以針對旺季熱點決定投入更多的業務資源。
再往上走,數據應用就走到評價和創造這樣的深度學習程度,拋開還有爭議的創造,評價背后所需要的數學支撐體系是非常之深厚的,最近我們粵港澳應用數學中心為廣州市越秀金融局搞的數字普惠金融指數研究課題,可以體現應用數學在指導民間金融行業監管工作中廣闊的應用前景。
在金融評價體系中,由于金融服務的大范圍覆蓋面,業務的多樣性,高度的數字化水平等等,我們會發現很難用簡單的統計指標準確測量當前的普惠金融產業發展水平,許多直接測量的表層數據都難以揭示產業發展內在規律和必然趨勢,要獲得這些洞察能力,我們必須通過多個復合指標的定量分析方法,例如這個課題研究團隊所推薦的因子分析法、熵值法、神經網絡深度學習方法、無監督的自編碼深度學習模型等等。
可能很多人會問,一個問題需要用這么多高深的數學方法嗎?解決問題具體要用到什么數學方法其實是由問題的性質所決定的。數據深度學習所需要解決的問題,都是需要把握根本矛盾和本質規律才能有效指導我們工作實踐的問題。
剛才我提到,數據淺表學習解決的是從數據中獲得我們決策所需要信息的問題,比如剛才說的,我們做銷售總監的人需要知道貨賣得怎么樣 ,進一步也就是需要知道什么時候賣得怎么樣。這些問題都是知其然(事實)的層面就可以直接求是(判斷和決策)的了,一般人也不具備沃爾瑪研究那些類似啤酒和尿布高頻出現的組合關系背后原因等問題的水平和能力,所以大部分都是人云亦云,隨波逐流。
而為什么真理常常掌握在少數人手上?因為這些人擁有一般人缺乏的獨立思考、探究質疑、愛琢磨事理規律的思維習慣。恩格斯說:數學是研究數量關系與空間形式的一門科學,對于我們所要解決的現實世界的問題中的,問題背后都有無限聯系的宇宙背景,對事物的關鍵因素沒有抽象和簡化就無法被我們所認知和研究,所以所有的數學方法都不可避免存在其適用性和局限性,我們要解決具體問題,根據問題性質要從知其然進入到知其所以然的境界,必然是需要多種數學方法和工具的綜合運用。
于是,支撐數據深度學習的必然是更多應用數學前沿的基礎理論研究成果,今天我國的產業發展要從低端制造簡單加工轉型升級到智能制造品質創造,必然會遇到很多前所未見的挑戰和困難,在當今世界大勢,我們也很難再如當初向世界科技第一強國copy2China(復制到中國),人家已經開始卡我們科技發展的脖子了,我們要解決這些卡脖子問題,唯有從應用數學基礎研究搞起,開車上路尚且要備胎,何況走上中華民族偉大復興的長征路。
如果今天有人恭維我聰明,我自己知道這種聰明也是在這幾十年的時光中,一步一步在數學的指引下從數據中學習回來的,當然我認為還遠遠不夠。