第一章:面向能源系統的數據科學(技術)

第一章:面向能源系統的數據科學(技術)

來自專欄機器學習在能源互聯網中的應用

大數據挖掘技術的新進展

大數據挖掘是近年來非常活躍的一個研究領域。隨著分散式資料庫、雲計算、人工智慧與機器學習等技術的不斷創新與融合,在傳統的分類、聚類、回歸等領域之外,新的子領域不斷出現。下面闡述可能應用於能源系統研究中的大數據挖掘技術的一些新進展。

深度學習

近年來,由於深度學習在圖像識別、語音識別等應用上的優異表現,特別是隨著圍棋程序 Alphago 在人機對弈中戰勝人類世界冠軍,在學術界重新掀起了對神經網路的研究熱潮。

從理論上講,深度學習屬於一類特殊的神經網路,其核心思想是利用多層網路,並在每一層的隱層節點中應用適當的非線性函數變換,從而從數據中提取出高層次的抽象概念。例如,在一幅圖像中,像素是基本的數據特徵單元,而多個像素可以一起構成更高層次的抽象概念,例如邊和形狀等。傳統的數據挖掘演算法很難提取和理解數據中的抽象概念,而深度學習通過構造多層次的人工神經元網路,可以在一定程度上實現對於數據中隱藏的抽象概念的自動提取和理解,其性能已經在眾多應用中得到了驗證。

與傳統的前饋人工神經元網路一般只包含一個隱層不同,深度學習一般使用一個包含多個隱層的網路結構( 如圖 1 所示) 。其中,前面若干個隱層可以採用無監督方式自動從數據中構造出新的特徵。每一隱層的輸出將作為下一隱層的輸入,從而通過多層網路逐步提取出高層次的抽象概念。在網路的最後若干層,再利用監督學習方法獲得最終輸出。目前,深度學習中最常用的無監督特徵提取技術是多層自編碼,而常見的監督式學習技術則包括卷積神經元網路、深度置信網路、長短期記憶網路等。

圖 1 一個典型的深度學習網路結構

儘管深度學習的性能已經獲得了學術界和工業界的廣泛認可,但仍然存在幾個顯著缺陷。第一,與支持向量機等傳統方法不同,深度學習方法的數學特性尚沒有得到透徹研究; 另外,由於深度學習常常綜合了監督與非監督學習兩種方式,因此無法直接利用統計學習理論進行分析。所以,在深度學習的研究和應用中,對於網路結構與激發函數的選擇、隱層數及隱層節點數的設置、訓練演算法的選擇等問題,尚沒有成熟的理論進行指導,主要依靠使用者的經驗。第二,依據統計學習理論可知,由於深度學習採用了多層網路結構,其模型複雜度比傳統的單隱層模型要大得多,為了確保泛化能力,就必須相應地增大訓練數據量。因此,深度學習不適用於數據量不足的應用場合。第三,由於深度學習的網路結構複雜,模型參數眾多,因此對計算資源的需求遠大於單隱層模型,訓練速度一般也要遠遠低於決策樹等常用方法。

轉移學習

傳統的數據挖掘方法有個重要假設: 訓練數據和未來數據的特徵集相同,並由同一個數據產生機制生成( 換言之,服從相同的概率分布) 。當不能滿足這一假設時,就需要重新訓練模型。例如,按照傳統數據挖掘的理念,利用江蘇的負荷數據訓練得到的負荷預測模型不能應用於浙江。不過,對於由兩個不同數據產生機制生成的兩組數據,若這兩個數據產生機制在一定程度上相互關聯,那麼就有可能利用一組數據改進由另一組數據所得到的數據挖掘結果。以人類為例,一個人在判別一輛車子是否是自行車時,並不需要以前見過一模一樣的自行車,而只需見過與其類似的自行車即可。借鑒這樣的場景,學術界提出了「轉移學習」的概念。

給定特徵集合 A 和定義在該特徵集上的概率分布 P( A),並將這兩者合稱為一個域。對於一個給定域,假定存在從一個特徵子集 a屬於A 到另一個特徵子集 b屬於A 的函數映射 b = g( a),並假定可以從 P( A) 中抽取出訓練樣本。那麼稱通過對訓練樣本的學習獲得映射 g 的近似 g為該域上的一個任務。基於上述定義,給定原始域 Ds 和目標域 Dt,並分別定義在兩個域上的原始任務和目標任務 Ts 和 Tt,則轉移學習是指當 Ds ≠Dt 或 Ts ≠Tt 時,同時利用域Ds 和 Dt 上獲取的數據,來提高 Tt 的準確率。

根據在原始域與目標域之間所轉移的具體信息的不同,轉移學習可進一步分為樣本轉移、特徵轉移和參數轉移。

樣本轉移方法假定原始域中的部分數據樣本可以在目標域中使用。這類方法一般會給原始域中的每個數據樣本賦予一個權重,以此控制該樣本對於目標域中模型的影響。樣本轉移方法適用於原始域存在大量數據,而目標域數據不足的情況。

特徵轉移方法一般首先利用某種特徵學習演算法 ( 如稀疏編碼) 對原始域的特徵集進行數學變換,從而獲得一組新特徵。隨後,將目標域中的數據映射到新特徵所構成的特徵空間中,再在新特徵空間中進行數據挖掘。特徵轉移方法適用於原始域中雖然存在大量數據,但因變數取值未知的情況。

參數轉移方法一般假定用於求解原始任務和目標任務的模型可以共享某些參數或先驗概率分布,核心思想是從原始域的數據中獲取某些可共享的參數或先驗概率,再將其應用於目標域中。這類方法常常與概率方法( 如高斯過程) 一起使用。需要指出的是,轉移學習不要求原始域和目標域的數據服從同樣的概率分布,甚至不要求它們位於同樣的特徵空間中,這和統計學習理論的基本假定是相矛盾的。因此,到目前為止,轉移學習尚沒有嚴格的理論支持。

多源數據融合

隨著社會整體信息化程度的不斷提高,數據源的數量快速增加。傳統的數據挖掘方法一般是針對單一數據源的。事實上,來自不同領域的多源數據間常常存在關聯性或互補性。因此,通過對多源數據的融合與分析,就有可能挖掘出僅從單一數據源無法獲得的知識。近年來,多領域多源數據的融合已逐步成為大數據研究中的熱點領域。

多源數據融合方法可進一步劃分為多階段數據融合、多視角數據融合、基於相似性的數據融合等幾類。多階段數據融合將整個數據挖掘任務劃分為若干階段,每個階段應用來自不同數據源的數據進行分析,並將結果輸入下一階段。例如,研究如何在社交網路中向用戶推薦朋友時,將問題劃分為兩階段。在第 1 階段,首先分析大量用戶的出行軌跡數據,並從中提取用戶的停留位置。然而,考慮到不同用戶的出行軌跡間未必存在交集,該方法在第 2 階段利用興趣點( point of interest,POI) 數據,通過用戶停留位置附近的 POI 來判斷停留位置的相似性,從而最終推導出用戶出行行為的相似性,並以此作為推薦依據。

在現實中,來自單一數據源的數據可能只能描述事物的某一方面,而通過對多源數據的挖掘方能掌握事物全貌。例如,若要全面了解一個人,需要綜合其教育背景、工作經歷、財務狀況、外貌、健康狀況等信息才能實現。若多個數據源均與某一事物或現象關聯,則這些數據間很可能存在潛在的相關性,也可能包含互補信息。對與同一事物相關的多源數據進行融合被稱為多視角數據融合。這種方法一般假定存在與同一數據挖掘任務相關的多組數據集,這些數據集可以位於沒有交集的多個特徵空間中。首先,對每個數據集進行挖掘,得出不同的視角模型。隨後,將這些模型應用於訓練數據以外的缺少因變數的數據,導出各樣本的因變數,並將這些數據加入訓練數據中,對各視角模型進行迭代更新。在針對未來數據進行分類或回歸時,可以將不同視角模型的輸出加權得到最終結果。實踐表明,通過多視角數據融合技術,可以利用來自不同數據源的不含因變數的數據,從而顯著提高模型精度。例如,利用多視角數據融合技術,將時間數據與空間數據融合,構建了城市空氣質量預測模型。

當兩個事物或現象間存在一定的相似性時,其中一個事物的數據可應用於對另一個事物的分析,這即為基於相似性的數據融合。例如,研究如何向用戶推薦娛樂活動( 如根據用戶所處位置向其推薦用餐地點和旅遊景點) ;當用戶所處地理位置的歷史數據不足時,可以選擇利用與該位置相似且歷史數據充足的地理位置數據建立模型。耦合矩陣分解和流型對齊是基於相似性的數據融合方法中的典型代表。耦合矩陣分解主要應用於利用矩陣描述特徵之間的函數關係,並可利用多個相互關聯數據集解決矩陣中的元素缺失問題。流型對齊可以利用各數據集中樣本間的關係來推導數據集間的關係,並最終將多源數據集投影到一個聯合特徵空間之中。

大數據架構與開源軟體技術

在物聯網、搜索、電商推薦、圖像與視頻識別等多個領域中,數據量呈指數型增長,已經超越了傳統的關係型資料庫和單機數據分析系統能夠處理的範圍。為應對大數據的挑戰,各類以分散式計算和雲計算為基礎的大數據開源軟體得到了快速發展。這些開源大數據軟體技術共同構成了一個完整的生態系統,為工程上實現大數據的存儲與分析提供了強有力的支持。

按照功能不同,一個完整的大數據架構總體上包括以下幾個層次( 如圖 2 所示) 。

圖 2 大數據的架構與開源軟體技術

文件系統層

在各種大數據應用中,需要處理的數據量很大 ( 可達 TB 甚至 ZB 級),必須在多機計算集群上進行並行處理。因此,新型的分散式文件系統作為支撐大數據分析的基礎技術應運而生。分散式文件系統具有容錯性、高可擴展性、高可靠性和高可用性等特徵。Google 文件系統 ( GFS) 和 Hadoop 文件系統 ( HDFS) 是商用和開源分散式文件系統的典型代表。

數據存儲層

在大量的大數據應用中,數據不僅包括結構化數據,還包括大量非結構化和半結構化數據。此時,利用單一的數據存儲引擎會嚴重降低系統性能。因此,發展了很多針對不同應用場景的開源數據存儲引擎,如基於鍵值存儲的 Cassandra、基於列存儲的BigTable 等。

資源管理與資源協調層

這層實現對於計算資源的狀態、協調和一致性的有效管理,提高整體系統的吞吐量和利用率。典型的開源軟體系統包括 Hadoop 體系中的 Yarn 和Zookeeper 等。

計算框架層

這層包括大量針對不同應用場景的計算框架,如針對批處理的 MapReduce、針對流數據的 Storm、針對實時數據處理的 Druid 等。在各種計算框架的底層,有 Spark 等運行引擎為其提供支持。

數據分析層

這層直接面向大數據的用戶,提供各類數據分析工具和函數庫,以避免用戶自己實現各類數據分析與挖掘演算法,進而節省用戶時間和資源。著名的函數庫包括 Mlib,SparkR 等。

參考文獻

趙俊華, 董朝陽, 文福拴,等. 面向能源系統的數據科學:理論、技術與展望[J]. 電力系統自動化, 2017, 41(4):1-11.


推薦閱讀:

七分鐘了解什麼是量子計算機
電腦小白需要收藏的7個電腦小知識
電腦是由哪些零部件組成的?
適用於室內設計專業筆記本電腦的推薦?
給編程初學者的一些建議

TAG:電氣工程 | 機器學習 | 計算機 |