三百六十行,行行不只出狀元,還出「黑話」
算法
今天,小P爲你們傾情整理「深度學習行業黑話解析」編程
一塊兒show起來!服務器
(舒適提示:建議閱讀時間8分鐘)網絡
「學習」概念區分架構
人工智能:人工智能的發展依賴於計算機科學,概念很是寬泛。總而言之,人工智能是由人類經過算法指導計算機達成某種計算方面的能力。app
機器學習:通俗而言,是向機器輸入數據和答案,最終得到方法的過程,是面向工程的方向,而且能夠解決實際問題,藉助學習創造力的機器達成智能解決方案。框架
表示學習:機器學習的一個方向,原始數據處理適合機器學習方法,處理完的數據丟給通用方法,經過轉換座標變化,得到更好解決方法。表示是指經過模型的參數,採用何種形式、何種方式來表示模型的輸入觀測樣本X。表示學習指學習對觀測樣本X有效的表示。機器學習
深度學習:表示學習的一種方式,連續型獲取更有意義的表示。深度是指模型和架構的深度,可以加深網絡層次,從數十層到數百層,算法能夠自動學習表示。深度學習不是真實大腦的模型,其中神經網絡術語來自於神經生物學。分佈式
神經網絡函數
CNN:卷積神經網絡(convolutional neural networks),包括卷積層、池化層和輸出層。卷積神經網絡一般用來處理圖像數據,假設輸入數據的形狀爲28×28×3(28pixels×28pixels×RGB Value),那麼對於傳統的神經網絡來講就會有2352(28×28×3)個變量。隨着圖像尺寸的增長,那麼變量的數量就會急劇增長。所以,經過對圖片進行卷積,能夠減小變量的數目。
卷積層:(Convolutional layer),卷積神經網絡中每層卷積層由若干卷積單元組成,每一個卷積單元的參數都是經過反向傳播算法最佳化獲得的。卷積運算的目的是提取輸入的不一樣特徵,第一層卷積層可能只能提取一些低級的特徵如邊緣、線條和角等層級,更多層的網路能從低級特徵中迭代提取更復雜的特徵。
池化層:池化(Pooling)是卷積神經網絡中另外一個重要的概念,它其實是一種形式的降採樣。是將輸入的圖像劃分爲若干個矩形區域,對每一個子區域輸出最大值。有時圖像太大,須要減小訓練參數的數量,它被要求在隨後的卷積層之間週期性地引進池化層。池化的惟一目的是減小圖像的空間大小。
RNN: 循環神經網絡(Recurrent neural Network),在神經網絡的基礎上,爲了能更好處理序列信息,在前面的輸入和後面的輸入有關係的狀況下使用。以下圖,循環神經網絡的隱藏層的值s不只僅取決於當前此次的輸入x,還取決於上一次隱藏層的值s。權重矩陣 W就是隱藏層上一次的值做爲這一次的輸入的權重。
DNN: 深度神經網絡(Deep Neural Networks)是一種判別模型,可使用反向傳播算法進行訓練,可以爲複雜非線性系統提供建模,但多出的層次爲模型提供了更高的抽象層次,於是提升了模型的能力。深度神經網絡一般都是前饋神經網絡,但也有語言建模等方面的研究將其拓展到遞歸神經網絡。
全鏈接:全鏈接層在整個卷積神經網絡中起到「分類器」的做用。若是說卷積層、池化層和激活函數層等操做是將原始數據映射到隱層特徵空間的話,全鏈接層則起到將學到的「分佈式特徵表示」映射到樣本標記空間的做用。在實際使用中,全鏈接層可由卷積操做實現:對前層是全鏈接的全鏈接層能夠轉化爲卷積核爲1x1的卷積;而前層是卷積層的全鏈接層能夠轉化爲卷積核爲hxw的全局卷積,h和w分別爲前層卷積結果的高和寬。
局部鏈接:卷積是局部化鏈接,並非和前一層全部圖塊作連接,只是針對部分小窗口作鏈接。
BP反向傳播算法:是「偏差反向傳播」的簡稱,是一種與最優化方法(如梯度降低法)結合使用的,用來訓練人工神經網絡的常見方法。該方法對網絡中全部權重計算損失函數的梯度。這個梯度會反饋給最優化方法,用來更新權值以最小化損失函數。反向傳播要求有對每一個輸入值想獲得的已知輸出,來計算損失函數梯度。所以,它一般被認爲是一種監督式學習方法,雖然它也用在一些無監督網絡(如自動編碼器)中。BP算法是反向(自上往下)來尋找路徑的,要求人工神經元(或「節點」)的激勵函數可微。
無監督逐層訓練:每次訓練一層隱結點,訓練時將上一層隱結點的輸入做爲輸出,本層隱結點的輸出做爲下一層隱節點的輸入。
經常使用輔助工具
Pip:通用的 Python 包管理工具。提供了對 Python 包的查找、下載、安裝、卸載的功能。
Python :是一個高層次的結合瞭解釋性、編譯性、互動性和麪向對象的腳本語言。Python有相對較少的關鍵字,結構簡單,和一個明肯定義的語法,學習起來更加簡單,它最大優點之一是豐富可跨平臺的庫,在UNIX,Windows和Macintosh兼容很好。
Docker:簡單而言是虛擬機。Docker 使用 Google 公司推出的 Go 語言進行開發實現,基於 Linux 內核的 cgroup,namespace,以及AUFS 類的 Union FS 等技術,對進程進行封裝隔離,屬於 操做系統層面的虛擬化技術。
VisualDL:VisualDL是一個面向深度學習任務設計的可視化工具,包含了scalar、參數分佈、模型結構、圖像可視化等功能。能夠這樣說:「所見即所得」。咱們能夠藉助VisualDL來觀察咱們訓練的狀況,方便咱們對訓練的模型進行分析,改善模型的收斂狀況。
技術術語
NLP:天然語言處理(Neuro-Linguistic Programming),根據處理信息層次和複雜性對NLP作分類,基本上是從三個層次不斷深化: 構詞詞態、語法處理過程(描述語言系統相對構成定義)、語義理解和處理(更加深刻認知概念)組合後產生。N (Neuro) 指的是神經系統,包括大腦和思惟過程。L (Linguistic) 是指語言,更準確點說,是指從感受信號的輸入到構成意思的過程。P (Programming) 是指爲產生某種後果而要執行的一套具體指令。即指咱們思惟上及行爲上的習慣,就如同電腦中的程序,能夠透過更新軟件而改變。
OCR: 光學字符識別(Optical Character Recognition),是經過掃描等光學輸入方式將各類票據、報刊、書籍、文稿及其它印刷品的文字轉化爲圖像信息,再利用文字識別技術將圖像信息轉化爲可使用的計算機輸入技術。
API: 應用程序編程接口是一些預先定義的函數,目的是提供應用程序與開發人員基於某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工做機制的細節。
序列標註:對輸入序列中每一個元素在輸出序列中給出對應的標籤,根據序列標註結果能夠獲得實體邊界和實體類別。相似的,分詞、詞性標註、語塊識別、語義角色標註等任務能夠經過序列標註解決。
詞向量:天然語言交給機器學習中的算法來處理,一般須要首先將語言數學化,詞向量就是用來將語言中的詞進行數學化的一種方式
Tensor:即張量,是一個可用來表示在一些矢量、標量和其餘張量之間的線性關係的多線性函數,這些線性關係的基本例子有內積、外積、線性映射以及笛卡兒積。在PaddlePaddle中,Tensor類來替換Vector和Matrix,並支持高維數據且更爲隨意的集合。
過擬合:表現很好的學習器,能從訓練樣本中儘量學出適用於全部潛在樣本的「廣泛規律「,這樣才能在遇到新樣本時作出正確的判別。而若是學習器把訓練樣本自身的一些特色當成全部潛在樣本具有的通常性質,就會致使泛化性能降低,此時即爲過擬合的狀況。
收斂:在數學的函數中,指的是向某一值趨近。而在機器學習中,收斂常常用於Visual可視化工具中,用於觀察算法的收斂程度。
訓練集:幫助訓練模型,經過訓練集的數據讓咱們肯定擬合曲線的參數。
測試集: 爲了測試已經訓練好的模型的精確度。在訓練模型的時候,由於參數全是根據現有訓練集裏的數據進行修正、擬合,有可能會出現過擬合的狀況,即這個參數僅對訓練集裏的數據擬合比較準確,這個時候再有一個數據須要利用模型預測結果,準確率或將變低。
驗證集:用來作模型選擇,作模型的最終優化及肯定,用來輔助模型的構建。
內存溢出:通俗理解就是內存不夠,一般在運行大型軟件或遊戲時,軟件或遊戲所須要的內存遠遠超出了你主機內安裝的內存所承受大小。
Edl:彈性深度學習(Elastic deep learning)工業深度學習的挑戰之一是須要大量的計算能力。研究實驗室和公司常常構建由SLURM,MPI或SGE管理的GPU集羣。這些集羣要麼運行一個提交的做業(若是它須要的比閒置的資源要少)或者將做業掛起一段難以預估的時間。這種方法有其缺點:在有99個可用節點和一個須要100個提交做業的例子中,做業必須等待而不能使用任何可用節點。於是,Paddle Fluid經過彈性深度學習,可以有效提高GPU使用效能,這使得在Web服務器做業中運行更多的進程成爲可能,而在網絡開銷較高的時間段內深度學習則更少,而後在網絡流量較低時優先進行深度學習。
Onnx:一種模型表示的規範。若是每一個框架均可以把模型轉成onnx格式的,並且支持onnx格式模型的inference,那麼深度學習模型能夠不受框架限制的使用。
PS:若是以爲show很棒,請轉給小夥伴一塊兒欣賞喲,順便點個贊~~
*爲了方便你們使用PaddlePaddle,遇到問題可在中文社區提問,值班同窗將在24小時內響應!更有精品案例、課程提供,讓你們學習使用框架,輕鬆無憂!直達連接:
https://ai.baidu.com/forum/topic/list/168
本文分享 CSDN - 飛槳PaddlePaddle。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。