天天看點

将視覺深度學習模型應用于非視覺領域

介紹

近些年來,深度學習技術已經徹底改變了計算機視覺領域。由于

遷移學習

和各種各樣的學習資源的出現,任何人都可以通過使用預訓練的模型,将其應用到自己的工作當中,以此獲得非常好的結果。随着深度學習越來越商業化,希望它的創造性能應用在不同的領域上。

今天,計算機視覺領域中的深度學習在很大程度上解決了視覺對象的分類、目标檢測和識别問題。在這些領域,深度神經網絡(

Deep Neural Network,DNN

)的表現要勝過人類。

即使資料不是可視化的,但你仍然可以利用這些視覺深度學習模型的力量,主要是卷積神經網絡(

Convolutional

Neural Network,CNN

)。要做到這一點,你必須将資料從非視覺領域遷移到視覺領域(圖像)裡,然後使用一個經過在圖像和資料上訓練過的模型。你将會感歎這種方法是多麼的強大。

在本文中,我将介紹3個案例,這是關于公司如何進行創造性地深度學習應用,将視覺深度學習模型應用于非視覺領域。在每一個案例中,都會對一個非計算機視覺的問題進行轉換和描述,以便更好地利用适合圖像分類的深度學習模型的能力。

案例1:石油工業

在石油工業中,遊梁式抽油機(

Beam pumps

)常常用于從地下開采石油和天然氣。它們由連接配接在移動梁上的發動機來提供動力。移動梁将發動機的旋轉運動傳遞給抽油杆的垂直往複運動,抽油杆作為一個動力泵,再将油輸送到地面上。

将視覺深度學習模型應用于非視覺領域

遊梁式抽油機

遊梁式抽油機作為一種複雜的機械系統,很容易發生故障。為了友善診斷排查,在抽油機上安裝了一個測功機,用于測量杆上的負載。測量後,繪制出一張測功機的動力泵卡片,圖上顯示了發動機在旋轉循環過程中每個部分的負載。

将視覺深度學習模型應用于非視覺領域

測功機卡片示例

當遊梁式抽油機出故障的時候,測功機卡片上的形狀會改變。這個時候,通常會邀請專業的技術人員過來檢查卡片,并根據抽油機出現故障的部分來判斷需要采取什麼措施和方法來進行維修。這個過程不僅非常耗時,而且還需要非常深入的專業知識才能有效地解決問題。

另一方面,這個過程看起來有可能是可以自動化完成的,這就是為什麼嘗試過典型的機器學習系統而并沒有取得很好效果的原因,準确率大約為60%。

将深度學習應用到這個領域的一個公司是Baker Hughes。在這種情況下,測功機卡片被轉變為圖像,然後作為輸入到Imagenet的預訓練模型中。這個結果非常令人印象深刻,精度從60%上升到93%,隻需采用預訓練的模型并用新的資料對其進行一下微調。經過模型訓練的進一步優化,其精度達到了97%。

将視覺深度學習模型應用于非視覺領域

上圖是Baker Hughes部署的系統示例。在左側,你可以看到輸入圖像,在右側是故障模式的實時分類。

它不僅擊敗了以前的基于機器學習的傳統方法,而且公司不再需要抽油機的技術人員花費大量的時間來排查故障,他們過來就可以立即進行機械故障修複,進而大大提高了效率。

案例2:線上欺詐檢測

計算機使用者在使用計算機的時候有獨特的模式和習慣。當你在浏覽一個網站或在鍵盤上鍵入電子郵件内容的時候,你使用滑鼠的習慣是獨一無二的。

在這種特殊的情況下,Splunk解決了一個問題,即通過使用計算機滑鼠的方式來對使用者進行分類。如果你的系統能夠根據滑鼠使用的方式來識别使用者,那麼這種方法可以用于欺詐檢測。假設這樣一個情況:某些人在竊取了别人的使用者名和登入密碼之後在網上消費。他們使用電腦滑鼠的方式是獨一無二的,系統将很容易檢測到這種異常操作,并進一步防止發生欺詐交易,同時也會通知真正的賬戶所有者。

使用特殊的Javascript代碼,可以收集所有滑鼠的行為活動。軟體每5-10毫秒記錄一次滑鼠的行為。是以,每個使用者在每個網頁的行為資料可以是5000–10000個資料點。資料代表了兩個挑戰:第一個挑戰是對于每個使用者來說都是海量的資料,第二個挑戰是每個使用者的資料集都将包含不同多個資料點,這不太友善,因為,通常來說,不同長度的序列需要更複雜的深度學習架構。

這個方案是将每個使用者在每個網頁上的滑鼠活動轉換為一個單個圖像。在每幅圖像中,滑鼠的移動是一條由不同的顔色來表示滑鼠移動速度的線來表示的,而點選左鍵和點選右鍵則是由綠色和紅色的圓圈來表示的。這種處理初始資料的方法解決了上述的兩個問題:首先,所有圖像的大小都相同;其次,現在基于圖像的深度學習模型可以用于此類資料了。

将視覺深度學習模型應用于非視覺領域

在每幅圖像中,滑鼠的移動是一條由不同的顔色來表示滑鼠移動速度的線來表示的,而點選左鍵和點選右鍵則是由綠色和紅色的圓圈來表示的

Splunk使用TensorFlow和Keras為使用者分類建立了一個深度學習的系統。他們做了2個實驗:

1.

當通路相類似的頁面時,金融服務網站的使用者組分類:正常客戶與非客戶使用者。一個由2000張圖檔組成的相對較小的訓練資料集。在對基于VGG16網絡的一個已修改結構進行了2分鐘的訓練之後,系統能夠以80%以上的準确度識别出這兩個類;

2.

使用者的個人分類。該任務是為一個給定的使用者預測出是真實使用者還是一個模拟者。提供了一個隻有360張圖檔的非常小的訓練資料集。基于VGG16網絡,但是由于考慮到小資料集和減少過度拟合(有可能放棄和批量标準化)而進行了修改。經過了3分鐘的訓練,準确率達到了78%左右,考慮到任務具有的挑戰性,那麼這一點很令人印象深刻;

要了解更多相關内容,請參閱描述了系統和實驗過程的

完整内容

案例3:鲸魚的聲音檢測

在這個例子中,谷歌使用卷積神經網絡來分析錄音并檢測出其中的座頭鲸。這對于科學研究來說很有幫助,例如跟蹤單個鲸魚的活動、叫聲的特性、鲸魚的數量等等。有趣不是目的,而是如何通過需要利用圖像的卷積神經網絡來處理資料。

将音頻資料轉換成圖像的方法是通過使用光譜圖來實作的。光譜圖是音頻資料基于頻率特征的視覺來表示的。

将視覺深度學習模型應用于非視覺領域

一個男性說“十九世紀” 的聲音光譜圖例子

在将音頻資料轉換成光譜圖之後,谷歌的研究人員使用了

ResNet-50

網絡結構來訓練這個模型。他們能夠達到以下的性能表現:

·90%的準确度:90%的音頻剪輯被歸類為鲸魚叫聲的分類;

·90%的敏感度:如果給一個鲸魚叫聲的錄音,那麼就會有90%的機會被打上敏感度的标簽;

讓我們把焦點從鲸魚叫聲轉移到處理音頻資料時可以做些什麼。當你建立光譜圖的時候,可以選擇要使用的頻率,這取決于你所擁有的音頻資料的類型。你将需要給人類的說話聲、座頭鲸的叫聲、或工業裝置的錄音設定不同的頻率,因為在所有的這些情況下,最重要的資訊是包含在了不同的頻段裡。你不得不使用自己的專業領域知識來選擇相關的參數。例如,如果你使用的是人類聲音資料,那麼你的第一選擇應該是梅爾頻率倒譜圖。

目前有一些有比較好的軟體包可用于音頻。

Librosa

是一個免費的音頻分析Python庫,可以使用CPU生成光譜圖。如果你在TensorFlow中開發并且想在GPU上做光譜計算,那也是支援的。

請參考一下這篇

文章

,了解更多的關于谷歌如何處理座頭鲸資料的内容。

綜上所述,本文所闡述的一般方法都遵循了兩個步驟。首先,找到一種将資料轉換成圖像的方法;其次,使用一個經過預訓練的卷積網絡或者從頭開始進行訓練。第一步要比第二步更難,這是需要你必須有創造力的地方,要考慮到如果你的資料可以轉換成圖像。我希望提供的執行個體對解決你的問題有所幫助。

本文由北郵

@愛可可-愛生活

 老師推薦,

阿裡雲雲栖社群

組織翻譯。

文章原标題《Deep Learning Vision for Non-Vision Tasks》

譯者:Mags,審校:袁虎。

文章為簡譯,更為詳細的内容,請檢視

原文

繼續閱讀