隨著AI的突破持續(xù)吸引公眾注意,人們開始不加區(qū)別地使用“人工智能”、“機(jī)器學(xué)習(xí)”、“深度學(xué)習(xí)”等術(shù)語。然而,了解這些術(shù)語的區(qū)別,有助于把握AI技術(shù)的發(fā)展趨勢。

人工智能同心圓
我們可以把這三個(gè)術(shù)語想象成三個(gè)同心圓,其中人工智能包含了機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí)又包含了深度學(xué)習(xí)。
簡單來說,有一些任務(wù),傳統(tǒng)上認(rèn)為需要通過人類認(rèn)知活動(dòng)才能完成,開發(fā)執(zhí)行這些任務(wù)的計(jì)算機(jī)系統(tǒng),即為人工智能。
而機(jī)器學(xué)習(xí)則是創(chuàng)建從大規(guī)模數(shù)據(jù)集中學(xué)習(xí)模式,并提供洞見的系統(tǒng)。機(jī)器學(xué)習(xí)本身可以分為三大類:
監(jiān)督學(xué)習(xí)(supervised learning),理解一組數(shù)據(jù)點(diǎn)和標(biāo)簽之間的關(guān)系,并在未標(biāo)注的數(shù)據(jù)點(diǎn)上給出預(yù)測。例如,分類是否會(huì)出現(xiàn)不良貸款,預(yù)測未來股價(jià)。
無監(jiān)督學(xué)習(xí)(unsupervised learning)則直接基于數(shù)據(jù)集的相似特征識(shí)別有意義的模式。例如,根據(jù)購物行為的相似程度聚類消費(fèi)者。
強(qiáng)化學(xué)習(xí)(reinforcement learning)讓智能體在定義良好的環(huán)境中選擇可能的行動(dòng),并最大化目標(biāo)函數(shù)(獎(jiǎng)勵(lì))。我們可以把自動(dòng)駕駛看成一個(gè)強(qiáng)化學(xué)習(xí)問題,在公路上(環(huán)境)自動(dòng)行駛的汽車(智能體),最大化其目標(biāo)——不要出事故(獎(jiǎng)勵(lì))。
最后,深度學(xué)習(xí)是一種機(jī)器學(xué)習(xí)技術(shù),該技術(shù)利用大規(guī)模數(shù)據(jù)和多層神經(jīng)網(wǎng)絡(luò)以理解數(shù)據(jù)集的模式。最近在計(jì)算機(jī)視覺和語音識(shí)別等領(lǐng)域的AI突破都是由深度學(xué)習(xí)研究以及算力的日常商品化驅(qū)動(dòng)的。
什么是卷積神經(jīng)網(wǎng)絡(luò)?
深度學(xué)習(xí)有眾多架構(gòu)和技術(shù),以適應(yīng)不同的使用場景,其中一種主要的架構(gòu)和技術(shù)是卷積神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò),受到哺乳動(dòng)物視覺腦皮層方面的研究的啟發(fā),參考了哺乳動(dòng)物使用不同層次的神經(jīng)元感知世界的方式。可以將這一模型想象成視覺皮層的模型,專門設(shè)計(jì)的不同神經(jīng)元組識(shí)別不同的形狀。每個(gè)神經(jīng)元組看到相應(yīng)目標(biāo)后激活,并和其他神經(jīng)元組互相交流,以發(fā)展出感知目標(biāo)的總體理解。

這一系統(tǒng)可以解釋為分層的神經(jīng)元組,檢測輸入刺激的低層特性,并互相交流,以發(fā)展對目標(biāo)的高層檢測。
第一組神經(jīng)元結(jié)構(gòu)識(shí)別低層特征(例如,臉部的輪廓)
第二組神經(jīng)元結(jié)構(gòu)識(shí)別顏色和形狀(例如,膚色和頜骨轉(zhuǎn)角)
第三組神經(jīng)元結(jié)構(gòu)識(shí)別細(xì)節(jié)(例如,耳朵、鼻子、眼睛)
第四組神經(jīng)元結(jié)構(gòu)整體識(shí)別整個(gè)目標(biāo)(例如,臉部和對應(yīng)之人)
簡單來說,看到給定目標(biāo)后,系統(tǒng)中的不同神經(jīng)元組因目標(biāo)的不同方面而激活,并互相交流以形成整體圖景。
Yann Lecun從這一視覺腦皮層的層次模型中汲取了靈感,研發(fā)了卷積神經(jīng)網(wǎng)絡(luò):
局部連接:每層共享一個(gè)連接,以互相傳遞所學(xué)特征。
層次結(jié)構(gòu):在不同網(wǎng)絡(luò)層之間有一個(gè)很明顯的層次結(jié)構(gòu)——從低層特征(例如,鼻子,眼睛)到高層特征(臉部、具體的人)。
空間不變性:模型可以適應(yīng)輸入的平移等變換,仍然能夠完成識(shí)別。(人類能夠識(shí)別顛倒或經(jīng)過其他變換的圖像。)
因此,卷積神經(jīng)網(wǎng)絡(luò)的架構(gòu)如下圖所示:

典型的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)
其中,輸入數(shù)據(jù)為四維矩陣(樣本數(shù)字,高,寬,頻道)。其中頻道對應(yīng)色彩,彩圖有3個(gè)頻道(R、G、B),而灰度圖像只有1個(gè)頻道。
輸入數(shù)據(jù)將連接到一個(gè)隱藏層(卷積層),應(yīng)用多個(gè)任意尺寸(通常為3x3或5x5)的過濾器至圖像??梢詫⑦^濾器想象為一個(gè)大小為3x3(或5x5)的小手電,照在輸入圖像上,嘗試提取特征映射?;谔卣饔成洌?a target="_blank">算法可以理解數(shù)據(jù)中的局部特征(眼、耳……),不管其位置如何(平移不變性)。如下圖所示:
池化是一個(gè)降采樣操作,通過應(yīng)用任意尺寸(步長)的窗口,在窗口中根據(jù)用戶指定,提取和、最大值、平均值,以降低提取的特征映射的維度。在下面的示意圖中,我們使用的是最大池化,在特征映射的2x2窗口中提取最大值。這一技術(shù)有助于在保留信息的前提下降低維度。

最后是傳統(tǒng)的全連接層,對卷積習(xí)得的表示進(jìn)行softmax操作,并輸出預(yù)測。簡單來說,全連接層包含觀察到特定模式后會(huì)“點(diǎn)亮”的節(jié)點(diǎn)。
從直覺上說,卷積神經(jīng)網(wǎng)絡(luò)將圖像作為輸入,嘗試使用一系列數(shù)學(xué)運(yùn)算(卷積、池化)辨認(rèn)不同的小特征(局部連接),不管其位置如何(空間不變性),以理解整個(gè)圖像的內(nèi)容。這些數(shù)學(xué)運(yùn)算牽涉到建模圖像為一系列數(shù)字,其中每個(gè)數(shù)字表示像素亮度(假設(shè)輸入為灰度圖像)。
實(shí)例
我們的數(shù)據(jù)集是72x72網(wǎng)格中的一組幾何圖形(三角形、圓形、矩形)。由于這些是灰度圖像,因此它們只有一個(gè)頻道。下面是一些樣本:
我們將使用python的Keras包實(shí)現(xiàn)一個(gè)卷積神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)在分類這些形狀時(shí)可以達(dá)到98%精確度。
導(dǎo)入依賴:
import numpy as np
import keras
from keras importSequential, optimizers
from keras.layers importDense, Activation
from keras.callbacks importEarlyStopping
from sklearn.metrics import confusion_matrix, accuracy_score
from keras.layers importConv2D, MaxPooling2D, Flatten, Dropout
from keras.utils import np_utils
生成訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集:
[X_train, Y_train] = generate_dataset_classification(1000, 20, True)
[X_test, Y_test] = generate_test_set_classification()
根據(jù)keras的要求轉(zhuǎn)換標(biāo)簽至類別矩陣,并重整訓(xùn)練集中圖像的形狀:
Y_train = keras.utils.to_categorical(Y_train, 3)
X_train = X_train.reshape(1000,72,72,1)
構(gòu)建模型:
conv_model = Sequential()
conv_model.add(Conv2D(16, (5,5), activation = 'relu', input_shape = (72,72,1)))
conv_model.add(MaxPooling2D((2,2)))
conv_model.add(Conv2D(16, (5,5), activation = 'relu'))
conv_model.add(MaxPooling2D((2,2)))
conv_model.add(Conv2D(16, (5,5), activation = 'relu'))
conv_model.add(MaxPooling2D((2,2)))
conv_model.add(Flatten())
conv_model.add(Dense(3, activation = 'sigmoid'))
編譯、訓(xùn)練模型:
conv_model.compile(optimizer = 'Adam', loss = 'categorical_crossentropy')
conv_model.fit(X_train, Y_train, validation_split = 0.3, epochs = 100, batch_size = 32)
重整測試集數(shù)據(jù)的形狀,在測試集上進(jìn)行預(yù)測,并評(píng)估精確度:
X_test = X_test.reshape(300,72,72,1)
predictions = conv_model.predict_classes(X_test)
print("精確度評(píng)分為 {} %".format(accuracy_score(Y_test, predictions) * 100))
結(jié)果:
精確度評(píng)分為 97.33333333333334 %
結(jié)語
卷積神經(jīng)網(wǎng)絡(luò)代表了圖像識(shí)別中的重大突破。卷積神經(jīng)網(wǎng)絡(luò)在自動(dòng)駕駛汽車,人臉識(shí)別系統(tǒng),醫(yī)學(xué)診斷等場景都有廣泛應(yīng)用。然而,值得注意的是,卷積神經(jīng)網(wǎng)絡(luò)仍有提升的空間,而卷積網(wǎng)絡(luò)的適用領(lǐng)域也出現(xiàn)了一些新技術(shù),比如膠囊網(wǎng)絡(luò)。
-
人工智能
+關(guān)注
關(guān)注
1819文章
50213瀏覽量
266494 -
卷積神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
4文章
372瀏覽量
12897
原文標(biāo)題:卷積網(wǎng)絡(luò)背后的直覺
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
探索MAX78002:低功耗卷積神經(jīng)網(wǎng)絡(luò)加速器的AI微控制器
神經(jīng)網(wǎng)絡(luò)的初步認(rèn)識(shí)
自動(dòng)駕駛中常提的卷積神經(jīng)網(wǎng)絡(luò)是個(gè)啥?
CNN卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)原理及在MCU200T上仿真測試
NMSIS神經(jīng)網(wǎng)絡(luò)庫使用介紹
構(gòu)建CNN網(wǎng)絡(luò)模型并優(yōu)化的一般化建議
卷積運(yùn)算分析
在Ubuntu20.04系統(tǒng)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的一些經(jīng)驗(yàn)
CICC2033神經(jīng)網(wǎng)絡(luò)部署相關(guān)操作
液態(tài)神經(jīng)網(wǎng)絡(luò)(LNN):時(shí)間連續(xù)性與動(dòng)態(tài)適應(yīng)性的神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)的并行計(jì)算與加速技術(shù)
卷積神經(jīng)網(wǎng)絡(luò)如何監(jiān)測皮帶堵料情況 #人工智能
無刷電機(jī)小波神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)子位置檢測方法的研究
神經(jīng)網(wǎng)絡(luò)專家系統(tǒng)在電機(jī)故障診斷中的應(yīng)用
基于FPGA搭建神經(jīng)網(wǎng)絡(luò)的步驟解析
卷積神經(jīng)網(wǎng)絡(luò)背后的直覺探索
評(píng)論