王秉睿,蘭慧盈,陳云霽
1. 中國科學技術大學,安徽 合肥 230026;2. 中國科學院計算技術研究所,北京 100190;3. 中國科學院大學,北京 100049
機器學習是一類研究通過計算機模擬人類學習行為,從而解決實際問題的學科。機器學習算法涉及多學科,如概率論、統計學、逼近論、凸分析等。傳統的機器學習算法包括k近鄰(k-nearest neighbor,k-NN)分類、k均值(k-means)聚類算法、支持向量機(support vector machine,SVM)、決策樹(decision tree)等。最近,機器學習中的一個子類——深度學習,在圖像處理、語音處理等多個領域上都取得了長足的進步。深度學習的快速發展得益于兩點,首先是硬件計算設備性能的提升,比如圖形處理器(graphics processing unit,GPU)的廣泛應用,其次是大規模數據集的構建,大量的訓練數據減輕了過擬合的問題,使得訓練復雜的模型成為可能。深度學習算法的結構通常非常復雜,包含上百兆的可訓練參數。比如2016年由He K等人[1]提出的ResNet網絡,最大的一種模型包含了上千層。
由于算法的復雜性,構建算法的計算過程需要耗費大量的時間。值得慶幸的是,深度學習算法的復雜網絡結構是由有限的基本算子通過各種復雜連接關系搭建起來的,常用的算子包括卷積、池化、全連接等。因此,可以提取出機器學習算法中共性的部分,將其抽象出來,便于反復調用。用于機器學習算法的編程庫層出不窮,各有特色。比如,Google公司提出的Tensorflow[2],是一款基于數據流圖的深度學習庫,支持多種計算設備(CPU、GPU、張量處理單元(tensor processing unit,TPU)[3]),同時還可以直接運行在包含多種計算設備的分布式結構上。……