如何簡單形象又有趣地弄懂神經網絡是什麼?

電腦和人腦,你以爲哪個更強大?網絡

在生活中你會常常發現許多人但願本身的大腦能像電腦同樣,好比要是真有這機會能把本身改形成鋼鐵俠,他們會火燒眉毛地想抓住。架構

但是回過頭看看過去幾十年科學家們的研究,你會驚訝地發現,他們在一直努力讓電腦更像人腦!怎麼作到呢?藉助神經網絡——它是由幾百個、幾千個甚至幾百萬我的工腦細胞組成的計算機程序,能以與人腦極其類似的方式學習和運轉。那麼到底什麼是神經網絡?它們又是怎麼工做的?咱們更仔細的瞧一瞧!函數

電腦和人腦的區別在哪?

你會常常聽到不少人拿人腦和電腦比來比去,乍一看,這倆確實也有些共同之處。一個正常的人類大腦中約有 1千億個微小的細胞,稱爲神經元(沒有人確切地知道人腦到底有多少個神經元,只是估計數量範圍在 500 億至 5 千億之間),它是人腦基本的信號處理單元。post

每一個神經元都由一個細胞體(它是細胞的核心部分)、一些神經樹突(腦細胞的輸入部分,攜帶傳往細胞體的信息)和軸突(腦細胞的輸出部分,攜帶輸出的信息)等三部分組成。神經元很是很是小,100個細胞體排列起來才1毫米長。性能

在計算機中,和腦細胞有個相同做用的納米級的開關裝置,叫作晶體管。最新式最早進的處理器中大約有 20 億個晶體管,即時是一個很簡單的處理器中也有大約 5 千萬個晶體管,全都集成到一個僅 2.5 釐米大小的方形集成電路上,比郵票還小!學習

這就是爲什麼不能將人腦和電腦直接詳細比較,由於這兩者徹底不是同一種東西。不只僅是由於電腦是個冷冰冰的裝滿二進制數值的金屬盒子,而人腦倒是鮮活的熱乎乎的,充滿了思惟、感受和回憶。真正的不一樣之處在於電腦和人腦的「思考」方式徹底不一樣。電腦中的晶體管只是以必定的順序相對簡單地串聯起來(每一個晶體管都以基本的邏輯門電路和其它幾個晶體管鏈接),而人腦中的神經元倒是以無比複雜的方式並行相連(每個神經元均可能與其上萬個鄰近神經元鏈接)。翻譯

電腦(幾百萬個晶體管以較簡單的方式相連)和人腦(幾百到幾千億個腦細胞以更復發的方式相連)這種本質結構的不一樣,使得它們以很是不一樣的方式「思考」。電腦可以很完美地存儲大量無心義的信息(對於電腦自己來講),根據人們預先輸入的精確指令(程序)以多種不一樣的方式從新整理這些信息。而人的大腦倒是以更加迂迴間接的方式緩慢學習,經常要花幾個月甚至幾年徹底掌握一些複雜的東西。設計

可是,不像電腦,人腦能以驚人的全新方式天然而然地將信息融合在一塊兒,識別原始模式,創建信息聯繫,以徹底不一樣的視角看待事物,這就是貝多芬、莎士比亞等人類創造性的來源。cdn

若是電腦也能像人腦這樣,豈不是很好?有人說,「要有神經網絡」。因而就有了神經網絡。blog

什麼是神經網絡?

神經網絡背後的基本理念就是在電腦內模擬(以一種簡化但較爲可信的方式複製人腦機制)密集相連的腦細胞,從而人們可讓電腦學習東西、識別模式、作出決定,就像人類同樣。神經網絡一個魅力之處就是,你沒必要爲它編寫程序去學習人類的指令:它能徹底自主學習,就像人腦同樣。

可是,它不是人腦。須要着重說明一點,神經網絡(整體上)是一種軟件模擬:它們由很是普通的電腦編寫而成,以普通的晶體管及串聯邏輯門在很是傳統的方式下運行,可是卻可以像幾十億個並行鏈接的腦細胞那樣工做。還沒人試過造一臺電腦,把晶體管按照人腦那種複雜程度同樣相互鏈接。換句話說,神經網絡和人腦的不一樣就比如電腦天氣模型和實際的雲彩、雪花、陽光之間的不一樣。軟件模擬只不過是一系列的代數變量,由數學方程將它們鏈接在一塊兒(簡單來講,就是一堆數字存放在了一個盒子裏,數字的數值是不斷變化的),它對於運行它的載體電腦自己來講,沒有什麼意義,只對編寫它的人類而言纔有意義。

真正的人工神經網絡

在咱們進一步談談神經網絡以前,先了解一些術語。嚴格來說,人們創造的神經網絡叫作人工神經網絡(即ANN),以和人腦中真正的神經網絡相區分(由腦細胞鏈接成的網絡)。你可能也會見過神經網絡還以一些名字出現,好比聯結式機器(該領域也叫聯結主義),平行分散處理器(PDP),思考機器等,但本文咱們會使用「神經網絡」一詞,用它指代「人工神經網絡」。

神經網絡由什麼組成的?

一個典型的神經網絡,由幾個、上百個、上千個甚至幾百萬個稱爲「單元」的人工神經元構成,它們排列在一系列的層中,每一個層之間彼此相連。其中一些神經元叫作「輸入單元」,用來從外界接收各類各樣的信息,神經網絡會用這些信息進行學習、識別模式或進行其它的處理。還有些神經元位於神經網絡的另外一邊,與「輸入單元」方向相反,它們顯示神經網絡對信息的學習情況,那麼這些神經元就叫作「輸出單元」。在「輸入單元」和「輸出」單元之間還有一個或者不少個由「隱藏單元」構成的層,和「輸入層」及「輸出層」層一塊兒造成神經網絡。

大部分神經網絡是徹底鏈接的,意思就是,每一個隱藏單元及輸出單元都和另外一邊的層中的每一個單元鏈接。一個單元和另外一個單元之間的鏈接都以一個叫作「權重」的數字表示,它能夠是正值(當一個單元激發另外一個單元時),也能夠是負值(當一個單元抑制或阻止另外一個單元時)。權重值越高,意味着一個單元對另外一個單元的影響越大(這和人腦細胞經過突觸相互激發的原理同樣)。

因此,一個神經網絡由輸入單元(下圖紅色),隱藏單元(下圖藍色)和輸出單元(下圖黃色)組成。輸入單元所在的層爲輸入層,隱藏單元所在的層爲隱藏層,輸出單元所在的層爲輸出層。全部單元都和兩邊層裏的單元鏈接。輸入信息會首先進入左側的輸入層,而後激發中間的隱藏層,最後從右側輸出層輸出結果。神經網絡會經過學習漸漸調整每兩個單元(神經元)鏈接的力度(權重)

神經網絡是怎麼學東西的?

信息經過兩種方式穿過神經網絡。當神經網絡學習時(被訓練時)或者正常運行(被訓練後),信息模式會經過輸入單元輸入神經網絡中,其中輸入單元會激發隱藏單元,最後到達輸出單元。這種設計的神經網絡被稱爲「前饋網絡」。並不是全部的單元會一直「激活」。每一個單元從其左側的單元中接收輸入信息,而輸入信息會由單元之間鏈接的權重進行相乘。每一個單元經過這種方式將它接收的全部輸入信息進行加算,若是結果大於一個特定的闕值,那麼單元就會「激活」,並激發和它鏈接的單元(在其右側)。

談到神經網絡的學習,就要涉及到一個叫作「反饋」的東西。就像小孩子經過大人告訴他們作的是對仍是錯學習同樣。實際上,咱們會一直用到反饋。這裏舉個簡單的例子,想一想你頭一回學踢足球的情形,你把球踢向球門,你的大腦會緊盯着球的走向和軌跡,注意球還差多少就能進球門了。下一次再踢的時候,你會記得以前犯過哪些錯,相應地調整動做,但願此次能 make youself great again.

這裏你就是用了反饋機制,即將實際結果和預期結果相比較,找出二者的不一樣之處,並藉此改善下一次的行爲(好比「我應該再踢的用力一點」「我應該再往左踢一點」等等)。預期結果和實際結果之間的差距越小,你下一次須要調整的幅度就越小。

神經網絡正是經過這種方式學習,利用一種叫作「反向傳播」的反饋機制,它由正向傳播過程和反向傳播過程組成。在正向傳播過程當中,輸入信息經過輸入層經隱含層,逐層處理並傳向輸出層。若是在輸出層得不到指望的輸出值,則取輸出與指望的偏差的平方和做爲目標函數,轉入反向傳播,逐層求出目標函數對各神經元權值的偏導數,構成目標函數對權值向量的梯量,做爲修改權值的依據,神經網絡的學習在權重值修改過程當中完成。偏差達到所指望值時,神經網絡學習結束。

固然你也能夠來這裏體驗一番。

就像上述舉的你學踢球的例子同樣,「反向傳播」會讓神經網絡進行學習,不斷縮小實際結果和預期結果之間的差異,這樣神經網絡會慢慢發現它應該怎麼作才能達到預期效果。

神經網絡在實際中怎麼運做?

等用足夠的學習樣本訓練完神經網絡後,咱們就能夠給它一組它從未見過的新的輸入信息,看它如何迴應。例如,比方說你以前一直在教一個神經網絡,以它能理解的方式給它看了不少桌子椅子的照片,告訴它哪一個是椅子哪一個是桌子。給它看完照片後(咱們比方說有25個不一樣的椅子和25個不一樣的桌子的照片),給它輸入一組它從未見過的新的照片,看看會發生什麼。神經網絡學習的狀況不一樣,它對新樣本分類的結果也會相同,就像人類同樣。等這個神經網絡的性能符合要求後,你就教會了一臺電腦怎樣識別傢俱!

這也並非說神經網絡只是「看看」一組傢俱照片,而後就作出有意義的反應,它的行事方式和人類還不同。細想咱們剛纔舉的例子:神經網絡實際上看到的並非傢俱照片。輸入神經網絡的信息本質上是二進制數字:它們會開啓或關閉神經網絡中的單元(神經元)。

因此若是你有 5 個輸入單元,你能夠用二進制答案(是/否)輸入不一樣椅子的 5 個不一樣特徵。好比問題是:

1. 它有椅背嗎?

2. 它有桌面嗎?

3. 它有軟的坐墊嗎?

4. 你能長時間舒服地坐在上面嗎?

5. 你能在它上面放不少東西嗎?

在這裏,一個椅子就會表示爲是、否、是、是、否,用二進制表示爲 10110,那麼一個桌子就能夠表示爲否、是、否、否、是,用二進制表示爲 01001。因此,在學習過程當中,神經網絡就是查看不少像 10110 和 01001 這樣的二進制數字,學習哪些表示是個椅子(可能輸出結果爲1),哪些表示是個桌子(可能輸出結果爲0)。

創造神經網絡用來幹嗎?

經過上面所講的內容和所舉例子,你或許會猜到神經網絡能夠應用在不少方面,從識別模式到作出決策。在航空領域,咱們能夠將神經網絡用做自動駕駛儀,其輸入單元從座艙儀表中讀取信號和數據,輸出單元會相應調整飛機,保證飛機在正確的航線飛行。在工廠中,咱們能夠將神經網絡用於質量控制。好比,有家工廠經過大規模的複雜的化學處理過程生產洗衣液,咱們能夠測量出最終的洗衣液成分比例,將測量結果做爲輸入數據輸入到神經網絡中,而後神經網絡就會決定是否進行化學處理。

此外還有不少應用例子,這裏再也不一一舉例。總之,神經網絡能夠在不少方面幫助咱們。它們能夠幫咱們預測天氣、運轉雷達探測系統自動識別敵方飛機或船隻、甚至幫助醫生髮現複雜的疾病。咱們如今使用的不少手機應用、語音助手、翻譯軟件都用到了神經網絡。

一句話,神經網絡讓電腦愈來愈像人類,讓電腦系統對人類的用處愈來愈大。

看到這裏,相信應該能明白神經網絡是怎麼一回事了吧?咱們未來還會分享 8 種常見的神經網絡架構,敬請期待!

相關文章
相關標籤/搜索