top of page

一、神經網路

N.png

上圖為神經網路的示意圖,圓圈為神經元,神經元之間的線條為神經元之間的連結,又稱為權重,神經網路的運作模式為左向右傳遞與運算資料(數字) ,每個神經元都會連結到下一層的每個神經元,神經元中都存有資料稱為激活值(activation value),名稱的由來是當資料傳遞至神經元時會先經過一個激活函數(activation function)的運算,出來的值再傳到下個神經元裡,而每條線條稱為權重,如上圖就共有八個神經元和十八個權重,傳遞資料意思就是把神經元裡的資料乘上權重在經過激活函數的運算再傳遞到下一個神經元,神經元的第一層稱為輸入層,輸入的資料就是要訓練的原始資料,而第二層以上到倒數第二層稱為隱藏層,隱藏層的層數不限制有多少層,最後一層稱為輸出層,此層通常就是最後的結果,激活值最大的神經元的為模型預測出來的結果。以本專題為例,輸入層放入的就是圖片中的每個像素值,而最後的輸出層就是有六個神經元,分別為六個種類,六個神經元中數值最大的那個就是分類的結果。機器學習中所謂的學習其實就是訓練權重,直到所有的權重可以讓全部輸入資料經過隱藏層後到輸出的分類結果可以完全符合訓練資料的答案。

二、AI學習的過程

AI學習過程的背後的原理為讓損失(loss)極小化,損失的定義為模型學習或預測過程中得出的結果與實際值相差的值,損失值的計算方法稱為損失函數(loss function),會根據問題的不同選擇各式各樣的損失函數,常見的有 MSE、 Cross-entropy。舉例來說,分類問題有兩類結果y1和y2,假設某一張圖片為y2類則它的y1和y2的實際值(可看成機率)為0和1,但模型預測的結果y1為0.4,y2為0.6,而損失函數定義為實際值與真實值相差的絕對值的加總,則損失為|0.4-0|+|0.6-1| =0.8,即使算出損失後就要想辦法讓損失最小化,此時就要運用到優化器(optimizer),優化器也是一個數學式,常見的有SGD、Adam。優化器的目的顧名思義就是讓模型優化,利用數學式調節權重,使得下次的訓練結果的損失更小。

三、​Python程式語言

做專題所使用的程式語言為Python程式語言,因為實作AI常用的API與函式庫大部分都是Python的程式語言,如Keras和OpenCV,所以讓我對Python有了基本的了解,包括Python的語法以及一些基礎觀念。

​四、影像處理

了解影像處理的一些方法,如影像梯度、影像模糊、直方圖等化和霍夫轉換,讓我對影像有基本的概念。在影像分類的方面,學到了初步分析圖片的方法,還有對圖片特徵的了解以及如何做相對應的處理。

五、深度學習

學習到了如何訓練AI模型,從選擇模型、處理資料到調整參數,還有一些訓練模型的觀念,例如Batch size的對模型的影響、模型收斂的判斷等等。除此之外,也讓我對AI有了更深入的了解,實際操作之後也學習到了很多經驗。

bottom of page