廖繼紅 南寧職業(yè)技術(shù)學(xué)院
隨著信息技術(shù)和數(shù)據(jù)科學(xué)發(fā)展,作為人工智能分支領(lǐng)域的深度學(xué)習(xí)得到迅速發(fā)展,應(yīng)用領(lǐng)域不斷擴(kuò)大,已滲透到自然科學(xué)、生物醫(yī)學(xué)和社會(huì)科學(xué)等領(lǐng)域的方方面面,越來越受到人們的關(guān)注。
Python是一種解釋執(zhí)行的高級(jí)程序設(shè)計(jì)語言,易學(xué)易用,語法簡練,可讀性強(qiáng),幾乎適應(yīng)各種平臺(tái)使用,Python具有豐富的類庫,因此基于Python語言的數(shù)據(jù)處理應(yīng)用功能被廣泛認(rèn)可。
1.Numpy
Numpy是Python科學(xué)計(jì)算的基礎(chǔ)工具包,其提供了一個(gè)名為ndarray的多維數(shù)組,數(shù)組中的數(shù)據(jù)類型是一致的,因此可以輕松確定數(shù)組所需要的空間,并且運(yùn)用向量化運(yùn)算來處理數(shù)組,運(yùn)算速度格外快。NumPy數(shù)組可以通過使用的切片和索引方法對(duì)數(shù)據(jù)進(jìn)行訪問和修改處理。
2.Pandas
Pandas是一個(gè)開源的用于數(shù)據(jù)清洗的Python庫,實(shí)現(xiàn)數(shù)據(jù)讀出、整理、描述和統(tǒng)計(jì),Pandas的基本操作,包括創(chuàng)建相應(yīng)的數(shù)據(jù)結(jié)構(gòu) ,對(duì)數(shù)據(jù)進(jìn)行選取,再調(diào)用相應(yīng)的方法函數(shù),處理丟棄缺失的值,缺失值的填充、標(biāo)識(shí)和刪除重復(fù)的行,數(shù)據(jù)清洗。
3.Scipy
Scipy是在Numpy庫基礎(chǔ)上增加許多數(shù)學(xué)、科學(xué)計(jì)算的函數(shù)庫,可以提供包括統(tǒng)計(jì)、優(yōu)化整合以及線性代數(shù)、信號(hào)圖象圖例、常微分方程的求解。
4.Matplotlib
Matplotlib具有的Python繪圖庫,可以在各種平臺(tái)上使用,使得數(shù)據(jù)分析具有結(jié)果的可視化,直觀化,形成箱形圖、對(duì)數(shù)圖等 。
機(jī)器學(xué)習(xí)是人工智能的一個(gè)分支,深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)領(lǐng)域,深度學(xué)習(xí)中是從數(shù)據(jù)中學(xué)習(xí)表示的一種方法,是從連續(xù)的層中進(jìn)行學(xué)習(xí),這些分層表示 部是通過神經(jīng)網(wǎng)絡(luò)的模型來學(xué)習(xí)。
深度學(xué)習(xí)的具體過程:
1.定義訓(xùn)練數(shù)據(jù),輸入樣本X,目標(biāo)值Y
2.定義模型網(wǎng)絡(luò),在X上前向傳播運(yùn)行網(wǎng)絡(luò),得到預(yù)測值Y
3.計(jì)算預(yù)測值Y和目標(biāo)Y的差距
4.更新網(wǎng)絡(luò)權(quán)重,使網(wǎng)絡(luò)在這批數(shù)據(jù)上的損失略微下降。
必要時(shí)重復(fù)上述步驟。
以下是深度學(xué)習(xí)的工作原理圖:
其中,權(quán)重是神經(jīng)網(wǎng)絡(luò)中每層對(duì)輸入數(shù)據(jù)所做的具體操作,本質(zhì)是一串?dāng)?shù)字,通過權(quán)重參數(shù)對(duì)每層進(jìn)行變換,可以通過反饋機(jī)制對(duì)權(quán)重進(jìn)行調(diào)整。
工作的目標(biāo):找到權(quán)重的正確取值。
1.神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)表示
神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)存儲(chǔ)在稱為張量的多維數(shù)組NumPy中,張量是矩陣向任意維度的推廣,神經(jīng)網(wǎng)絡(luò) 由一系列張量運(yùn)算組成。為了使原始數(shù)據(jù)更適用于神經(jīng)網(wǎng)絡(luò),必須首先對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換為張量,即數(shù)據(jù)向量化。測試數(shù)據(jù)中可能有的缺失值,要進(jìn)行預(yù)處理,同時(shí)讓輸入的數(shù)據(jù)在一定的范圍內(nèi)。
2.神經(jīng)網(wǎng)絡(luò)的廣播機(jī)制
神經(jīng)網(wǎng)絡(luò)由可以稱為廣播的一系列張量運(yùn)算完成,所有的變換都可以簡化為數(shù)值數(shù)據(jù)張量上的張量運(yùn)算,神經(jīng)網(wǎng)絡(luò)各層的運(yùn)算是通過矩陣的乘法運(yùn)算進(jìn)行的。因此,在深度學(xué)習(xí)中可以導(dǎo)入NumPy庫,使用NumPy多維數(shù)組的運(yùn)算來實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò),可以用很少的代碼完成神經(jīng)網(wǎng)絡(luò)的層的前向處理。NumPy的廣播機(jī)制可以讓形狀不同的數(shù)組之間進(jìn)行運(yùn)算。
以下是三層神經(jīng)網(wǎng)絡(luò)圖。
其中X表示輸入層,W1表示權(quán)重,A1表示第一層。
用NumPy實(shí)現(xiàn)基本語句:
X=np.array(x1,x2)
W1=np.array([w1,w2,w3],[w4,w5,w6])
A1=np.dot(X,W1)
以此類推,多層神經(jīng)網(wǎng)絡(luò)也可以實(shí)現(xiàn)各層信號(hào)的傳遞。
Keras是一個(gè)Python深度學(xué)習(xí)框架,具有API接口,可以快速定義、訓(xùn)練和開發(fā)幾乎所有的深度學(xué)習(xí)模型,Keras內(nèi)置有計(jì)算機(jī)視覺的卷積網(wǎng)絡(luò)和用于序列處理的循環(huán)網(wǎng)絡(luò)。Keras可以通過TensorFlow后端實(shí)現(xiàn),TensorFlow是當(dāng)今深度學(xué)習(xí)的主要平臺(tái)之一,它是Google開發(fā)的一款Python神經(jīng)網(wǎng)絡(luò)外部結(jié)構(gòu)包,具有生成張量,可以調(diào)用Python的計(jì)算模塊如NumPy,SciPy程序庫生成序列等功能,是構(gòu)建深度學(xué)習(xí)模型的最佳方式 。
Python以其特有的簡煉語法,豐富的程序庫,受到人們在關(guān)注,只要學(xué)習(xí)基本的Python腳本,就可以從事深度學(xué)習(xí)。深度學(xué)習(xí)技術(shù)通過使用變換實(shí)現(xiàn)模型的過程,使得越來越多的基于Python的深度學(xué)習(xí)已廣泛應(yīng)用在圖像分類,語音識(shí)別,手寫識(shí)別,廣告定投等應(yīng)用領(lǐng)域。