1. 程式人生 > >記一下機器學習筆記 多層感知機的反向傳播演算法

記一下機器學習筆記 多層感知機的反向傳播演算法

《神經網路與機器學習》第4章前半段筆記以及其他地方看到的東西的混雜…第2、3章的內容比較古老預算先跳過。
不得不說幸虧反向傳播的部分是《神機》裡邊人話比較多的部分,看的時候沒有消化不良。

多層感知機

書裡前三章的模型的侷限都很明顯,對於非線性可分問題苦手,甚至簡單的異或都弄不了。於是多層感知機(也就是傳說中的神經網路)就被髮明瞭出來對付這個問題。

多層感知機就是由一系列的感知機,或者說神經元組成,每個神經元都接受若干的輸入(樹突)併產生一個輸出(軸突)。
這些神經元被分成若干層,每一層的神經元的輸出都被作為下一層的神經元的輸入,直到最外一層。這時最外一層的輸出就是整個神經網路的輸出。

由於神經網路的神經元數目變多了,因此可儲存的資訊量也增加了,複雜度也提高了,可以解決一些更難的,感知機和LSM演算法解決不了的問題。

神經網路工作原理

神經網路中,每個神經元都具備一系列權值引數和一個啟用函式 ϕ(x)。神經元的工作方式如下:
設一系列輸入值為x1,x2,x3,...,xm權值引數w0,w1,w2,w3,...,wmw0為偏置項。

定義區域性誘導域 v=w0+w1x1+w2x2+...+wmxm=wTx
其中 x=[1,x1,x2,x3,...,xm]T為輸入向量,w=[w0,w1,w2,w3,...,wm]T為權值向量。

然後啟用函式將區域性誘導域v的值從整個實數集對映到某個需要的區間,作為神經元的輸出值。比如啟用函式為符號函式s

ign()的話,那麼就會使得當v大於0時輸出1,小於等於0時輸出-1。
於是輸出 y=ϕ(v)=ϕ(wTx)=ϕ(w0+w1x1+w2x2+...+wmxm)

啟用函式的形式有很多,最常用的是sigmoid函式:

sigmoid(x)=11+eax其中a為引數。它將輸入值從實數集對映到0和1之間的範圍內。
這裡寫圖片描述

以及雙曲正切函式:

tanh(x)=exexex+ex這個則是從實數集對映到-1到1之間。
這裡寫圖片描述

於是整個神經網路的工作方式如下:

  1. 首先有一系列輸入x1,x2,x3,...,xm,加上作為偏置的1記為輸入向量xx=[1,x1,x2,x3,...,xm]T

  2. x輸入給網路第一層的每個神經元各自產生輸出,設第一層有p個神經元,那麼就會產生p個輸出y

    11,y12,y13,...,y1p(上標1表示其出自第一層神經元)。
    其中y11=ϕ(v11)=ϕ(w1T1x)y

    相關推薦

    一下機器學習筆記 感知反向傳播演算法

    《神經網路與機器學習》第4章前半段筆記以及其他地方看到的東西的混雜…第2、3章的內容比較古老預算先跳過。 不得不說幸虧反向傳播的部分是《神機》裡邊人話比較多的部分,看的時候沒有消化不良。 多層感知機 書裡前三章的模型的侷限都很明顯,對於非線性可分問

    一下機器學習筆記 Rosenblatt感知

    一入ML深似海啊… 這裡主要是《神經網路與機器學習》(Neural Networks and Learning Machines,以下簡稱《神機》)的筆記,以及一些周志華的《機器學習》的內容,可能夾雜有自己的吐槽,以及自己用R語言隨便擼的實現。 話說這個《神

    一下機器學習筆記 最小均方(LMS)演算法

    這裡是《神經網路與機器學習》第三章的筆記… 最小均方演算法,即Least-Mean-Square,LMS。其提出受到感知機的啟發,用的跟感知機一樣的線性組合器。 在意義上一方面LMS曾被用在了濾波器上,另一方面對於LMS的各種最優化方式為反向傳播演算法提供了

    機器學習筆記 perceptron(感知) 在ex4Data資料集上的實現

    慣例的ML課堂作業,第四個也是最後一個線性分類模型,感知機。 感知機是一個非常簡單的線性分類模型,簡單來說就是一個神經元,其啟用函式是門限函式,有n個輸入和一個輸出,和神經元結構十分相似。 感知機的損失函式是看作是分類錯的所有樣本的輸出值的和 hw的輸出就是

    深度學習感知MLP數字識別的程式碼實現

    深度學習我看的是neural network and deep learning 這本書,這本書寫的真的非常好,是我的導師推薦的。這篇部落格裡的程式碼也是來自於這,我最近是在學習Pytorch,學習的過程我覺得還是有必要把程式碼自己敲一敲,就像當初學習機器學習一

    機器學習筆記21】神經網路(感知)

    【參考資料】 【1】《深度學習》 花書 6.1 亦或問題 由於單層感知機相當於在一個空間增加了一個超平面進行分類,那麼對於像亦或問題這樣的情況則無法完成。 因此在多層感知機中增加了一個隱藏層,即一個啟用函式。現代神經網路最常用的啟用函式是整流線性單元,ReL

    Hulu機器學習問題與解答系列 | 十五:感知與布爾函數

    功能 目標 機器學習 分享圖片 研究 vue gic per 發展 今天沒有別的話,好好學習,多多轉發! 本期內容是 【多層感知機與布爾函數】 場景描述 神經網絡概念的誕生很大程度上受到了神經科學的啟發。生物學研究表明,大腦皮層的感知與計算功能是通過分多層實現的

    機器學習】基於sklearn-MLP感知例項

    在之前的【【深度學習】DNN神經網路模型】一文中弄清楚MLP基礎由來,本次進一步基於sklearn機器學習庫來實現該過程。 首先看一下簡單的MLP例項: 下面同樣基於手寫MNIST資料集來進行MLP例項: MLP引數眾多,以下一一說明: hidden_layer_sizes :元祖格式,長度

    TensorFlow學習筆記(4)--實現感知(MNIST資料集)

    前面使用TensorFlow實現一個完整的Softmax Regression,並在MNIST資料及上取得了約92%的正確率。現在建含一個隱層的神經網路模型(多層感知機)。 import tensorflow as tf import numpy as np

    深度學習筆記二:感知(MLP)與神經網路結構

    為了儘量能形成系統的體系,作為最基本的入門的知識,請參考一下之前的兩篇部落格: 神經網路(一):概念 神經網路(二):感知機 上面的兩篇部落格讓你形成對於神經網路最感性的理解。有些看不懂的直接忽略就行,最基本的符號的記法應該要會。後面會用到一這兩篇部落格中

    感知-印第安人糖尿病診斷-基於keras的python學習筆記(一)

    版權宣告:本文為博主原創文章,未經博主允許不得轉載。https://blog.csdn.net/weixin_44474718/article/details/86219792 函式解釋 np.random.seed()函式,每次執行程式碼時設定相同的seed,則每次生成的隨機數也相

    TensorFlow學習筆記(二):手寫數字識別之感知

    在【TensorFlow學習筆記(一):手寫數字識別之softmax迴歸】中: 我使用softmax迴歸演算法識別mnist資料集的手寫數字,在我機器上的mnist測試集上最好結果是 92.9% 。

    深度學習第三課 感知

            多層感知機針對於中間有隱藏層的神經網路結構,對於資料的每一層傳遞都會相應的多一層[w,b],這中間使用的傳參函式稱之為啟用函式,如果啟用函式是線性的話,那麼就沒什麼意義,無論中間有多少層,其實和沒有隱藏層是一樣的,所以需要非線性的函式作為啟用函

    【深度學習感知器解決異或問題

    利用Python 建立兩層感知器,利用W-H學習規則訓練網路權值: #!/usr/bin/env python # -*- coding:utf-8 -*- import random import numpy as np import matplotl

    深度學習基礎--不同網路種類--感知MLP

    多層感知機MLP   BP演算法的方面掀起了基於統計模型的機器學習熱潮,那時候人工神經網路被叫做“多層感知機”   可以擺脫早期離散傳輸函式的束縛,使用sigmoid或tanh等連續函式模擬神經元對激勵的響應,在訓練演算法上則使用Werbos發明的反向傳播B

    深度學習理論基礎6-感知

    廢話不多說,人生甜短,讓我們立即開始多層感知機的學習吧。為了迴圈漸進的理解多層感知機,我們有必要再把閘電路拿出來把玩一番。 這些是閘電路的符號表示,我們馬上就用。你隨便記3秒鐘就好。 吼吼,你是不是在想,難道這就是異或門?沒錯哦。這就是。不信你可以捋一下。 是不是經過翻過來調

    深度學習基礎(二)—— 從感知(MLP)到卷積神經網路(CNN)

    經典的多層感知機(Multi-Layer Perceptron)形式上是全連線(fully-connected)的鄰接網路(adjacent network)。 That is, every neuron in the network is connec

    單層神經網路、感知、深度學習的總結

    關於神經網路的幾點思考:單層——多層——深度 神經網路本質上是一個逼近器,一個重要的基本屬性就是通用逼近屬性。 通用逼近屬性: 1989年,George Cybenko發表文章“Approximation by Superpositions of a Sigmoidal

    深度學習Deeplearning4j 入門實戰(5):基於感知的Mnist壓縮以及在Spark實現

    在上一篇部落格中,我們用基於RBM的的Deep AutoEncoder對Mnist資料集進行壓縮,應該說取得了不錯的效果。這裡,我們將神經網路這塊替換成傳統的全連線的前饋神經網路對Mnist資料集進行壓縮,看看兩者的效果有什麼異同。整個程式碼依然是利用Deeplearnin

    斯坦福大學機器學習筆記——變數的線性迴歸以及梯度下降法注意事項(內有程式碼)

    在前面部落格中介紹了單變數線性迴歸的實現過程,本文將介紹多變數線性迴歸演算法。 兩者的對比如下: 1.資料方面的差異: 單變數線性迴歸資料: 多變數線性迴歸資料: 對於單變數線性迴歸來說,只有一個特徵(房子的大小),而對於多變數線性特徵迴歸特徵