中科院常建龍——基於關係的深度學習|AI 研習社 154期大講堂總結
雷鋒網AI研習社按:作為當下最受歡迎的機器學習方法之一,深度神經網路在很多領域取得了非凡的成績。但是目前的深度神經網路模型依舊存在很多局限性,例如無法自動地設計網路結構、無法有效地降低網路中的參數冗餘度、很難處理嵌入在非歐幾里得空間的數據和無標籤的數據等等。
分享嘉賓:常建龍,中科院自動化所在讀博士。在2015年獲得電子科技大學數學與應用數學專業理學學位,之後在中科院自動化所模式識別國家重點實驗室攻讀博士學位,主要研究方向為基於關係的深度學習,包括自動機器學習、網路壓縮、深度圖網路、深度無監督學習等等。目前已在IEEE T-PAMI(2篇), NeurIPS和ICCV (Oral) 等機器學習與計算機視覺頂級期刊和會議發表學術論文。
公開課鏈接:http://www.mooc.ai/open/course/671?=leifeng
分享主題:基於關係的深度學習(Relation-based Deep Learning)
分享提綱:
我們通過建模深度神經網路中變數之間的關係來解決以上問題並提升深度神經網路的性能。
通過考慮樣本於樣本之間的關係來聚類無標籤數據
通過考慮特徵與特徵之間的關係來處理非歐式空間中的數據
通過考慮神經網路中層與層之間的關係來自動學習網路結構
雷鋒網AI研習社將其分享內容整理如下:
大家晚上好,首先來做一個自我介紹,我是中國科學院自動化所在讀博士生常建龍,很感謝雷鋒網提供的平台,可以在這裡跟大家交流我的研究和一些具體的成果。我們今天的主題是基於關係的深度學習,這個詞我們自己提出來的,還比較新。現在的深度學習,包括它能處理的一些問題,怎樣設計結構等都有一定的局限性,對於這些局限性,我們希望通過建立深度網路或者處理的每一個深度模型中,了解到兩兩變數之間的關係,從而讓深度網路變得更優秀一些。
首先來看看什麼叫做關係。關係的範圍其實是非常廣的,人和人之間的某種關係,比如父子、母子、兄弟姐妹等等;數學中函數集合里的對應關係、包含關係等等。
這些關係不僅生活中很常見,在機器學習中也很常見,比如要在Google里搜關鍵字,就會在關鍵字和網頁之間建立關係,使得搜索了關鍵字之後網頁可以反饋相應的結果。比如遷移學習等等也是建立資料庫與資料庫之間的關係。
在機器學習深度網路裡面也有很多關係,可以說分為很多層面,一種是假如有一個小網路,可以用一些比較常見的演算法(Dropout:隨機屏蔽一些神經元對性能有益,或者把有些邊砍掉能取得比較好的結果)。另外是某些層之間建立了關係之後,能使得訓練學習的時候梯度可以更好,對學習也是有益的。另外一個比較火的演算法是Batch normalization,它考慮的其實是樣本和樣本之間的關係。
我們看到這些關係的種類有很多,要怎麼很好地在深度網路裡面利用這些關係,並使得深度網路能處理更廣泛的問題、能有更好的性能等等,這類問題要怎麼解決呢?接下來我給大家介紹三種,一種是通過考慮樣本和樣本之間的關係,使得深度網路模型能很好地處理無標籤的數據;另外一類就是暫時的CN或DN這種很難處理的數據,可以建立點跟點之間的關係,讓深度網路能夠處理這種數據;最後一類就是當下比較火的一個方向,深度網路裡面兩兩層之間到底是以什麼樣的方式來相連,使它有個比較好的效果。
接下來從三個方面來介紹基於關係的深度學習。第一個就是假如有一堆沒標籤的樣本,希望建立兩兩樣本之間的關係,然後進行聚類,使得神經網路能夠直接做無監督學習。
可以先看一下什麼叫聚類,它的定義是把一些相似的數據聚集到一起,不相似的不聚集到一起,也就是判斷是否屬於同一類。
從上面這些簡單的定義我們可以對聚類問題做數學上的表達,如下圖有g這樣一個函數:
但是這個表達有兩個問題,第一是通過兩兩樣本之間的關係,只能知道樣本是第一類還是第二類,沒有辦法知道這兩個樣本到底屬於哪一類,另一個問題是在做聚類的時候,不知道兩個樣本是不是屬於同一類。
接下來看一下怎麼處理這兩個問題,我們引入了標籤特徵的概念,也就是把g函數分解成兩個f函數的特徵,如圖所示:
前面只考慮兩兩樣本的相似性從而判斷樣本屬於哪一類,這裡考慮的是怎樣得到是否屬於同一類的樣本。這種做法受啟發於課程學習方式,即先學習較簡單的樣本,再學習複雜樣本。對於網路模型而言,怎樣叫簡單樣本呢?如計算出來是1,真實結果是0.9,即為簡單樣本。
將所謂的關係建模在深度網路裡面有什麼優勢呢?假如給一個約束條件,用傳統的機器學習演算法去做會很難算,要對輸出做一個約束是很困難的事情,但是我們可以建一個比較簡單的層,第一個功能就是將所有的值變為正值,第二就是二範數唯一,k為向量,是人為定義的。
公式先放一邊,來看一下流程圖大家會更容易了解一點。有一堆沒標籤的樣本,但是知道這些樣本總共屬於多少類,在無標籤的資料庫中隨機選兩個樣本出來,有一個共享的網路,共享的網路之後有一個輸出,一方面計算他們的相似度,另一方面是利用他們的點乘。前面這些都是在學習,後面才開始訓練,不必考慮關係,直接給樣本進行聚類,最後輸出的特徵和有監督學習是一樣的。
接下來看一下結果,MNIST最終的準確率能達到98%,效果非常好,很難的樣本都能聚出來。
有人問到l的維度怎麼確定,提前給定是一種方案,也可以學習一個l出來。那麼怎麼去學習呢?具體做法也就是對之前的一個擴展,以前的時候只考慮樣本和樣本之間的關係,但其實可以把樣本考慮得更全面一些,相當於把所有樣本之間的關係都考慮起來。
在操作的時候,我們也設置了一些k值的參數,能試試選哪個值損失會最小,細節部分大家可以自己搜索一下。
剛才我們講的是深度無監督學習,考慮樣本和樣本之間的關係,沒標籤也可以用深度網路做處理。下面是屬於圖網路,以前的圖像主要處理的是很標準的結構化數據,數據在很標準的格子空間裡面,但是在一些其他場景,比如交通流量、分子、DNA或者三維數據之類的,這些數據嵌入在圖的結構上面,每一個點有一個值,這類數據怎麼處理呢?怎麼把他們的關係建模在深度網路裡面?
可以看一下,現在所謂的深度學習主要受益於CN,特別是在圖像這些方面,一個很好的特點就是他考慮局部的關係,把局部數據處理好之後,參數可以在任何一個局部用,這對分類是很有效的。
很直觀的一個難點在於,確定好的局部數據是有數據關係的。
怎樣結局這個問題呢?其實是對傳統轉接做了一個泛化,如圖所示:
另外要把局部結構的信息建模到轉接盒裡面,如下圖:
下面來看一下比較簡單的轉接方式,有兩個通道的輸入和一個通道的輸出,需要兩個轉接盒,如下圖:
現在一個很重要的問題就是,怎樣去學習無窮個轉接盒?有人可能會猜到,用傅里葉變換,可以把一個序列函數用奇函數表達出來。我們還對轉接方式進行了泛化,寫成矩陣乘法的形式,更好地理解這種轉接到底是怎麼做的,如下圖:
一個很直觀的實驗是在北京市的交通圖上做的,很好地預測北京市的交通流量,另外我們在傳統的圖像序列也做了實驗,如圖:
下面我們給出了集合函數的一般形式,所有的集合函數都能用這個式子來表達,如圖所示:
最後一個我們要考慮的是層和層之間的關係,那到底網路連接怎麼樣才最好呢?按照自動機器學習的意思就是說,可以使得網路結構跟著學習的過程慢慢改變,變得最優,到最後能處理更好的問題。
現在普遍上都是在做這樣一件事情,學一個比較小的結構,這個比較小的結構在網路中任何地方去用,乘多少遍,用小的結構,搭成大的結構出來。可以看到網路結構其實是一個比較離散的東西,但是用強化學習去做過程很慢,需要花費很長的時間訓練模型,那最好的辦法就是用BP演算法。
還有就是從連續變到離散之後,怎麼傳遞梯度呢?這是值得考慮的事情。
一方面希望空間大另一方面還希望傳遞梯度,怎麼做呢?如圖:
另外我們還做了一些分割上面的實驗:
在自動機器學習這方面一個比較好的前景就是,怎樣去搜更複雜的任務直接做檢測分割等等,這是比較有趣的研究方向。
今天的交流就到這裡,謝謝大家。
以上就是本期嘉賓的全部分享內容。更多公開課視頻請到雷鋒網(公眾號:雷鋒網) AI 研習社社區(https://ai.yanxishe.com/?=leifeng)觀看。關注微信公眾號:AI 研習社(okweiwu),可獲取最新公開課直播時間預告。


※華為雲再談尊重數權,意欲普惠AI
※威脅獵人收購內容安全解決方案供應商雲凈網
TAG:雷鋒網 |