<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          最通俗的神經網絡入門教程

          共 3190字,需瀏覽 7分鐘

           ·

          2021-08-19 17:28

          點擊下方卡片,關注“新機器視覺”公眾號

          視覺/圖像重磅干貨,第一時間送達

          來源:阮一峰    鏈接:

          http://www.ruanyifeng.com/blog/2017/07/neural-network.html

          眼下最熱門的技術,絕對是人工智能。


          人工智能的底層模型是"神經網絡"(neural network)。許多復雜的應用(比如模式識別、自動控制)和高級模型(比如深度學習)都基于它。學習人工智能,一定是從它開始。



          什么是神經網絡呢?網上似乎缺乏通俗的解釋。


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


          一、感知器


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



          • 外部刺激通過神經末梢,轉化為電信號,轉導到神經細胞(又叫神經元)。

          • 無數神經元構成神經中樞。

          • 神經中樞綜合各種信號,做出判斷。

          • 人體根據神經中樞的指令,對外部刺激做出反應。


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



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


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


          二、感知器的例子


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


          他決定考慮三個因素。


          • 天氣:周末是否晴天?

          • 同伴:能否找到人一起去?

          • 價格:門票是否可承受?


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


          三、權重和閾值


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


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


          • 天氣:權重為8

          • 同伴:權重為4

          • 價格:權重為4


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


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


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


          上面的決策過程,使用數學表達如下。


          上面公式中,x表示各種外部因素,w表示對應的權重。


          四、決策模型


          單個的感知器構成了一個簡單的決策模型,已經可以拿來用了。真實世界中,實際的決策模型則要復雜得多,是由多個感知器組成的多層網絡。


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


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

          五、矢量化


          為了方便后面的討論,需要對上面的模型進行一些數學處理。


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

          • 權重 w1w2、w3 也寫成矢量 (w1, w2, w3),簡寫為 w

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

          • 定義 b 等于負的閾值 b = -threshold


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

          六、神經網絡的運作過程


          一個神經網絡的搭建,需要滿足三個條件。


          • 輸入和輸出

          • 權重(w)和閾值(b

          • 多層感知器的結構


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



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


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


          因此,神經網絡的運作過程如下。


          • 確定輸入和輸出

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

          • 找到一組已知答案的數據集,用來訓練模型,估算wb

          • 一旦新的數據產生,輸入模型,就可以得到結果,同時對wb進行校正


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



          七、神經網絡的例子


          下面通過車牌自動識別的例子,來解釋神經網絡。



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



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


          一組已經識別好的車牌照片,作為訓練集數據,輸入模型。不斷調整各種參數,直至找到正確率最高的參數組合。以后拿到新照片,就可以直接給出結果了。



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


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


          這就需要進行一點簡單的數學改造。


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


          z = wx + b


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


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


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


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

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

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


          即Δσ和Δw和Δb之間是線性關系,變化率是偏導數。這就有利于精確推算出w和b的值了。


          —版權聲明—

          僅用于學術分享,版權屬于原作者。

          若有侵權,請聯(lián)系微信號:yiyang-sy 刪除或修改!


          —THE END—
          瀏覽 52
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  69av豆花视频 | 蜜桃av秘 无码一区二区三欧 | 五月天婷婷精品视频 | 亚洲AV日韩AV永久无码网站 | 欧美射精视频 |