深度學習的應用場景
1、圖像應用:
? ? 1.1 大規模(大數據量)圖片識別(聚類/分類),如人臉識別,車牌識別,OCR等。人臉識別算法:① faceID ② faceNet
? ? 1.2 以圖搜圖,圖像分割
? ? 1.3 目標檢測,如自動駕駛的行人檢測,安防系統的異常人群檢測。目標檢測算法:① faster RCNN ② SSD ③ YOLO(YOLO3)
2、語音識別,語音合成
? ? 2.1 語音識別:① deep speech2 ② DFSMN
? ? 2.2?語音合成:① tactorn2
3、自然語言處理 NLP:
? ? 3.1 自動分詞,句法分析/語義分析、語義角色標注SRL,語法糾錯,關鍵詞提取,文本分類/聚類,文本自動摘要,信息檢索(ES,Solr),信息抽取,網絡爬蟲,情感分析,命名實體識別,問答系統?
? ? ? ? 3.11 自動分詞:
? ? ? ? ? ? ?算法:
? ? ? ? ? ? ?工具:jiagu jieba hanlp
? ? ? ? 3.12 句法分析/語義分析、語義角色標注SRL:
? ? ? ? ? ? (1)句法分析:
? ? ? ? ? ? ? ? 算法:
? ? ? ? ? ? ? ? 工具:hanlp
? ? ? ? ? ? (2)語義分析、語義角色標注SRL:
? ? ? ? ? ? ? ? 算法:
? ? ? ? ? ? ? ? 工具:ltp
? ? ? ? 3.13 語法糾錯:
? ? ? ? 3.14 關鍵詞抽取:
? ? ? ? 3.15 關鍵詞分類:
? ? ? ? 3.16 文本分類、文本聚類:
? ? ? ? ? ? (1)文本分類:
? ? ? ? ? ? (2)文本聚類:
? ? ? ? 3.17 文本自動摘要:
? ? ? ? 3.18 信息檢索:
? ? ? ? 3.19 信息抽取:
? ? ? ? 3.20 情感分析:
? ? ? ? 3.21 命名實體識別:
? ? ? ? ? ? ?算法:
? ? ? ? ? ? ?工具:hanlp
? ? ? ? 3.21 問答系統:
? ? 3.2 知識圖譜,機器翻譯,人機對話,機器寫作?
? ? 3.3 推薦系統,高考機器人
4、數據挖掘,風控系統,推薦系統,廣告系統等 ? ?--------- 機器學習多于深度學習
神經網絡的起源
神經網絡來源之人的思考。
大腦是由處理信息的神經元細胞和連接神經元的細胞進行信息傳遞的突觸構成的。 樹突(Dendrites)從一個神經元接受電信號,信號在細胞核(Cell Body)處理后, 然后通過軸突(Axon)將處理的信號傳遞給下一個神經元。
一個神經元可以看作是將一個或多個輸入處理成一個輸出的計算單元。通過多個神經元的傳遞,最終大腦會得到這個信息, 并可以對這個信息給出一個合適的反饋。
感知器模型--深度學習神經元的前身
感知器是一種模擬人的神經元的一種算法模型,是一種研究單個訓練樣本的二元分類器,是SVM和人工神經網絡(ANN, Artificial Neural Networks)的基礎。
一個感知器接受幾個二級制的輸入,并產生一個二進制的輸出,通常的表達方式如下:
感知器模型直觀理解
感知器可以看作是根據權重來做出決定的一個設備/單元,只要我們可以給定一個比較適合的權重以及閾值,那么感知器應該是能夠對數據進行判斷的/分類預測的。
假定你現在在考慮是否換工作,也許你會考慮一下三個方面的因素:?
- ? ? 新工作的待遇會提高嗎? ? 權重w1
- ? ? 你家庭經濟壓力大嗎? ? ? 權重w2
- ? ? 新工作穩定嗎? ? ? ? ? ?權重w3
結果:w1*x1 + w2*x2 + w3*x3 ?比較 ? ?閾值
多層感知器(人工神經網絡ANN)
將多個感知器進行組合,我們就可以得到一個多層感知器的網絡結構,網絡中的每一個節點我們叫做神經元。
感知器神經元直觀理解之邏輯與?
感知器網絡理解以及S型神經元
其實只要將網絡中的權重或者偏置項稍微的做一點小的改動,都會導致最終的輸出發生一定的變化。但是在感知器神經網絡中,單個感知器上的權重或者偏置項發現一點小的變化,最終的輸出要不不變,要不完全翻轉(因為只有兩種取值-1 和 1),這種翻轉會導致接下來的感知器可能發生復雜的完全沒法控制的變化,這樣會導致我們的網絡很難得到最終的逼近結果。
針對感知器網絡這種很難學習的問題,引入S型神經元來代替感知器。因此:感知器模型 + 非線性連續激活函數來使得網絡賦予非線性因素的方法就誕生了。
從感知器模型中,我們可以將單個神經元的計算過程看成下列兩個步驟:
- 先計算權重w和輸入值x以及偏置項b之間的線性結果值z:z=wx+b
- 然后對結果值z進行一個數據的sign函數(變種)轉換,得到一個離散的0/1值:y=int((sign(z)+1)/2)
在S型神經元中,和感知器神經元的區別在于:對于結果值z的轉換,采用的不是sign函數進行轉換,是采用平滑類型的函數進行轉換,讓輸出的結果值y最終是一個連續的,S型神經元轉指使用的是sigmoid函數。
激活函數
激活函數的主要作用是提供網絡的非線性建模能力。如果沒有激活函數,那么該網絡僅能夠表達線性映射,此時即便有再多的隱藏層,其整個網絡跟單層神經網絡也是等價的。因此也可以認為,只有加入了激活函數之后,深度神經網絡才具備了分層的非線性映射學習能力。 激活函數的主要特性是:可微性、單調性、輸出值的范圍;
常見的激活函數:Sign函數、Sigmoid函數、Tanh函數、ReLU函數、P-ReLU函數、Leaky-ReLU函數、ELU函數、Maxout函數等
激活函數之 Sigmoid、tanh、ReLU、ReLU變形和Maxout_fenglepeng的博客-CSDN博客
神經網絡
神經網絡結構
神經網絡主要由三個組成部分,第一個是架構(architecture)或稱為拓撲結構(topology),描述神經元的層次與連接神經元的結構。第二個組成部分是神經網絡使用的激勵/激活函數。第三個組成部分是找出最優權重值的學習算法。
神經網絡主要分為兩種類型,前饋神經網絡(Feedforward Neural Networks)是最常用的神經網絡類型,一般定義為有向無環圖,信號只能沿著最終輸出的那個方向傳播。另外一個是反饋神經網絡(Feedback Neural Networks),也稱為遞歸神經網絡(Recurent Neural Networks),也就是網絡中環。
神經網絡之淺層神經網絡
添加少量隱層的神經網絡就叫做淺層神經網絡;也叫作傳統神經網絡,一般為2隱層的神經網絡(超過兩隱層的話,效果會差很多)
神經網絡之深度神經網絡(Deep Neural Networks, DNN)
增多中間層(隱層)的神經網絡就叫做深度神經網絡(DNN);可以認為深度學習是神經網絡的一個發展
神經網絡之非線性可分
對線性分類器的與和或的組合可以完成非線性可分的問題;即通過多層的神經網絡中加入激活函數的方式可以解決非線性可分的問題。
神經網絡之過擬合
理論上來講,單隱層的神經網絡可以逼近任何連續函數(只要隱層的神經元個數足夠的多<一個神經元將數據集分為兩類>)
雖然從數學表達上來講,效果一樣,但是在網絡工程效果中,多隱層的神經網絡效果要比單隱層的神經網絡效果好
對于一些分類的問題來講,三層的神經網絡效果優于兩層的神經網絡,但是如果把層次不斷增加(4,5,6,7....),對于最終的效果不會產生太大的變化
提升隱層層數或者神經元個數,神經網絡的“容量”會變大,那么空間表達能力會變強,(模型的預測能力),從而有可能導致過擬合的問題
對于視頻/圖片識別等問題,傳統的神經網絡(全連接神經網絡)不太適合
神經網絡之DNN問題
一般來講,可以通過增加神經元和網絡層次來提升神經網絡的學習能力,使其得到的模型更加能夠符合數據的分布場景;但是實際應用場景中,神經網絡的層次一般情況不會太大,因為太深的層次有可能產生一些求解的問題。
在DNN的求解中有可能存在兩個問題:梯度消失和梯度爆炸;我們在求解梯度的時候會使用到鏈式求導法則,實際上就是一系列的連乘,如果每一層都小于1的話,則梯度越往前乘越小,導致梯度消失,而如果連乘的數字在每層都是大于1的,則梯度越往前乘越大,導致梯度爆炸.