新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 人工神經網絡(Artificial Neural Network)算法簡介

        人工神經網絡(Artificial Neural Network)算法簡介

        作者: 時間:2018-09-14 來源:網絡 收藏

        人工神經網絡,簡稱神經網絡,是一種模仿生物神經網絡的結構和功能的數學模型或者計算模型。其實是一種與貝葉斯網絡很像的一種算法。之前看過一些內容始終云里霧里,這次決定寫一篇博客。弄懂這個基本原理,畢竟現在深度學習太火了。

        本文引用地址:http://www.104case.com/article/201809/389189.htm

        神經網絡是一種方法,既可以用來做有監督的任務,如分類、視覺識別等,也可以用作無監督的任務。首先,我們看一個簡單的例子。如下圖所示(這個圖網上有很多人引用了,但我找不到出處,歡迎指正),如果我們想訓練一個算法可以使其識別出是貓還是狗,這是很簡單的一個分類任務,我們可以找一條線(模型),在這個二元坐標中進行“一刀切”,把這兩組數據分開。我們知道,在解析幾何中,這條直線可以用如下的公式表達:

        圖1 貓狗數據

        圖2 一個簡單的神經網絡

        這里的W1和W2就是兩個坐標軸上的系數,可以稱為權重。W0可以稱作截距,也叫做偏移。新來一個數據點,也就是一組輸入值(X1,X2),如果在這條線的左邊,那么它就是一只狗,如果在右邊就是一只貓了。這就可以用一個簡單的神經網絡來表示。如圖2所示,X1和X2分別是輸入值,Y是輸出值,兩條邊的權重分別是W1和W2。這是一個最簡單的神經網絡了。這就是使用神經網絡定義了一個線性分類器了。這里的一個圓形的節點就是一個神經元。我們也可以采用另一種方式,即在輸入輸出之間加一個中間節點S,然后增加一個輸出層,包括兩個節點Y1和Y2,分別對應貓和狗,最后哪個輸出節點的值大,那么這個數據就屬于哪個類別(貓或者狗)。

        對于簡單的二分類問題這就可以解決了。但在實際情況中,有很多問題無法簡單的使用“一刀切”的方式解決,如圖3所示,假設貓和狗的數據分布如下圖,那么這就無法用“一刀切”的方式來解決了,但是我們可以切兩刀,橫豎各一刀,然后把相同的“塊”聯合起來,這樣就解決了比較復雜的分類問題了。也有些問題,需要用曲線來分割。在這種情況下,我們就需要比較復雜一點的神經網絡了。以曲線為例,我們可以設計出一個三層的神經網絡。這就是用神經網絡設計的一個非線性分類器。理論上講,如何一個分類器都可以設計一個神經網絡來表征,也就是說,不管實際圖形如何,我們都可以設計一個神經網絡來擬合。到這里,可能有人問,每個節點的這個函數要如何選擇?根據吳軍老師《數學之美》第二版中的說法,為了提供人工神經網絡的通用性,我們一般規定每個神經元的函數只能針對其輸入的變量做一次非線性的變換。舉個例子說就是假如某個神經元Y 的輸入值是X1,X2,...Xn,它們的邊的權重分別為W1,W2,...Wn,那么計算Y節點的值分兩步進行,第一步是計算來自輸入值的線性組合:

        第二步是計算y=f(G),這里的f(⋅)可以使非線性的,,但因為里面的參數是一個具體的值,所以不會很復雜。這兩個步驟的結合使得人工神經網絡既靈活又不至于太復雜。這里的f(⋅)就是激活函數。線性模型的表達能力不夠,它的作用就是來增強模型的表示能力。人工神經網絡可以很多層連接在一起,因此在人工神經網絡中,主要的工作就是設計結構(基層網絡,每層幾個節點等)和激活函數。我們常用的激活函數包括Sigmoid函數、ReLU函數、Tanh函數等等。如下圖所示,這是幾種簡單的激活函數的示意圖( https://ypwhs.gitbooks.io/nnplayground/content/Activation.html )



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 庆阳市| 永泰县| 大足县| 自治县| 双城市| 龙口市| 山丹县| 丘北县| 桑植县| 十堰市| 义马市| 桦川县| 衡水市| 达日县| 嵩明县| 绵竹市| 海伦市| 西宁市| 万年县| 中西区| 于都县| 谢通门县| 来安县| 开远市| 东台市| 永兴县| 青铜峡市| 宜昌市| 卓尼县| 教育| 读书| 嘉峪关市| 介休市| 营口市| 阿拉善左旗| 丹江口市| 武陟县| 崇义县| 肥乡县| 伊宁县| 和平县|