一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

從數(shù)學(xué)角度來充分了解神經(jīng)網(wǎng)絡(luò)是如何工作的

nlfO_thejiangme ? 來源:未知 ? 作者:李倩 ? 2018-08-31 11:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

如今,即便是結(jié)構(gòu)非常復(fù)雜的神經(jīng)網(wǎng)絡(luò),只要使用Keras,TensorFlow,MxNet或PyTorch等先進(jìn)的專業(yè)庫和框架,僅需幾行代碼就能輕松實(shí)現(xiàn)。而且,你不需要擔(dān)心權(quán)重矩陣的參數(shù)大小,也不需要刻意記住要用到的激活函數(shù)公式,這可以極大的避免我們走彎路并大大簡化了建立神經(jīng)網(wǎng)絡(luò)的工作。然而,我們還是需要對神經(jīng)網(wǎng)絡(luò)內(nèi)部有足夠的了解,這對諸如網(wǎng)絡(luò)結(jié)構(gòu)選擇、超參數(shù)調(diào)整或優(yōu)化等任務(wù)會有很大幫助。本文我們將會從數(shù)學(xué)角度來充分了解神經(jīng)網(wǎng)絡(luò)是如何工作的。

圖1. 訓(xùn)練集的可視化

如圖1所示,是一個(gè)典型的數(shù)據(jù)二分類問題,兩類的點(diǎn)分別形成了各自的圓,這種數(shù)據(jù)分布對于許多傳統(tǒng)的機(jī)器學(xué)習(xí)算法來說很難,但對于輕量級的神經(jīng)網(wǎng)絡(luò)卻很容易勝任。為了解決該問題,我們將使用具有圖2所示結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),包括五個(gè)全連接層,每層具有不同數(shù)量的單元。對于隱藏層,我們將使用ReLU作為其激活函數(shù),而使用Sigmoid作為輸出層。 這是一個(gè)非常簡單的結(jié)構(gòu),但對于我們要解決的問題而言卻已經(jīng)擁有足夠的能力了。

圖2. 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

正如之前提到的,只需幾行代碼便足以創(chuàng)建和訓(xùn)練一個(gè)模型,就能實(shí)現(xiàn)測試集中的分類結(jié)果幾乎達(dá)到100%的準(zhǔn)確度。而我們的任務(wù),就是為所選的網(wǎng)絡(luò)設(shè)定超參數(shù),如層數(shù)、每層的神經(jīng)元數(shù)、激活函數(shù)和迭代次數(shù)等。現(xiàn)在讓我們看一個(gè)很酷的可視化,來看看學(xué)習(xí)過程究竟發(fā)生了什么。

圖3. 訓(xùn)練過程可視化

什么是神經(jīng)網(wǎng)絡(luò)?

讓我們首先回答這個(gè)關(guān)鍵問題:什么是神經(jīng)網(wǎng)絡(luò)? 它是一種在生物學(xué)啟發(fā)下構(gòu)建計(jì)算機(jī)程序的方法,能夠?qū)W習(xí)并找到數(shù)據(jù)中的聯(lián)系。 如圖2所示,網(wǎng)絡(luò)是按層排列的“神經(jīng)元”的集合,通過權(quán)重互聯(lián)互通的聯(lián)系在了一起形成網(wǎng)絡(luò)。

每個(gè)神經(jīng)元接收一組編號從1到n 的x值作為輸入,用來計(jì)算預(yù)測的y(^)值。向量x實(shí)際上包含來自訓(xùn)練集的m個(gè)樣本之一的特征值。比較重要的是,每個(gè)神經(jīng)元都有自己的一組參數(shù),通常稱為w(權(quán)重列向量)和b(偏差),它們會學(xué)習(xí)過程中發(fā)生變化。每次迭代中,神經(jīng)元基于其當(dāng)前權(quán)重向量w來計(jì)算輸入向量x加權(quán)平均后的值并加上偏置b。最后,該計(jì)算結(jié)果會通過非線性激活函數(shù)g,本文的后面部分會提及一些最常用的激活函數(shù)。

圖4. 單個(gè)神經(jīng)元

我們已經(jīng)對單個(gè)神經(jīng)元的工作有所了解了,下面讓我們再深入學(xué)習(xí)一下如何對整個(gè)神經(jīng)網(wǎng)絡(luò)層進(jìn)行計(jì)算,并將所有圖進(jìn)行向量化,最后將計(jì)算合并到矩陣方程中。 為了統(tǒng)一符號,方程中[l]表示為所選層,下標(biāo)表示該層中神經(jīng)元的索引。

圖5 單層

對單個(gè)單元而言,我們使用x和y(^)分別表示特征列向量和預(yù)測值。然后使用向量a表示相應(yīng)的層,而向量x對應(yīng)層0的輸入,即輸入層。層中的每個(gè)神經(jīng)元根據(jù)以下等式執(zhí)行計(jì)算:

為了清楚起見,以第2層為例展開:

如您所見,對于每層我們都必須執(zhí)行類似操作,那么使用for循環(huán)效率就會不高。為了加快計(jì)算速度,我們將使用向量化的方法。 首先,通過將轉(zhuǎn)置后的權(quán)重w行向量堆疊在一起就 構(gòu)建得到矩陣W. 類似地,我們將層中的每個(gè)神經(jīng)元的偏置堆疊在一起,從而得到列向量b。 這樣我們就能構(gòu)建出一個(gè)矩陣方程,能夠一次便對層中所有神經(jīng)元進(jìn)行計(jì)算。下面我們寫下使用的矩陣和向量的維數(shù)。

到目前為止,得到的方程只適用于這一個(gè)例子。 在神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程中,您通常使用大量數(shù)據(jù),最多可達(dá)數(shù)百萬條。因此,下一步要做的將是跨多個(gè)示例的矢量化。 假設(shè)我們的數(shù)據(jù)集包含m個(gè)示例,每個(gè)示例都具有nx特征。首先,我們將每層的列向量x,a和z組合在一起,分別創(chuàng)建X,A和Z矩陣,然后我們重寫先前的方程。

激活函數(shù)

激活函數(shù)是神經(jīng)網(wǎng)絡(luò)的關(guān)鍵元素之一。沒有它們,我們的神經(jīng)網(wǎng)絡(luò)只能成為線性函數(shù)的組合,就只能具備有限的擴(kuò)展性,也不會擁有超越邏輯回歸的強(qiáng)大能力。引入非線性元素則會使得學(xué)習(xí)過程中擁有更大的靈活性和創(chuàng)建復(fù)雜表示的功能。 激活函數(shù)也會對學(xué)習(xí)速度產(chǎn)生重大影響,這也是主要的選擇標(biāo)準(zhǔn)之一。下圖6中,顯示了一些常用的激活函數(shù)。目前,最受歡迎的隱藏層可能是ReLU。但如果我們要處理二分類問題時(shí),尤其是我們希望從模型返回的值在0到1的范圍內(nèi)時(shí),我們有時(shí)仍然使用sigmoid激活函數(shù)。

圖6.目前最流行的激活函數(shù)及其衍生的圖解

損失函數(shù)

我們主要通過損失函數(shù)的值來觀察學(xué)習(xí)過程的進(jìn)展。一般來說,損失函數(shù)旨在顯示我們與“理想”解決方案的距離。在本文的例子中,我們使用二進(jìn)制交叉熵作為損失函數(shù),但根據(jù)不同的問題可以應(yīng)用不同的函數(shù)。本文使用的函數(shù)由下列公式描述,并且在學(xué)習(xí)過程中其值的變化過程可視化顯示在圖7中,顯示了損失函數(shù)如何隨迭代次數(shù)而準(zhǔn)確度逐漸提高。

圖7.學(xué)習(xí)過程中準(zhǔn)確度和損失函數(shù)值的變化

神經(jīng)網(wǎng)絡(luò)是如何學(xué)習(xí)的?

整個(gè)學(xué)習(xí)過程是圍繞如何調(diào)整參數(shù)W和b使得損失函數(shù)最小化進(jìn)行的。為了實(shí)現(xiàn)這一目標(biāo),我們將結(jié)合微積分并使用梯度下降法來找到函數(shù)最小值。在每次迭代中,相對于神經(jīng)網(wǎng)絡(luò)的每個(gè)參數(shù)計(jì)算損失函數(shù)對應(yīng)的偏導(dǎo)數(shù)值。導(dǎo)數(shù)具備很好的描述函數(shù)斜率的能力。通過可視化,我們可以清楚地看到梯度下降是如何改變參數(shù)變量使得目標(biāo)函數(shù)的值在圖中向下移動(dòng)。如圖8所示,可以看到每次成功的迭代都朝著最小值點(diǎn)方向進(jìn)行。在我們的神經(jīng)網(wǎng)絡(luò)中,它以相同的方式工作,每次迭代時(shí)計(jì)算的梯度代表應(yīng)該移動(dòng)的方向。主要區(qū)別在于,在我們的神經(jīng)網(wǎng)絡(luò)范例中,我們有更多的參數(shù)需要操作。因此變得更為復(fù)雜,那么究竟怎樣才能計(jì)算出最優(yōu)參數(shù)呢?

圖8. 模型訓(xùn)練中的梯度下降

這時(shí)候我們就需要引入計(jì)算最優(yōu)參數(shù)的算法——反向傳播(BP),它允許我們計(jì)算一個(gè)非常復(fù)雜的梯度,也正是我們需要的。根據(jù)以下公式來調(diào)整神經(jīng)網(wǎng)絡(luò)的參數(shù)。

在上面的等式中,α表示學(xué)習(xí)率,這個(gè)超參數(shù)可以自定義調(diào)整。選擇合適的學(xué)習(xí)率是至關(guān)重要的,如果我們將其設(shè)置得太低,那么我們的神經(jīng)網(wǎng)絡(luò)會學(xué)習(xí)得非常慢,如果設(shè)置得太高那么損失函數(shù)就不會到達(dá)最小值了。 dW和db分別是W和b相對于損失函數(shù)的偏導(dǎo)數(shù),可以上述公式推導(dǎo)而的。 dW和db的尺寸也是分別和W和b對應(yīng)的。圖9顯示了神經(jīng)網(wǎng)絡(luò)中的操作順序,我們可以清楚地看到前向傳播和反向傳播是如何協(xié)同工作以優(yōu)化損失函數(shù)的。

圖9. 前向傳播和反向傳播

通過前向傳播的預(yù)測和反向傳播糾正信號,就能不斷的根據(jù)數(shù)據(jù)來調(diào)整網(wǎng)絡(luò),最終實(shí)現(xiàn)了神經(jīng)網(wǎng)絡(luò)從數(shù)據(jù)中學(xué)習(xí)的能力。

在使用神經(jīng)網(wǎng)絡(luò)時(shí),至少要了解內(nèi)部運(yùn)行過程的基礎(chǔ)知識才能得心應(yīng)手。盡管在本文中提到了一些比較重要的知識,但這僅僅是冰山一角。 如果希望深入理解神經(jīng)網(wǎng)絡(luò)的運(yùn)行機(jī)理,請使用像Numpy一樣的基礎(chǔ)工具來編寫一個(gè)自己的小型神經(jīng)網(wǎng)絡(luò)吧!你會得到想不到的收獲!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4814

    瀏覽量

    103578
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4380

    瀏覽量

    64850
  • 神經(jīng)元
    +關(guān)注

    關(guān)注

    1

    文章

    368

    瀏覽量

    18836

原文標(biāo)題:從數(shù)學(xué)角度看神經(jīng)網(wǎng)絡(luò)是如何工作的?

文章出處:【微信號:thejiangmen,微信公眾號:將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    matlab 神經(jīng)網(wǎng)絡(luò) 數(shù)學(xué)建模數(shù)值分析

    matlab神經(jīng)網(wǎng)絡(luò) 數(shù)學(xué)建模數(shù)值分析 精通的可以討論下
    發(fā)表于 09-18 15:14

    關(guān)于開關(guān)磁阻電機(jī)的matlab BP神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)建模方面的資料

    求大神們 給點(diǎn)關(guān)于開關(guān)磁阻電機(jī)的matlab BP神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)建模方面的資料
    發(fā)表于 11-17 11:16

    人工神經(jīng)網(wǎng)絡(luò)算法的學(xué)習(xí)方法與應(yīng)用實(shí)例(pdf彩版)

    的基本處理單元,它是神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)基礎(chǔ)。神經(jīng)元是以生物的神經(jīng)系統(tǒng)的神經(jīng)細(xì)胞為基礎(chǔ)的生物模型。在人們對生物神經(jīng)系統(tǒng)進(jìn)行研究,以探討人工智能的機(jī)
    發(fā)表于 10-23 16:16

    【PYNQ-Z2試用體驗(yàn)】神經(jīng)網(wǎng)絡(luò)基礎(chǔ)知識

    前言前面我們通過notebook,完成了在PYNQ-Z2開發(fā)板上編寫并運(yùn)行python程序。我們的最終目的是基于神經(jīng)網(wǎng)絡(luò),完成手寫的數(shù)字識別。在這之前,有必要講一下神經(jīng)網(wǎng)絡(luò)的基本概念和工作原理。何為
    發(fā)表于 03-03 22:10

    【案例分享】ART神經(jīng)網(wǎng)絡(luò)與SOM神經(jīng)網(wǎng)絡(luò)

    今天學(xué)習(xí)了兩個(gè)神經(jīng)網(wǎng)絡(luò),分別是自適應(yīng)諧振(ART)神經(jīng)網(wǎng)絡(luò)與自組織映射(SOM)神經(jīng)網(wǎng)絡(luò)。整體感覺不是很難,只不過一些最基礎(chǔ)的概念容易理解不清。首先ART神經(jīng)網(wǎng)絡(luò)是競爭學(xué)習(xí)的一個(gè)代表,
    發(fā)表于 07-21 04:30

    人工神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)方法有哪些?

    人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)是一種類似生物神經(jīng)網(wǎng)絡(luò)的信息處理結(jié)構(gòu),它的提出是為了解決一些非線性,非平穩(wěn),復(fù)雜的實(shí)際問題。那有哪些辦法能實(shí)現(xiàn)人工神經(jīng)
    發(fā)表于 08-01 08:06

    BP神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)數(shù)學(xué)知識分享

    一文看懂BP神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)數(shù)學(xué)知識
    發(fā)表于 06-16 07:14

    如何構(gòu)建神經(jīng)網(wǎng)絡(luò)?

    原文鏈接:http://tecdat.cn/?p=5725 神經(jīng)網(wǎng)絡(luò)是一種基于現(xiàn)有數(shù)據(jù)創(chuàng)建預(yù)測的計(jì)算系統(tǒng)。如何構(gòu)建神經(jīng)網(wǎng)絡(luò)?神經(jīng)網(wǎng)絡(luò)包括:輸入層:根據(jù)現(xiàn)有數(shù)據(jù)獲取輸入的層隱藏層:使用反向傳播優(yōu)化輸入變量權(quán)重的層,以提高模型的預(yù)測
    發(fā)表于 07-12 08:02

    卷積神經(jīng)網(wǎng)絡(luò)模型發(fā)展及應(yīng)用

    等[16- 18]進(jìn)行分類。特征提取和分類器的 設(shè)計(jì)是圖片分類等任務(wù)的關(guān)鍵,對分類結(jié)果的好壞 有著最為直接的影響。卷積神經(jīng)網(wǎng)絡(luò)可以自動(dòng)地 訓(xùn)練樣本中學(xué)習(xí)特征并且分類,解決了人工特征設(shè)計(jì) 的局限性
    發(fā)表于 08-02 10:39

    深入卷積神經(jīng)網(wǎng)絡(luò)背后的數(shù)學(xué)原理

    在計(jì)算機(jī)神經(jīng)視覺技術(shù)的發(fā)展過程中,卷積神經(jīng)網(wǎng)絡(luò)成為了其中的重要組成部分,本文對卷積神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)原理進(jìn)行了介紹。
    的頭像 發(fā)表于 04-25 14:52 ?3782次閱讀

    深度:了解訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí)所用到的數(shù)學(xué)過程

    模型的訓(xùn)練、調(diào)參是一項(xiàng)非常費(fèi)時(shí)費(fèi)力的工作,了解神經(jīng)網(wǎng)絡(luò)內(nèi)部的數(shù)學(xué)原理有利于快速找出問題所在。
    的頭像 發(fā)表于 07-15 15:22 ?4352次閱讀
    深度:<b class='flag-5'>了解</b>訓(xùn)練<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>時(shí)所用到的<b class='flag-5'>數(shù)學(xué)</b>過程

    神經(jīng)網(wǎng)絡(luò)技術(shù)(原理篇)

    本文介紹了神經(jīng)網(wǎng)絡(luò)的信息處理原理、基本結(jié)構(gòu)以及神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)模型,簡單闡述了神經(jīng)網(wǎng)絡(luò)如何進(jìn)行學(xué)習(xí)和信息處理,并且通過例子說明神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 04-20 16:44 ?5次下載

    神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)建模中的應(yīng)用

    數(shù)學(xué)建模是一種利用數(shù)學(xué)方法和工具描述和分析現(xiàn)實(shí)世界問題的過程。神經(jīng)網(wǎng)絡(luò)是一種模擬人腦神經(jīng)元結(jié)構(gòu)和功能的計(jì)算模型,可以用于解決各種復(fù)雜問題。
    的頭像 發(fā)表于 07-02 11:29 ?1806次閱讀

    數(shù)學(xué)建模神經(jīng)網(wǎng)絡(luò)模型的優(yōu)缺點(diǎn)有哪些

    數(shù)學(xué)建模神經(jīng)網(wǎng)絡(luò)模型是一種基于人工神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)建模方法,它通過模擬人腦神經(jīng)元的連接和信息傳遞機(jī)制,對復(fù)雜系統(tǒng)進(jìn)行建模和分析。
    的頭像 發(fā)表于 07-02 11:36 ?1622次閱讀

    神經(jīng)網(wǎng)絡(luò)反向傳播算法的原理、數(shù)學(xué)推導(dǎo)及實(shí)現(xiàn)步驟

    神經(jīng)網(wǎng)絡(luò)反向傳播算法(Backpropagation Algorithm)是一種用于訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)的算法,其基本原理是通過梯度下降法最小化損失函數(shù),從而找到網(wǎng)絡(luò)的最優(yōu)權(quán)重和偏置。本
    的頭像 發(fā)表于 07-03 11:16 ?1877次閱讀