隨著AI的突破持續(xù)吸引公眾注意,人們開(kāi)始不加區(qū)別地使用“人工智能”、“機(jī)器學(xué)習(xí)”、“深度學(xué)習(xí)”等術(shù)語(yǔ)。然而,了解這些術(shù)語(yǔ)的區(qū)別,有助于把握AI技術(shù)的發(fā)展趨勢(shì)。
人工智能同心圓
我們可以把這三個(gè)術(shù)語(yǔ)想象成三個(gè)同心圓,其中人工智能包含了機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí)又包含了深度學(xué)習(xí)。
簡(jiǎn)單來(lái)說(shuō),有一些任務(wù),傳統(tǒng)上認(rèn)為需要通過(guò)人類認(rèn)知活動(dòng)才能完成,開(kāi)發(fā)執(zhí)行這些任務(wù)的計(jì)算機(jī)系統(tǒng),即為人工智能。
而機(jī)器學(xué)習(xí)則是創(chuàng)建從大規(guī)模數(shù)據(jù)集中學(xué)習(xí)模式,并提供洞見(jiàn)的系統(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ù)測(cè)。例如,分類是否會(huì)出現(xiàn)不良貸款,預(yù)測(cè)未來(lái)股價(jià)。
無(wú)監(jiān)督學(xué)習(xí)(unsupervised learning)則直接基于數(shù)據(jù)集的相似特征識(shí)別有意義的模式。例如,根據(jù)購(gòu)物行為的相似程度聚類消費(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í)問(wèn)題,在公路上(環(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ī)視覺(jué)和語(yǔ)音識(shí)別等領(lǐng)域的AI突破都是由深度學(xué)習(xí)研究以及算力的日常商品化驅(qū)動(dòng)的。
什么是卷積神經(jīng)網(wǎng)絡(luò)?
深度學(xué)習(xí)有眾多架構(gòu)和技術(shù),以適應(yīng)不同的使用場(chǎng)景,其中一種主要的架構(gòu)和技術(shù)是卷積神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò),受到哺乳動(dòng)物視覺(jué)腦皮層方面的研究的啟發(fā),參考了哺乳動(dòng)物使用不同層次的神經(jīng)元感知世界的方式??梢詫⑦@一模型想象成視覺(jué)皮層的模型,專門(mén)設(shè)計(jì)的不同神經(jīng)元組識(shí)別不同的形狀。每個(gè)神經(jīng)元組看到相應(yīng)目標(biāo)后激活,并和其他神經(jīng)元組互相交流,以發(fā)展出感知目標(biāo)的總體理解。
這一系統(tǒng)可以解釋為分層的神經(jīng)元組,檢測(cè)輸入刺激的低層特性,并互相交流,以發(fā)展對(duì)目標(biāo)的高層檢測(cè)。
第一組神經(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)(例如,臉部和對(duì)應(yīng)之人)
簡(jiǎn)單來(lái)說(shuō),看到給定目標(biāo)后,系統(tǒng)中的不同神經(jīng)元組因目標(biāo)的不同方面而激活,并互相交流以形成整體圖景。
Yann Lecun從這一視覺(jué)腦皮層的層次模型中汲取了靈感,研發(fā)了卷積神經(jīng)網(wǎng)絡(luò):
局部連接:每層共享一個(gè)連接,以互相傳遞所學(xué)特征。
層次結(jié)構(gòu):在不同網(wǎng)絡(luò)層之間有一個(gè)很明顯的層次結(jié)構(gòu)——從低層特征(例如,鼻子,眼睛)到高層特征(臉部、具體的人)。
空間不變性:模型可以適應(yīng)輸入的平移等變換,仍然能夠完成識(shí)別。(人類能夠識(shí)別顛倒或經(jīng)過(guò)其他變換的圖像。)
因此,卷積神經(jīng)網(wǎng)絡(luò)的架構(gòu)如下圖所示:
典型的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)
其中,輸入數(shù)據(jù)為四維矩陣(樣本數(shù)字,高,寬,頻道)。其中頻道對(duì)應(yīng)色彩,彩圖有3個(gè)頻道(R、G、B),而灰度圖像只有1個(gè)頻道。
輸入數(shù)據(jù)將連接到一個(gè)隱藏層(卷積層),應(yīng)用多個(gè)任意尺寸(通常為3x3或5x5)的過(guò)濾器至圖像??梢詫⑦^(guò)濾器想象為一個(gè)大小為3x3(或5x5)的小手電,照在輸入圖像上,嘗試提取特征映射?;谔卣饔成洌?a target="_blank">算法可以理解數(shù)據(jù)中的局部特征(眼、耳……),不管其位置如何(平移不變性)。如下圖所示:
池化是一個(gè)降采樣操作,通過(guò)應(yīng)用任意尺寸(步長(zhǎng))的窗口,在窗口中根據(jù)用戶指定,提取和、最大值、平均值,以降低提取的特征映射的維度。在下面的示意圖中,我們使用的是最大池化,在特征映射的2x2窗口中提取最大值。這一技術(shù)有助于在保留信息的前提下降低維度。
最后是傳統(tǒng)的全連接層,對(duì)卷積習(xí)得的表示進(jìn)行softmax操作,并輸出預(yù)測(cè)。簡(jiǎn)單來(lái)說(shuō),全連接層包含觀察到特定模式后會(huì)“點(diǎn)亮”的節(jié)點(diǎn)。
從直覺(jué)上說(shuō),卷積神經(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ù)集和測(cè)試數(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)
重整測(cè)試集數(shù)據(jù)的形狀,在測(cè)試集上進(jìn)行預(yù)測(cè),并評(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é)語(yǔ)
卷積神經(jīng)網(wǎng)絡(luò)代表了圖像識(shí)別中的重大突破。卷積神經(jīng)網(wǎng)絡(luò)在自動(dòng)駕駛汽車,人臉識(shí)別系統(tǒng),醫(yī)學(xué)診斷等場(chǎng)景都有廣泛應(yīng)用。然而,值得注意的是,卷積神經(jīng)網(wǎng)絡(luò)仍有提升的空間,而卷積網(wǎng)絡(luò)的適用領(lǐng)域也出現(xiàn)了一些新技術(shù),比如膠囊網(wǎng)絡(luò)。
-
人工智能
+關(guān)注
關(guān)注
1806文章
49008瀏覽量
249322 -
卷積神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
4文章
369瀏覽量
12298
原文標(biāo)題:卷積網(wǎng)絡(luò)背后的直覺(jué)
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄

卷積神經(jīng)網(wǎng)絡(luò)如何監(jiān)測(cè)皮帶堵料情況 #人工智能
BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的比較
什么是BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法
BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)的關(guān)系
人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法

卷積神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)工具與框架
卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)調(diào)整方法
卷積神經(jīng)網(wǎng)絡(luò)在自然語(yǔ)言處理中的應(yīng)用
卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的比較
深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)模型
卷積神經(jīng)網(wǎng)絡(luò)的基本原理與算法
RNN模型與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的區(qū)別
Moku人工神經(jīng)網(wǎng)絡(luò)101

評(píng)論