1-4.深度學習
前面提到的機器學習,在使用波士頓房價資料集做迴歸分析時,其特徵(變數)有13個,相對應的權重(參數)也有13個。但到了深度學習階段,變數參數達數萬或數百萬以上是很平常的。
比如在訓練影像辨識模型時,輸入的影像上每個像素灰階值,都可被當作是一個特徵值;它每一神經層的節點數兩兩相乘再相加,就決定了其參數的數目。
當然這樣的思考,並不完全合理,因為影像中任一像素的灰階值,都會與相鄰像素有關。所以在實務上,卷積神經網路(CNN)是最常用的演算法,它的參數是存在於處理卷積運算的遮罩當中。
下面的圖形,是來自於手寫阿拉伯數字資料集,從這數萬張圖片的其中10張,可以一葉知秋,為何自大航海時代以來,辨識潦草的阿拉伯數字,會一直困擾著與數字為伍的行政人員。
圖1-4-1. 10張來自手寫阿拉伯數字資料集的圖片。
下面還有另外一組資料集,是用來辨識5種不同的花朵。圖片中有單一花朵的,也有好幾朵花的,甚至有的還故意加上背景,用以增加分辨難度。
在訓練模型的時候,無論是哪種情況,每張圖片都必須標記其花朵名稱,花朵名稱先編號再編碼,隨後再和圖片一起輸入模型訓練,這種方式叫做監督式學習。這等於是在訓練階段,每張圖片都附有標準答案,等到訓練完成,再讓模型去預測尚未標記的新圖片。
圖1-4-2. 另外一組資料集,用來訓練辨識5種花朵。
早期知名的ImageNet比賽,辨識的物體達1000種,圖片總數約一百萬張,參賽者使用的神經網路層數也越來越多,從早先的十幾層,到最後超過一百層,目前主流的演算法如ResNet等,基本上還是CNN的架構。
ImageNet比賽已在2017年最後一屆功成身退,電腦視覺也從image identification進化到image understanding,甚至到現今的生成式圖像了,人工智慧的進步,真是一日千里。