1. 程式人生 > >基於 keras平臺CNN神經網路模型的服裝識別分析

基於 keras平臺CNN神經網路模型的服裝識別分析

在許多介紹影象識別任務的介紹中,通常使用著名的MNIST資料集。但是,這些資料存在一些問題:

1.太簡單了。例如,一個簡單的MLP模型可以達到99%的準確度,而一個2層CNN可以達到99%的準確度。

2.它被過度使用。從字面上看,每臺機器學習入門文章或影象識別任務都將使用此資料集作為基準。但是,因為獲得近乎完美的分類結果非常容易,所以它的實用性會受到打折,並且對於現代機器學習/ AI任務並不真正有用。

因此,出現Fashion-MNIST資料集。該資料集是作為MNIST資料的直接替代而開發的,其意義在於:

1.尺寸和風格相同:28x28灰度影象

2.每個影象與10個類中的1個相關聯,即:

       0:T恤/上衣,

       1:褲子,

       2:套頭衫,

       3:連衣裙,

       4 :外套,

       5:涼鞋,

       6:襯衫,

       7:運動鞋,

       8:揹包,

       9:腳踝靴

3. 60000訓練樣本和10000個測試樣本以下是一些樣本的快照:


自從它出現以來,已經有多份提交檔案來對這些資料進行基準測試,其中一些能夠達到95%以上的準確度,最明顯的是剩餘網路或可分離的CNN。 


我也試圖用keras來對這個資料進行基準測試。keras是構建深度學習模型的高階框架,在後端選擇TensorFlow,Theano和CNTK。它很容易安裝和使用。對於我的應用程式,我使用了CNTK後端。你可以參考這篇

文章的安裝。

在這裡,我將以兩個模型為基準。一種是層結構為256-512-100-10的MLP,另一種是類VGG的CNN。 

第一個模型在100個曆元後的測試資料上達到了[0.89,0.90]的精度,而後者達到了45個時期後的測試資料的精度> 0.94。首先,閱讀Fashion-MNIST資料:

我們先用tSNE來看它。據說tSNE是最有效的尺寸縮小工具。這個繪圖函式是從sklearn例子中借用的。 

tSNE在計算上非常昂貴,所以對於像我這樣不耐煩的人,我使用了1000個樣本來快速執行。如果您的PC速度足夠快並且有時間,則可以針對完整資料集執行tSNE。 


我們看到,包括質量大小,底部分裂和對稱性等幾個特徵將類別分開。深度學習在這裡非常出色,因為您不必手動設計功能,而是讓演算法提取這些功能。

為了建立自己的網路,我們首先匯入一些庫

該模型在大約100個時期的測試資料集上達到了近90%的準確度。現在,我們來構建一個類似VGG的CNN模型。我們使用類似於VGG的體系結構,但仍然非常不同。由於圖形資料很小,如果我們使用原始VGG體系結構,它很可能會過度配合,並且在測試資料時表現不佳,這些資料在上面列出的公開提交的基準測試中觀察到。在keras中構建這樣一個模型是非常自然和容易的:

這個模型有150萬個引數。我們可以呼叫'fit'方法來訓練模型:

model3_fit=model3.fit(X_train, Y_train2, validation_data = (X_test, Y_test2), epochs=50, verbose=1, batch_size=500)

經過40次以後,這個模型在測試資料上獲得了0.94的精度。顯然,這個模型也存在過度擬合問題。我們稍後會解決這個問題。



大資料部落——中國專業的第三方資料服務提供商,提供定製化的一站式資料探勘和統計分析諮詢服務統計分析和資料探勘諮詢服務 :y0.cn/teradat(諮詢服務請聯絡官網客服點選這裡給我發訊息QQ:3025393450【服務場景】                     科研專案;                     公司專案外包 ;線上線下一對一培訓 ;學術研究。【大資料部落】提供定製化的一站式資料探勘和統計分析諮詢服務
 分享最新的大資料資訊,每天學習一點資料分析,讓我們一起做有態度的資料人【大資料部落】大資料部落提供定製化的一站式資料探勘和統計分析諮詢服務微信客服號:lico_9eQQ交流群:186388004  歡迎關注微信公眾號,瞭解更多資料乾貨資訊!