【深度学习】手把手教你实现一个人工智能案例(蓄电池爬碱识别)
本文的目標:手把手教一個零基礎員工入門省公司AI平臺項目開發(fā)
本項目目標:實現(xiàn)了通信運檢一班通信蓄電池爬堿的人工智能識別
前期準備:需要自學python的基本語法,只要看得懂python語句之后,就可以看別人的人工智能項目進行學習了。比如看本次項目。
推薦python學習網(wǎng)站:
https://www.runoob.com/python/python-tutorial.html。
推薦項目學習網(wǎng)站:
https://aistudio.baidu.com/aistudio/
結(jié)果展示:
上圖模型訓練結(jié)果顯示,在訓練集上識別的準確率為100%,在測試集上識別準確率為90%。
下面從0開始教學(默認python語法已自學完畢):
一、概念理解
首先解釋一下什么是機器學習和深度學習。
機器學習的定義是:“計算機程序可以在給定某種類別的任務 T 和性能度量 P 下學習經(jīng)驗 E ,如果其在任務 T 中的性能恰好可以用 P 度量,則隨著經(jīng)驗 E 而提高。”
簡單可以這樣理解:讓機器看作文的特征和老師給定的分數(shù),機器在看了足夠多不同特征的作文及其得分之后,就可以自己給老師還沒有批改的作文打分了(或者分類,好還是壞)。
深度學習的定義是:“深度學習是一種特殊的機器學習,通過學習將世界使用嵌套的概念層次來表示并實現(xiàn)巨大的功能和靈活性,其中每個概念都定義為與簡單概念相關聯(lián),而更為抽象的表示則以較不抽象的方式來計算。”
簡單可以這樣理解:深度學習比機器學習更厲害了,機器不僅可以給作文打分,因為他看的作文夠多了,并且知道什么是好作文,什么是差作文,最后他自己都可以寫出好作文來了。
我們今天要完成的任務就是基于深度學習的圖像識別任務,讓他看足夠多的照片(訓練集),提前告訴他,哪些蓄電池是好的,哪些蓄電池是壞的。訓練出模型之后,他就可以自動識別出剛拍的還沒有打標記的照片(測試集),哪些是好的蓄電池,哪些是壞的蓄電池。如果你訓練的時候告訴了他蓄電池壞的種類,他甚至可以告訴你蓄電池壞的種類具體是哪一類。
真實場景中蓄電池最常見的肉眼可見的缺陷就是爬堿。含有氫氧化鉀(KOH)和氫氧化鋰的堿性電解液有爬上容器口,翻越容器壁向地面再向墻壁爬越的特性,稱為爬堿。爬堿的危害是爬堿現(xiàn)象會引起蓄電池正、負極以及其他回路自放電加大,降低蓄電池正、負極間和直流系統(tǒng)的絕緣水平,消耗電解液,從而降低蓄電池適用壽命。所以自動識別爬堿具有重要的實用價值。
檢修一班真實現(xiàn)場的爬堿照片如下圖所示:
很明顯有爬堿現(xiàn)象和沒有爬堿現(xiàn)象的蓄電池在圖像層面上有著本質(zhì)的區(qū)別,只需要用深度學習模型學習到這個區(qū)別,就可以根據(jù)現(xiàn)場無論什么設備什么方式采集到的蓄電池照片全自動完成蓄電池是否爬堿的判斷,也就實現(xiàn)了人工智能。
二、數(shù)據(jù)集準備
千里馬常有而伯樂不常有,套用到人工智能領域就是優(yōu)秀的模型算法常有,但優(yōu)質(zhì)的數(shù)據(jù)集不常有,這就是為什么大數(shù)據(jù)會成為企業(yè)重要資產(chǎn)的原因。
目前限制整個國網(wǎng)公司以及信通公司在人工智能領域應用的核心痛點不是沒有需求和應用場景,而是在對應需求和應用場景下沒有優(yōu)質(zhì)的大規(guī)模數(shù)據(jù)集。
因為蓄電池運維問題一直是通信運檢一班運維的痛點和難點,所以班組有意識收集了大量的數(shù)據(jù)集。將數(shù)據(jù)集整理為兩類,一類是正常蓄電池,一類是爬堿蓄電池,再將數(shù)據(jù)集拆分為訓練集(train)和測試集(test),訓練集用來訓練模型,數(shù)量種類越多,模型訓練出來就越優(yōu)秀。測試集用來測試模型是否能準確預測,各種刁鉆的拍攝角度和爬堿類型都要來點兒,看是否能全部預測出來。
整理后的效果如圖所示。
訓練集(包含正常蓄電池和爬堿蓄電池):
測試集(包含正常蓄電池和爬堿蓄電池):
最后打包成zip:
訓練集遵循一個原則,多多益善,為什么抖音(本質(zhì)上是人工智能分發(fā)系統(tǒng))能在全球大火,就是因為中國用戶太多了,數(shù)據(jù)喂得飽,模型訓練得好。跟中國比,其他國家全是小數(shù)據(jù),只有我們是大數(shù)據(jù)。(美帝強就強在,他在全球拿數(shù)據(jù))
三、省公司AI平臺的使用(百度AI Studio)
省公司AI平臺本質(zhì)上是百度Ai Stduio的本地化部署,所以本次實驗我們就在百度Ai Stduio上完成。省公司AI平臺在Ai Stduio的基礎上,考慮到基層員工編程技能不熟練,所以開發(fā)了一些智能編程的模塊,比如:作業(yè)建模,可視化建模,自動化建模。本實驗相當于是Notebook建模,從頭開始自己完整寫出來。自己能夠?qū)懸徽状a后,也更有利于其他簡單建模的理解。省公司建立這個AI平臺是更希望廣大員工幫忙一起補充數(shù)據(jù)集,標注數(shù)據(jù)集。如果想自己獨立開發(fā),那么我更建議百度Ai Stduio,完成驗證后可直接移植到省公司AI平臺上。
用自己的百度賬號,登陸Ai Stduio,點擊創(chuàng)建項目。
選第一個Notebook就新建了一個Jupyter Notebook自己從頭開始編寫。接著配置環(huán)境選AI Studio經(jīng)典版,項目描述隨意填寫。
點啟動環(huán)境,開始進行編程。現(xiàn)在可以免費白嫖GPU算力,以后按百度的尿性肯定要收費,所以趁早白嫖,直接選至尊GPU,運算速度快。如果以后收費了,也可以在省公司AI平臺上去利用平臺服務器的GPU進行運算,自己的個人電腦是不可能完成大規(guī)模深度學習模型訓練的,這也是省公司開放AI平臺的原因。
四、上傳數(shù)據(jù)集
把打包好的zip文件放在work目錄下,執(zhí)行一段linux命令把zip解壓縮。
!unzip?-q?work/蓄電池數(shù)據(jù)集.zip?-d?work/五、代碼編寫
設置參數(shù):
batch_size = 10 lr =5e-5 epoch = 20 train_path = './work/train' eval_path = "./work/test"數(shù)據(jù)傳入:
打印幾個圖像數(shù)據(jù)出來看看:
打印一個圖像出來看看:
建立模型:
from paddle.vision.models import resnet50 import paddle mymodel = paddle.Model(resnet50(num_classes=2,pretrained=True)) loss = paddle.nn.CrossEntropyLoss() optimizer = paddle.optimizer.Adam(learning_rate=5e-5,parameters=mymodel.parameters()) mymodel.prepare(loss=loss,optimizer=optimizer,metrics=paddle.metric.Accuracy())(Resnet是殘差網(wǎng)絡(Residual Network)的縮寫,該系列網(wǎng)絡廣泛用于目標分類等領域以及作為計算機視覺任務主干經(jīng)典神經(jīng)網(wǎng)絡的一部分,典型的網(wǎng)絡有resnet50, resnet101等。Resnet網(wǎng)絡證明網(wǎng)絡能夠向更深(包含更多隱藏層)的方向發(fā)展。)
訓練保存模型:
mymodel.fit(train_data=train_loader,eval_data=eval_loader,batch_size=10,epochs=epoch,verbose=True,save_dir="./check_ponit",save_freq=1)結(jié)果分析:
訓練出來的模型在訓練集上的正確率為100%。
在測試集上的正確率為90%,達到預期目標。
模型保存:
保存后的模型可部署到硬件設備上進行人工智能自動識別。
總結(jié):
整個人工智能應用案例分為以下4個主要步驟:
確定應用場景
準備數(shù)據(jù)集
AI平臺創(chuàng)建項目
編程實現(xiàn)
整個項目最難的部分在優(yōu)質(zhì)數(shù)據(jù)集的有效收集。
進一步優(yōu)化思路:
更多的年輕人學會使用python和AI平臺,并結(jié)合自己的生產(chǎn)實際提出更多的應用場景。
建立班組大數(shù)據(jù)庫,全員有意識收集相關的數(shù)據(jù)。更合理的方式是數(shù)據(jù)由設備自動采集存儲。
積累更多的數(shù)據(jù)集來優(yōu)化訓練已有的模型從而提高識別準確率。
嘗試更多的先進模型并調(diào)整參數(shù)來提高識別準確率
學習路徑及免費資源:
百度Ai Studio(百度賬號登陸):
阿里天池(支付寶賬號登陸):
本站qq群554839127,加入微信群請掃碼:
總結(jié)
以上是生活随笔為你收集整理的【深度学习】手把手教你实现一个人工智能案例(蓄电池爬碱识别)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】4000字归纳总结 Pa
- 下一篇: 电脑怎么备份系统