1. 程式人生 > >DeepLearning (六) 學習筆記整理:神經網路以及卷積神經網路

DeepLearning (六) 學習筆記整理:神經網路以及卷積神經網路

DeepLearning 已經持續火了一段時間,很多領域的 state-of-the-art 都被刷了一刷。這裡整理一下前段時間關於DeepLearning的學習筆記,主要是CNN以及Neural Networds方面的理解,如果有理解錯誤之處,還請不吝指出。

神經網路

首先從最簡單的神經網路說起,單獨一個神經元可以表示一個邏輯迴歸模型,表示公式為:hW,b(X)=f(WTX+b) ,圖示如下:


其表達的意思也就是權值向量 W 與輸入向量 X 相乘後加上偏置 b 經過啟用函式輸出,網路的輸出我們稱之為 啟用值 。由於啟用函式的非線性變換從而使得神經元具備表達非線性模型的能力。

如果我們將輸入 X 增加1維,值為1,那麼就可以將偏置 b 併入 W 中,表示式變為 hW(X)=f(WTX)

神經網路模型

所謂神經網路就是將許多個單一“神經元”聯結在一起,這樣,一個“神經元”的輸出就可以是另一個“神經元”的輸入。例如,下圖就是一個簡單的神經網路:


前向傳播

由上圖的網路模型,我們可以簡單用公式表達一些前向傳播的過程:
第一層:令 z(2)=W(1)x+b(1) , 則啟用值為: a(2)=f(z(2))
第二層:將第一層的輸出,也就是啟用值作為第二層的輸入。令 z(3)=W(2)a(2)+b(2),則可以得到輸出層:
hW,b(x)=a(

3)=f(z(3))

以此類推,便是神經網路模型的前向傳播的過程。

反向傳播

先舉個栗子,假設我們有一個固定樣本集 {(x(1),y(1)),...(x(m),y(m))} 包含&m& 個樣例,我們可以用批量梯度下降演算法求解神經網路,定義整體代價函式為:


其中第一項 J(W,b) 是一個均方差項,第二項是一個規則化項(也叫權重衰減項),其目的是減小權重的幅度,防止過度擬合.

BP是後向傳播的英文縮寫,那麼傳播物件是什麼?傳播的目的是什麼?傳播的方式是後向,可這又是什麼意思呢

傳播的物件是誤差,傳播的目的是得到所有層的估計誤差,後向是說由後層的估計誤差推導前層估計誤差:

即BP的思想可以總結為:

利用輸出後的誤差來估計輸出層的直接前導層的誤差,再用這個誤差估計更前一層的誤差,如此一層一層的反傳下去,就獲得了所有其他各層的誤差估計。

BP神經網路模型拓撲結構包括輸入層(input)、隱層(hide layer)和輸出層(output layer)

神經網路的學習目的:

希望能夠學習到一個模型,能夠對輸入輸出一個我們期望的輸出。

學習的方式:

在外界輸入樣本的刺激下不斷改變網路的連線權值

學習的本質:

對各連線權值的動態調整

學習的核心:

權值調整規則,即在學習過程中網路中各神經元的連線權變化所依據的一定的調整規則。

BP的核心思想就是:

將輸出誤差以某種形式通過隱層向輸入層逐層反傳

BP演算法的具體推導可以參考UFLDL

Neural Networds: Tips and Tricks

Gradient Check

用梯度的原始定義來逼近BP誤差傳遞演算法以達到檢驗BP演算法的實現是否正確,在UFLDL中經常會做這樣的檢驗。


用法:

  1. 定義 h 為一個很小的值,然後將輸入 θ 替換為 θ+h 進行前向傳播,得到 J(θ+h)
  2. 將輸入 θ 替換為 θh 進行前向傳播,得到 J(θh)
  3. 計算 (J(θ+h)J(θh))/2h 的值,與BP演算法反饋回來的值進行比較,兩者相差是 109 或更小則可以認為BP演算法正確實現
Regularization

像大多數分類器,神經網路也會出現過擬合的現象,這將會導致神經網路的交叉驗證以及測試準確率下降。這時我們依舊可以使用 L2 範數進行正則化。此時的 loss Function 如下:
JR=J+λi=1L||W(i)||F

新增這個約束項可以懲罰那些會造成 JR 過大的 W ,也可以減輕網路的複雜性。

懲罰那些會造成 JR 過大的 W 很容易理解,就是在減小 JR 的同時也減小那些比較大的 W

減輕網路的複雜性可以用 先驗貝葉斯信念( prior Bayesian belief ) 來解釋:先驗貝葉斯信念認為,優化後的權重 W 應該是非常接近0的。那麼要多接近呢?這就要根據 λ 的值來確定,λ 的值越大,就有越多的 W 被優化為 0,此時網路中有效的 w 就變少了,相當於去掉了這部分 w 為 0 的網路,此時的網路就變得比較輕盈了。

然而需要注意的是,我們只對權重 W 進行正則化而不對 bias b 進行正則化,因為 b 對網路的複雜性以及過擬合都沒有影響。

加入權重懲罰項之後,就可以減少網路過擬合的概率。

啟用函式

sigmoid 函式
σ(z)=11+exp(z)

波形圖如下:將輸入 x 對映到 [0-1] 之間


sigmoid 函式的梯度如下:

σ(z)

相關推薦

DeepLearning () 學習筆記整理神經網路以及神經網路

DeepLearning 已經持續火了一段時間,很多領域的 state-of-the-art 都被刷了一刷。這裡整理一下前段時間關於DeepLearning的學習筆記,主要是CNN以及Neural Networds方面的理解,如果有理解錯誤之處,還

Tensorflow學習筆記(第三天)—神經網路

     對CIFAR-10 資料集的分類是機器學習中一個公開的基準測試問題,其任務是對一組大小為32x32的RGB影象進行分類,這些影象涵蓋了10個類別: 飛機, 汽車, 鳥, 貓, 鹿, 狗, 青蛙, 馬, 船以及卡車。

tensorflow學習筆記(第一天)-深度神經網路

一、在這裡首先需要了解一些概念性的東西,當然我是才接觸,還不太熟悉: 1.numpy      NumPy系統是Python的一種開源的數值計算擴充套件。這種工具可用來儲存和處理大型矩陣,比Python自身的巢狀列表(nested l

吳恩達深度學習基於Matlab完成神經網路第四課第一週程式設計任務

          這兩三個月通過吳恩達老師的課程學習了深度學習,從零開始學理論,做程式設計任務。感覺學了很多知識。現在學到卷積神經網路,想把第一週的程式設計任務、其中的要點上傳和編寫,方便自己以後鞏固。(注:吳恩達老師課程的程式設計任務是用Python來完成的,而我是用ma

機器學習實驗(四)用tensorflow實現神經網路識別人類活動

在近幾年,越來越多的使用者在智慧手機上安裝加速度感測器等一些裝置,這就為做一些應用需要收集相關的資料提供了方便。人類活動識別(human activity recognition (HAR))是其中的一個應用。對於HAR,有很多的方法可以去嘗試,方法的performance很大程度上依賴於特徵工程。傳統的機

吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(4-2)-- 深度模型

以下為在Coursera上吳恩達老師的 DeepLearning.ai 課程專案中,第四部分《卷積神經網路》第二週課程“深度卷積模型”關鍵點的筆記。本次筆記幾乎涵蓋了所有視訊課程的內容。在閱讀以下筆記的同時,強烈建議學習吳恩達老師的視訊課程,視訊請至

【深度學習理論】一文看懂神經網路

本文主要介紹了神經網路中的卷積神經網路,適合初學者閱讀。概述深度學習和人工智慧是 2016 年的熱詞;2017 年,這兩個詞愈發火熱,但也更加容易混淆。我們將深入深度學習的核心,也就是神經網路。大多數神經網路的變體是難以理解的,並且它們的底層結構元件使得它們在理論上和圖形上是

Tensorflow例項實現簡單的神經網路

CNN最大的特點在於卷積的權值共享結構,可以大幅減少神經網路的引數量,防止過擬合的同時又降低了神經網路模型的複雜度。在CNN中,第一個卷積層會直接接受影象畫素級的輸入,每一個卷積操作只處理一小塊影象,進行卷積變化後再傳到後面的網路,每一層卷積都會提取資料中最有效

MyBatis-Plus學習筆記(1)環境搭建以及基本的CRUD操作

MyBatis-Plus是一個 MyBatis的增強工具,在 MyBatis 的基礎上只做增強不做改變,使用MyBatis-Plus時,不會影響原來Mybatis方式的使用。 SpringBoot+MyBatis-Plus環境搭建 SQL指令碼: CREATE TABLE `tb_user` ( `id`

神經網路6_CNN(神經網路)、RNN(迴圈神經網路)、DNN(深度神經網路)概念區分理解

 sklearn實戰-乳腺癌細胞資料探勘(部落格主親自錄製視訊教程,QQ:231469242) https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm

BP神經網路&神經網路概念

1、BP神經網路 1.1 神經網路基礎 神經網路的基本組成單元是神經元。神經元的通用模型如圖 1所示,其中常用的啟用函式有閾值函式、sigmoid函式和雙曲正切函式。  圖 1 神經元模型 神經元的輸出為:  y=f(∑i=1m

Neural Networks and Convolutional Neural Networks Essential Training 神經網路神經網路基礎教程 Lynda課程中文字幕

Neural Networks and Convolutional Neural Networks Essential Training 中文字幕 神經網路和卷積神經網路基礎教程 中文字幕Neural Networks and Convolutional Neural Networks

深層神經網路神經網路的反向傳播過程推導

反向傳播過程是深度學習的核心所在,雖然現在很多深度學習架構如Tensorflow等,已經自帶反向傳播過程的功能。我們只需要完成網路結構的正向傳播的搭建,反向傳播過程以及引數更新都是由架構本身來完成的。但為了更好的瞭解深度學習的機理,理解反向傳播過程的原理還是很重要的。 在學

神經網路神經網路的瞭解

date: 2016-09-14 11:02 老師提供的閱讀材,上週就應該看完,但還是沒看,這周需要看完然後看兩篇FNN的論文並做一個report。 提供的材料是CS231n PS:才發現有翻譯,真真好人,我真真浪費時間t-T PPS

Deep learning-全連線層神經網路神經網路

全連線層神經網路與卷積神經網路 全連線層神經網路相比於卷積神經網路存在的問題:因為全連線,所以當相互連線的節點個數增加時,節點之間的邊個數會很多,而一條邊對應著一個引數,所以全連線層在神經網路節點個數多的時候會存在引數很多的情況。而對於神經網路引數過多帶來的影響有在計算上的,也有在模型的擬合程度

Batch Normalization--全連線神經網路神經網路實戰

Batch Normalization原理 網上部落格一大堆,說的也很明白,這裡就簡單的說一下我的個人理解: 對每一個特徵值進行 0均值化,利於神經網路擬合時,對於自身的引數b,無需修改很多次,

神經網路神經網路的訓練——反向傳播演算法

神經網路的訓練過程,就是通過已有的樣本,求取使代價函式最小化時所對應的引數。代價函式測量的是模型對樣本的預測值與其真實值之間的誤差,最小化的求解一般使用梯度下降法(Gradient Decent)或其他與梯度有關的方法。其中的步驟包括: 初始化引數。 求代價

opencv學習筆記(二十)cvFilter2D()以及邊界的處理

20.1**cvFilter2D()卷積:** void cvFilter2D( const CvArr* src, CvArr* dst, const CvMat* kernel, CvPoint anchor=c

機器學習筆記(十四)TensorFlow實戰(經典神經網路AlexNet )

1 - 引言 2012年,Imagenet比賽冠軍的model——Alexnet [2](以第一作者alex命名)。這個網路算是一個具有突破性意義的模型 首先它證明了CNN在複雜模型下的有效性,然後GPU實現使得訓練在可接受的時間範圍內得到結果,讓之後的網路模型構建變得更加複雜,並且通過

機器學習筆記(十TensorFlow實戰八(經典神經網路GoogLeNet)

1 - 引言 GoogLeNet, 在2014年ILSVRC挑戰賽獲得冠軍,將Top5 的錯誤率降低到6.67%. 一個22層的深度網路 論文地址:http://arxiv.org/pdf/1409.4842v1.pdf 題目為:Going deeper with convolu