你懂不懂什么是神經(jīng)網(wǎng)絡
人工智能是這幾年非?;鸬募夹g,上至九十九下至剛會走都對人工智能或多或少的了解。神經(jīng)網(wǎng)絡是人工智能的核心,也就是說沒有神經(jīng)網(wǎng)絡就沒有人工智能,那么這篇文章就帶大家學習一下神經(jīng)網(wǎng)絡相關的知識。這篇文章沒有數(shù)學公式、沒有代碼,旨在幫助讀者快速掌握神經(jīng)網(wǎng)絡的核心知識。
一、什么神經(jīng)網(wǎng)絡
概念 所謂神經(jīng)網(wǎng)絡簡單說就是包含多個簡單且高度相連的元素的系統(tǒng),每個元素都會根據(jù)輸入來處理相關信息。神經(jīng)網(wǎng)絡是由節(jié)點(神經(jīng)元)組成,這些節(jié)點相互鏈接,信息傳入到輸入層之后由多個隱藏層進行處理,處理完后再傳遞給輸出層進行最終處理。這里所說的最終處理有可能是輸出結果,也有可能是作為輸入數(shù)據(jù)傳入到另外的神經(jīng)網(wǎng)絡或者節(jié)點進行下一輪的處理。 在上面的內容中我們多次提到節(jié)點,那么什么是節(jié)點呢?節(jié)點也被稱為神經(jīng)元,是一個神經(jīng)網(wǎng)絡的基本單元。它通過接收輸入的數(shù)據(jù)來計算出應該輸出的數(shù)據(jù),輸入的數(shù)據(jù)可能來自于其他節(jié)點或者是外部的輸入源。針對每個輸入的數(shù)據(jù)都會有權重,權重是根據(jù)輸入數(shù)據(jù)的重要性進行分配得來的。當節(jié)點收到輸入的數(shù)據(jù)后,將輸入的信息加權和之后再傳遞給激活函數(shù),然后激活函數(shù)通過計算輸出最后的輸出數(shù)據(jù)。
訓練簡述 前面我講解了神經(jīng)網(wǎng)絡和節(jié)點的概念,下面我們就看一下神經(jīng)網(wǎng)絡是怎么訓練的。簡單說就是修改輸入層的輸入權重,通過隱藏層處理數(shù)據(jù),再通過激活函數(shù)對它們進行最終處理。最常見的神經(jīng)網(wǎng)絡學習方式叫做 delta 。 delta 是一種監(jiān)督規(guī)則,每當向神經(jīng)網(wǎng)絡發(fā)送一種學習模式時都會調用它,這種情況被稱為循環(huán)。 在神經(jīng)網(wǎng)絡訓練中還涉及到一個概念:誤差率。誤差率簡單地說就是我們向神經(jīng)網(wǎng)絡輸入一張圖片時,它識別出的結果和正確答案之間的差異。我們訓練神經(jīng)網(wǎng)絡最根本的目的就是降低誤差率,讓每次識別都無限接近于0。
梯度下降 說到誤差率就不得不提梯度下降,它是一個一階最優(yōu)化算法也稱為最速下降法,在最小化損失函數(shù)時,可以通過梯度下降法來一步步的迭代求解,得到最小化的損失函數(shù)和模型參數(shù)值,這個算法很重要因此需要具體講解一下。 例如我們要從某個大山的深處下山,但是我們不知道下山的路在哪,于是就決定走一步看一步,在每走到一個位置的時候求解當前位置的梯度,然后沿著是當前最陡峭的位置向下走一步,接著繼續(xù)求解當前位置梯,再向所在位置最陡峭最易下山的位置走。這樣一步步的走下去,一直走到覺得我們已經(jīng)到了山腳。但是這樣走下去可能我們不能走到山下而是到了一個局部的最低處。從這段描述中我們可以看出梯度下降不一定能找出全局最優(yōu)解,有可能找出的是局部最優(yōu)解。
常見的神經(jīng)網(wǎng)絡 目前已知的神經(jīng)網(wǎng)絡多達上千種,這里面有很大一部分并不是通用的,這部分我們不提。在通用的神經(jīng)網(wǎng)絡中用的最多的有27種,其中經(jīng)常能見到的是:RNN、感知機網(wǎng)絡和前饋網(wǎng)絡,下面我進行一個簡單的講解。
RNN RNN 中文叫循環(huán)神經(jīng)網(wǎng)絡,它對序列中的每個元素都執(zhí)行相同的任務,輸出的數(shù)據(jù)取決于前面的計算,而且它還可以記錄前面的步驟,形成短期記憶。他的圖像是這樣的:
感知機網(wǎng)絡 這是最簡單的神經(jīng)網(wǎng)絡,他不包含任何隱藏層,只有輸出和輸出層。圖像大致是這樣的:
前饋網(wǎng)絡 包含多個節(jié)點,相鄰層的節(jié)點之間具有邊,每個邊都有權重。他是這樣的:
二、神經(jīng)網(wǎng)絡的學習類型
一個孩子家長要教他很多事情,但是家長不能任何事情都要教他,有時也需要他通過其他方式學習。在人工智能中也存在這種情況,因此神經(jīng)網(wǎng)絡就出現(xiàn)了三種不同的學習類型,分別是有監(jiān)督學習、無監(jiān)督學習和強化學習。
有監(jiān)督學習 有監(jiān)督學習的前提條件是你具有一個存在已知結果的數(shù)據(jù)集。神經(jīng)網(wǎng)絡從給定的訓練數(shù)據(jù)集中學習出一個模型參數(shù),當新的數(shù)據(jù)到來時可以根據(jù)這個函數(shù)預測結果。數(shù)據(jù)集要求包括輸入輸出,里面的數(shù)據(jù)輸出信息是由人手工標注的。有監(jiān)督學習一般用在分類問題中,通過已有的數(shù)據(jù)集去訓練得到最優(yōu)模型,之后再利用這個模型將所有輸入映射為相應的輸出,對輸出進行簡單的判斷從而實現(xiàn)分類的目的。常見的有監(jiān)督學習算法包括KNN和SVM
無監(jiān)督學習 當你的數(shù)據(jù)集沒有結,那么你就適合使用無監(jiān)督學習。它會根據(jù)數(shù)據(jù)間相似性對數(shù)據(jù)集進行分類,試圖使每個分類內的差距最小化,每個分類之間的差距最大化。它的目標不是告訴人工智能怎么做,而是讓它自己去學習怎樣做事情。無監(jiān)督學習一般我們會分為兩大類: 基于概率密度函數(shù)估計的直接方法和基于數(shù)據(jù)間相似性度量的簡潔聚類方法?;诟怕拭芏群瘮?shù)估計的直接方法會設法找到各個分類在特征空間中的分布參數(shù),然后再進行分類。而基于數(shù)據(jù)間相似性度量的簡潔聚類方法則是設法規(guī)定出不同分類的核心和初始內核,然后根據(jù)數(shù)據(jù)與核心之間的相似度將數(shù)據(jù)分成不同的類別。
強化學習 強化學習俗稱胡蘿卜和大棒。簡單說就是如果誤差率鑒定成功我們就會得到胡蘿卜,反之會得到大棒的懲罰。它是機器學習中的一個領域,強調如何基于環(huán)境而行動以取得最大化的預期利益。靈感來源于心理學中的行為主義理論,有機體在環(huán)境給予的獎勵或懲罰的刺激下會逐步形成對刺激的預期從而產生能獲得最大利益的習慣性行為。在人工智能中環(huán)境通常被設為馬爾可夫決策過程,所以許多強化學習算法在這種情況下使用動態(tài)規(guī)劃技巧。
三、激活函數(shù)與感知器
如果說節(jié)點是神經(jīng)網(wǎng)絡的核心,那么激活函數(shù)和感知器就是神經(jīng)網(wǎng)絡核心的核心,幾乎在所有的神經(jīng)網(wǎng)絡中都可以看到他倆,這一小節(jié)我就來講解一下激活函數(shù)和感知器。
激活函數(shù) 激活函數(shù)被添加到神經(jīng)網(wǎng)絡的輸出端以確定輸出,它的輸出結果范圍通常在-1到1的范圍,具體取值范圍取決于選擇的激活函數(shù)。它最終用于確定神經(jīng)元是否運行。激活函數(shù)是數(shù)據(jù)輸出之前的最后一部分,可以將其視為輸出值的提供者。激活函數(shù)分為兩種,一種是線性激活函數(shù),另一種是非線性激活函數(shù)。簡單地說線性函數(shù)是在直線上或幾乎在直線上的函數(shù),非線性函數(shù)是不在直線上的函數(shù)(哈哈解釋的夠簡單吧)
感知器 感知器是一種特殊的節(jié)點,當輸入為正或0該函數(shù)返回1,否則返回0,具有這種激活函數(shù)的節(jié)點稱為感知器?,F(xiàn)在我們通過例子來講解一下感知器。我們有一個感知器,它具有兩個輸入x1和x2,這兩個輸入的權重分別為w1和w2,我們要對這兩個輸出加權,所謂的加權就是乘以權重,權重是隨機分配的,權重值介于-1到1之間。加權之后就需要將所有加權求和,求和之后將會被作為激活函數(shù)的輸入傳遞給激活函數(shù)繼續(xù)處理。激活函數(shù)處理后會告知感知器是否執(zhí)行。
四、后向傳播
前面所講的都是前向傳播,和前向傳播相反的就是后向傳播,后向傳播是提升神經(jīng)網(wǎng)絡準確率的重要內容。后向傳播又稱誤差向后傳播,是使用梯度下降有監(jiān)督學習神經(jīng)網(wǎng)絡算法的一種。后向傳播通過在神經(jīng)網(wǎng)絡中反向移動來計算梯度。先計算最后一層權重的梯度,最后計算第一層的梯度。后向傳播計算取決于前向階段的激活函數(shù)和輸出數(shù)據(jù),這些值都必須在后向傳播開始之前進行計算,因此前向計算必須在后向傳播之前完成。 前向和后向傳播對于很多剛剛步入人工智能這一行的人很難以理解,下面我就來說說他倆的區(qū)別。前向傳播數(shù)據(jù)以獲取輸出,然后將輸出與預期值進行比較從而獲得誤差。為了能達到最小化該誤差,還必須算出每個權重的誤差導數(shù)來向后傳播,然后從權重中減去誤差導數(shù)。通過前向傳播,可以顯示神經(jīng)網(wǎng)絡的行為并找到誤差。找出誤差率后可以后向傳播并使用梯度下降的形式更新權重值。
四、總結
這篇文章旨在引導讀者快速入門神經(jīng)網(wǎng)絡,講解了神經(jīng)網(wǎng)絡的各種概念,方便讀者對神經(jīng)網(wǎng)絡的概念有深入理解。