在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

nlfO_thejiangme ? 來源:未知 ? 作者:李倩 ? 2018-08-31 11:03 ? 次閱讀

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

圖1. 訓練集的可視化

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

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

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

圖3. 訓練過程可視化

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

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

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

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

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

圖5 單層

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

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

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

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

激活函數(shù)

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

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

損失函數(shù)

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

圖7.學習過程中準確度和損失函數(shù)值的變化

神經(jīng)網(wǎng)絡是如何學習的?

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

圖8. 模型訓練中的梯度下降

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

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

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

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

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

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

    關(guān)注

    42

    文章

    4809

    瀏覽量

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

    關(guān)注

    3

    文章

    4371

    瀏覽量

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

    關(guān)注

    1

    文章

    368

    瀏覽量

    18765

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

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

收藏 人收藏

    評論

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

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

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

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

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

    人工神經(jīng)網(wǎng)絡算法的學習方法與應用實例(pdf彩版)

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

    【PYNQ-Z2試用體驗】神經(jīng)網(wǎng)絡基礎知識

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

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

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

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

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

    BP神經(jīng)網(wǎng)絡的基礎數(shù)學知識分享

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    神經(jīng)網(wǎng)絡反向傳播算法(Backpropagation Algorithm)是一種用于訓練多層神經(jīng)網(wǎng)絡的算法,其基本原理是通過梯度下降法最小化損失函數(shù),從而找到網(wǎng)絡的最優(yōu)權(quán)重和偏置。本
    的頭像 發(fā)表于 07-03 11:16 ?1673次閱讀
    主站蜘蛛池模板: 激情丁香六月 | sihu免费观看在线高清 | 牛牛a级毛片在线播放 | 国产精品久久久久久久久福利 | 亚洲日韩色综合视频 | 美国一区二区三区 | 色婷婷六月桃花综合影院 | 男人视频网 | 欧美成人观看免费全部完小说 | 在线日本人观看成本人视频 | 成人综合激情 | 免费国产网站 | 亚洲成av人影片在线观看 | 国产女主播精品大秀系列在线 | tube日本xxxx69 | 99色视频在线观看 | 九九精品久久久久久噜噜 | 天堂网在线新版www 天堂网在线资源 | 免费观看a毛片一区二区不卡 | 日本a级特黄三级三级三级 日本边添边爱边摸边做边爱 | 亚洲国产日韩精品怡红院 | youjizz国产| 免费人成网站在线高清 | 免费不卡毛片 | 天天干2018| 黄色特级录像 | 国产亚洲精品久久yy5099 | 人与牲动交xxxxbbb | 中文字幕一区二区三区四区五区人 | 毛片8 | 日本xxxxx69| 美女扒开尿囗给男人玩的动图 | 日韩毛片在线影视 | 18岁女人毛片 | 日韩成人影院 | 色视频在线免费 | va在线观看 | 国产三级三级三级 | 亚洲黄网址 | 日韩亚 | 亚洲伊人久久综合影院2021 |