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

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

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

機器學(xué)習(xí)算法神經(jīng)網(wǎng)絡(luò)入門

電子工程師 ? 來源:fqj ? 2019-06-03 10:58 ? 次閱讀

眼下最熱門的技術(shù),絕對是人工智能。人工智能的底層模型是"神經(jīng)網(wǎng)絡(luò)"(neural network)。許多復(fù)雜的應(yīng)用(比如模式識別、自動控制)和高級模型(比如深度學(xué)習(xí))都基于它。學(xué)習(xí)人工智能,一定是從它開始。

什么是神經(jīng)網(wǎng)絡(luò)呢?網(wǎng)上似乎缺乏通俗的解釋。

前兩天,我讀到 Michael Nielsen 的開源教材《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》(Neural Networks and Deep Learning),意外發(fā)現(xiàn)里面的解釋非常好懂。下面,我就按照這本書,介紹什么是神經(jīng)網(wǎng)絡(luò)。

這里我要感謝優(yōu)達(dá)學(xué)城的贊助,本文結(jié)尾有他們的《前端開發(fā)(進(jìn)階)》課程的消息,歡迎關(guān)注。

一、感知器

歷史上,科學(xué)家一直希望模擬人的大腦,造出可以思考的機器。人為什么能夠思考?科學(xué)家發(fā)現(xiàn),原因在于人體的神經(jīng)網(wǎng)絡(luò)。

機器學(xué)習(xí)算法神經(jīng)網(wǎng)絡(luò)入門

外部刺激通過神經(jīng)末梢,轉(zhuǎn)化為電信號,轉(zhuǎn)導(dǎo)到神經(jīng)細(xì)胞(又叫神經(jīng)元)。

無數(shù)神經(jīng)元構(gòu)成神經(jīng)中樞。

神經(jīng)中樞綜合各種信號,做出判斷。

人體根據(jù)神經(jīng)中樞的指令,對外部刺激做出反應(yīng)。

既然思考的基礎(chǔ)是神經(jīng)元,如果能夠"人造神經(jīng)元"(artificial neuron),就能組成人工神經(jīng)網(wǎng)絡(luò),模擬思考。上個世紀(jì)六十年代,提出了最早的"人造神經(jīng)元"模型,叫做"感知器"(perceptron),直到今天還在用。

機器學(xué)習(xí)算法神經(jīng)網(wǎng)絡(luò)入門

上圖的圓圈就代表一個感知器。它接受多個輸入(x1,x2,x3...),產(chǎn)生一個輸出(output),好比神經(jīng)末梢感受各種外部環(huán)境的變化,最后產(chǎn)生電信號。

為了簡化模型,我們約定每種輸入只有兩種可能:1 或 0。如果所有輸入都是1,表示各種條件都成立,輸出就是1;如果所有輸入都是0,表示條件都不成立,輸出就是0。

二、感知器的例子

下面來看一個例子。城里正在舉辦一年一度的游戲動漫展覽,小明拿不定主意,周末要不要去參觀。

他決定考慮三個因素。天氣:周末是否晴天?同伴:能否找到人一起去?價格:門票是否可承受?

這就構(gòu)成一個感知器。上面三個因素就是外部輸入,最后的決定就是感知器的輸出。如果三個因素都是 Yes(使用1表示),輸出就是1(去參觀);如果都是 No(使用0表示),輸出就是0(不去參觀)。

三、權(quán)重和閾值

看到這里,你肯定會問:如果某些因素成立,另一些因素不成立,輸出是什么?比如,周末是好天氣,門票也不貴,但是小明找不到同伴,他還要不要去參觀呢?

現(xiàn)實中,各種因素很少具有同等重要性:某些因素是決定性因素,另一些因素是次要因素。因此,可以給這些因素指定權(quán)重(weight),代表它們不同的重要性。

天氣:權(quán)重為8

同伴:權(quán)重為4

價格:權(quán)重為4

上面的權(quán)重表示,天氣是決定性因素,同伴和價格都是次要因素。

如果三個因素都為1,它們乘以權(quán)重的總和就是 8 + 4 + 4 = 16。如果天氣和價格因素為1,同伴因素為0,總和就變?yōu)?8 + 0 + 4 = 12。

這時,還需要指定一個閾值(threshold)。如果總和大于閾值,感知器輸出1,否則輸出0。假定閾值為8,那么 12 > 8,小明決定去參觀。閾值的高低代表了意愿的強烈,閾值越低就表示越想去,越高就越不想去。

上面的決策過程,使用數(shù)學(xué)表達(dá)如下。

機器學(xué)習(xí)算法神經(jīng)網(wǎng)絡(luò)入門

上面公式中,x表示各種外部因素,w表示對應(yīng)的權(quán)重。

四、決策模型

單個的感知器構(gòu)成了一個簡單的決策模型,已經(jīng)可以拿來用了。真實世界中,實際的決策模型則要復(fù)雜得多,是由多個感知器組成的多層網(wǎng)絡(luò)。

機器學(xué)習(xí)算法神經(jīng)網(wǎng)絡(luò)入門

上圖中,底層感知器接收外部輸入,做出判斷以后,再發(fā)出信號,作為上層感知器的輸入,直至得到最后的結(jié)果。(注意:感知器的輸出依然只有一個,但是可以發(fā)送給多個目標(biāo)。)

這張圖里,信號都是單向的,即下層感知器的輸出總是上層感知器的輸入。現(xiàn)實中,有可能發(fā)生循環(huán)傳遞,即 A 傳給 B,B 傳給 C,C 又傳給 A,這稱為"遞歸神經(jīng)網(wǎng)絡(luò)"(recurrent neural network),本文不涉及。

五、矢量化

為了方便后面的討論,需要對上面的模型進(jìn)行一些數(shù)學(xué)處理。

外部因素x1、x2、x3寫成矢量,簡寫為x

權(quán)重w1、w2、w3也寫成矢量(w1, w2, w3),簡寫為w

定義運算w?x = ∑ wx,即w和x的點運算,等于因素與權(quán)重的乘積之和

定義b等于負(fù)的閾值b = -threshold

感知器模型就變成了下面這樣。

機器學(xué)習(xí)算法神經(jīng)網(wǎng)絡(luò)入門

六、神經(jīng)網(wǎng)絡(luò)的運作過程

一個神經(jīng)網(wǎng)絡(luò)的搭建,需要滿足三個條件。

輸入和輸出

權(quán)重(w)和閾值(b)

多層感知器的結(jié)構(gòu)

也就是說,需要事先畫出上面出現(xiàn)的那張圖。

機器學(xué)習(xí)算法神經(jīng)網(wǎng)絡(luò)入門

其中,最困難的部分就是確定權(quán)重(w)和閾值(b)。目前為止,這兩個值都是主觀給出的,但現(xiàn)實中很難估計它們的值,必需有一種方法,可以找出答案。

這種方法就是試錯法。其他參數(shù)都不變,w(或b)的微小變動,記作Δw(或Δb),然后觀察輸出有什么變化。不斷重復(fù)這個過程,直至得到對應(yīng)最精確輸出的那組w和b,就是我們要的值。這個過程稱為模型的訓(xùn)練。

機器學(xué)習(xí)算法神經(jīng)網(wǎng)絡(luò)入門

因此,神經(jīng)網(wǎng)絡(luò)的運作過程如下。

確定輸入和輸出

找到一種或多種算法,可以從輸入得到輸出

找到一組已知答案的數(shù)據(jù)集,用來訓(xùn)練模型,估算w和b

一旦新的數(shù)據(jù)產(chǎn)生,輸入模型,就可以得到結(jié)果,同時對w和b進(jìn)行校正

可以看到,整個過程需要海量計算。所以,神經(jīng)網(wǎng)絡(luò)直到最近這幾年才有實用價值,而且一般的 CPU 還不行,要使用專門為機器學(xué)習(xí)定制的 GPU 來計算。

七、神經(jīng)網(wǎng)絡(luò)的例子

下面通過車牌自動識別的例子,來解釋神經(jīng)網(wǎng)絡(luò)。

所謂"車牌自動識別",就是高速公路的探頭拍下車牌照片,計算機識別出照片里的數(shù)字。

機器學(xué)習(xí)算法神經(jīng)網(wǎng)絡(luò)入門

這個例子里面,車牌照片就是輸入,車牌號碼就是輸出,照片的清晰度可以設(shè)置權(quán)重(w)。然后,找到一種或多種圖像比對算法,作為感知器。算法的得到結(jié)果是一個概率,比如75%的概率可以確定是數(shù)字1。這就需要設(shè)置一個閾值(b)(比如85%的可信度),低于這個門檻結(jié)果就無效。

一組已經(jīng)識別好的車牌照片,作為訓(xùn)練集數(shù)據(jù),輸入模型。不斷調(diào)整各種參數(shù),直至找到正確率最高的參數(shù)組合。以后拿到新照片,就可以直接給出結(jié)果了。

八、輸出的連續(xù)性

上面的模型有一個問題沒有解決,按照假設(shè),輸出只有兩種結(jié)果:0和1。但是,模型要求w或b的微小變化,會引發(fā)輸出的變化。如果只輸出0和1,未免也太不敏感了,無法保證訓(xùn)練的正確性,因此必須將"輸出"改造成一個連續(xù)性函數(shù)。

這就需要進(jìn)行一點簡單的數(shù)學(xué)改造。

首先,將感知器的計算結(jié)果wx + b記為z。

z=wx+b

然后,計算下面的式子,將結(jié)果記為σ(z)。

σ(z)=1/(1+e^(-z))

這是因為如果z趨向正無窮z → +∞(表示感知器強烈匹配),那么σ(z) → 1;如果z趨向負(fù)無窮z → -∞(表示感知器強烈不匹配),那么σ(z) → 0。也就是說,只要使用σ(z)當(dāng)作輸出結(jié)果,那么輸出就會變成一個連續(xù)性函數(shù)。

原來的輸出曲線是下面這樣。

機器學(xué)習(xí)算法神經(jīng)網(wǎng)絡(luò)入門

現(xiàn)在變成了這樣。

機器學(xué)習(xí)算法神經(jīng)網(wǎng)絡(luò)入門

實際上,還可以證明Δσ滿足下面的公式。

機器學(xué)習(xí)算法神經(jīng)網(wǎng)絡(luò)入門

即Δσ和Δw和Δb之間是線性關(guān)系,變化率是偏導(dǎo)數(shù)。這就有利于精確推算出w和b的值了。

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

原文標(biāo)題:機器學(xué)習(xí)---算法---神經(jīng)網(wǎng)絡(luò)入門

文章出處:【微信號:www_51qudong_com,微信公眾號:機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    神經(jīng)網(wǎng)絡(luò)教程(李亞非)

    神經(jīng)元  第3章 EBP網(wǎng)絡(luò)(反向傳播算法)  3.1 含隱層的前饋網(wǎng)絡(luò)學(xué)習(xí)規(guī)則  3.2 Sigmoid激發(fā)函數(shù)下的BP
    發(fā)表于 03-20 11:32

    分享機器學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的工作流程和相關(guān)操作

    機器學(xué)習(xí)算法篇--卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)(Convolutional Neural Network)
    發(fā)表于 02-14 16:37

    【專輯精選】人工智能之神經(jīng)網(wǎng)絡(luò)教程與資料

    電子發(fā)燒友總結(jié)了以“神經(jīng)網(wǎng)絡(luò)”為主題的精選干貨,今后每天一個主題為一期,希望對各位有所幫助!(點擊標(biāo)題即可進(jìn)入頁面下載相關(guān)資料)人工神經(jīng)網(wǎng)絡(luò)算法學(xué)習(xí)方法與應(yīng)用實例(pdf彩版)卷積
    發(fā)表于 05-07 19:18

    神經(jīng)網(wǎng)絡(luò)資料

    基于深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)算法
    發(fā)表于 05-16 17:25

    機器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)參數(shù)的代價函數(shù)

    吳恩達(dá)機器學(xué)習(xí)筆記之神經(jīng)網(wǎng)絡(luò)參數(shù)的反向傳播算法
    發(fā)表于 05-22 15:11

    【案例分享】基于BP算法的前饋神經(jīng)網(wǎng)絡(luò)

    }或o koko_{k})的誤差神經(jīng)元偏倚的變化量:ΔΘ ΔΘ Delta Theta=學(xué)習(xí)步長η ηeta × ×imes 乘以神經(jīng)元的誤差BP神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 07-21 04:00

    神經(jīng)網(wǎng)絡(luò)和反向傳播算法

    03_深度學(xué)習(xí)入門_神經(jīng)網(wǎng)絡(luò)和反向傳播算法
    發(fā)表于 09-12 07:08

    反饋神經(jīng)網(wǎng)絡(luò)算法是什么

    反饋神經(jīng)網(wǎng)絡(luò)算法
    發(fā)表于 04-28 08:36

    卷積神經(jīng)網(wǎng)絡(luò)簡介:什么是機器學(xué)習(xí)?

    抽象人工智能 (AI) 的世界正在迅速發(fā)展,人工智能越來越多地支持以前無法實現(xiàn)或非常難以實現(xiàn)的應(yīng)用程序。本系列文章解釋了卷積神經(jīng)網(wǎng)絡(luò) (CNN) 及其在 AI 系統(tǒng)中機器學(xué)習(xí)中的重要性。CNN 是從
    發(fā)表于 02-23 20:11

    不可錯過!人工神經(jīng)網(wǎng)絡(luò)算法、PID算法、Python人工智能學(xué)習(xí)等資料包分享(附源代碼)

    為了方便大家查找技術(shù)資料,電子發(fā)燒友小編為大家整理一些精華資料,讓大家可以參考學(xué)習(xí),希望對廣大電子愛好者有所幫助。 1.人工神經(jīng)網(wǎng)絡(luò)算法學(xué)習(xí)方法與應(yīng)用實例(pdf彩版) 人工
    發(fā)表于 09-13 16:41

    BP神經(jīng)網(wǎng)絡(luò)模型與學(xué)習(xí)算法

    BP神經(jīng)網(wǎng)絡(luò)模型與學(xué)習(xí)算法
    發(fā)表于 09-08 09:42 ?10次下載
    BP<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>模型與<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>算法</b>

    基于脈沖神經(jīng)網(wǎng)絡(luò)的遷移學(xué)習(xí)算法

    使用脈沖序列進(jìn)行數(shù)據(jù)處理的脈沖神經(jīng)網(wǎng)絡(luò)具有優(yōu)異的低功耗特性,但由于學(xué)習(xí)算法不成熟,多層網(wǎng)絡(luò)練存在收斂困難的問題。利用反向傳播網(wǎng)絡(luò)具有
    發(fā)表于 05-24 16:03 ?15次下載

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

    在介紹卷積神經(jīng)網(wǎng)絡(luò)之前,我們先回顧一下神經(jīng)網(wǎng)絡(luò)的基本知識。就目前而言,神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)算法的核心,我們所熟知的很多深度
    的頭像 發(fā)表于 02-23 09:14 ?3105次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)算法機器算法

    卷積神經(jīng)網(wǎng)絡(luò)算法機器算法嗎? 卷積神經(jīng)網(wǎng)絡(luò)算法機器
    的頭像 發(fā)表于 08-21 16:49 ?738次閱讀

    神經(jīng)網(wǎng)絡(luò)算法的優(yōu)缺點有哪些

    神經(jīng)網(wǎng)絡(luò)算法是一種模擬人腦神經(jīng)元結(jié)構(gòu)的計算模型,廣泛應(yīng)用于機器學(xué)習(xí)、深度學(xué)習(xí)、圖像識別、語音識別
    的頭像 發(fā)表于 07-03 09:47 ?516次閱讀