1. 程式人生 > >Deep Learning(深度學習) 學習筆記(一)

Deep Learning(深度學習) 學習筆記(一)

前言:昨天看到微博上分享的深度學習視訊,為上海復旦大學吳立德教授深度學習課程,一共六課時,視訊地址點選開啟連結。在此我結合其他資料,寫點個人的學習筆記進行記錄。

第一課:概述

本課吳老師對深度學習做了一個簡單的介紹。內容分為三塊:1.深度學習簡介  2.深度學習應用   3.領域概況

1.深度學習簡介

     深度學習(deep learning)是機器學習(machine learning)的一個方法。本節首先簡單介紹機器學習,然後引入深度學習的概念。

    1.1 機器學習簡介

    機器學習四要素:

    [星號**內容為我自己補充內容,部分內容來自《統計機器學習》]

    a, 資料

             

           ** 機器學習演算法是一類從資料中自動分析獲得規律,並利用規律對未知資料進行預測的演算法。(監督)學習中訓練資料由輸入(或特徵向量)與輸出對組成。

       b, 模型

              

             線性模型:           

             廣義線性模型:   

             非線性模型:       ANN (人工神經網路 維基百科點選開啟連結) 常見的一種是前饋神經網路(feedforward neural network),深度學習主要針對就是這種前饋神經網路。

            ** 在監督學習過程中,模型就是所要學習的條件概率分佈或據側函式。模型的假設空間包含所有的可能的條件概率分佈或決策函式。即假設空間中的模型一般無窮多個。

       c, 準則

              損失函式:   

              經驗風險:   

             正則項:        

             學習目標:    

                  ** 設假設空間中的模型一般無窮多個,我們具體選擇哪一個使用,需要一個模型評價指標。這裡的準則就是評價指標。選擇模型的好壞就是按照這個標準來說。

      d, 演算法 

             深度學習(Deep Learning)就是針對深度前饋神經網路的學習演算法。

             **演算法是指學習模型的具體計算方法,統計學習基於訓練資料集,根據學習策略,從假設空間中選擇最優的模型,最後需要考慮用什麼樣的計算方法求解最優模型。說白了就是在假設中間中怎麼去找那個在評價準則中最優的模型。

       1.2 深度學習簡介

             深度前饋神經網路的學習問題就是深度學習。

             1.2.1  廣義線性模型 vs 線性模型  vs 非線性模型

                課程中講授線性模型和廣義線性模型的區別,我們從上述公式中也可以看到。線性模型因變數y是由自變數x線性得到,而廣義線性模型中我們找到一個變換,然後先對自變數x做一個變換,成為然後進行線性加和。在模式識別和機器學習中,我們稱那個需要找到的變換為特徵。找到一個好的變換對我們的學習很有幫助。在具體的應用任務中,尋找特徵需要人工進行(特徵工程)。現在在深度學習中,特徵本身需要從資料中自己學習。

              關於線性模型和廣義線性模型可以參考點選開啟連結  

             “深度”就是前饋神經網路層數較多(層數>5)。

             **為什麼深度的神經網路比較好?這個問題在《Learning Deep Architectures for AI》提及過。原文為“The main conclusion of this section is that functions that can be compactly represented by a depth k architecture might require an exponential number of computational elements to be represented by a depth k − 1 architecture. Since the number of computational elements one can afford depends on the number of training examples available to tune or select them, the consequences are not just computational but also statistical: poor generalization may be expected when using an insufficiently deep architecture for representing some functions.” 解讀為存在某些函式可以簡潔地通過 k 層邏輯閘網路計算出來,但是如果限制為 k -1 層的話,就需要指數級別的邏輯閘才行(解讀來自點選開啟連結)。其實可以這麼認為:如果不深,那麼想達到同樣效果的神經網路就必須很扁平,並且用到的引數個數是前者的指數級(現在深度神經網路的引數個數是million級別)。引數一劇增,各種問題就出現了。

             **淺層模型有一個重要特點,就是假設靠人工經驗來抽取樣本的特徵,而強調模型主要是負責分類或預測。在模型的運用不出差錯的前提下(如假設網際網路公司聘請的是機器學習的專家),特徵的好壞就成為整個系統性能的瓶頸。因此,通常一個開發團隊中更多的人力是投入到發掘更好的特徵上去的。要發現一個好的特徵,就要求開發人員對待解決的問題要有很深入的理解。而達到這個程度,往往需要反覆地摸索,甚至是數年磨一劍。因此,人工設計樣本特徵,不是一個可擴充套件的途徑。深度學習的實質,是通過構建具有很多隱層的機器學習模型和海量的訓練資料,來學習更有用的特徵,從而最終提升分類或預測的準確性。所以“深度模型”是手段,“特徵學習”是目的。區別於傳統的淺層學習,深度學習的不同在於:1. 強調了模型結構的深度,通常有5層、6層,甚至10多層的隱層節點;2. 明確突出了特徵學習的重要性,也就是說,同過逐層特徵變換,將樣本在原空間的特徵表示變換到一個新特徵空間,使分類或預測更加容易。(本段內容來餘凱文章)

             1.2.2  深度學習難處:

                        可訓練引數太多

                             反應在這個問題上,就是

                                    1. 計算資源要大  需要海量的CPU來玩這個演算法。

                                    2.資料量充足     資料量小,引數多,過擬合的問題就嚴重了。

                                    3.演算法效率要高  茫茫大海中如何去尋找那組最優的引數需要高效的進行。

                                    4.解釋困難   雖然模型取得效果,但是很難直觀解釋為什麼模型會work。

                        非凸優化

                        調參困難

2,深度學習應用和領域概況

        應用:語音識別   目標識別  自然語言處理 參考餘凱老師的文章:點選開啟連結

        主要大牛:

        New York University      LeCun   個人主頁http://yann.lecun.com/ [前段時間Facebook宣佈聘請紐約大學教授揚•樂康(Yann LeCun)掌管其新建的人工智慧實驗室,就是這哥們]

網上學習資料(按進階程度排序):

              0.9  新聞閱讀:

                        Meet the Man Google Hired to Make AI a Reality點選開啟連結 

                        Computer science: The learning machines點選開啟連結

              1. 人工智慧學會的文章點選開啟連結               

              3. Stanford 教授 Andrew Ng 的 Deep Learning 教程(中譯本)點選開啟連結

              4. Deep Learning 工具集合點選開啟連結      

              5. Yoshua Bengio 在 Google 蒙特利爾的報告(2012.11.22)點選開啟連結

相關推薦

2018-3-21李巨集毅機器學習視訊筆記十三--“Hello Wrold” of Deep learning

Keras:有關的介紹:總的來說就是一個深度學習框架keras - CSDN部落格https://blog.csdn.net/xiaomuworld/article/details/52076202軟體工程中的框架:一種可複用的設計構件(從巨集觀上大體結構的一種規定約束)軟體

Deep Learning 1_深度學習UFLDL教程:Sparse Autoencoder練習斯坦福大學深度學習教程

1前言           本人寫技術部落格的目的,其實是感覺好多東西,很長一段時間不動就會忘記了,為了加深學習記憶以及方便以後可能忘記後能很快回憶起自己曾經學過的東西。      首先,在網上找了一些資料,看見介紹說UFLDL很不錯,很適合從基礎開始學習,Adrew Ng大牛寫得一點都不裝B,感覺非常好

Deep Learning 4_深度學習UFLDL教程:PCA in 2D_Exercise斯坦福大學深度學習教程

前言      本節練習的主要內容:PCA,PCA Whitening以及ZCA Whitening在2D資料上的使用,2D的資料集是45個數據點,每個資料點是2維的。要注意區別比較二維資料與二維影象的不同,特別是在程式碼中,可以看出主要二維資料的在PCA前的預處理不需要先0均值歸一化,而二維自然影象需要先

Deep Learning 3_深度學習UFLDL教程:預處理之主成分分析與白化_總結斯坦福大學深度學習教程

1PCA     ①PCA的作用:一是降維;二是可用於資料視覺化; 注意:降維的原因是因為原始資料太大,希望提高訓練速度但又不希望產生很大的誤差。     ② PCA的使用場合:一是希望提高訓練速度;二是記憶體太小;三是希望資料視覺化。     ③用PCA前的預處理:(1)規整化特徵的均值大致為0;(

Deep Learning 19_深度學習UFLDL教程:Convolutional Neural Network_Exercise斯坦福大學深度學習教程

基礎知識 概述       CNN是由一個或多個卷積層(其後常跟一個下采樣層)和一個或多個全連線層組成的多層神經網路。CNN的輸入是2維影象(或者其他2維輸入,如語音訊號)。它通過區域性連線和權值共享,再通過池化可得到平移不變特徵。CNN的另一個優點就是易於訓練

Deep Learning 8_深度學習UFLDL教程:Stacked Autocoders and Implement deep networks for digit classification_Exercise斯坦福大學深度學習教程

前言 2.實驗環境:win7, matlab2015b,16G記憶體,2T硬碟 3.實驗內容:Exercise: Implement deep networks for digit classification。利用深度網路完成MNIST手寫數字資料庫中手寫數字的識別。即:用6萬個已標註資料(即:6萬

Deep Learning 11_深度學習UFLDL教程:資料預處理斯坦福大學深度學習教程

資料預處理是深度學習中非常重要的一步!如果說原始資料的獲得,是深度學習中最重要的一步,那麼獲得原始資料之後對它的預處理更是重要的一部分。 1.資料預處理的方法: ①資料歸一化: 簡單縮放:對資料的每一個維度的值進行重新調節,使其在 [0,1]或[ − 1,1] 的區間內 逐樣本均值消減:在每個

Deep Learning 13_深度學習UFLDL教程:Independent Component Analysis_Exercise斯坦福大學深度學習教程

前言 實驗環境:win7, matlab2015b,16G記憶體,2T機械硬碟 難點:本實驗難點在於執行時間比較長,跑一次都快一天了,並且我還要驗證各種代價函式的對錯,所以跑了很多次。 實驗基礎說明:      ①不同點:本節實驗中的基是標準正交的,也是線性獨立的,而Deep Learni

Deep Learning 12_深度學習UFLDL教程:Sparse Coding_exercise斯坦福大學深度學習教程

前言 實驗環境:win7, matlab2015b,16G記憶體,2T機械硬碟 本節實驗比較不好理解也不好做,我看很多人最後也沒得出好的結果,所以得花時間仔細理解才行。 實驗內容:Exercise:Sparse Coding。從10張512*512的已經白化後的灰度影象(即:Deep Learnin

Deep Learning 6_深度學習UFLDL教程:Softmax Regression_Exercise斯坦福大學深度學習教程

前言      練習內容:Exercise:Softmax Regression。完成MNIST手寫數字資料庫中手寫數字的識別,即:用6萬個已標註資料(即:6萬張28*28的影象塊(patches)),作訓練資料集,然後利用其訓練softmax分類器,再用1萬個已標註資料(即:1萬張28*28的影象塊(pa

Deep Learning 7_深度學習UFLDL教程:Self-Taught Learning_Exercise斯坦福大學深度學習教程

前言 理論知識:自我學習 練習環境:win7, matlab2015b,16G記憶體,2T硬碟       一是用29404個無標註資料unlabeledData(手寫數字資料庫MNIST Dataset中數字為5-9的資料)來訓練稀疏自動編碼器,得到其權重引數opttheta。這一步的目的是提取這

Deep Learning 2_深度學習UFLDL教程:向量化程式設計斯坦福大學深度學習教程

1前言     本節主要是讓人用向量化程式設計代替效率比較低的for迴圈。     在前一節的Sparse Autoencoder練習中已經實現了向量化程式設計,所以與前一節的區別只在於本節訓練集是用MINIST資料集,而上一節訓練集用的是從10張圖片中隨機選擇的8*8的10000張小圖塊。綜上,只需要在

Deep Learning 9_深度學習UFLDL教程:linear decoder_exercise斯坦福大學深度學習教程

前言 實驗基礎說明: 1.為什麼要用線性解碼器,而不用前面用過的棧式自編碼器等?即:線性解碼器的作用? 這一點,Ng已經在講解中說明了,因為線性解碼器不用要求輸入資料範圍一定為(0,1),而前面用過的棧式自編碼器等要求輸入資料範圍必須為(0,1)。因為a3的輸出值是f函式的輸出,而在普通的spa

Deep Learning 10_深度學習UFLDL教程:Convolution and Pooling_exercise斯坦福大學深度學習教程

前言 實驗環境:win7, matlab2015b,16G記憶體,2T機械硬碟 實驗內容:Exercise:Convolution and Pooling。從2000張64*64的RGB圖片(它是 the STL10 Dataset的一個子集)中提取特徵作為訓練資料集,訓練softmax分類器,然後從

Deep Learning 5_深度學習UFLDL教程:PCA and Whitening_Exercise斯坦福大學深度學習教程

close all; % clear all; %%================================================================ %% Step 0a: Load data % Here we provide the code to load n

深度學習 Deep Learning UFLDL 最新Tutorial 學習筆記 4:Debugging: Gradient Checking

style inline add tom radi posit math size tutorial 1 Gradient Checking 說明前面我們已經實現了Linear Regression和Logistic Regression。關鍵在於代價函數Cost Fun

TensorFlow-實戰Google深度學習框架 筆記

當我 日誌 不一定 rain 如何 validate .config 存儲 構建 TensorFlow TensorFlow 是一種采用數據流圖(data flow graphs),用於數值計算的開源軟件庫。在 Tensorflow 中,所有不同的變量和運算都是儲存在計算圖

神經網路與深度學習課程筆記第三、四周

接著學習吳恩達老師第三、四周的課程。(圖片均來自吳恩達老師課件)   第三週 1. 普通的淺層網路                        

神經網路與深度學習課程筆記第一、二週

   之前結束了吳恩達老師的機器學習的15節課,雖然看得很艱辛,但是也算是對於機器學習的理論有了一個入門,很多的東西需要不斷的思考以及總結。現在開始深度學習的學習,仍然做課程筆記,記錄自己的一些收穫以及思考。   第一週 1. ReLU (Rectified

Elam的吳恩達深度學習課程筆記

記憶力是真的差,看過的東西要是一直不用的話就會馬上忘記,於是乎有了寫部落格把學過的東西儲存下來,大概就是所謂的集鞏固,分享,後期查閱與一身的思想吧,下面開始正題 深度學習概論 什麼是神經網路 什麼是神經網路呢,我們就以房價預測為例子來描述一個最簡單的神經網路模型。   假設有6間