訂閱
糾錯
加入自媒體

【Maker玩AI】使用Google Colaboratory免費資源學AI

建構數據集

為了練習「建構數據集」這個題目,我們首先必須要有數據集,但實在不容易在短時間內收集到數千張的影像,好在知名人工智能比賽平臺Kaggle上有一個「Dogs and Cats」的影像分類比賽,它提供了大量的貓狗影像,以供測試「深度學習」算法(模型)的正確性。

Google為方便大家測試Colab,再將其減量到訓練用影像貓狗各1000張,驗證用影像貓狗各500張,其數據集樣本大致上如下圖所示。影像沒并沒有特定尺寸,貓狗在影像中占的面積比例、種類、色彩、數量、位置、明暗、遮蔽、背景復雜度也都沒有限制。

Kaggle提供的「Dogs and Cats」數據集樣本

卷積神經網絡模型

這個范例中,主要利用TensorFlow及Keras建構出一個小型的卷積神經網絡(Convolution Neural Network, CNN),共有三層卷積層(包含ReLu及Max Pooling),每個卷積層皆用3×3的濾波器進行卷積動作,三層分別提取16, 32及64組濾波器。接著展開成獨立節(jié)點后,再加入二層全連結層,分別為512及1個節(jié)點,而最后得到的那一個節(jié)點加上Sigmodid函數即為最終輸出的結果,合計共有9,494,561個參數待訓練。

輸出的結果值會介于0.0 ~ 1.0,當值越接近1.0時圖片為狗的機率越高,反之輸出值越接近0.0時圖片判定是貓的機率越高。雖然這個模型雖然不大,但可適用各種圖像的二元分類問題,大家可試著導入自己準備的圖像進行測試。完整模型架構可參考下圖。

卷積神經網絡架構

訓練及驗證

下方圖左為正確率,圖右為損失率,橫軸代表迭代次數,縱軸代表正確(或損失)率;藍線代表訓練集結果,而綠線代表驗證集結果。從圖中可看出藍線在第十次正確率就已超過0.97(97%),而損失率已趨近0,但綠色的線正確率卻沒有繼續(xù)變高,數值約接近0.7(70%),損失率反而逐漸增高。這表示訓練過程已造成過擬合(over fitting)的狀況,需要加入更多不同樣態(tài)及更多數量的數據集再重新訓練才能改善。

左:訓練及驗證準確性,右:訓練及驗證損失

推論結果

接著就可利用前面訓練好的模型(model)來加以推論(或稱為預測)。首先提供一張圖片,并將圖像數據正規(guī)化(150x150x3, Float32),接著進行推論,最后會得到圖像分類結果分數,而分數越接近1.0則表示是狗的機率越高,反之越接近0.0則越可能是貓。我們可以另設幾個自定義門坎值來區(qū)隔分類結果,比方說「這是狗」、「這可能是狗」、「這可能是貓」、「這是貓」等不同結果描述。

為了讓大家更了解深度學習模型運作方式,將各層運作結果輸出到特征圖中,再逐一秀出。如下圖,最上面為原始輸入影像正規(guī)化后的結果圖,再來才是真正導入輸入層的信息,尺寸為150×150共有3組(RGB三通道)。

第一卷積層共產生16個特征圖,conv2d_1尺寸為148×148,max_pooling2d_1尺寸為74×74;第二卷積層共產生32個特征圖,conv2d_2尺寸為72×72,max_pooling_2為36×36;第三卷積層共產生64個特征圖,conv2d_3尺寸為34×34,max_pooling_3為17×17;最后的全連結層(dense)則為單一節(jié)點信息,不易以圖形方式表示,故忽略不處理。

從各層特征圖中可看出,隨著影像尺寸縮小其被激活的像素越來越少,甚至完全不輸出(全黑),表示其特征已被某些卷積(濾波器)給凸顯出來。對于我們所需的圖像分類(辨識)能力也逐漸增強了。

推論結果可視化

結論

Google Colaboratory這項免費的云端GPU資源實在很方便剛入門的伙伴進行「深度學習」(一語雙關),它不會因為個人計算機(筆電)的配備等級不同,而影響模型訓練及推論的效能。同時,可輕易的分享代碼給其它想學的人,對開源社群更是一大助力。希望不久的將來有更多伙伴能一起加入研究及分享,讓更多人工智能的應用能加速落地。

完整代碼及說明,請參閱Github.

作者:許哲豪

<上一頁  1  2  
聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

    掃碼關注公眾號
    OFweek人工智能網
    獲取更多精彩內容
    文章糾錯
    x
    *文字標題:
    *糾錯內容:
    聯系郵箱:
    *驗 證 碼:

    粵公網安備 44030502002758號