|
百度飛槳學(xué)習(xí)心得
時(shí)間過(guò)得飛快,轉(zhuǎn)眼7天的課程已經(jīng)接近尾聲,從第一天的新冠疫情可視化,到最后的人流密度檢測(cè),從易到難,我從中學(xué)到了很多,以前只是聽說(shuō)過(guò)神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí),但是并不了解它們是一個(gè)怎樣的結(jié)構(gòu),它是如何像人一樣具有的學(xué)習(xí)能力,現(xiàn)在已經(jīng)知道了深度學(xué)習(xí)是什么,怎么構(gòu)建配置網(wǎng)絡(luò),怎么訓(xùn)練出模型,怎么來(lái)測(cè)試模型的好與壞,通過(guò)觀察輸出信息來(lái)調(diào)整自己網(wǎng)絡(luò)的參數(shù)。
這個(gè)課程給我最大的感受就是這里的老師很熱情,每天晚上老師都給我們講解今天要學(xué)習(xí)的內(nèi)容,而且詳細(xì)的講解作業(yè)的代碼,同時(shí)還在群里解答我們學(xué)習(xí)過(guò)程中遇到的問(wèn)題所在,我覺得這里的老師非常的負(fù)責(zé)任,就是這樣的學(xué)習(xí)環(huán)境我們才開始慢慢了解了百度飛槳這一深度學(xué)習(xí)平臺(tái),是一個(gè)集深度學(xué)習(xí)訓(xùn)練和預(yù)測(cè)框架、模型庫(kù)、工具組件和服務(wù)平臺(tái)為一體,擁有兼顧靈活性和高性能的開發(fā)機(jī)制、工業(yè)級(jí)的模型庫(kù)、超大規(guī)模分布式訓(xùn)練技術(shù)、高速推理引擎以及系統(tǒng)化的社區(qū)服務(wù)等五大優(yōu)勢(shì),致力于讓深度學(xué)習(xí)技術(shù)的創(chuàng)新與應(yīng)用更簡(jiǎn)單。下面就說(shuō)下我在課程中所學(xué)到的知識(shí)。
第一天新冠疫情可視化,老師先給我們介紹了圖像識(shí)別算法的定義和發(fā)展過(guò)程中遇到的問(wèn)題,從早期的全局特征提取到中期的詞袋模型、局部特征,識(shí)別效率和準(zhǔn)確率在逐漸上升。接下來(lái)就是實(shí)戰(zhàn)環(huán)節(jié),我們用餅狀圖顯示全國(guó)疫情首先需要得到今日的數(shù)據(jù),利用python自帶的request模塊爬取丁香園的公開的統(tǒng)計(jì)數(shù)據(jù),并保存在文件中。代碼如下:
1.png (12.94 KB, 下載次數(shù): 66)
下載附件
2020-4-7 15:12 上傳
2.png (8.01 KB, 下載次數(shù): 48)
下載附件
2020-4-7 15:12 上傳
接下來(lái)就是安裝第三方庫(kù)pyecharts ,如果下載時(shí)出現(xiàn)斷線和速度過(guò)慢的問(wèn)題導(dǎo)致下載失敗,可以嘗試使用清華鏡像。
3.png (18.4 KB, 下載次數(shù): 58)
下載附件
2020-4-7 15:12 上傳
Echarts 是一個(gè)由百度開源的數(shù)據(jù)可視化工具,憑借著良好的交互性,精巧的圖表設(shè)計(jì),得到了眾多開發(fā)者的認(rèn)可。而 Python 是一門富有表達(dá)力的語(yǔ)言,很適合用于數(shù)據(jù)處理。當(dāng)數(shù)據(jù)分析遇上數(shù)據(jù)可視化時(shí),pyecharts 誕生了。pyecharts api可以參考:pyecharts點(diǎn)org/#/zh-cn/chart_api 。
畫餅狀圖用到的是pyecharts 模塊中的Pie,就需要初始化餅狀圖的一些參數(shù),包括顏色、內(nèi)外半徑、中心坐標(biāo)、標(biāo)簽的排序方向和方式等等。
4.png (7.98 KB, 下載次數(shù): 57)
下載附件
2020-4-7 15:12 上傳
5.png (22.43 KB, 下載次數(shù): 59)
下載附件
2020-4-7 15:12 上傳

下圖為最終顯示效果圖。
6.png (66.3 KB, 下載次數(shù): 63)
下載附件
2020-4-7 15:12 上傳
第二天基于深度學(xué)習(xí)的手勢(shì)識(shí)別,首先我們先看下什么是深度神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)是基于感知機(jī)的擴(kuò)展,而DNN可以理解為有很多隱藏層的神經(jīng)網(wǎng)絡(luò)。多層神經(jīng)網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò)DNN其實(shí)也是指的一個(gè)東西,DNN有時(shí)也叫做多層感知機(jī)(Multi-Layer perceptron,MLP)。從DNN按不同層的位置劃分,DNN內(nèi)部的神經(jīng)網(wǎng)絡(luò)層可以分為三類,輸入層,隱藏層和輸出層,如下圖示例,一般來(lái)說(shuō)第一層是輸入層,最后一層是輸出層,而中間的層數(shù)都是隱藏層。
7.png (227.04 KB, 下載次數(shù): 57)
下載附件
2020-4-7 15:12 上傳
下面開始介紹DNN神經(jīng)網(wǎng)絡(luò)的配置,我們輸入的圖片大小為3*100*100,全連接層第一層的輸入為3*100*100,輸出我們?cè)O(shè)為100,中間兩個(gè)隱藏層都是100,100,激活函數(shù)都為relu,最后的輸出層為100、10,激活函數(shù)為softmax,因?yàn)槲覀冏罱K的分類為10所以輸出通道為10,下面是前向傳播函數(shù),就是按照全連接層的順序來(lái)寫,需要注意的是輸入的大小必須匹配上。
8.png (6.25 KB, 下載次數(shù): 59)
下載附件
2020-4-7 15:12 上傳
特別的地方是PaddlePaddled的用動(dòng)態(tài)圖進(jìn)行訓(xùn)練,優(yōu)化器選用SGD隨機(jī)梯度下降,學(xué)習(xí)率為0.001.關(guān)于優(yōu)化器的種類有很多,梯度下降法GD、批量梯度下降法BGD、隨機(jī)梯度下降法SGD、Momentum、動(dòng)量?jī)?yōu)化法、NAG(Nesterov accelerated gradient)、自適應(yīng)學(xué)習(xí)率優(yōu)化算法、AdaGrad、Adadelta、Adam: Adaptive Moment Estimation
他們各有優(yōu)缺點(diǎn),我們這里選擇SGD由于每次參數(shù)更新僅僅需要計(jì)算一個(gè)樣本的梯度,訓(xùn)練速度很快,即使在樣本量很大的情況下,可能只需要其中一部分樣本就能迭代到最優(yōu)解,由于每次迭代并不是都向著整體最優(yōu)化方向,導(dǎo)致梯度下降的波動(dòng)非常大,更容易從一個(gè)局部最優(yōu)跳到另一個(gè)局部最優(yōu),準(zhǔn)確度下降。但是這就需要我們根據(jù)收斂速度慢慢調(diào)整學(xué)習(xí)率learning_rate。訓(xùn)練次數(shù)可根據(jù)損失loos和成功率acc來(lái)更改其大小。
9.png (10.18 KB, 下載次數(shù): 66)
下載附件
2020-4-7 15:12 上傳
我們將訓(xùn)練好的模型保存下來(lái),接著就是測(cè)試我們模型的準(zhǔn)確率,一個(gè)模型的好壞就是看其測(cè)試的準(zhǔn)確率大小,準(zhǔn)確率越高說(shuō)明我們的模型的訓(xùn)練的很成功,錯(cuò)誤的可能性更低。對(duì)于如何提高模型的準(zhǔn)確率,我覺得有三個(gè)方面是非常重要的。第一個(gè)是增加訓(xùn)練的數(shù)據(jù),神經(jīng)網(wǎng)絡(luò)的起源就是模仿人的神經(jīng)元,我們常說(shuō)見多識(shí)廣,增加訓(xùn)練數(shù)據(jù)可以讓我們的模型提取的特征更明顯。第二個(gè)就是處理缺失值和異常值,對(duì)于連續(xù)變量,可以把缺失值替換成平均值、中位數(shù)、眾數(shù)。對(duì)于分類變量,可以把變量作為一個(gè)特殊類別看待。你也可以建立模型預(yù)測(cè)缺失值。KNN 為處理缺失值提供了很好的方法。異常值:你可以刪除這些條目,進(jìn)行轉(zhuǎn)換,分箱。如同缺失值,你也可以對(duì)異常值進(jìn)行區(qū)別對(duì)待。第三個(gè)就是交叉驗(yàn)證,如果想提高準(zhǔn)確率,我們必須使用交叉驗(yàn)證技術(shù)(cross validation)。交叉驗(yàn)證是數(shù)據(jù)建模領(lǐng)域最重要的概念之一。它是指,保留一部分?jǐn)?shù)據(jù)樣本不用來(lái)訓(xùn)練模型,而是在完成模型前用來(lái)驗(yàn)證。我們測(cè)試準(zhǔn)確率就是使用交叉驗(yàn)證的方法
。
10.png (7.05 KB, 下載次數(shù): 62)
下載附件
2020-4-7 15:12 上傳
最后就是根據(jù)我們輸入的數(shù)字圖像,預(yù)測(cè)輸出。
11.png (8.28 KB, 下載次數(shù): 60)
下載附件
2020-4-7 15:12 上傳
從第三天開始我們就開始學(xué)習(xí)不同的網(wǎng)絡(luò)模型,講解了卷積神經(jīng)網(wǎng)絡(luò),并學(xué)習(xí)了經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)模型LeNet、AlexNet、VGGNet、GoogleNet、ResNet。跟神經(jīng)網(wǎng)絡(luò)一樣,卷積神經(jīng)網(wǎng)絡(luò)由神經(jīng)元構(gòu)成,這些神經(jīng)元帶有可學(xué)習(xí)的權(quán)重和偏差(bias)。每個(gè)神經(jīng)元接收若干輸入,并對(duì)輸入進(jìn)行加權(quán)求和,然后通過(guò)一個(gè)激活功能將它們傳遞出去,再用一個(gè)輸出作為反應(yīng)。整個(gè)神經(jīng)網(wǎng)絡(luò)有一個(gè)損失函數(shù),我們?yōu)樯窠?jīng)網(wǎng)絡(luò)開發(fā)的所有貼士和技巧,仍然適用于卷積神經(jīng)網(wǎng)絡(luò)。一個(gè)卷積神經(jīng)網(wǎng)絡(luò)的典型架構(gòu)。
12.png (215.14 KB, 下載次數(shù): 63)
下載附件
2020-4-7 15:12 上傳
學(xué)到現(xiàn)在感覺自己還是有很多的不足,想要深入了解神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí),還需要接著跟隨著老師的步伐,百度飛槳平臺(tái)是一個(gè)非常好的深度學(xué)習(xí)平臺(tái),回到學(xué)校我會(huì)向老師和同學(xué)們推薦這么好的學(xué)習(xí)環(huán)境,這么好的東西我不能自己獨(dú)享,最后還是要感謝我們的老師,在這期間為我們解決問(wèn)題,指引我們向前走。
|
|