1. 程式人生 > >神經網路及卷積神經網路的訓練——反向傳播演算法

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

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

  1. 初始化引數。
  2. 求代價函式關於引數的梯度。
  3. 根據梯度更新引數的值。
  4. 經過迭代以後取得最佳引數,從而完成神經網路的訓練。
    其中最重要的步驟就是求梯度,這可以通過反向傳播演算法(back propagation)來實現。

單個神經元的訓練

單個神經元的結構如下圖。假設一個訓練樣本為(x,y)。在下圖中,x是輸入向量,通過一個激勵函式hw,b(x)得到一個輸出a

a再通過代價函式得到J

f(W,b,x)=a=sigmoid(ixiwi+b) (公式1)
J(W,b,x,y)=12yhw,b(x)2 (公式2)

這裡激勵函式以使用sigmoid為例,當然也可以使用其他的比如tanh或者rectived linear unit函式。要求的引數為Wb

通過定義變數z=ixiwi+b可以將激勵函式看做是兩部分,如下圖右圖所示。第一部分是仿射求和得到z, 第二部分是通過sigmoid得到a
這裡寫圖片描述

訓練過程中,要求代價函式J關於Wb的偏導數。先求J關於中間變數az的偏導:

δ(a)=aJ(W,b,x,y)=(ya

) (公式3)
δ(z)=zJ(W,b,x,y)=Jaaz=δ(a)a(1a) (公式4)

公式(4)中根據sigmoid函式的定義σ(z)=11+ez可得az=a(1a)

再根據鏈導法則,可以求得J關於Wb的偏導數,即得Wb的梯度。

WJ(W,b,x,y)=WJ=JzzW=δ(z)xT (公式5)

bJ(W,b,x,y)=bJ=Jzzb=δ(z) (公式6)

在這個過程中,先求J/a,進一步求J/z,最後求得J/WJ/b。結合上圖及鏈導法則,可以看出這是一個將代價函式的增量J自後向前傳播的過程,因此稱為反向傳播(back propagation)。

多層神經網路的訓練

多層網路的一個例子如下圖。
這裡寫圖片描述
假設第l+1層的輸入和輸出分別是

相關推薦

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

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

神經網路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,無需修改很多次,

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

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

TensorFlow官方文件樣例——三層神經網路訓練MNIST資料

        上篇部落格根據TensorFlow官方文件樣例實現了一個簡單的單層神經網路模型,在訓練10000次左右可以達到92.7%左右的準確率。但如果將神經網路的深度拓展,那麼很容易就能夠達到更高的準確率。官方中文文件中就提供了這樣的樣例,它的網路結構如

用TensorFlow訓練神經網路——識別驗證碼

需要用到的包:numpy、tensorflow、captcha、matplotlib、PIL、random import numpy as np import tensorflow as tf # 深度學習庫 from captcha.image import ImageCaptcha

Tensorflow學習教程------利用神經網路對mnist資料集進行分類_利用訓練好的模型進行分類

#coding:utf-8 import tensorflow as tf from PIL import Image,ImageFilter from tensorflow.examples.tutorials.mnist import input_data def imageprepare(ar

搭建簡單圖片分類的神經網路(二)-- CNN模型與訓練

一、首先,簡單來說CNN卷積神經網路與BP神經網路主要區別在於: 1、網路的層數的多少(我這裡的CNN是比較簡單的,層數較少,真正應用的話,層數是很多的)。 2、CNN名稱來說,具有卷積運算的特點,對於大型的圖片或者數量多的圖片,卷積運算可以大量提高計算效能,而BP神經網路大都為全連線層,計

搭建簡單圖片分類的神經網路(一)-- 訓練模型的圖片資料預處理

一、訓練之前資料的預處理主要包括兩個方面 1、將圖片資料統一格式,以標籤來命名並存到train資料夾中(假設原始圖片按類別存到資料夾中)。 2、對命名好的圖片進行訓練集和測試集的劃分以及圖片資料化。 先對整個專案檔案進行說明: 專案資料夾

《TensorFlow實戰》中AlexNet神經網路訓練

TensorFlow實戰中AlexNet卷積神經網路的訓練 01 出錯 TypeError: as_default() missing 1 required positional argument: 'self' 經過百度、谷歌的雙重查詢,沒找到就具體原因。後面去TensorFlow官方文件中發現,tf

TensorFlow實現CNN神經網路對手寫數字集mnist的模型訓練

mnist手寫數字集相當於是TensorFlow應用中的Helloworld。 在學習了TensorFlow的卷積神經網路應用之後,今天就分步解析一下其應用過程  一、mnist手寫數字資料集         MN

TensorFlow訓練MNIST資料集(3) —— 神經網路

  前面兩篇隨筆實現的單層神經網路 和多層神經網路, 在MNIST測試集上的正確率分別約為90%和96%。在換用多層神經網路後,正確率已有很大的提升。這次將採用卷積神經網路繼續進行測試。 1、模型基本結構   如下圖所示,本次採用的模型共有8層(包含dropout層)。其中卷積層和池化層各有兩層。   在

Tensorflow搭建神經網路問題解決

本文針對使用Tensorfolw搭建卷積神經網路遇到的問題進行解析和解決。 問題1 ValueError: Only call `softmax_cross_entropy_with_logits`

cs231n斯坦福基於神經網路的CV學習筆記(二)神經網路訓練細節

五,神經網路 注意點part1 例項:邏輯迴歸二層神經網路訓練函式 使用權重w和偏差值biase計算出第一個隱含層h,然後計算損失,評分,進行反向傳播回去 多種常用啟用函式(一般預設max(0,x)),如sigmoid函式具有飽和區梯度0,非零點中心,計算x複

深度學習入門——利用神經網路訓練CIFAR—10資料集

CIFAR-10資料集簡介 CIFAR-10是由Hinton的學生Alex Krizhevsky和Ilya Sutskever整理的一個用於普適物體的小型資料集。它一共包含10個類別的RGB彩色圖片:飛機、汽車、鳥類、貓、鹿、狗、蛙類、馬、船: 資料集包含50000張訓練圖片和1000