|
|
發展現狀
數據密集型科學發現離不開軟件系統的支撐,本文的研究對象聚焦于近?10?年來面向科學大數據智能分析的典型軟件系統。從適用范圍來看,科學大數據智能分析軟件可以簡單分為通用型和領域專用型兩類。通用型智能分析軟件是大數據、人工智能等領域的通用分析軟件,并被科學家團隊應用于特定領域的研究工作,如?Matlab。領域專用型智能分析軟件是指針對特定科學領域的專有分析軟件,如地學、資源環境科學領域流行的?Google Earth Engine。
通用型科學大數據智能分析軟件
大數據和人工智能技術發展迅速,涌現了大量軟件系統,本文選取科學家團隊較為常用、具有代表性的智能分析軟件,并依據軟件系統的部署模式,將這些軟件分為?3?類——單機環境、分布式環境和云計算環境,同時這也是智能分析軟件發展的?3?個階段。
單機環境智能分析軟件。在商業數據分析軟件方面,Matlab?提供了用于算法開發、數據可視化、數據分析以及數值計算的高級編程語言和交互式環境,在眾多科學領域應用廣泛。在眾多開源免費數據分析軟件中,R?語言、Scikit-Learn、Weka是典型代表。R?語言是一種用于統計分析和繪圖的語言,提供了豐富的統計分析功能,用戶還可以通過開發并安裝擴展包增強?R?的功能。?Python?語言擁有大量科學數據分析的算法庫,其中就包括被廣泛應用于機器學習和數據挖掘的?Scikit-Learn。Weka?數據挖掘平臺基于?Java?語言開發,提供了可視化、拖拽式的分析流程設計界面,并集成了大量數據預處理和機器學習算法。這些軟件系統在設計之初是以單機模式運行,無法針對基于分布式存儲的大數據進行處理,在大數據場景下存在先天不足。此外,這些軟件系統還缺乏對深度學習技術的有效支持。
分布式環境智能分析軟件。在分布式環境下,開源社區提供的大數據分析軟件成為主流,Hadoop Mahout、Spark MLlib是其中的典型代表,研究人員借助于?Hadoop、Spark?框架,解決了分布式并行挖掘問題,并提供了典型的機器學習算法和模型。近年來,涌現出一批開源深度學習框架,例如?Tensor Flow、Caffe、CNTK、MXNet?等,用于深度神經網絡模型的構建及訓練,支持分布式計算和異構計算。盡管這些開源軟件提供了豐富的算法庫和高效的分布式計算平臺,但仍需要專業的編程開發和系統配置技能,且學習曲線陡峭,不利于科學家團隊使用。
云計算環境智能分析軟件。通過云平臺提供大數據智能分析服務已成為大型公有云平臺的標配服務,“機器學習即服務”(machine learning as a service,MlaaS)也成為多家領先云平臺廠商的發展趨勢。Azure Machine Learning(Azure ML)是微軟?Azure?云平臺提供的機器學習分析服務,在提供大量通用機器學習分析算法基礎上,Azure ML?還面向數據科學家用戶提供了交互式的圖形化開發界面。類似的?MLaaS?還包括?Aliyun PAI?等。這些系統通常僅支持某種特定開發語言和應用程序編程接口(API),用戶無法自主擴充算法庫,存在平臺鎖定(lock-in)問題。除了上述公有云廠商提供的大數據智能分析服務,一些科學家團隊將具有“瀏覽器/服務器”架構模式的交互式分析軟件部署在公有云或私有云,實現了“簡化版”的?MLaaS。例如,Jupyter Notebook是支持“瀏覽器/服務器”架構的交互式分析軟件,支持通過瀏覽器編輯運行多種編程語言,在服務器端進行數據處理、數值模擬、統計建模、機器學習以及可視化等。