深度学习简述
深度學習簡述
??深度學習是機器學習的一個分支領域:它是從數據中學習表示的一種新方法,強調從連續的**層(layer)**中進行學習,這些層對應于越來越有意義的表示。
??“深度學習”中的“深度”指的并不是利用這種方法所獲取的更深層次的理解,而是指一系列連續的表示層。數據模型中包含多少層,這被稱為模型的深度(depth)。這一領域的其他名稱包括分層表示學習(layered representations learning)和層級表示學習(hierarchical representations learning)。與此相反,其他機器學習方法的重點往往是僅僅學習一兩層的數據表示,因此有時也被稱為淺層學習(shallow learning)
在深度學習中,這些分層表示幾乎總是通過叫作神經網絡(neural network)的模型來學習得到的。神經網絡的結構是逐層堆疊。
神經網絡這一術語來自于神經生物學,但與生物學之間的沒有太多聯系。就我們的目的而言,深度學習是從數據中學習表示的一種數學框架。
直觀理解神經網絡–識別手寫數字
建議讀者實踐MNIST手寫數字識別項目以幫助理解
實例:一個多層網絡如何對數字圖像進行變換,以便識別圖像中所包含的數字。
這個網絡將數字圖像轉換成與原始圖像差別越來越大的表示,而其中關于最終結果的信息卻越來越豐富。
你可以將深度網絡看作多級信息蒸餾操作:信息穿過連續的過濾器,其純度越來越高,對任務的幫助越來越大
深度學習的技術定義:學習數據表示的多級方法。
從數學角度理解神經網絡
??神經網絡中每層對輸入數據所做的具體操作保存在該層的權重(weight)中,其本質是一串數字。用術語來說,每層實現的變換由其權重來參數化(parameterize)。權重有時也被稱為該層的參數(parameter)。在這種語境下,學習的意思是為神經網絡的所有層找到一組權重值,使得該網絡能夠將每個示例輸入與其目標正確地一一對應。
??想要控制一件事物,首先需要能夠觀察它。想要控制神經網絡的輸出,就需要能夠衡量該輸出與預期值之間的距離。這是神經網絡損失函數(loss function)/目標函數(objective function)的任務。損失函數的輸入是網絡預測值與真實目標值,然后計算一個距離值,以衡量該網絡在這個示例上的效果好壞。
??深度學習的基本技巧是利用這個距離值作為反饋信號來對權重值進行微調,以降低當前示例對應的損失值。這種調節由優化器(optimizer)來完成,它實現了所謂的反向傳播(back propagation)算法,這是深度學習的核心算法。
??但隨著網絡處理的示例越來越多,權重值也在向正確的方向逐步微調,損失值也逐漸降低。這就是訓練循環(training loop),將這種循環重復足夠多的次數(通常對數千個示例進行數十次迭代),得到的權重值可以使損失函數最小。具有最小損失的網絡,其輸出值與目標值盡可能地接近,這就是訓練好的網絡。
深度學習與機器學習
??深度學習不一定總是解決問題的正確工具:有時沒有足夠的數據,深度學習不適用;有時用其他算法可以更好地解決問題。如果你第一次接觸的機器學習就是深度學習,那你可能會發現手中握著一把深度學習“錘子”,而所有機器學習問題看起來都像是“釘子”。為了避免陷入這個誤區,唯一的方法就是熟悉其他機器學習方法并在適當的時候進行實踐。
深度學習的幾何解釋
??神經網絡完全由一系列張量運算組成,而這些張量運算都只是輸入數據的幾何變換。因此,你可以將神經網絡解釋為高維空間中非常復雜的幾何變換,這種變換可以通過許多簡單的步驟來實現。
??對于三維的情況,下面這個思維圖像是很有用的。想象有兩張彩紙:一張紅色,一張藍色。將其中一張紙放在另一張上。現在將兩張紙一起揉成小球。這個皺巴巴的紙球就是你的輸入數據,每張紙對應于分類問題中的一個類別。神經網絡(或者任何機器學習模型)要做的就是找到可以讓紙球恢復平整的變換,從而能夠再次讓兩個類別明確可分。通過深度學習,這一過程可以用三維空間中一系列簡單的變換來實現,比如你用手指對紙球做的變換,每次做一個動作。
??讓紙球恢復平整就是機器學習的內容:為復雜的、高度折疊的數據流形找到簡潔的表示。現在你應該能夠很好地理解,為什么深度學習特別擅長這一點:它將復雜的幾何變換逐步分解為一長串基本的幾何變換,這與人類展開紙球所采取的策略大致相同。深度網絡的每一層都通過變換使數據解開一點點——許多層堆疊在一起,可以實現非常復雜的解開過程。
本文摘抄自《Python深度學習》(弗朗索瓦·肖萊)
因為作者剛剛接觸深度學習,對于這方面知識的理解較不深入,大多是摘抄原文做出筆記,實為慘愧。希望隨著學習的深入能有更多自己的理解。
如有錯誤,請讀者及時告知,謝謝
總結
- 上一篇: softmax函数为什么叫softmax
- 下一篇: DANet代码复现