深度學習第一課

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

近幾年深度學習的概念非常火,我們很幸運趕上並見證了這一波大潮的興起。記得2012年之前提及深度學習,大部分人並不熟悉,而之後一段時間裡,也有些人仍舊持懷疑的態度,覺得這一波浪潮或許與之前sparse coding類似,或許能持續火個兩三年,但終究要被某個新技術新方法所取代,再後來,無論是學術界還是工業界,總有些研究者為自己沒有在第一時間跟進這波浪潮感到後悔莫及。確實,從2012年AlexNet取得ImageNet的冠軍開始,五年過去了,深度學習的方法仍舊佔領著人工智慧這片領域。

隨著這波浪潮,有些人作為弄潮兒,興起一波波巨浪,引領各個領域從傳統方法到深度學習方法的轉變,並希望能夠通過瞭解其他領域的方法改進自己所從事的領域;有些人辛勤地工作,利用深度學習的方法為公司提高業績,希望即時跟進並實現最新的技術;有些校園中的研究僧,一方面需要瞭解最新技術及其背後原理,另一方面還有發文章和找工作的壓力;有些相關從業者,如編輯、記者,經常報道AI領域新聞,卻從沒有時間仔細研究深度學習;還有些非技術人員,總會在這些新聞後驚恐地詢問“天網是否能在有生之年建成?”或是“AI對人類的威脅到了什麼程度?”。

僅僅通過一節課程,或是一本書來解決以上所有問題明顯是不可能的。鑒於國內機器學習資料還是偏少,而且大多是理論性質,並沒有實踐模組,我們從去年年底開始著手寫一本深度學習相關的tutorial,並希望通過一章章真實的案例來帶大家熟悉深度學習、掌握深度學習。這個tutorial中每一章內容都圍繞著一個真實問題,從背景介紹到使用PaddlePaddle平台進行代碼實驗,完整地讓大家瞭解整個問題如何用深度學習來解決,從此告別紙上談兵。參加本次活動之前,沒有想到這次報名人數之多。看了下報名群中的同學不乏一些高端使用者,於是我知道本篇課程必然要要一些同學失望了,因為這一講作為第一講,只能考慮到大多數使用者,設計成難度適中的課程,為大家提供一些深度學習最基本的概念,以便更輕鬆地入門深度學習。如果您是高端使用者(能自己run起來深度學習模型或做過一些常識),建議您可以直接移步tutorial自學,當然如果感興趣,歡迎繼續關注我們系列的後續課程。

首先,對這個系列的後續深度學習課程做一個預告。在這份tutorial中,我們將覆蓋如下內容:

  1. 新手入門
  2. 識別數字
  3. 映像分類
  4. 詞向量
  5. 情感分析
  6. 文本序列標註
  7. 機器翻譯
  8. 個人化推薦
  9. 映像自動產生

本節課程中,我們主要帶大家瞭解深度學習,通過它的一些有用或有趣的應用瞭解深度學習的基本原理和工作方式。

一、深度學習是什麼

傳統的機器學習中,我們要為每種任務定義其特定的解決方案。對於映像,曾經人們耗費大量精力設計各種描述子進行映像特徵描述;對於文本,單單一個機器翻譯任務就動輒多個模型的設計:如詞語對齊、分詞或符號化(tokenization)、規則抽取、句法分析等,每一步的錯誤都會積累到下一步,導致整個翻譯結果不可信,且要追查一個錯誤會非常複雜。 深度學習的優勢,就是可以彌補以上問題,一方面減少了對大量手工特徵的依賴,對於映像文本等領域可以直接從原資料進行建模;另一方面通過端到端的網路模型(即一個網路直接從輸入到輸出建模,而不需要中間步驟)減少了多步驟中錯誤累積的問題。

深度學習採用多層神經網路的方法,依賴大資料和強硬體。

  • 大資料
    在這個資料爆發的時代,普遍的認知是,大資料並不是問題。但實際上也不完全是這樣。從領域角度,映像的通用分類和語言模型的訓練或許可以從搜尋引擎中擷取大量樣本,但對於細粒度映像分類(如不同類型的花的分類)或是 專業領域的對話資料(如法律諮詢類)的資料就比較稀缺;從應用方法角度,映像、文本和語音都方便擷取,但如果希望進行有監督訓練,就必須有對應的標記(label),如標明一段語音對應的人,或是一段語音對應的文本,這就是個大工程了。這就需要我們利用已有資源,最簡單的方法比如可以先利用大量無標記資料學習資料的特徵,就可以減少資料標註規模。

  • 強硬體
    由於深度學習需要強計算處理能力,因此需要GPU顯卡進行並行加速,拼硬體已經成為學界和工業界在研究深度學習網路時的一大共識。在2016年期間,英偉達和AMD的股票價格都實現了飛漲,如是GPU製造商英偉達(NVIDIA)公司今年的股價趨勢。可以說這種跳躍式增長得益於GPU晶片在遊戲、虛擬現實、自動駕駛、資料中心等各個高效能運算需求領域的應用。

    GPU的每個顯卡具有多個(通常是幾十個)多處理器(Streaming Multiprocessors, SMs),每個多處理器中有上百個CUDA核。一個多線程程式的一個kernel執行個體在一個SM上執行,一個kernel執行個體上的操作會分配到不同cuda核中獨立執行。所以只要程式分配得當,GPU中的處理器越多執行越快。如Titan X(GM100)顯卡擁有24個多處理器,每個多處理器擁有128個CUDA核,整個顯卡有3072個CUDA核, 其相對16核Xeon E5 CPU處理器要加速5.3~6.7倍[1],這對於即時性要求較高的應用意義非凡。

二、深度學習的應用

深度學習可以涵蓋很多應用範圍,我們這裡可以先以幾個有意思的應用,給大家一個基本概念, 工業界常用的例子會在後續課程中詳細地舉例。

極簡版無人車

無人車概念近幾年很火,從傳統領域到互連網企業都多少有這個方向的研究者。對於初步接觸神經網路的同學,我們先引入一個小任務。如所示為一個可遙控小車在車道上的運行軌跡,小車上方搭載GoPro網路攝影機。圖中藍線表示垂直基準線,紅線表示每一時刻小車應駛方向。我們的目標是,基於人為操控小車的行駛方向和當前映像資料,給出其駕駛方案。

這裡,可以用神經網路指定網路的輸入輸出分別是當前映像和應走的方向,整體作為一個迴歸問題來處理,其中輸入映像用多層卷積神經網路來解析。這裡可能有朋友會說,其實我只需要用基本影像處理技術(比如二值化映像後再檢測連通域)找出來左右兩條車道,再向前方車道線中點位置方向走不就行了嗎?確實是可以這麼乾的,我們這裡只是為了說明深度學習的端到端訓練,舉例個最簡版的無人車,有清晰的車道線,並且沒有紅綠燈、障礙物等幹擾。實際情況中,需要考慮跟蹤前車、車道保持、障礙物檢測、紅綠燈檢測等多種情況,因此需要多模型的設計和整合。單就最簡單情況下車道檢測的這個事情來說, 確實可以僅通過影像處理+人工策略達成目的,也不需要什麼訓練資料,但這就要求程式員每遇到一個badcase都需要人工修改策略,這樣等下一位程式員接手這段代碼的時候,就只能嗚嗚嗚了。

拍攝照片油畫化

2015年的一篇文章[5],將藝術家梵谷和深度學習聯絡在了一起,文中實現了將藝術畫style附體於日常拍攝照片,從而得到“藝術照”的效果。其做法是設計一個神經網路,定義該網路的損失函數為Diff(拍攝照片,產生作品) 與 Diff(藝術畫,產生作品)這兩個Diff的加權和。其中Diff表示兩幅圖片的差異。但如果通過每個像素的差異來計算這個Diff的話,顯然不合理,對於拍攝照片和產生作品而言,像素值必然已經大變,而對於藝術畫和產生作品而言,可能色調相似,但靠單個像素值去比就肯定是相差甚遠了。所以我們其實想要的只是一個抽象的概念,如的例子,我們只需要產生的圖包含“貓”,且畫風和中間的藝術照相似。於是採用了神經網路的隱層作為度量他們Diff的空間。

圖片轉載自: http://phunter.farbox.com/post/mxnet-tutorial2

機器翻譯

剛才的兩個例子都是深度學習在映像中的應用,其在文本中同樣意義重大。和映像不同的是,文本作為一個序列化資訊,深度神經網路對這樣資料的的處理和映像不太相同,但除此之外的基本思路就可以相互遷移了。比如已經瞭解了通過深度學習進行映像分類的方法,那麼文本分類只是變化一下,將一短文本映射成特徵向量從而進行分類,這可以通過將理解圖片的卷積神經網路改為處理序列資訊的迴圈神經網路完成。類似地,機器翻譯(用電腦來進行不同語言之間的翻譯)也可以通過類似的方法。以通過深度學習進行中譯英為例,首先通過一個迴圈神經網路理解一句漢語(映射為文本語義資訊,可以是一個向量,也可以是一個時序資訊),稱此過程為“編碼”,再將這個文本語義資訊通過另一個迴圈神經網路,每個時刻輸出一個英語單詞,稱此過程為“解碼”,通過這樣的編碼-解碼結構即完成了機器翻譯。我這裡只是白話說出了機器翻譯的大概思想,感興趣的同學可以參考機器翻譯一章的tutorial或追蹤後續課程。

為你寫詩

看完以上內容,如果想讓你根據一個詞創作一首詩,你想能怎麼做呢?恐怕已經有同學想到了:用翻譯的做法寫詩。不錯,機器翻譯其實可以用到很多地方,只需要修改資料集就ok,如果我們想根據一個詞,讓機器“創作”一首詩,只需要將翻譯模型的輸入設定為這個詞,而輸出是詩句即可。不過,通常這麼做是有問題的,因為這樣做導致輸入序列很短而輸出很長,其間的依賴並不能充分發揮出來,硬將這樣的兩個序列綁在一起可能導致機器強硬地“背”下來如輸入語料而沒有真正理解語義。因此,有的工作中用短語產生第一句詩詞,用第一句去產生第二句……;或者可以用前n-1句產生第n句詩詞。感興趣的同學可以自己試一下,也可以試用一下度秘裡面寫詩模組。

商品推薦

商品推薦是電商和新聞用戶端們的關注熱點,他們都關注使用者興趣的把控,其推薦系統的好壞往往會對使用者留存和購買情況有較大影響。這裡我們可以想見,最基本的推薦策略是爆款推薦(全民熱點),和已瀏覽或是購買/收藏了的項目。對於大量使用者沒有過瀏覽記錄的項目,傳統推薦方法一般採用協同過濾,即推薦給使用者相似使用者的興趣項,另一種方法是通過基於內容過濾推薦,即推薦給使用者瀏覽項目的相似項,這其中就涉及到使用者相似性和產品/項目相似性的擷取。一方面,我們可以利用深度學習進行其相似性的建模,另一方面,我們還可以將使用者特徵和產品/項目特徵映射到一個相同的空間進行特徵比較,也就是將A(協同過濾)和B(基於內容過濾)策略改為C。

三、深度學習的缺陷

說過了神經網路的牛逼之處,我們再來看看它的一些缺陷,至少是目前難以解決的問題。

特斯拉事件

關注特斯拉的同學應該都有注意到,去年一位23歲的中國男青年,在駕駛特斯拉電動汽車沿京港澳高速河北邯鄲段公路行駛時,前車躲避障礙物後,該男子躲閃不及撞上了道路清掃車,發生嚴重車禍導致死亡。

特斯拉官方並沒有公布過其內部演算法,我們只知道特斯拉的自動駕駛系統Autopolit中曾有以色列Mobileye公司提供的技術。Mobileye是一家基於視覺輔助工具減少交通事故的公司,其研發多年的進階駕駛輔助系統(ADAS)處於業內領先,主要基於單目網路攝影機傳回的映像,通過深度神經網路進行車輛檢測、車道識別等[3]。但Mobileye自己也表示曾經提醒過特斯拉公司,他們的這套系統只能起輔助作用, 並不完善,也不能完全保障車主。雖然特斯拉官方聲明由於車主家屬不願提供更多資訊,導致具體Autopolit錯誤原因無從定位,但原因或是因為中國專屬的道路清掃車不曾出現在單目視覺的訓練資料集,或是因為光照等特殊因素導致的映像品質問題,都說明無法僅通過視覺技術保證自動駕駛的安全性。我們不能將這起事故歸結於是深度學習的缺陷,但在實際系統中, 我們目前確實難從一個端到端的系統中完全定位並解決問題,大家還可以看下面的例子進一步理解。

可解釋性

在之前的“深度學習是什麼”這一節中,我們講到深度學習可以利用端到端的學習避免一些多步驟積累錯誤導致的問題,然而這其實也是一種缺陷。我們無從定位問題出在哪裡。下面就以映像分類的一個badcase為例進行說明。

ImageNet競賽2012年冠軍工作AlexNet的作者Krizhevsky 曾提出,雖然AlexNet效果很棒,但為了最佳化該資料集上的效果,不得不建立這樣一個含有非常多參數的深度神經網路,而這樣的網路非常容易過擬合。在15年的CVPR會議中,Anh Nguyen提出了一種產生樣本的方法,該方法產生的樣本可以“愚弄” 用於Image Recognition的深度神經網路[4],如所示的8幅圖下面標註的文字分別為ImageNet競賽資料集上效果最好的網路對該圖的識別結果(信賴度高於99.6%), 該網路將我們認為的這些波紋分別識別成了王企鵝、海星、棒球、電吉他、火車車廂、遙控器、孔雀、非洲灰鸚鵡。這種很容易“愚弄”神經網路的樣本,被稱為對抗樣本。

深度學習希望類比人腦中的神經元,通過一個神經網路進行參數擬合,但學習的過程不盡相同。事實上,當人去學習知識的時候,是“哪裡不會點哪裡”、“哪裡錯了改哪裡”,即局部調整,而深度學習通常都是通過所有樣本來決定整個網路的全部參數,希望在所有樣本上獲得全域最優解;當人們學習什麼是“企鵝”的時候,既不會刻意地通過某幾個的特徵(如顏色、體態)去捕捉,也不需要看上千八百張圖片才瞭解到這樣一種模式,我們就知道如下三幅圖,都是一個物種, 而神經網路想學到這樣一個概念並不容易,往往需要企鵝的各個品種、各種pose的圖片。

同樣,當神經網路的結果有誤時,我們無法像人腦學習一樣局部修改部分參數,即便可以,對於端到端的神經網路,調整哪一塊參數、如何調整也是無從下手。這就是深度學習可解釋性方面的局限。

感謝

感謝大家訂閱這一期GitChat活動,開篇提到的tutorial作為我們對PaddlePaddle深度學習平台的再一次易用性擴充,歡迎大家關注學習並提出寶貴意見。同樣感謝這份tutorial中諸多志願者同學們的共同努力,國內做開源不易,做撰寫tutorial&demo的文檔更難,希望有興趣的小夥伴加入我們,共同推動有意思的tutorial能夠在開源社區進行分享。

參考文獻:

  1. https://www.nvidia.com/content/tegra/embedded-systems/pdf/jetson_tx1_whitepaper.pdf
  2. https://www.quora.com/What-is-the-difference-between-Teslas-Autopilot-system-and-Googles-driver-less-car
  3. http://wccftech.com/tesla-autopilot-story-in-depth-technology/4/
  4. Nguyen A, Yosinski J, Clune J. Deep neural networks are easily fooled: High confidence predictions for unrecognizable images[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015: 427-436.
  5. Gatys L A, Ecker A S, Bethge M. A neural algorithm of artistic style[J]. arXiv preprint arXiv:1508.06576, 2015.

Chat實錄

分享人簡介:張睿卿,paddle官方開發群組成員,畢業於浙江大學電腦學院。專註於深度學習領域,目前研究方向為對話、圖文問答。微博: Rachel____Zhang。

問:深度學習看到的案例大部分是在影像處理上,語音辨識等方面的。對普通資料類似迴歸分析的預測,用DeepLearning有有優勢嗎?比如電商某款商品的銷量預測?

答: DeepLearning相對於最基礎的線性迴歸的優勢在於,隨著模型go deeper,會有更多的參數,另外加入了非線性提高模型理解能力。至於是否可以做銷量預測,其實看你的資料了。

  1. 對於資料量小的產品(大多其實資料量都小),就算加了很多參數也是徒勞,因為會overfitting;
  2. 輸入特徵選的對不對,如果你考慮這是一款有周期性的產品(比如爆竹),那你用16年1月資料訓練,17年1月資料預測是ok的,但如果用16年3月的資料預測就肯定要跪了。

問:為你寫詩的第一句詩是seq to seq 用一個或者幾個詞產生的嗎?

答:是的。關鍵詞(一個或幾個)產生第一句,第i句產生第i+1句(或者前i句產生第i+1句);這是一種普遍的方法。

問:做中文序列標註的時候,使用Bi_LSTM+CRF,如何加入已經驗證過比較好的人工特徵,例如"詞的尾碼"?

答:關於尾碼的加入,將輸入設定成word embedding; suffix embedding就可以了,另外其實不建議你直接加尾碼特徵。

Learning Character-level Representations for Part-of-Speech Tagging。比如這篇文章,就證明了不需要手工加尾碼。word-level embedding可以捕捉語義資訊,char-level embedding可以捕捉包含尾碼資訊在內的形態學資訊,可以直接用char-level embedding的,也方便。

問:我是做Fintech領域的,想請教兩個問題。 一是在DeepLearning這塊,如果只是把TensorFlow PaddlePaddle當做近似黑盒的去用,主要基於現有模型做細微修改,產生的作用大概能有多少的效果。 另一個是在Fintech這塊,目前看到了有人基於dl做對沖基金,那根據您的判斷,在金融領域是否可能有更多的建樹。在難以解釋性上很多時候很猶豫。

答:關於基於DeepLearning做對沖基金是否靠譜這個問題,我只能說,從時序訊號的角度,這個是可以做成的,也確實有公司說(至少號稱)用了DeepLearning進行投資建模,然而他們也並不會公開其演算法。

個人認為,做對沖基金最大的問題是克服資料雜訊。以自然訊號(真實映像、語音)來說,其內部雜訊是比較小的,甚至我可以精準地給雜訊建模,然而金融資料,尤其是國內的金融資料,雜訊還是佔比挺大的。

我用到過金融資料做量化投資者分類,其實已經挺難了,不過你這個如果做趨勢預測啥的更難。也就是說,如果真的想做好,就要考慮很多因素,將全域新聞(降息降准)、人為情緒(年前資金緊張)、個股新聞(兩個大股東離婚分家)還有曆史走勢全都融入模型,倒是可以一試。

問:請問可以將傳統的影像處理方法與深度學習結合起來使用嗎?如果可以,能不能舉個例子,比如用於映像分割?謝謝,目前深度學習還未入門,所以有此一問,請作者解答。

答:對於結合,我的理解是,比如對於映像分類,手工求特徵之後可以把SVM替代成其他分類器。比如神經網路分類器,FCN for segmentation(Fully Convolutional Networks for Semantic Segmentation)這篇文章比較經典,輸入為映像,目標輸出為groundtruth segmentation,用一個全卷積網路進行擬合。有個問題是一般Image Recognition網路輸出為各個類別權重(無空間資訊)。這通過將全串連層視作一個全圖範圍的卷積得到。

問:文章著重於DeepLearning的應用及其PaddlePaddle的實現,能不能多講些PaddlePaddle這個架構的實現?

答:收到需求,等系列裡安排吧,下次專開一個課題。

問:當前很多應用都是監督學習,無監督學習當前有哪些可能的方向取得實質性進展?

答:無監督學習的一大成功應用是聚類,或者降維。之前的工作(比如PCA和K-Means)在深度學習中可以也有相應的competitive 方法,比如基於訊號重建的autoencoder。另外已經有一些比較成熟的paper都是基於無監督學習的。我們這裡給的例子還都是有監督的。Unsupervised Learning of Invariant Feature Hierarchies with Applications to Object Recognition,Unsupervised feature learning for audio classification using convolutional deep belief networks,比如這兩篇,比較老了,現在大部分還是有監督學習的。

一類無監督學習是產生模型,包括最近比較火的GAN,還有VAE,可以無監督地產生圖片,並訓練模型,使其產生的圖片像訓練集中的圖片,我們也會在tutorial二期加入該內容,敬請留意。tutorial地址:https://github.com/paddlepaddle/book。

問:深度學習的基本功都有哪些?

答:不太理解說準系統的意思,如果要下定義的話,其實就是協助資料更好地表達,比如原本需要手工定義的很多特徵,現在輸入未經處理資料即可(文中舉了相應的映像和文本的例子)。基本功其實最最基本的就是編程能力,我覺得其他的都好說。數學開始不難的。後續,具體問題具體分析,我的建議是,不用一開始把基本機率論都讀完的。

問:請教一個問題,深度學習在寫詩,映像產生,新聞編寫等領域都有應用,是否在音樂創作領域也有相關應用?現在大約到什麼水平?能否推薦些相關論文?

答:在google直接搜尋“RNN-RBM”, 第二個結果是我曾經總結這篇的部落格。另外這裡有6個例子,做DeepLearning產生音樂的。

問:目前我在做文本中的熱點問題分析,用的是關聯分析演算法。我們遇到的痛點: 1. apriori演算法出來的是片語,如何轉換成實際的問題。我們目前都是人去看、去定位問題,人工量很大,有什麼機器學習的方法嗎? 2. 除了關聯分析演算法,還是什麼演算法建議? 3. 我們之後要做長文本,關聯分析演算法是否合適?有什麼演算法建議嗎?

答:瞭解了,那其實可以轉換成一個文本分類問題,你的輸入是長文本吧,無監督很難,不過還要看你要求的精度吧。直接進行文本分類,詳見GitHub,這個是有監督的,無監督的,可以試下利用相鄰短句之間的關係。

問:我有一些宏觀上的問題,諸多機器學習演算法中,什麼情境深度學習適用,什麼時候不適用,這是一個;第二個什麼時候適用現在已有的架構,什麼時候自研演算法;第三,你們是否基於GPU最佳化演算法和程式?

答:是可以用文本相似性做聚類,也可以利用相鄰句語義相關的假設,如我文中所說,一般情況下深度學習只適用於大資料,如果資料量小而由於深度學習參數多會導致overfitting,所以小資料建議用規則,或者想辦法減少參數。第二個問題,現在架構太多了,建議不重複造輪子。第三個問題,是的,PaddlePaddle中神經網路各層分別有CPU和GPU的實現。

問:PaddlePaddle和google 的TensorFlow 比優勢有哪些?

答:內部人員說了不算,這裡是caffe作者jiayangqing對PaddlePaddle的評價。總結一下:

  1. 高品質GPU代碼;
  2. 非常好的RNN設計;
  3. 設計很乾淨,沒有太多abstraction;
  4. 我再補充一些:支援CPU/GPU單機和多機分散式運算;
  5. 對新手非常友好,不同於tensorflow對使用人員對神經網路瞭解要求較高;
  6. 外層封裝了多種主流模型,有一些在我們的tutorial中已經有講到。

問:我在這塊一個完全的新手,現在是前端,目前在看線性代數和python. 自己是做好花很長時間入門的準備,但是對具體的學習路線,不知道有什麼好的建議。另外是先學好python然後就嘗試基於架構來入手,還是打好基礎學好線代,統計學,然後在看看神經網路相關知識。

答:建議邊學Python邊入手,DeepLearning需要大量實踐經驗,建議邊學邊幹,也有助於你對神經網路的理解。

問:程式員學習數學從何開始?如何更快應用於人工智慧? 普通程式員在新一輪的人工智慧浪潮裡要如何定位?

答:程式員學習數學從何開始?你是要學啥?數學很泛泛……

如何更快應用於人工智慧? 今天晚上就把PaddlePaddle的代碼clone下來,然後明天run起來,然後後天開始把tutorial過一遍,用一個月。(搭建開發環境的話,docker秒搭)從原始碼編譯要慢一些可能。。反正還是看工程經驗了,總之,編譯的時候沒什麼坑,而且有問題可以提issue。

普通程式員在新一輪的人工智慧浪潮裡要如何定位? 做你擅長的。

問:想請教一下,在現有的網路效果不理想的時候,除了改進特徵以外,怎麼樣可以快速找到其他改進效果的突破口?

答:個人覺得改特徵/資料是最快的。其他,還是具體問題具體分析,改網路的話,需要具體分析是過擬合了、還是前擬合。看看要不要增加減少網路層,要不要加trick(比如dropout)什麼的。

問:PaddlePaddle中是否有autograd功能,如果沒有的話是否會開發這個功能?目前PaddlePaddle文檔中寫著如果要增加一個新層需要把前向後向的計算都手工寫出來。而theano/TensorFlow/mxnet有autograd功能就可以唯寫前向。

答:我瞭解到暫時沒有要開發,TensorFlow是有autograd,但是TensorFlow和theano都比較慢,有一張表示PaddlePaddle和其他幾個平台效率的benchmark。

問:在使用DeepLearning演算法的時候,訓練資料量要求是不是很大,之前在不瞭解的基礎上做的測試,資料量太少效果很差,這個訓練資料的量要如何把握?

答:看訓練曲線,是否過擬合。

問:訓練資料因為一些原因,不能完全保證特徵的一個較為合理的分布比例,在DL使用中人工不參與特徵前提下會不會導致效果相對其他機器學習演算法更差?

答:有可能,所以前面有建議,資料量太小的話用規則。

問:第一個作為入門者,如何去使用TensorFlow等來源人工智慧軟體?第二個是在什麼場合下用監督學習?在什麼場合下用無監督學習?還是要混合用?

答:其實上官網都有詳細下載,編譯說明。監督學習——有label,且label充足。無監督——沒label。混用——有label的樣本不足,需要先用無監督訓了feature,初始化模型再用有label的做監督學習。

問:如何發現深度學習可以應用的領域?或者說:通常的研究者,是如何聊著、聊著,就發現某個領域的問題,可以用某種DL演算法來試試?但是,某一種領域的問題,早早的就能斷定,別試了。

答:多看paper吧,看看conclusion裡有啥要解決的問題,還有別的paper是怎麼噴其他paper的,就會發現待解決的問題,或者別人的一些思路。其實最好不建議泛泛地講,還是先有一個目標問題。然後查查paper有沒有解決,

最好的判斷是對應該方案的資料集是否充足。

問:1)普通的java程式員入門深度學習的話需要預備些什麼方面的基礎知識,請推薦幾本薄的入門書籍。2)大資料(如mr spark)方面的程式員進入機器學習領域的話 需要補充什麼方面的知識,比較簡便的發展路徑是什麼。3)深度學習的實際應用的完整項目結構是什麼樣的,需要哪些方面人員?

答:1)基礎知識,其實感覺我們的線上教程真的就可以,很好入手。入門書籍,想了下其實還是國外博士論文最薄最好,可以參考周志華老師的《機器學習》西瓜書,對,Andrew Ng的課程也是蠻好的。2)同上。3)1. 處理資料;2. 設計網路;3. 調參/調整網路;4. 如果有功能PaddlePaddle等架構中沒有實現,自己開發。基本是這樣的迭代過程。

問:那對於特徵分布的問題除了改訓練資料有沒有好的建議?主要是訓練資料中對應的類別的特徵分布是存在問題的,不是理想的狀態,比如對於一些情感分類來說,屬性應該在每個類別分布均勻,影響的是情感詞。具體來說,比如對於一些情感分類來說,屬性應該在每個類別分布均勻,影響的是情感詞,但是實際的訓練資料中很多情況下,屬性分布不均勻,相似的特徵分布有很多,這樣導致了利用特徵結果會有偏差。

答:就是說特徵沒有判別性,比如“這場電影很好看”vs“這場電影不好看”,一字之差,如果不能判別,說明模型沒訓好。

這個還是電影的embedding訓得不好,比如傳統方法是會有這個問題的,但DL用時序模型,進行語義理解,理論上是不會這樣的,除非說,你的資料非常不均衡,比如你收集到的電影評價都為負……那隻能造假資料,即人工造含有“電影”的正樣本。

在此感謝人民郵電出版社,為本場Chat的獲獎讀者贈送了《科學的極致:漫談人工智慧》一書。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.