1. 程式人生 > >神經網路演算法介紹(Nerual NetWorks)

神經網路演算法介紹(Nerual NetWorks)

神經網路是所謂深度學習的一個基礎,也是必備的知識點,他是以人腦中的神經網路作為啟發,最著名的演算法就是backpropagation演算法,這裡就簡單的整理一下神經網路相關引數,和計算方法。

一、多層向前神經網路(Multilayer Feed-Forward Neural Network)

多層向前神經網路由一下幾個部分組成:
輸入層(input layer),隱藏層(Hidden layer),輸出層(output layer)

這裡寫圖片描述

特點如下:
1、每層由單元(units)組成
2、輸入層是有訓練集的例項特徵向量傳入
3、經過連線接點的權重(weight)傳入下一層,一層的輸出是下一層的輸入
4、隱藏層的個數可以是任意的,輸入層有一層,輸出層有一層
5、每個單元也可以稱之為神經結點,根據生物學來源定義
6、以上成為兩層的神經網路,輸入層是不算在裡面的
7、一層中加權求和,然後根據非線性方程轉化輸出
8、作為多層向前神經網路,理論上,如果有足夠的隱藏層,和足夠的訓練集,可以模擬出任何方程

二、設計神經網路結構

1、使用神經網路訓練資料之前,必須確定神經網路的層數,以及每層單元的個數
2、特徵向量在被傳入輸入層時通常要先標準化到0-1之間(為了加速學習過程)
3、離散型變數可以被編碼成每一個輸入單元對應一個特徵值可能賦的值
比如:特徵值A可能取三個值(a0, a1, a2), 可以使用3個輸入單元來代表A。
如果A=a0, 那麼代表a0的單元值就取1, 其他取0;
如果A=a1, 那麼代表a1de單元值就取1,其他取0,以此類推
4、神經網路即可以用來做分類(classification)問題,也可以解決迴歸(regression)問題
(1)對於分類問題,如果是2類,可以用一個輸出單元表示(0和1分別代表2類),如果多餘2類,則每一個類別用一個輸出單元表示
(2)沒有明確的規則來設計最好有多少個隱藏層,可以根據實驗測試和誤差以及精準度來實驗並改進

三、交叉驗證方法(cross-Validation)

這裡有一堆資料,我們把他切成3個部分(當然還可以分的更多)
第一部分做測試集,二三部分做訓練集,算出準確度;
第二部分做測試集,一三部分做訓練集,算出準確度;
第三部分做測試集,一二部分做訓練集,算出準確度;
之後算出三個準確度的平局值,作為最後的準確度,如下圖:

這裡寫圖片描述

四、backpropagation演算法

他是通過迭代性來處理訓練集中的例項,對比經過神經網路後,輸人層預測值與真實值之間的誤差,再通過反向法(從輸出層=>隱藏層=>輸入層)以最小化誤差來更新每個連線的權重。

- 演算法的詳細介紹
輸入:D(資料集),學習率(learning rate),一個多層向前神經網路
輸出:一個訓練好的神經網路(a trained neural network)

1.初始化權重和偏向:隨機初始化在-1到1之間,或者-0.5到0.5之間,每個單元有一個偏向
2.開始對資料進行訓練,步驟如下:
這裡寫圖片描述

  1. 由輸入層向前傳送

    這裡寫圖片描述
    Ij:要對其進行非線性轉化,為下一單元的值
    Oi:是輸入的值
    wij:為每個單元到下一個單元連線之間的權重
    θj:偏向

    對Ij進行非線性轉化,得到下一個單元的值
    這裡寫圖片描述

  2. 根據誤差(error)反向傳送

    對於輸出層: 這裡寫圖片描述
    對於隱藏層:這裡寫圖片描述
    Errj:用於更新偏向
    Oj:為輸出的值
    Tj:為標籤的值

    權重更新:這裡寫圖片描述
    括號裡為小l ,是學習率(learning rate)

    偏向更新:這裡寫圖片描述

  3. 終止條件
    方法一:權重的更新低於某個閾值
    方法二:預測的錯誤率低於某個閾值
    方法三:達到預設一定的迴圈次數

五、Backpropagation演算法舉例

這裡寫圖片描述
w14…w56這些權重是初始化隨機生成的,同樣θ4到θ6也是隨機生成的
將x的值與每一項的權重相乘求和算出Ij,之後對Ij進行非線性轉化,求出輸出值

這裡寫圖片描述

之後算出結點上的誤差,並對其更新,在如此反覆

相關推薦

神經網路演算法介紹Nerual NetWorks

神經網路是所謂深度學習的一個基礎,也是必備的知識點,他是以人腦中的神經網路作為啟發,最著名的演算法就是backpropagation演算法,這裡就簡單的整理一下神經網路相關引數,和計算方法。 一、多層向前神經網路(Multilayer Feed-Forward

視覺化神經網路翻譯模型seq2seq+attention

翻譯自(https://jalammar.github.io/visualizing-neural-machine-translation-mechanics-of-seq2seq-models-with-attention/) Sequence-to-sequence(序列到序列)是一

Apriori演算法介紹Python實現

導讀: 隨著大資料概念的火熱,啤酒與尿布的故事廣為人知。我們如何發現買啤酒的人往往也會買尿布這一規律?資料探勘中的用於挖掘頻繁項集和關聯規則的Apriori演算法可以告訴我們。本文首先對Apriori演算法進行簡介,而後進一步介紹相關的基本概念,之後詳細的介紹Apriori演算法的具體策略和步驟,最後給

深度學習筆記——深度學習框架TensorFlow之DNN深度神經網路的實現十四

DNN與CNN的本質差不多,只不過CNN加上了卷積層C以及池化層。做了卷積操作,引數共享減少了網路之間的連線引數。 DNN就是去掉C之後,使用全連線層+dropout下降+relu啟用,一層一層的WX+B的網路模式。

長文 | LSTM和迴圈神經網路基礎教程PDF下載

來自公眾號 機器學習演算法與Python學習目錄:前言前饋網路回顧迴圈網路時間反向傳播BPTT梯

Tensorflow 入門學習12.卷積神經網路原理2.池化

本文學習內容來自《TensorFlow深度學習應用實踐》《深度學習》 池化的概念 卷積網路中一個典型層包含三級。在第一級中,這一層並行地計算多個卷積產生一組線性啟用響應。在第二級中,每一個線性啟用響應將會通過一個非線性的啟用函式,例如整流線性啟用函式。這一級有時

神經網路學習筆記十二:異或問題

       在Rosenblatt單層感知機中已經對異或問題做了介紹,並論證說明了只適用於線性分類問題的Rosenblatt感知機無法對異或問題進行分類。然而非線性問題是普遍存在的,下面就使用帶隱藏節點的神經網路來解決異或問題。 異或問題:         異或(X

深度學習與神經網路-壓縮感知Compressive Sensing學習

壓縮感知(壓縮感測,Compressive Sensing)理論是近年來訊號處理領域誕生的一種新的訊號處理理論,由D. Donoho(美國科學院院士)、E. Candes(Ridgelet, Curvelet創始人)及華裔科學家T. Tao(2006年菲爾茲獎獲得者)等人提出

神經網路詳解基本完成

Fill you up with petrol 概述 人工神經網路(artificial neural network,ANN),簡稱神經網路(neural network,NN),是一種模仿生物神經網路的結構和功能的數學模型或計算模型。神經網路由大量的人工

6.1 神經網路演算法(Nerual Networks)

1. 背景:      1.1 以人腦中的神經網路為啟發,歷史上出現過很多不同版本      1.2 最著名的演算法是1980年的 backpropagation  2. 多層向前神經網路(Multilayer Feed-Forward Neural Network

6.1神經網路演算法Neural Networks

1.背景:   1.1 以人腦中的的神經網路為啟發,歷史上出現過很多不同版本   1.2 最著名的演算法是1980年的backpropagation 2.多層向前神經網路(Multilayer Feed-Forard Neural Network)   2.1 Backpro

深度學習 --- 隨機神經網路詳解玻爾茲曼機學習演算法、執行演算法

BM網路的學習演算法 (1)  學習過程       通過有導師學習,BM網路可以對訓練集中各模式的概率分佈進行模擬,從而實現聯想記憶.學習的目的是通過調整網路權值使訓練集中的模式在網路狀態中以相同的概率再現.學習過程可分為兩個階段;第一階段

長短期記憶LSTM系列_2.1~2.3、用遞迴神經網路簡要介紹序列預測模型

前置課程 https://machinelearningmastery.com/sequence-prediction/ https://machinelearningmastery.com/gentle-introduction-long-short-term-memory-network

人工智慧起步-反向回饋神經網路演算法BP演算法

        人工智慧分為強人工與弱人工。         弱人工智慧就包括我們常用的語音識別,影象識別等,或者為了某一個固定目標實現的人工演算法

機器學習筆記——神經網路neural networks

神經網路 非線性假設 對於非線性假設而言,當特徵足夠多的時候,如果我們仍採用多項式進行線性擬合,那麼我們將獲得數量非常龐大的高次項,這使得計算變得非常複雜。出於這個原因,我們受到人腦的啟發,提出了神經網路 我們可以將logistic單元表示成神經元的形式,中間的神經元代表假設函式h

BP神經網路演算法原理推導數學建模進階演算法/機器學習

       BP神經網路(Back-Propagation Network)演算法原理推導 簡介        反向傳播網路(Back-Propagation Network)簡稱BP網路,基於誤差反向傳播演算法(BP演算法)的一種多層網路。      

斯坦福cs231n學習筆記11------神經網路訓練細節梯度下降演算法大總結/SGD/Momentum/AdaGrad/RMSProp/Adam/牛頓法

神經網路訓練細節系列筆記: 通過學習,我們知道,因為訓練神經網路有個過程: <1>Sample 獲得一批資料; <2>Forward 通過計算圖前向傳播,獲得loss; <3>Backprop 反向傳播計算梯度,這

一個藝術風格化的神經網路演算法(A Neural Algorithm of Artistic Style)

文章地址:《A Neural Algorithm of Artistic Style》. arXiv:1508.06576   對於好的藝術作品,尤其是畫作,人們已經掌握了通過在一幅影象的內容和風格中構成複雜的相互影響來創作獨特的視覺體驗的技能。因此這個過

機器學習與神經網路:BP神經網路介紹和Python程式碼實現

前言:本篇博文主要介紹BP神經網路的相關知識,採用理論+程式碼實踐的方式,進行BP神經網路的學習。本文首先介紹BP神經網路的模型,然後介紹BP學習演算法,推導相關的數學公式,最後通過Python程式碼實現BP演算法,從而給讀者一個更加直觀的認識。 1.BP網路模型 為了將理

Recurrent Layers——介紹遞迴神經網路原理介紹

作者:YJango 連結:https://zhuanlan.zhihu.com/p/24720659 來源:知乎 著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。大家貌似都叫Recurrent Neural Networks為迴圈神經網路。 我之前是查維基百科的緣故,所以一直叫它遞迴網路。