<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 機器學習卷積神經網絡的速成課程 > 原文: [https://machinelearningmastery.com/crash-course-convolutional-neural-networks/](https://machinelearningmastery.com/crash-course-convolutional-neural-networks/) 卷積神經網絡是一種強大的人工神經網絡技術。 這些網絡保留了問題的空間結構,并且是為諸如手寫數字識別之類的物體識別任務而開發的。卷積神經網絡能夠在困難的計算機視覺和自然語言處理任務上取得了最先進的成果,所以很受歡迎。 在這篇文章中,您將了解用于深度學習的卷積神經網絡,也稱為 ConvNets 或 CNN,通過完成本速成課程后,您將了解: * CNN 中使用的構建塊,例如卷積層和池化層。 * 如何將構建塊與一個簡短的工作示例結合在一起。 * 在您自己的物體識別任務上配置 CNN 的最佳實踐。 * 適用于復雜機器學習問題的最新網絡參考。 讓我們開始吧。 ![Crash Course in Convolutional Neural Networks for Machine Learning](https://img.kancloud.cn/2c/68/2c68268c1fd44782d7186aa8a98a0d87_640x425.png) 用于機器學習的卷積神經網絡的速成課程 照片由 [Bryan Ledgard](https://www.flickr.com/photos/ledgard/7772964384/)提供 ,并保留所屬權利。 ## 卷積神經網絡的案例 給定灰度圖像的數據集,其標準化尺寸各為 32×32 像素,傳統的前饋神經網絡將需要 1024 個輸入權重(加上一個偏差)。 這種結構是均勻的,但是像素的圖像矩陣扁平化為像素值的長向量會丟失圖像中的所有空間結構,除非所有圖像都完美地調整大小,否則神經網絡將很難解決問題。 卷積神經網絡通過使用小方塊輸入數據學習內部特征表示來期望并保持像素之間的空間關系。在整個圖像中學習和使用特征,允許圖像中的對象在場景中被移位或平移,并且仍然可以被網絡檢測到。 這就是為什么網絡對于照片中選擇具有不同方向的數字,面部,對象等的物體識別,非常有用的原因。 總之,以下是使用卷積神經網絡的一些好處: * 與完全連接的網絡相比,它們使用更少的參數(權重)來學習。 * 它們被設計為對場景中的物體位置和失真不變。 * 它們會自動學習并生成輸入域中的特征。 ## 卷積神經網絡的構建模塊 卷積神經網絡中有三種類型的層: 1. 卷積層。 2. 池化層。 3. 完全連接層。 ### 1.卷積層 卷積層由濾波器和特征圖組成。 #### 過濾器 濾波器是層的“神經元”,具有輸入權重并有一個輸出值,輸入大小是一個固定的方塊,稱為patch或感受野。 >感受野((Receptive Field )用來表示網絡內部的不同位置的神經元對原圖像的感受范圍的大小. 如果卷積層是輸入層,則patch將是像素值,如果卷積層是網絡架構中的更深層,則卷積層將從前一層的特征映射中獲取輸入。 #### 特征圖 特征圖被應用于上一層的濾波器的輸出。 一個給定的濾波器橫跨整個前一層網絡,一次移動一個像素。每個位置導致神經元的激活,并且輸出值被收集在特征圖中,您可以看到,如果將感知字段的一個像素從激活移動到另一個激活,則該領域將與之前激活的(領域寬度 - 1)輸入值重疊。 #### 零填充 濾波器在每次激活時從前一層的輸入移動的距離稱為步幅。 如果前一層的大小不能被過濾器接收場的大小和步幅的大小完全整除,那么感收野可能會嘗試讀取輸入特征圖的邊緣,在這種情況下,可以使用諸如零填充之類的技術來編造用于讀取的感受野的模擬輸入。 ### 2.池化層 池化層對前一層的特征圖進行下采樣。 池化層遵循一個或多個卷積層的序列,旨在合并在先前層的特征圖中學習和表達的特征,因此,池化層可以被認為是壓縮或概括特征表示的技術,并且通常能夠減少模型對訓練數據的過度擬合。 它們也有一個感受野,通常比卷積層小得多。此外,為每次激活移動感受野的輸入的步幅或數量通常等于感受野的大小以避免任何重疊。 池化層通常非常簡單,取輸入值的平均值或最大值以創建自己的特征映射。 關于池化層更多的信息,可以參考以下文章: * [對卷積神經網絡池化層的簡要介紹](https://machinelearningmastery.com/pooling-layers-for-convolutional-neural-networks/) ### 3.完全連接層 完全連接層是正常的平坦前饋神經網絡層。 這些層可以由非線性激活函數或`softmax`激活,以便輸出對分類預測的概率。 在卷積層和池化層執行特征提取和合并之后,在網絡末端使用完全連接層,用于創建最終的非線性特征組合,并且通過網絡進行預測。 ## 卷積神經網絡的工作實例 您現在知道卷積層,池化層和完全連接層,現在,我們可以通過研究如何更加具體的將這三個層連接在一起 ### 1.圖像輸入數據 假設我們有一個灰度圖像的數據集,每個圖像具有 32 像素寬和 32 像素高的相同尺寸,并且像素值在 0 到 255 之間,例如,一個 32x32x1 或 1024 像素值的矩陣。 圖像輸入數據表示為寬度*高度*通道的三維矩陣,如果我們在我們的示例中使用彩色圖像,我們將有 3 個通道用于紅色,綠色和藍色像素值,例如 32x32x3。 ### 2.卷積層 我們定義了一個卷積層,其中包含 10 個濾波器和一個 5 像素寬,5 像素高,步長為 1 的感受野。 因為每個濾波器一次只能從(即“看”)5×5(25)像素輸入,我們可以計算每個濾波器需要 25 + 1 個輸入權重(偏置輸入加 1)。 在步幅寬度為 1 的情況下在輸入圖像數據上拖動 5×5 感受野將導致每個圖像具有 28×28 個輸出值或 784 個不同激活的特征圖。 我們有 10 個濾波器,因此將為一個圖像創建 10 個不同的 28×28 的特征圖或 7480個輸出。 最后,我們知道每個濾波器有 26 個輸入,10 個濾波器和 28×28 輸出值來計算每個濾波器,因此我們的卷積層總共有 26x10x28x28 或 203,840 個“連接”,我們想用傳統的神經元來表達它網絡命名法。 卷積層還利用非線性傳遞函數作為激活的一部分,并且整流器激活函數是常用的默認激活函數。 ### 3.池化層 我們定義了一個具有感受野的池化層,其輸入寬度和高度均為2,我們還使用 2 的步幅來確保沒有重疊。 這導致特征圖的大小是輸入要素圖的一半,從 10 個不同的 28×28 特征圖作為輸入到 10 個不同的 14×14 特征映射作為圖。 我們將對每個感知字段使用 max()操作,以便激活是最大輸入值。 ### 4.完全連接層 最后,我們可以將方形特征圖平坦化為傳統的平坦完全連接層。 我們可以用 200 個隱藏的神經元定義完全連接的層,每個神經元具有 10x14x14 輸入連接,或者每個神經元具有 1960 + 1 個權重。這一層共有 392,200 個連接和權重。 我們可以使用 sigmoid 或 softmax 傳遞函數直接輸出類值的概率。 ## 卷積神經網絡最佳實踐 現在我們已經了解了卷積神經網絡的構建塊以及這些層如何連接在一起,我們可以回顧一下應用它們時要考慮的一些最佳實踐。 * **輸入感受野維度**:圖像的默認值為 2D,但可以是 1D,例如句子中的單詞或添加時間維度的視頻的 3D。 * **感受野的大小**:patch應盡可能小,但應該大到足以“看到”輸入數據中的特征,通常在小圖像上使用 3×3,在較大圖像尺寸上使用 5×5 或 7×7 或更多。 * **步幅寬度**:使用默認步幅 1.這很容易理解,并且您不需要填充來處理從圖像邊緣掉落的感受野。對于較大的圖像,這可以增加到 2 或更大。 * **濾波器數量**:濾波器是特征檢測器,通常在輸入層使用較少的濾波器,并且在較深層使用的濾波器越來越多。 * **填充**:設置為零并在讀取非輸入數據時調用零填充。當您不能或不想標準化輸入圖像大小或想要使用不能整齊劃分輸入圖像大小的感知字段和步幅大小時,這將非常有用。 * **池化**:池化是一種破壞性或泛化過程,以減少過擬合,感受野幾乎總是設置為 2×2,步幅為 2,以丟棄前一層輸出的 75%激活。 * **數據準備**:考慮標準化輸入數據,包括圖像尺寸和像素值。 * **模式體系結構**:通常在網絡體系結構中對層進行模式化。這可能是一個,兩個或一些卷積層,后面是池化層。然后可以重復該結構一次或多次。最后,完全連接層通常僅在輸出端使用,并且可以堆疊一個,兩個或更多個深度。 * **dropout**:CNN 容易造成一種過擬合,即使是池化層也是如此,應該在完全連接的層之間,或池化層之后使用Dropout。 您是否了解使用 CNN 的更多最佳做法?請在評論中告訴我。 ## 進一步閱讀卷積神經網絡 你可能在卷積神經網絡上淺嘗輒止,該領域正在快速發展,并且一直在討論和使用新的有趣的架構和技術。 如果您正在尋找對該技術的更深入理解,請查看 LeCun 等, al 的開創性論文題為“[基于梯度的學習應用于文檔識別](http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf)”[PDF]。他們將 [LeNet](http://yann.lecun.com/exdb/lenet/) 應用于手寫數字識別,并仔細解釋各層以及網絡連接方式。 網絡上有很多關于 CNN 的教程和討論,下面列出了一些供選擇的示例,就個人而言,我發現文章中的可解釋性的圖片只有在理解了網絡如何連接之后才有用,許多解釋令人困惑,如果有疑問可以在LeNet的論文中了解更多信息。 * [DeepLearning4J 中的卷積網絡](http://deeplearning4j.org/convolutionalnets.html) * [斯坦福 CS231n 課程中的卷積網絡模型](https://cs231n.github.io/convolutional-networks/ https://cs231n.github.io/) * [卷積網絡與視覺應用](http://yann.lecun.com/exdb/publis/pdf/lecun-iscas-10.pdf) [PDF] * [Michael Nielsen 開放式深度學習書](http://neuralnetworksanddeeplearning.com/chap6.html)第 6 章 * [來自于牛津實踐的VGG卷積神經網絡](http://www.robots.ox.ac.uk/~vgg/practicals/cnn/) * [了解 Denny Britz](http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/) 對 NLP 的卷積神經網絡的理解 ## 摘要 在這篇文章中,您學習卷積神經網絡,你學習了: * 為什么需要 CNN 來保留輸入數據中的空間結構及其優點。 * CNN 的構建塊包括卷積,池化和完全連接層。 * CNN 中的層如何連接在一起。 * 將 CNN 應用于您自己的問題時的最佳做法。 你對卷積神經網絡或這篇文章有任何疑問嗎?在評論中提出您的問題,我會盡力回答。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看