AI產(chǎn)品之路:神經(jīng)元與神經(jīng)網(wǎng)絡(luò)

5 評論 9427 瀏覽 42 收藏 9 分鐘

要了解深度學(xué)習(xí),首先必須了解“深度學(xué)習(xí)”的前身:神經(jīng)網(wǎng)絡(luò)與神經(jīng)元的概念。

關(guān)于神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)的概念和區(qū)別,我在“機(jī)器學(xué)習(xí)(一)”那篇文章已經(jīng)展現(xiàn)就不贅述了。

深度學(xué)習(xí)可以說是目前“人工智能浪潮”火熱的一個根本原因,就是因為它的興起,其中包括深度神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的突破,讓語音識別、自然語言處理和計算機(jī)視覺等基礎(chǔ)技術(shù)突破以前的瓶頸。而要了解深度學(xué)習(xí),就必須首先了解“深度學(xué)習(xí)”的前身,神經(jīng)網(wǎng)絡(luò)與神經(jīng)元的概念。

一、神經(jīng)元的構(gòu)成

神經(jīng)元可以說是深度學(xué)習(xí)中最基本的單位元素,幾乎所有深度學(xué)習(xí)的網(wǎng)絡(luò)都是由神經(jīng)元通過不同的方式組合起來。

一個完整的神經(jīng)元由兩部分構(gòu)成,分別是“線性模型”與“激勵函數(shù)”。如果看過之前的文章,相信可以回憶起其中“線性回歸”和“激勵函數(shù)”的概念

1.線性模型

(1)構(gòu)成

假設(shè)這個線性模型的函數(shù):? y=wx+b(有木有很熟悉),其中x是一個1xn的向量矩陣,矩陣中的每個向量值即代表樣本一個特征的值,w為nx1的權(quán)重矩陣(對應(yīng)向量的所占的比重),b為偏置項。

(2)工作流程

以判定一個蘋果的品質(zhì)為例,我們假定y代表品質(zhì)變量,x為1×3矩陣,w為3×1矩陣(偏置忽略為0的情況下),具體如下

x矩陣?yán)锏南蛄恐怠?、2、3”分別代表一個數(shù)據(jù)中提取出來的特征向量的值。

w矩陣?yán)锏摹?.2、0.6、0.7”分別代表每個特征向量的權(quán)重取值大小。

這兩個矩陣相乘,最終會得到一個實數(shù)(涉及到數(shù)學(xué)矩陣運算,并非所有都會是實數(shù)哦~)

1X0.2+2X0.6+3X0.7=3.5

得到的3.5即我們擬合出來的一個蘋果的品質(zhì)假定為y1,用這個值與已經(jīng)標(biāo)定好的真實品質(zhì)y0做差,就可以得到一個數(shù)據(jù)的擬合值與真實值的誤差,當(dāng)然真實的計算這可是海量數(shù)據(jù)計算

用到我第一章分享“線性回歸”中對全局性誤差函數(shù)的定義

通過這個函數(shù)來描述所有數(shù)據(jù)擬合值與真實值之間的關(guān)系,目的也是和機(jī)器學(xué)習(xí)一樣,最終是要找到一個符合要求的Loss與w,b之間的映射關(guān)系

以上單個神經(jīng)元中“線性模型”的運算流程,本質(zhì)和機(jī)器學(xué)習(xí)中的“線性回歸”過程是沒有區(qū)別的

2.激勵函數(shù)

(1)激勵函數(shù)的作用

激勵函數(shù)位于一個神經(jīng)元線性模型之后,也有翻譯成激活函數(shù)。它的作用有兩個:

  • 加入“非線性”因素
  • 根據(jù)不同訓(xùn)練目的的需要,進(jìn)行數(shù)學(xué)函數(shù)映射

為什么要加入“非線性”因素,那是因為“現(xiàn)實世界”的數(shù)據(jù)不可能都是線性的,如果你強(qiáng)行用“線性模型”去擬合非線性數(shù)據(jù),最后得到的結(jié)果肯定是“欠擬合”

怎么理解數(shù)學(xué)函數(shù)映射呢,在這里拿最常用的Sigmoid函數(shù)舉例

Sigmoid函數(shù)定義:

激勵函數(shù)之前的線性模型“y=wx+b”已經(jīng)經(jīng)過運算得到了一個實數(shù)(即前面的3.5)

可以作如下的推導(dǎo)

則激勵函數(shù)sigmoid變?yōu)?/p>

下圖為Sigmoid函數(shù)圖形,由圖像可以看出,最初的x經(jīng)過“線性模型”映射為z(z理論上可以為任意大小的實數(shù)),而z經(jīng)過激勵函數(shù)的再一次映射,最后的輸出必然為了【0,1】區(qū)間的實數(shù),這就實現(xiàn)了一次數(shù)學(xué)函數(shù)的映射。

它可以實現(xiàn)一個簡單的概率分類判斷,假定“0”和“1”各代表一個概念,那么最后的輸出在區(qū)間【0,1】,更接近“1”,就代表它是更可能是“1”所代表的概念

(2)激勵函數(shù)的種類

激勵函數(shù)的種類實在很多,應(yīng)用的場景也各不相同,比較常見的除了上面提到的Sigmoid函數(shù)外,還有多用于RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))的Tanh函數(shù),大部分用于CNN(卷積神經(jīng)網(wǎng)絡(luò))的ReLU函數(shù),以及Linear函數(shù)等。

在這里就不一一列舉他們的公式和函數(shù)圖像了,總之每個激勵函數(shù)都有自己的“個性”(特性),根據(jù)不同的算法模型和應(yīng)用場景,會搭配使用不同的激勵函數(shù),當(dāng)然最終的目的只有一個,就是讓算法模型收斂的越快,擬合的越好

二、神經(jīng)網(wǎng)絡(luò)

1.神經(jīng)網(wǎng)絡(luò)的構(gòu)成

神經(jīng)網(wǎng)絡(luò),其實就是多個神經(jīng)元橫向與縱向的堆疊,最為簡單和基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)可以用下圖來表示

通常分為以下三層:

輸入層:負(fù)責(zé)直接接受輸入的向量,通常情況下不對數(shù)據(jù)做處理,也不計入神經(jīng)網(wǎng)絡(luò)的層數(shù)。

隱含層:是整個神經(jīng)網(wǎng)絡(luò)最為重要的部分,它可以是一層,也可是N層,隱含層的每個神經(jīng)元都會對數(shù)據(jù)進(jìn)行處理。

輸出層:用來輸出整個網(wǎng)絡(luò)處理的值,這個值可能是一個分類向量值,也可能是一個類似線性回歸那樣產(chǎn)生的連續(xù)的值。

2.神經(jīng)網(wǎng)絡(luò)工作流程

初步的理解,神經(jīng)元就是通過圖中首尾相連的方式進(jìn)行連接并實現(xiàn)數(shù)據(jù)傳遞,上一個神經(jīng)元的輸出,會成為下一層神經(jīng)元的輸入。對于一個x向量中的任意一個維度的分量,都會在整個神經(jīng)網(wǎng)絡(luò)進(jìn)行一層一層地處理。

神經(jīng)網(wǎng)絡(luò)的厲害之處就在于,我們可以調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)的層數(shù),網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)以及神經(jīng)元的參數(shù),去改變對一個輸入向量x的不同數(shù)學(xué)維度上的處理方式,進(jìn)而達(dá)成不同的訓(xùn)練目的。這也是后來像DNN、RNN、CNN成為當(dāng)下人工智能炙手可熱的一大原因。(其實DNN,但從結(jié)構(gòu)上來說,可以簡單理解為層數(shù)的增加,進(jìn)而帶來對特征的提取和抽象能力的增強(qiáng))

當(dāng)然,隨著網(wǎng)絡(luò)層數(shù)的增加,拓?fù)浣Y(jié)構(gòu)的復(fù)雜,隨之而來也會帶來整個神經(jīng)網(wǎng)絡(luò)的副作用和難題,比如容易陷入局部最優(yōu)解,梯度消失嚴(yán)重等問題。這也是后續(xù)需要探討和深化了解的東西。

相關(guān)閱讀

AI產(chǎn)品之路:機(jī)器學(xué)習(xí)(一)

AI產(chǎn)品之路:機(jī)器學(xué)習(xí)(二)

 

本文由 @?Free 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 缺了個圖誒

    來自北京 回復(fù)
  2. 我也是現(xiàn)為互聯(lián)網(wǎng)PM,未來看好AIPM

    來自廣東 回復(fù)
  3. ??寫得簡單易懂,思路清晰

    回復(fù)
    1. :mrgreen: 會繼續(xù)分享噠

      來自北京 回復(fù)