3.2.5 端到端的学习
什么是端到端的深度學習
深度學習中最令人振奮的最新動態之一就是端到端深度學習的興起,那么端到端學習到底是什么呢?簡而言之,以前有一些數據處理系統或者學習系統,它們需要多個階段的處理。那么端到端深度學習就是忽略所有這些不同的階段,用單個神經網絡代替它。
如圖所示,以語音識別為例,傳統上,語音識別需要很多階段的處理。首先你會提取一些特征,一些手工設計的音頻特征,在提取出一些低層次特征之后,你可以應用機器學習算法在音頻片段中找到音位。然后你將音位串在一起構成獨立的詞,然后你將詞串起來構成音頻片段的聽寫文本。
這種有很多階段的流水線相比,端到端深度學習做的是,你訓練一個巨大的神經網絡,輸入就是一段音頻,輸出直接是聽寫文本。AI的其中一個有趣的社會學效應是,隨著端到端深度學習系統表現開始更好,有一些花了大量時間或者整個事業生涯設計出流水線各個步驟的研究員,還有其他領域的研究員,不只是語言識別領域的,也許是計算機視覺,還有其他領域,他們花了大量的時間,寫了很多論文,有些甚至整個職業生涯的一大部分都投入到開發這個流水線的功能或者其他構件上去了。而端到端深度學習就只需要把訓練集拿過來,直接學到了x和y之間的函數映射,直接繞過了其中很多步驟。
端到端深度學習的挑戰之一是,你可能需要大量數據才能讓系統表現良好,比如,你只有3000小時數據去訓練你的語音識別系統,那么傳統的流水線效果真的很好。但當你擁有非常大的數據集時,比如10,000小時數據或者100,000小時數據,這樣端到端方法突然開始很厲害了。所以當你的數據集較小的時候,傳統流水線方法其實效果也不錯,通常做得更好。你需要大數據集才能讓端到端方法真正發出耀眼光芒。
如果你的數據量并不足夠很大。嘗試把問題分解成簡單幾步,也是不錯的選擇。比如說在人臉識別領域。我們可以直接把人臉識別出來。但是如果數據不是很大的話,這樣識別效果不是很好。我們也可以分成兩步來做。比如說第一步識別照片中人臉的位置。第二步把這個位置的人臉圖片放大進行識別。目前來看,在數據不是很大的情況下,這種方法往往效果更好。
是否要使用端到端的深度學習
假設你正在搭建一個機器學習系統,你要決定是否使用端對端方法,我們來看看端到端深度學習的一些優缺點,這樣你就可以根據一些準則,判斷你的應用程序是否有希望使用端到端方法。
首先端到端學習真的只是讓數據說話。所以如果你有足夠多的(x,y)數據,那么不管從x到y最適合的函數映射是什么,如果你訓練一個足夠大的神經網絡,希望這個神經網絡能自己搞清楚,而使用純機器學習方法,直接從x到y輸入去訓練的神經網絡,可能更能夠捕獲數據中的任何統計信息,而不是被迫引入人類的成見。
例如,在語音識別領域,早期的識別系統有這個音位概念,就是基本的聲音單元.我覺得這個音位是人類語言學家生造出來的,我實際上認為音位其實是語音學家的幻想,用音位描述語言也還算合理。但是不要強迫你的學習算法以音位為單位思考,這點有時沒那么明顯。如果你讓你的學習算法學習它想學習的任意表示方式,而不是強迫你的學習算法使用音位作為表示方式,那么其整體表現可能會更好。
端到端深度學習的第二個好處就是這樣,所需手工設計的組件更少,所以這也許能夠簡化你的設計工作流程,你不需要花太多時間去手工設計功能,手工設計這些中間表示方式。
那么缺點呢?端到端算法,最大的缺點就是它需要大量的數據。可以說是海量的數據才可以支撐起端到端的學習。
吳教主深度學習和神經網絡課程總綱
總結
以上是生活随笔為你收集整理的3.2.5 端到端的学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3.2.4 迁移学习和多任务学习
- 下一篇: 练习:Padding 填充