手寫體漢字識別,用的VGG16網路結構

數據集有3755個label,每個label下有240張左右的shape為(64, 64, 3)的圖像(預處理後)用於訓練。訓練集的總圖像有89萬張,測試集的總圖像有22萬張。

HWDB1.1數據集下載地址:http://www.nlpr.ia.ac.cn/databases/handwriting/Download.html

我的代碼+數據集下載地址:https://pan.baidu.com/s/1XhtiIpVr7FnJjdbKugiNRQ

提取碼:z3zw

這裡顯示的訓練過程沒有使用全部的數據集內容,是為了方便展示,之前通宵訓練了完整數據的30個epoch,loss函數的值從最開始到最後一個一直在8.232X左右,嘗試過更改不同的優化器沒有任何效果,各位看看這是出什麼問題了???


瀉藥

3755個類別也太頂了。一般的模型根本搞不定這麼難的任務。

實踐上:

我跑個識別3000個詞左右的語言識別,模型大的一匹,用了12層transformer四個節點八塊GPU才裝下,超算跑了三天三夜才將將收斂。而且我這個任務還有前後關聯信息可以用,難度比你的小。你自己比較下。

理論上:

1.近4000個類導致你這個任務的類內分布非常的妖嬈,然後就可以參考遷移學習為什麼不怎麼work。

2.模型學習有一個過程,先低頻後高頻再低頻。第一個低頻叫做欠擬合,高頻叫做過擬合,第二個低頻則是擬合得很好。而學習高頻分量受到譜範數的限制,模型譜範數不夠大高頻信息就學不會,也就不用指望著能擬合得很好。

ps:目前可解釋方面沒有統一的公認理論,這個兩是認可度比較高的角度。


樓主我猜有沒有可能是略過最小值了,不一定對哈,只是一個猜測(知乎沒有狗頭)我只是一個中學生,不是專業的。(手動滑稽)


建議先從原數據集中分理出較少數目label(你這裡一共3k+,減少到100左右先),先進行小批量的嘗試驗證。這種直接暴力硬懟啥也不管的丟進網路中,大概率出不了奇蹟的。

btw,你的測試集真的不能拿來做validation,無論出於什麼目的。


不知道數據是什麼樣的,不太好回答,先看看數據生成器給出的數據對不對,把單個數據傳到網路看看結果怎麼樣,在計算一下loss看看算的對不對。

按理說不太應該降低的這麼慢,後面兩層的神經元太多了,一層就夠了。整個網路也太深了有23層,卷積層數量也太多了,64*64的小圖不需要這麼多卷積層,8層卷積,一層池化,最後接種類數相同的全鏈接層,每層卷積層或每兩層加一個bn層,層數太深不好訓練。

建議先用7-8層的淺層網路和小數據訓練一個標準模型,在此基礎上增加網路深度。

如果效果不好建議用resnet,resnext,densenet,senet,這種大的網路,這種網路基本集成在keras里了,調用很方便。

另外說一下,數據已經夠多了,不需要做什麼增強的了,但如果訓練到最後還想提高精度就需要增強,調參了。


我憑目前的經驗答一波,分析一下

首先是數據集是中文手寫體,每一個漢字數據量多少我們並不清楚,可能是數據集太小造成的,可以試著做做圖像增強。

其次vgg我覺得不太好應對過擬合的問題,建議使用帶殘差結構的網路

loss過高 很大原因可能是分類器學不到東西,我現在的畢設題也在面臨這個問題,我懷疑是分類器層數不夠,而且relu激活導致神經元失活的情況,改成leakyrelu會有改善

每個字的樣本量不同會造成類別不均衡問題,然後驗證集里是不是出現了訓練集中unseen的樣本,這些也會導致loss高


問題進展(一):

根據網友的建議我進行了小數據集小型網路的測試,並且取得較好的效果。

我從原數據集中提出100個label進行訓練,也就是識別100類不同的手寫體漢字,卷積層減少至只有3層卷積層

效果很好,loss值有好好的下降

目前的一些問題:

(1)由於自身專業知識淺薄,相關技術屬於自己從頭學起,搞混了測試集與驗證集的區別,所以在此次修改中validation集是測試集,我並沒有從train訓練集中分離出一部分用於validation驗證集,而是使用了test測試集。

(2)在以上情況下,驗證集居然展現出了比訓練集更高的精度acc讓我感到有些費解。Why??

(3)對於識別手寫體漢字,我並不清楚使用何種網路結構更加合適,換句話說我並不知道每一層結構的選擇取決於那些因素,希望得到一些講解或者資料方便我學習。

(4)由於是畢業設計的內容,識別更多的手寫體漢字,擁有更高的精度是我的目標,希望大家以此為指導,來探討一些有建設性的意見!


朋友,imagenet才一千個類別,而且他的評估方式還是五個對一個就行。你這三千多類別,不用點花活估計是搞不定的。

在你這個task中,vgg16充當一個預訓練的角色還行,你大概率需要在輸出後面加一個完整的網路吧。

一點淺見,我也很菜hhhh

有突破了別忘了更新一下分享給大家,謝謝


推薦閱讀:
相关文章