本文為 AI 研習社編譯的技術博客,原標題 :
Implementing an Image Classifier with PyTorch: Part 1
作者 | Jose Nieto
翻譯 | 醬番梨、Succi
校對 | 醬番梨 審核 | 醬番梨 整理 | 立魚王
原文連結:
https://medium.com/udacity/implementing-an-image-classifier-with-pytorch-part-1-cf5444b8e9c9
經過幾個月富有挑戰性但是受益良多的學習,我最近從Udacity的Python Nanodegree program AI編程專業畢業。最後一個項目是用PyTorch創建一個102種不同類型的花的圖像分類器。
在做這個final project的時候,很多同學都遇到了類似的問題和挑戰。當我接近完成的時候,我決定與大家分享一些在未來對他人有益的建議和見解。
通過3篇短文,介紹如何實現圖像分類器的概念基礎——這是一種能夠理解圖像內容的算法。
本文的目標不是提供手把手的指導,而是幫助理解整個過程。如果你正在考慮學習機器學習或人工智慧,你將不得不做類似的項目,並理解本系列文章中介紹的概念。
文章主要進行概念上的解釋,不需要知道如何編寫代碼。此外,下面所包含的PyTorch細節是次要的,主要以PyTorch作為示例。
這個過程的第一步是加載一個pre-trained神經網絡。在討論這一步時,我將解釋為什麼要「reuse」網絡(即使用「pre-trained」網絡),闡明哪些部分可以重用,哪些部分不能重用,並提供如何根據需要定製pre-trained網絡的指導。
reuse是一種十分合理的策略,尤其是眾所周知並且得到廣泛認可的標準。在示例中,出發點是torchvision提供的一種模型結構。
本文的目標是加載其中的一個pre-trained網絡,並且將其中的分類器替換為自己的分類器,從而可以訓練自己的分類器。
雖然這個想法是合理的,但我發現它也會產生一些問題,因為加載一個預先訓練的網絡並不能節省訓練分類器的時間。
「所以你可能會想,使用預訓練網絡有什麼意義?」
當我們人類看到圖像時,可以識別線條和形狀。正因為如此,我們才能將圖像內容與之前看到過的內容聯繫起來。我們希望我們的分類器能夠做一些類似的事情,但是圖像不是一段微不足道的數據。圖像通常由數千個獨立的像素組成,每個像素都有一種顏色,這種顏色由三個不同的值組合定義 : Red,Green, Blue。
從左到右:原始,紅色,綠色,藍色
如果我們希望我們的分類器能夠處理該數據量,我們將需要處理每個圖像中包含的所有信息,並以其可以理解的格式將其提供給分類器。這就是預訓練網絡發揮作用的地方。
這些預先訓練的網絡主要由一組特徵檢測器和分類器組成,其中特徵檢測器被訓練以從每個圖像中提取信息,並且訓練分類器以理解特徵層提供的輸入。
我們已經在已在ImageNet上培訓過功能檢測器,並且證明它可以有很好的表現。因此,我們希望保持原樣。為了防止在我們訓練分類器時,要素圖層被修改,我們需要「凍結」它們。這個小代碼片段可以幫助解決這個問題:
如果使用分類器會怎麼樣? 為什麼我們不能重複使用它? 要回答這個問題,讓我們以架構VGG16為例,來看看它的默認分類器:
首先,我們無法保證這一定是有效的。並且令人懷疑的是,這些默認層和元素,激活函數和丟失值對於我們的特定情況而言恰好是最佳的。
當我們看到它的最後一層有1000個元素的輸出時,情況就變得很明顯了。在我們的例子中,我們處理102種不同類型的花,因此我們的分類器的輸出必須是102 。
從上面VGG16中的默認分類器,我們還可以注意到它的輸入層有25088個元素,因為這是此特定預訓練模型中特徵檢測器的輸出大小。我們的分類器的輸入大小也必須與要素圖層的輸出相匹配。
由上文我們可以得知,預先訓練好的網絡非常有益,因為它們使我們能夠專注於我們的用例細節,同時重複使用眾所周知的泛型來進行示例中的圖像預處理。
我們還了解到,分類器輸出的大小必須與我們希望能夠識別的不同類型的數量相同。
最後,我們已經看到要素圖層的輸出和自定義分類器的輸入也必須匹配大小。
在我的下一篇文章中,我們將探討如何避免在分類器訓練過程中常見的陷阱,並學習如何調整超參數以提高模塊的準確性。
我的文章對你有用嗎?期待你的評論!
想要繼續查看該篇文章相關連結和參考文獻?雷鋒網雷鋒網(公眾號:雷鋒網)雷鋒網
點擊【手把手教你用PyTorch實現圖像分類器(第一部分)】即可訪問:
https://ai.yanxishe.com/page/TextTranslation/1353
AI入門、大數據、機器學習免費教程
35本世界頂級原本教程限時開放,這類書單由知名數據科學網站 KDnuggets 的副主編,同時也是資深的數據科學家、深度學習技術愛好者的Matthew Mayo推薦,他在機器學習和數據科學領域具有豐富的科研和從業經驗。
點擊連結即可獲取:https://ai.yanxishe.com/page/resourceDetail/417
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。