--- title: 人工智慧視覺運算系統設計 - 影片心得 tags: Network Experiment --- ## 人工智慧視覺運算系統設計 - 影片心得 [TOC] #### Unit One:Basics Of AI Visual Algorithms 本單元在介紹AI視覺演算法,包含電腦如何分類以及偵測物件。那這裏面包含了三個主題,第一個是電腦要怎麼樣分類照片,第二個是電腦怎麼偵測物件,為了降低誤差,神經網路越來越深,但是隨之而來的運算量也激增,同時梯度在深層時容易消失,訓練很難收斂。最後一個是ResNet,它包含了151層的CNN的神經層跟一層的全連接層。 #### Unit Two:How Does A Computer Classify Pictures? 本單元在介紹電腦偵測物件的方法,那這裏面包含了三個主題,RCNN、YOLO 和 SSD。RCNN(Region-based CNN),概念上是它會提出很多個可能的區域出來,在每一個區域進行CNN的運算,計算出來之後再去找所在區域,這個方法的壞處就是很慢。YOLO則是算出Bounding box 和 分率圖來提高效益,計算速度相比RCNN快許多,準確度也比較高。SSD則是類似YOLO,但是拿掉FC層。 #### Unit Three:How Does A Computer Detect Objects? 這段影片主要在講物件分割、行為分析、影像合成、Instance Segmentation。 物件分割:其中常見的方法有Downsamping path、Upsamping Path、Multi-scale detection和Post-Processing。 行為分析:必須要包含空間域以及時間域這兩層面進行運算,也可以進行將圖片轉換成文字或反之。 影響合成:透過把兩張或以上的圖片特徵提取結合,生成新圖片。 Instance Segmentation:它既具备语义分割(Semantic Segmentation)的特点,需要做到像素层面上的分类,也具备目标检测(Object Detection)的一部分特点,即需要定位出不同实例,即使它们是同一种类。 #### Unit Four:How To Evaluate Performance Of AI Visual Algorithms? 這段提到了常見的判斷AI演算法的一些指標如TP,FP,FN,TN以及這些指標組成的Precision、Recall和AP等。 TP:全名True Positive 表示有框到東西。 FP:全名False Positive 表示沒有框到東西。 FN:全名False Negative 表示沒有框到有東西的地方。 TN:全名True Negative 表示沒有框到沒有東西的地方。 Precision:其計算方式是TP/(TP+FP),表示框內有命中目標比例。 Recall:計算方式是TP/(TP+FN),表示目標被命中的比例。 AP:Average Precision 計算不同Precision和Recall對應平均值。 影片觀後感想:視覺演算法要設計得好需要不斷去評估其效能,很多看似微小的調整在整個演算法中卻會起到很大的作用。 #### Unit Five:How To Obtain An Accurate AI Algorithm? 這個章節主要在說如何獲得一個精準的演算法,主要可以分成兩個部分:Training & Inference。 Training:利用給定的資料讓AI進行訓練並自動調整參數,訓練時間可能會花上好幾天但一旦訓練好基本上不需要再重複訓練,所以不會對實際運用上造成什麼延遲負擔。 Inference:把模型放到實際運用,所以對於即使變化的情況要求會比較高,例如最近很紅的自駕車、人臉辨識。 #### Unit Six:Advances Of Obtaining An Accurate AI Algrithm. 這部分主要在介紹Gradient Descent,為了讓其error降到更小,我們可以透過調整一些參數,例如learning rate和batch的大小。還有local minimum的問題,但其實local minimum在實際情況下出現的次數並不會太高,反而是saddle point 比較會常看到。這部分在上學期修李宏毅教授的Machine Learning有上到,所以算是知道在說些什麼,而且個人也比較喜歡李宏毅的講解版本。以下是李宏毅教授有關gradient descent的影片 https://www.youtube.com/watch?v=Ye018rCVvOo #### Unit Seven:How Well Are Modern AI Visual Algorithms Doing? 這部分主要讓我們了解模型在training set上面的表現好並不代表實際表現也會跟著好,因為當training去到越多層時越有可能發生overfitting的情況,造成我們拿來實際運用時,模型在演算資料上會產生很大的誤差值。比較基礎的解決方法就是增加training set,但就像上面所說的會發生overfitting,這時減少一些多餘的layer或者限制training的時間(以免表現已經沒在提升,但training還在繼續而造成反效果)。 #### Unit Eight:Advances For Colleeting Training Data 這章節讓我們知道有哪些方法可以增加AI視覺演算法的精準性。以圖片為training的例子來看,可以增加一些雜訊或者顏色渾濁來提升AI對於我們所想要train的物件認知,以便讓AI演算法在實際情況下面對各種變化能更有韌性,提高效能和精準度。 這些處理方式其實有個名詞就是Data Augmentation,其中比較常見的有: ###### -->旋轉 ###### -->位移 ###### -->增加雜訊 ###### -->局部刪減 ###### -->翻轉