iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
AI/ ML & Data

AI Unlocked: 30 Days to AI Brilliance系列 第 8

AI的眼睛:用Python實作CNN圖像分類

  • 分享至 

  • xImage
  •  

之前在第三天的內容中提過了卷積神經網絡CNN,作為計算機視覺的核心技術之一,正在幫助機器「看見」並理解這個世界。無論是自動駕駛、醫學影像診斷還是圖像分類,CNN都扮演著重要角色。今天,我們將深入探討CNN的運作原理,並且手把手帶你實作一個基於CIFAR-10數據集的圖像分類模型,來看看AI如何透過「眼睛」認識世界吧!

一、解構卷積神經網絡(CNN)

  1. 卷積層(Convolutional Layer):模擬視覺皮層的工作方式
  • 原理
    使用一個小型「卷積核」來掃描輸入圖像,每次卷積核會覆蓋輸入圖像的一小部分、進行元素處理,最後生成一個數值,而這個過程就稱為**「卷積」。卷積核在圖像上滑動,不段重複「卷積」動作,多層的卷積層可以讓CNN從較低層次的特徵(如邊緣)學習到更高層次的特徵(如物體形狀和組合),最終都會被「特徵圖」**所記錄下來。

<卷積核Kernel>
卷積核的大小通常是3x3或5x5,它定義了提取特徵的範圍、也會影響特徵圖的尺寸和輸出的分辨率,每個卷積核所學習的特徵不同
例如一個卷積核可以學習檢測水平邊緣,另一個可以檢測垂直邊緣或更復雜的圖像紋理。

  1. 池化層(Pooling Layer):解析度降低,只保留重要的特徵、防止過擬合
  • 最大池化
    最常用的一種池化方法,將輸入圖像分成不重疊的小區塊,並從每個區塊中選擇最大值作為輸出。這有助於保留最強的激活信號,並忽略無關的噪聲,像是2x2的最大池化會將4個像素中的最大值作為池化結果。

  • 平均池化
    區塊內所有值的平均值。這種方法更平滑,但在某些情況下,可能會降低模型的識別精度。

  1. 全連接層(Fully Connected Layer):根據提取出的特徵進行分類或預測
  • 預處理:特徵展平
    進入全連接層之前CNN會將多維的特徵圖展平成一維向量,以便與全連接層進行交互。
  • 過程:
    像是CIFAR-10數據集中,最後一層的神經元數量設置為10,對應於10個圖像類別:
    這些輸出會傳入一個Softmax函數,將原本的實數輸出轉為概率(總和為1),選擇其中概率最大的類別作為預測結果

二、實作基於CIFAR-10數據集的CNN圖像分類模型

  1. 什麼是CIFAR-10數據集?
    由10個類別的60000張彩色圖像組成的,圖像尺寸為32x32,每個類別有6000張圖片,這些類別包括:飛機、汽車、鳥、貓、鹿、狗、青蛙、馬、船和卡車。它是一個常見的圖像分類基準數據集,適合用於測試卷積神經網絡的性能。

  2. 實作訓練CNN
    接下來我們就依據CIFAR-10作為資料庫,用python3寫出一個CNN模型讓他可以辨別資料庫中的內容,並實測他的準確率有多少。
    我用的是Jupyter Notebook並使用tensorflow的虛擬環境:

STEP 1 加載CIFAR-10數據集
註:數據集中的照片為32x32像素,放大至電腦上看就會是模糊的可以看
https://ithelp.ithome.com.tw/upload/images/20240922/201692576OIwrLzrag.jpg

STEP 2 定義、編譯、訓練CNN模型
https://ithelp.ithome.com.tw/upload/images/20240922/20169257v0gPf7rOXL.jpg
https://ithelp.ithome.com.tw/upload/images/20240922/2016925706nzumVoCG.jpg
會看到訓練模型時的準確度越來越高、損失越來越低

STEP 3 評估模型
https://ithelp.ithome.com.tw/upload/images/20240922/20169257k5lVTq0wrf.jpg
對數據進行評估,可以得到它最終訓練完的損失以及準確度

STEP 4 查看成果
https://ithelp.ithome.com.tw/upload/images/20240922/20169257mjtRFg1IQd.jpg

儘管CIFAR-10數據集的圖像相對簡單,CNN的強大能力依然展露無遺。隨著模型的優化和更多數據的引入,AI在圖像分類上的準確度會持續提高。在未來,這樣的技術將會越來越成熟,不妨多嘗試不同的數據集和模型結構,不僅對CNN的應用更加熟練深入還能探索CNN更多領域的應用潛力。****


上一篇
AI如何認識世界:知識圖譜編織的信息世界
下一篇
AI心靈讀者:BERT如何揭開情感的面紗
系列文
AI Unlocked: 30 Days to AI Brilliance12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言