標(biāo)題: 百度飛槳七日打卡學(xué)習(xí)心得 神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí) [打印本頁]

作者: 狄利克雷    時間: 2020-4-7 14:21
標(biāo)題: 百度飛槳七日打卡學(xué)習(xí)心得 神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)
百度飛槳學(xué)習(xí)心得
時間過得飛快,轉(zhuǎn)眼7天的課程已經(jīng)接近尾聲,從第一天的新冠疫情可視化,到最后的人流密度檢測,從易到難,我從中學(xué)到了很多,以前只是聽說過神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí),但是并不了解它們是一個怎樣的結(jié)構(gòu),它是如何像人一樣具有的學(xué)習(xí)能力,現(xiàn)在已經(jīng)知道了深度學(xué)習(xí)是什么,怎么構(gòu)建配置網(wǎng)絡(luò),怎么訓(xùn)練出模型,怎么來測試模型的好與壞,通過觀察輸出信息來調(diào)整自己網(wǎng)絡(luò)的參數(shù)。
這個課程給我最大的感受就是這里的老師很熱情,每天晚上老師都給我們講解今天要學(xué)習(xí)的內(nèi)容,而且詳細(xì)的講解作業(yè)的代碼,同時還在群里解答我們學(xué)習(xí)過程中遇到的問題所在,我覺得這里的老師非常的負(fù)責(zé)任,就是這樣的學(xué)習(xí)環(huán)境我們才開始慢慢了解了百度飛槳這一深度學(xué)習(xí)平臺,是一個集深度學(xué)習(xí)訓(xùn)練和預(yù)測框架、模型庫、工具組件和服務(wù)平臺為一體,擁有兼顧靈活性和高性能的開發(fā)機(jī)制、工業(yè)級的模型庫、超大規(guī)模分布式訓(xùn)練技術(shù)、高速推理引擎以及系統(tǒng)化的社區(qū)服務(wù)等五大優(yōu)勢,致力于讓深度學(xué)習(xí)技術(shù)的創(chuàng)新與應(yīng)用更簡單。下面就說下我在課程中所學(xué)到的知識。
第一天新冠疫情可視化,老師先給我們介紹了圖像識別算法的定義和發(fā)展過程中遇到的問題,從早期的全局特征提取到中期的詞袋模型、局部特征,識別效率和準(zhǔn)確率在逐漸上升。接下來就是實(shí)戰(zhàn)環(huán)節(jié),我們用餅狀圖顯示全國疫情首先需要得到今日的數(shù)據(jù),利用python自帶的request模塊爬取丁香園的公開的統(tǒng)計數(shù)據(jù),并保存在文件中。代碼如下:


接下來就是安裝第三方庫pyecharts ,如果下載時出現(xiàn)斷線和速度過慢的問題導(dǎo)致下載失敗,可以嘗試使用清華鏡像。
Echarts 是一個由百度開源的數(shù)據(jù)可視化工具,憑借著良好的交互性,精巧的圖表設(shè)計,得到了眾多開發(fā)者的認(rèn)可。而 Python 是一門富有表達(dá)力的語言,很適合用于數(shù)據(jù)處理。當(dāng)數(shù)據(jù)分析遇上數(shù)據(jù)可視化時,pyecharts 誕生了。pyecharts api可以參考:pyecharts點(diǎn)org/#/zh-cn/chart_api 。
畫餅狀圖用到的是pyecharts 模塊中的Pie,就需要初始化餅狀圖的一些參數(shù),包括顏色、內(nèi)外半徑、中心坐標(biāo)、標(biāo)簽的排序方向和方式等等。


下圖為最終顯示效果圖。

第二天基于深度學(xué)習(xí)的手勢識別,首先我們先看下什么是深度神經(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í)也是指的一個東西,DNN有時也叫做多層感知機(jī)(Multi-Layer perceptron,MLP)。從DNN按不同層的位置劃分,DNN內(nèi)部的神經(jīng)網(wǎng)絡(luò)層可以分為三類,輸入層,隱藏層和輸出層,如下圖示例,一般來說第一層是輸入層,最后一層是輸出層,而中間的層數(shù)都是隱藏層。

下面開始介紹DNN神經(jīng)網(wǎng)絡(luò)的配置,我們輸入的圖片大小為3*100*100,全連接層第一層的輸入為3*100*100,輸出我們設(shè)為100,中間兩個隱藏層都是100,100,激活函數(shù)都為relu,最后的輸出層為100、10,激活函數(shù)為softmax,因?yàn)槲覀冏罱K的分類為10所以輸出通道為10,下面是前向傳播函數(shù),就是按照全連接層的順序來寫,需要注意的是輸入的大小必須匹配上。

特別的地方是PaddlePaddled的用動態(tài)圖進(jìn)行訓(xùn)練,優(yōu)化器選用SGD隨機(jī)梯度下降,學(xué)習(xí)率為0.001.關(guān)于優(yōu)化器的種類有很多,梯度下降法GD、批量梯度下降法BGD、隨機(jī)梯度下降法SGD、Momentum、動量優(yōu)化法、NAG(Nesterov accelerated gradient)、自適應(yīng)學(xué)習(xí)率優(yōu)化算法、AdaGrad、Adadelta、Adam: Adaptive Moment Estimation
他們各有優(yōu)缺點(diǎn),我們這里選擇SGD由于每次參數(shù)更新僅僅需要計算一個樣本的梯度,訓(xùn)練速度很快,即使在樣本量很大的情況下,可能只需要其中一部分樣本就能迭代到最優(yōu)解,由于每次迭代并不是都向著整體最優(yōu)化方向,導(dǎo)致梯度下降的波動非常大,更容易從一個局部最優(yōu)跳到另一個局部最優(yōu),準(zhǔn)確度下降。但是這就需要我們根據(jù)收斂速度慢慢調(diào)整學(xué)習(xí)率learning_rate。訓(xùn)練次數(shù)可根據(jù)損失loos和成功率acc來更改其大小。

我們將訓(xùn)練好的模型保存下來,接著就是測試我們模型的準(zhǔn)確率,一個模型的好壞就是看其測試的準(zhǔn)確率大小,準(zhǔn)確率越高說明我們的模型的訓(xùn)練的很成功,錯誤的可能性更低。對于如何提高模型的準(zhǔn)確率,我覺得有三個方面是非常重要的。第一個是增加訓(xùn)練的數(shù)據(jù),神經(jīng)網(wǎng)絡(luò)的起源就是模仿人的神經(jīng)元,我們常說見多識廣,增加訓(xùn)練數(shù)據(jù)可以讓我們的模型提取的特征更明顯。第二個就是處理缺失值和異常值,對于連續(xù)變量,可以把缺失值替換成平均值、中位數(shù)、眾數(shù)。對于分類變量,可以把變量作為一個特殊類別看待。你也可以建立模型預(yù)測缺失值。KNN 為處理缺失值提供了很好的方法。異常值:你可以刪除這些條目,進(jìn)行轉(zhuǎn)換,分箱。如同缺失值,你也可以對異常值進(jìn)行區(qū)別對待。第三個就是交叉驗(yàn)證,如果想提高準(zhǔn)確率,我們必須使用交叉驗(yàn)證技術(shù)(cross validation)。交叉驗(yàn)證是數(shù)據(jù)建模領(lǐng)域最重要的概念之一。它是指,保留一部分?jǐn)?shù)據(jù)樣本不用來訓(xùn)練模型,而是在完成模型前用來驗(yàn)證。我們測試準(zhǔn)確率就是使用交叉驗(yàn)證的方法
。
最后就是根據(jù)我們輸入的數(shù)字圖像,預(yù)測輸出。

從第三天開始我們就開始學(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)。每個神經(jīng)元接收若干輸入,并對輸入進(jìn)行加權(quán)求和,然后通過一個激活功能將它們傳遞出去,再用一個輸出作為反應(yīng)。整個神經(jīng)網(wǎng)絡(luò)有一個損失函數(shù),我們?yōu)樯窠?jīng)網(wǎng)絡(luò)開發(fā)的所有貼士和技巧,仍然適用于卷積神經(jīng)網(wǎng)絡(luò)。一個卷積神經(jīng)網(wǎng)絡(luò)的典型架構(gòu)。

學(xué)到現(xiàn)在感覺自己還是有很多的不足,想要深入了解神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí),還需要接著跟隨著老師的步伐,百度飛槳平臺是一個非常好的深度學(xué)習(xí)平臺,回到學(xué)校我會向老師和同學(xué)們推薦這么好的學(xué)習(xí)環(huán)境,這么好的東西我不能自己獨(dú)享,最后還是要感謝我們的老師,在這期間為我們解決問題,指引我們向前走。






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1