人工智能深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的基礎(chǔ)知識及其關(guān)系
學(xué)習(xí) tensorflow,caffe 等深度學(xué)習(xí)框架前,需要先了解一些基礎(chǔ)概念。本文以筆記的形式記錄了一個零基礎(chǔ)的小白需要先了解的一些基礎(chǔ)概念。
人工智能,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的關(guān)系
人工智能(ArTIficial Intelligence)——為機(jī)器賦予人的智能
"強(qiáng)人工智能"(General AI):無所不能的機(jī)器,它有著我們所有的感知(甚至比人更多),我們所有的理性,可以像我們一樣思考
"弱人工智能"(Narrow AI):弱人工智能是能夠與人一樣,甚至比人更好地執(zhí)行特定任務(wù)的技術(shù)。例如,Pinterest 上的圖像分類;或者 Facebook 的人臉識別。
強(qiáng)人工智能是愿景,弱人工智能是目前能實現(xiàn)的。
機(jī)器學(xué)習(xí)—— 一種實現(xiàn)人工智能的方法
機(jī)器學(xué)習(xí)最基本的做法,是使用算法來解析數(shù)據(jù)、從中學(xué)習(xí),然后對真實世界中的事件做出決策和預(yù)測。
深度學(xué)習(xí)——一種實現(xiàn)機(jī)器學(xué)習(xí)的技術(shù)
機(jī)器學(xué)習(xí)可以通過神經(jīng)網(wǎng)絡(luò)來實現(xiàn)??梢詫⑸疃葘W(xué)習(xí)簡單理解為,就是使用深度架構(gòu)(比如深度神經(jīng)網(wǎng)絡(luò))的機(jī)器學(xué)習(xí)方法。目前深度架構(gòu)大部分時候就是指深度神經(jīng)網(wǎng)絡(luò)。
神經(jīng)網(wǎng)絡(luò)組成
一個神經(jīng)網(wǎng)絡(luò)由許多神經(jīng)元組成,每個圓圈是一個神經(jīng)元,每條線表示神經(jīng)元之間的連接。x 表示的輸入數(shù)據(jù),y 表示的是輸出數(shù)據(jù),w 表示每層連接的權(quán)重。w 也就是我們構(gòu)造完神經(jīng)網(wǎng)絡(luò)之后需要確定的。
最左邊的叫做輸入層,這層負(fù)責(zé)接受輸入數(shù)據(jù)。
最右邊的叫做輸出層,我們可以從這層獲取神經(jīng)網(wǎng)絡(luò)輸出數(shù)據(jù)
輸入層和輸出層之間叫做隱藏層。隱藏層層數(shù)不定,簡單的神經(jīng)網(wǎng)絡(luò)可能是 2-3 層,復(fù)雜的也可能成百上千層,隱藏層較多的就叫做深度神經(jīng)網(wǎng)絡(luò)。
深層網(wǎng)絡(luò)比淺層網(wǎng)絡(luò)的表達(dá)能力更強(qiáng),能夠處理更多的數(shù)據(jù)。但是深度網(wǎng)絡(luò)的訓(xùn)練更加復(fù)雜。需要大量的數(shù)據(jù),很多的技巧才能訓(xùn)練好一個深層網(wǎng)絡(luò)。
問題:假設(shè)計算速度足夠快,是不是深度網(wǎng)絡(luò)越深越好?
不是。深度網(wǎng)絡(luò)越深,對架構(gòu)和算法的要求就越高。在超過架構(gòu)和算法的瓶頸后,再增加深度也是徒勞。
神經(jīng)元(感知器)神經(jīng)網(wǎng)絡(luò)由一個個的神經(jīng)元構(gòu)成,而一個神經(jīng)元也由三部分組成。
輸入權(quán)值 每個輸入會對應(yīng)一個權(quán)值 w,同時還會有一個偏置值 b。也就是圖中的 w0。訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過程,其實就是確定權(quán)值 w 的過程。
激活函數(shù) 經(jīng)過權(quán)值運(yùn)算之后還會經(jīng)歷激活函數(shù)再輸出。比如我們可以用階躍函數(shù) f 來表示激活函數(shù)。
輸出 最終的輸出,感知器的輸出可以用這個公式來表示
神經(jīng)元可以擬合任意的線性函數(shù),如最簡單擬合 and 函數(shù)。
and 函數(shù)真值表如上圖所示。取 w1 = 0.5;w2 = 0.5 b = -0.8。激活函數(shù)取上面示例的階躍函數(shù) f 表示??梢则炞C此時神經(jīng)元能表示 and 函數(shù)。
如輸入第一行,x1 = 0,x2 = 0 時,可以得到
y 為 0,這就是真值表的第一行。
在數(shù)學(xué)意義上,可以這樣理解 and 函數(shù)的神經(jīng)元。它表示了一個線性分類問題,它就像是一條直線把分類 0(false,紅叉)和分類 1(true,綠點)分開
而實際上,神經(jīng)元在數(shù)學(xué)上可以理解為一個數(shù)據(jù)分割問題。神經(jīng)元是將神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換成數(shù)學(xué)問題的關(guān)鍵。比如需要訓(xùn)練神經(jīng)網(wǎng)絡(luò)做一個分類器,那么在數(shù)學(xué)上可以將輸入的參數(shù)(x1,x2...,xn)理解為 m 維坐標(biāo)系(設(shè) x 是 m 元向量)上的 n 個點,而每個神經(jīng)元則可以理解為一個個擬合函數(shù)。取 m 為 2,放在最簡單的二維坐標(biāo)系里面進(jìn)行理解。