全面的評估。然而,這種方法需要訓練 K 次模型,計算成本相對較高, 尤其在資料量較大的情況下。 留一法(Leave-One-Out): 留一法是 K 折交叉驗證法的一個特例,當 K 等於資料集的樣本數時, 就變成了留一法。這種方法每次只將一個樣本作為驗證集,其他樣本 作為訓練集,並且計算 K 次的平均值作為模型的評估結果。留一法的 優點是對模型的評估最為嚴格,因為每次只有一個樣本作為驗證集, 可以更全面地評估模型的性能。然而,計算成本非常高,尤其在資料 量較大的情況下。 Data Train/ 5-folds Ensemble Segmentation Fold 0 3D U-Net 0 Training Set Fold 1 3D U-Net 1 Fold 2 3D U-Net 2 Fold 3 3D U-Net 3 Ensemble Output Predictions Fold 4 3D U-Net 4 Training data flow Testing data flow Testing Set Kaggle 比賽得獎組別使用 K-fold Cross Validation 的實際案例 : 先將資料集排列成 五組訓練集與測試集,分別訓練模型之後再用加權平均所有模型的權重用來做檢測。 這個方式可以充分應用每一筆資料,同時仍然可以避免過擬合的問題,是在 AI 圖像 競賽中重要的方法。 51
分層抽樣法(Stratified Sampling): 分層抽樣法是一種確保訓練集和驗證集中的類別分佈相似的方法,通 常在類別不平衡的情況下使用。這種方法可以確保驗證集中包含了各 個類別的樣本,從而更全面地評估模型對不同類別的性能。這在類別 不平衡的資料集中尤其重要,以避免模型在驗證集中表現不佳的情況。 時間序列切割法(Time Series Split): 時間序列切割法適用於時間序列資料集,將資料按照時間順序切割成 訓練集和驗證集,通常可以按照固定的時間窗口或者滾動窗口的方式 進行。這種方法可以確保驗證集中包含了未來的時間點的資料,從而 更真實地評估模型的預測性能。在時間序列資料集中,時間的順序對 於模型的性能有著重要的影響,因此選擇合適的時間序列切割方法對 於模型的評估至關重要。 整體而言,資料集的切割方法取決於資料的性質、資料量、類別 分佈、時間序列等因素,並且需要根據具體問題來選擇適合的方法。 在實際應用中,常常使用 K 折交叉驗證法或者分層抽樣法來切割資料 集,並且在模型評估時根據評估指標的結果來調整切割方法,以獲得 更可靠的模型性能評估結果。此外,應該注意避免過度使用驗證集, 以免對模型的性能評估產生過於樂觀的結果。 為什麼要做資料切割,而不要直接把全部的圖片用來訓 練呢 ? 就像期中考不會完全跟練習題一樣,如果把所有圖片都 用來訓練,我們就無法分辨 AI 模型是”背答案”還是” 真的學會了”,也就是所謂的過擬合,而關於過擬合詳 細的定義會在後面的章節提到。因此,要分出適當比例 的資料作為驗證與測試,才能確保 AI 模型是學習了有效 的特徵。 52 第三章 學會幫 AI 設計題目 : 資料準備與標記
四 讓題目有變化 : 資料增強方法 資料增強(Data Augmentation)是一種在訓練模型時對原始資 料進行處理,生成新的資料樣本的技術。這樣做的目的是擴增資料集, 增加資料的多樣性,從而改善模型的泛用性,提高模型的性能。就像 是教導學生時要出一些變化題讓學生做練習一樣,讓學生可以真正融 會貫通。同理,資料增強可以幫助解決資料量有限的問題,減少過擬 合(Overfitting)的風險,並且可以引入對於不同變化情況下的資料, 使模型更具穩健性。 為什麼要資料增強呢?因為在實際應用中,可能會面臨資料量有 限的情況,導致模型難以充分學習到資料的特徵。此外,資料可能會 受到不同因素的干擾,例如:光線、角度、尺寸變化等,這樣的變化 可能不太可能在原始資料集中完全呈現。因此,通過對資料進行增強, 可以引入這些變化,使模型能夠更好地適應實際應用中的不同情境。 接下來,我們將介紹一些常見的資料增強方法,以及 VisLab 中可 以使用的方法。 影像平移(Image Translation): 這種方法將影像在水平或垂直方向上進行平移,生成新的影像。這可 以模擬物體在不同位置的情況,使模型能夠學習到不同位置下的特徵。 影像旋轉(Image Rotation): 這種方法將影像進行旋轉,模擬物體在不同角度下的情況。這可以幫 助模型學習到不同角度下的特徵,並且提高模型對於旋轉變化的穩健 性。 影像縮放(Image Scaling): 這種方法將影像進行縮放,生成不同尺寸的影像。這可以模擬物體在 不同距離下的情況,使模型能夠學習到不同尺度下的特徵。 53
影像翻轉(Image Flipping): 這種方法將影像進行水平或垂直翻轉,生成新的影像。這可以模擬物 體在水平或垂直方向上的翻轉情況,使模型能夠學習到不同翻轉變化 下的特徵。 影像亮度調整(Image Brightness Adjustment): 這種方法對影像的亮度進行調整,生成亮度不同的影像。這可以模擬 光線變化對影像的影響,使模型能夠學習到不同亮度情況下的特徵。 影像噪聲添加(Image Noise Adding): 這種方法在影像中添加不同類型的噪聲,例如:高斯噪聲、椒鹽噪聲 等。這可以模擬實際應用中可能會面臨的噪聲干擾,提高模型對噪聲 的穩健性。 影像變色(Image Colorization): 這種方法對影像的色彩進行調整,生成不同色彩的影像。這可以模擬 不同光照條件下的色彩變化,使模型能夠學習到不同色彩情況下的特 徵。 影像裁剪(Image Cropping): 這種方法對影像進行裁剪,生成不同部分的影像。這可以模擬影像中 物體的局部情況,使模型能夠學習到不同物體部分的特徵。 影像變形(Image Distortion): 例如:透視變換、仿射變換等。這可以模擬影像在不同視角下的變化, 提高模型對於視角變化的適應性。 以上只是資料增強方法的一部分,實際應用中還有其他許多方 法可以使用,取決於具體的應用場景和資料特性。在 VisLab 中, 也提供了一些內建的資料增強方法,例如:在影像處理中可以使用 OpenCV、PIL 等函式庫來進行影像處理和資料增強操作。此外,也可 以根據需求自定義資料增強方法,例如:使用自己的程式碼來實現特 定的資料增強方式。 54 第三章 學會幫 AI 設計題目 : 資料準備與標記
在選擇資料增強方法時,需要考慮資料集的特性、應用場景和目 標任務。例如:在處理影像資料時,可以根據影像的特性,如光線、 角度、尺寸等,選擇相應的資料增強方法。此外,也可以根據模型的 需求和預期的效果,選擇合適的資料增強方法。資料增強方法的選擇 應該是有目的性的,旨在增加模型對於不同變化下的穩健性和泛用性。 原始圖案 翻轉 (flip): 將原始圖片進行各方向翻轉 垂直翻轉 (vertical flip) 水平翻轉 (horizontal flip) 翻轉 (flip) 55
原始圖案 變形 (transform): 將圖片區域切換或變形 位移縮放旋轉 (shift scale rotate) 光學失真 (optical distortion) 網格畸變 (grid distortion) 彈性轉換 (elastic transform) 56 第三章 學會幫 AI 設計題目 : 資料準備與標記
原始圖案 顏色變換 (color change): 將圖片顏色根據不同演算法改變 RGB 亂數 (channel shuffle): 隨機改變 RGB 的顏色 負片 (invert image): 顏色改為互補色 灰階 (to gray): 影像轉換成黑白 色度變化 (hue saturation) 57
原始圖案 旋轉 (rotation range) 旋轉 90(random rotate 90): 隨機方向旋轉 90 度 水平平移 (width shift range) 58 第三章 學會幫 AI 設計題目 : 資料準備與標記
為什麼要做資料增強呢 ? 資料增強就是用演算法自動幫 AI 模型出 ”變化題” , 減少出現過擬合的狀況,讓 AI 模型真正 ”融會貫通”。 另外由於是使用演算法自動產生的,也可以大幅減少蒐 集大量資料所需的人力資源。 59
NOT E 60 第三章 學會幫 AI 設計題目 : 資料準備與標記
NOT E 61
4第 章 讓 AI 開始學習 : 訓練 一、如何選擇與訓練 AI 模型 ?------------------------63 二、評分機制很重要 : 損失函數的選擇 ----------------71 三、練習題怎麼寫 ? 迭代次數與學習率的選擇 --------76 62 第四章 讓 AI 開始學習 : 訓練
一 如何選擇與訓練 AI 模型 ? AI 模型訓練的目的是使用大量的資料訓練模型,讓他學會執行特 定的任務,並且從資料中學習到有用的特徵和模式。這使得 AI 模型能 夠從以前未見過的資料中進行預測和推理。AI 模型的訓練過程需要大 量的資料作為輸入,這些資料往往需要事先經過處理和標記,以便讓 AI 模型可以學習到有用的特徵和模式。 在資料集中,包括訓練資料、驗證資料和測試資料,這些資料集 的切分對於模型的訓練和評估至關重要。訓練資料集是模型用來學習 的資料集,而驗證資料集和測試資料集則用來評估模型的性能。 訓練的資料不只有圖片,聲音,影片甚至是文字都可以是 AI 訓練的基礎。 63
選擇適合的 AI 模型是實現機器學習項目成功的關鍵步驟之一。下 面是一些建議,可幫助讀者選擇適合項目的 AI 模型: 確定問題類型和應用場景 : 不同的問題類型需要不同的模型,例如:分類問題需要使用分類器模 型,而回歸問題需要使用回歸模型。因此,首先需要確定您的問題類 型以及需要解決的實際問題,以此為依據選擇模型。 確定訓練資料的類型和大小 : 根據您的問題類型和應用場景,確定所需的訓練資料類型和數量。這 將幫助您選擇最適合的模型,以達到最佳性能 評估模型的性能 : 在選擇模型之前,需要先評估模型的性能。這可以通過使用測試資料 集進行評估來實現。評估模型性能的指標包括準確率、精確率、召回 率、F1 分數等。 選擇最適合的模型 : 選擇最適合的模型需要考慮多個因素,例如:模型的複雜性、訓練和 推理速度、可解釋性等。 考慮可用的資源 : 當選擇模型時,需要考慮可用的資源,例如:計算能力、存儲空間和 頻寬等。 訓練 AI 有夠耗時,有什麼辦法能解決這個問題呢 ? 根據需求選擇適當的 AI 模型能節省大部分的電腦資源和 時間喔。前提是要有適當的硬體支援。 64 第四章 讓 AI 開始學習 : 訓練
在模型訓練過程中,往往需要進行參數調整,以便讓模型在訓練 集上達到最佳的性能。然而,如果過度調整模型的參數,容易導致過 擬合的發生,即模型在訓練資料集上表現很好,但在測試資料集上表 現不佳。過擬合問題可以通過增加資料集的數量、減少模型的複雜度 或者使用正規化等方式來解決。 在 AI 模型訓練完成後,我們需要將其應用於現實生活中,但往往 會面臨許多挑戰和問題。例如:環境變化可能會影響模型的性能,比 如在不同的照明條件下進行影像辨識,這需要對模型進行重新訓練或 者使用適當的預處理方法來處理資料;算力不足也是一個常見的問題, 如果要在大量的資料上運行模型,可能需要更高效的硬件設備;相容 性問題也可能出現,如果要將模型部署到不同的平台上,可能需要進 行相應的轉換和優化。 為了解決這些問題,我們需要不斷地優化模型,以提高其穩定性 和可靠性。例如:可以通過資料擴增來增加資料集的大小,使模型對 不同環境的適應能力更強;也可以通過使用更高效的算法或者加速訓 練過程來減少訓練和推理時間。此外,還可以通過對模型進行正規化 來避免過擬合,以及使用交叉驗證等技術來評估模型的性能。 除了優化模型本身,我們還需要注意將訓練後的模型應用到現實 中可能出現的問題。例如:當將模型應用到新的環境時,可能會遇到 環境變化導致模型的預測結果不準確的問題。這時候可以通過使用增 量式學習的方法,將新的資料和環境逐步納入模型的訓練中,進行重 新訓練和優化模型。此外,當我們將模型應用到現實中時,還需要考 慮到算力不足和相容性問題等問題。對於算力不足的問題,可以通過 使用分佈式訓練或者使用 GPU 等高效計算硬件來加速訓練和推理過 程。對於相容性問題,可以通過使用容器化技術和跨平臺框架來確保 模型在不同的系統和環境中都能正常運行。 65
跨平臺(Cross-platform)指的是一個應用程式能夠在不同的操作系統或平臺上執 行。例如:同一個應用程式可以在 Windows、MacOS、Linux、Android、IOS 等 平臺上執行。跨平臺應用程式可以減少開發人員需要撰寫的程式碼,並且可以在不 同的平臺上實現相同的功能,降低開發和維護成本。 機器學習模型有深有淺。深度指的是模型的層數或複雜度,深度 越深,模型可以學習到更抽象和復雜的特徵,但也容易出現過擬合現 象;淺模型則通常有更少的參數和層數,可能更容易理解和訓練,但 可能無法學習到復雜的特徵和模式。不同的問題和資料集需要不同的 模型來解決,有些問題需要更深的模型來捕捉更抽象的特徵,而有些 問題則可以使用更淺的模型。因此,在選擇模型時,需要綜合考慮問 題的複雜度、資料集的大小和模型的訓練和推理時間等因素。 1 越淺的模型通常擁有較少的層數和參數,相對較簡單。這些模型 通常更易於訓練,更容易理解和解釋,而且通常需要較少的計算資源。 這些模型在處理簡單的任務,比如一些傳統的機器學習任務,如線性 回歸、邏輯回歸等上表現也很好。但是,越淺的模型通常具有較弱的 表達能力,難以學習到復雜的特徵和模式,無法處理大量資料和更複 雜的任務。因此,在解決更複雜的問題時,需要更深的模型來捕捉更 抽象和復雜的特徵和模式。 2 越深的模型通常擁有更多的層數和參數,可以學習到更多、更抽 象和更複雜的特徵和模式。這些模型可以對資料進行更準確和復雜的 建模,可以處理大量資料和更複雜的任務,如圖像和語音識別、自然 語言處理、推薦系統等。然而,越深的模型也會面臨一些挑戰,比如 66 第四章 讓 AI 開始學習 : 訓練
更難訓練、更容易過擬合、更需要更多的計算資源等。因此,在選擇 模型時需要綜合考慮問題的複雜度、資料集的大小和模型的訓練和推 理時間等因素,以選擇適合的模型。 3 過擬合 ( Overfitting ) 指的是模型在訓練集上表現良好,但是在驗 證集或新資料上表現不佳的情況。在進行機器學習時,過擬合是一個 常見的問題,尤其是當模型非常複雜或者訓練資料不足時。過擬合的 發生是代表模型對訓練集中的雜訊非常敏感,導致模型對新資料的表 現不佳。這是因為模型過於關注訓練集中的特定細節,而忽略了整體 的模式和趨勢。在機器學習中,我們通常會把資料集分成訓練集和驗 證集。訓練集用於訓練模型,驗證集用於評估模型在新資料上的表現。 如果模型在訓練集上表現很好,但是在驗證集上表現不佳,那麼就可 能出現了過擬合的問題。 過擬合會導致模型對訓練集中的雜訊過於敏感,從而影響模型的 泛用性。這意味著模型對於新資料的表現可能會很差,因為它過於關 注訓練集中的特定細節,從而忽略了整體的模式和趨勢。 以一個簡單的範例來說,就是一位死讀書的學生, 只單單記得學過的知識但卻無法靈活地將其運用。 67
過度擬合會影響模型的泛用性,因為它對訓練集中的雜訊過於敏 感。為了避免過度擬合,可以採用以下幾種方法: 增加資料集的大小: 增加資料集的大小可以幫助模型更好地理解資料中的整體模式和趨 勢,從而降低過度擬合的風險。 資料增強: 通過資料增強技術,例如:旋轉、裁剪和平移等,可以擴展訓練集的 規模,從而提高模型的泛用性。 簡化模型: 通過減少模型的複雜度,例如:減少神經元的數量、層數或參數量等 的數量。降低模型的過擬合發生的風險。 正規化: 正規化是一種常用的減少過擬合的方法,它通過引入懲罰項來限制模 型的複雜度,例如:L1 和 L2 正規化等。 Dropout: Dropout 是一種常用的正規化方法,它在訓練過程中隨機丟棄一定比 例的神經元,從而降低模型的過擬合風險。 綜上所述,過擬合是機器學習中常見的問題,可以通過增加資料 量、資料增強、簡化模型、正規化和 Dropout 等方法來解決。在訓練 模型時,我們應該注意監控模型在驗證集上的表現,以避免過擬合發 生的問題。 68 第四章 讓 AI 開始學習 : 訓練
AI 模型的訓練過程是一個非常複雜的過程,其中涉及到多個步驟 和技術。在訓練 AI 模型時,開發者需要仔細考慮每個步驟和技術,以 確保模型能夠快速且準確地學習並擬合資料。 在 AI 模型訓練的初期,權重通常被初始化為一個隨機值。這意味 著模型預測的結果通常會與實際標籤存在較大的誤差。然而,通過反 向傳播算法和優化器的結合,模型的權重會不斷地進行調整,以使其 預測結果更加接近實際標籤。這個過程需要進行多次訓練迭代,每次 訓練迭代都會更新模型的權重,直到模型達到預定的性能目標或收斂 為止。在訓練時,AI 模型的權重會不斷地進行調整,以求最小化模型 預測與實際標籤之間的差異。這是通過反向傳播算法實現的,這個算 法會通過計算梯度來更新每個權重,使得模型能夠更好地擬合資料。 除了權重調整外,還有其他一些技術可以幫助提高 AI 模型的性 能。其中一個重要的技術是正規化,它可以幫助防止過擬合現象的發 生。在 AI 模型訓練過程中,過擬合是一個常見的問題,即模型在訓練 資料上表現很好,但在測試資料上表現較差。正規化技術可以通過限 制模型的權重大小或添加噪音等方式,幫助防止過擬合現象的發生。 具體來說在訓練過程中,AI 模型接收一個輸入,都會將其傳遞到神經 網絡中,並生成一個預測結果。然後通過計算預測結果和實際標籤之 間的差異來計算損失函數。通過反向傳播算法計算梯度,並使用優化 器來更新模型的權重,以最小化損失函數。這個過程不斷重複,直到 模型達到預定的性能目標或收斂。 69
Artificial Intelligence Machine Learning Deep Learning 訓練過程中,模型會逐漸學習到資料中的有用特徵和模式。一旦 訓練完成,這些學習到的特徵和模式會被儲存在模型的權重中。當模 型接收新的輸入時,它會使用這些儲存的權重來生成預測輸出。最終, 訓練過程中的權重和儲存的模型可以被輸出到電腦上,以便在需要時 進行使用。這個過程稱為模型保存。這樣,訓練過程中學習到的模型 權重可以被重複使用,從而提高模型的效能並節省訓練時間。 上面說了這麼多但到底什麼是 AI 訓練呢 ? AI 訓練是指利用機器學習等技術,通過將大量樣本資料 輸入到一個模型中,使其自動調整模型的參數,以便於 模型能夠更好地擬合輸入資料的過程。 70 第四章 讓 AI 開始學習 : 訓練
二 評分機制很重要 : 損失函數的選擇 在機器學習中,目標函數是非常重要的概念,因為它決定了模型 訓練的方向和目標,並且可以用來指導模型權重的調整,不同的應用 場景需要使用不同的損失函數。而損失函數是目標函數中的一種,它 用於衡量模型預測輸出和實際標籤之間的差異。 機器學習大部分的算法都希望有最大化或最小化的一個函數 ( 指 標 ) ,這個函數被稱為「目標函數 ( Object function ) 」,比如常見的 K-means 群集分析就是希望「最小化群內的資料和群心的誤差平方和」 不同的演算法用到的假設都不太一樣,所以目標函數都不一樣。最近 很夯的人工智慧用到的目標函數基本上都是「損失函數 ( loss function ) 」,而模型的好壞有絕大部分的因素來至損失函數的設計。 對機器學習來說,損失函數是一種衡量模型預測輸出和實際標籤 之間差異的函數。簡單來說它就是訓練過程中模型需要優化的目標。 損失函數通常被定義為模型輸出和實際標籤之間的差距的某種度 量方式。損失函數可以看做是模型訓練的指標,因為訓練過程中,模 型需要不斷地調整參數,使得損失函數的值最小化。損失函數的選擇 直接影響到模型的訓練效果和預測能力,因此選擇合適的損失函數非 常重要。在機器學習中,損失函數的選擇非常重要,因為它直接影響 到模型的訓練效果和預測能力。下面列舉一些常見的損失函數及其適 用場景。 均方誤差 ( Mean Squared Error, MSE ) : 用於回歸問題,比如預測房價、股票價格等連續值預測問題。 平均絕對誤差 ( Mean Absolute Error, MAE ) : 用於回歸問題,與 MSE 相比,MAE 更加強調預測值和實際值之間的 差距,且不受離群值的影響。 71
交叉熵 ( Cross Entropy ) : 用於分類問題,特別是二元分類問題。交叉熵可以量化模型預測的概 率分佈與真實標籤的概率分佈之間的差距,從而引導模型更好地逼近 真實標籤。 對比損失 ( Contrastive Loss ) : 用於孿生網絡(Siamese Network)中的相似度學習問題。對比損失 可以量化同一類別樣本之間的相似度,不同類別樣本之間的差異。 鈍化損失 ( Hinge Loss ) : 用於支持向量機(SVM)中的分類問題。鈍化損失可以把正確分類的 樣本和邊緣樣本視為 \" 容忍區 \",從而降低對邊緣樣本的敏感度。 除了選擇合適的損失函數之外,還有其他一些方法可以提升模型 的訓練效果和預測能力。例如:可以通過調整模型的超參數來改變模 型的複雜度,從而避免過擬合 ( Overfitting ) 現象的發生。另外,也可 以使用正規化 ( Regularization ) 技術來限制模型的參數範圍,從而提 高模型的泛用性。 而在實際應用中,選擇損失函數時需要考慮以下因素: 問題類型: 選擇損失函數時,需要考慮問題的類型,因為不同的問題類型需要選 擇不同的損失函數,以便最大化模型的預測能力。 (1) 回歸問題:回歸問題是預測連續值的問題,例如:預測房價、股票 價格 等 。 常 用 的 損 失 函 數 包 括 均 方 誤 差 ( M S E ) 和 平 均 絕 對 誤 差 (MAE)。 (2) 二元分類問題:二元分類問題是預測兩個可能的結果之一的問題, 例如:預測一個輸入圖像是否包含特定對象。常用的損失函數是交 叉熵(Cross-entropy)。 72 第四章 讓 AI 開始學習 : 訓練
(3) 多類別分類問題:多類別分類問題是預測多個可能的結果之一的問 題 , 例 如 :預 測 手 寫 數 字 的 標 籤 。 常 用 的 損 失 函 數 包 括 交 叉 熵 和 softmax 損失。 (4) 序列生成問題:序列生成問題是生成符合特定條件的序列的問題, 例如:自然語言生成和機器翻譯。常用的損失函數是交叉熵和負對 數似然損失(Negative Log-Likelihood Loss)。 文字語言 Language 自然語言是指人類隨著文化演化所形成的語言,如中文、英文等。自然語言是人們 生活中常用的語言,是人與人之間交流的重要方式。在自然語言處理(NLP)的研 究中,學者們試圖設計和開發技術,使得計算機能夠理解和生成自然語言的能力, 以實現語言與計算機之間的互動和交流。 73
模型性質: 在選擇損失函數時,除了問題類型和應用場景之外,還需要考慮 模型的性質。 (1) 模型的目標:損失函數應該與模型的目標相關。例如:如果目標是 預測連續值,則均方誤差(MSE)和平均絕對誤差(MAE)是較好 的選擇;如果目標是進行分類,則交叉熵(Cross-entropy)是較好 的選擇。 (2) 模型的架構:不同的模型架構可能需要不同的損失函數。例如: 卷積神經網絡(CNN)通常使用交叉熵或 softmax 損失,而循 環神經網絡(RNN)則通常使用負對數似然損失(Negative Log- Likelihood Loss)。 (3) 模型的優化算法:某些優化算法可能需要特定的損失函數才能正常 運作。例如:使用梯度下降法進行優化時,需要損失函數是可微分 的。 (4) 模型的評估指標:損失函數與模型的評估指標之間存在著密切的關 係。例如:如果模型的評估指標是準確率,則交叉熵是一個較好的 選擇;如果模型的評估指標是平均絕對誤差,則 MAE 是一個較好 的選擇。 損失函數的作用是衡量模型預測輸出和實際標籤之間的差距,進 而 指導模型如何進行權重調整。通過最小化損失函數,模型可以逐漸 逼近最佳解,從而提高其性能。在訓練過程中,模型的權重會被調整, 以最小化損失函數。當損失函數越小,表示模型的預測越接近實際標 籤,模型的性能也越好。在選擇損失函數時,關鍵是確定問題類型和 應用場景等多個因素,以便選擇最適合的損失函數,並以此為基礎進 行模型訓練來提高模型的預測能力。 74 第四章 讓 AI 開始學習 : 訓練
損失函數在深度學習中扮演了什麼角色 ? 深度學習模型用來預測結果的值與真正結果之間可能會 有差距,損失函數就是用來度量這種差距的一個函數。 它通常是一個非負的實值函數,越小表示模型的預測越 接近真實值。 75
三 練習題怎麼寫 ? 迭代次數與學習率的選擇 迭代次數和學習率都是在訓練深度學習模型時非常重要的超參 數,它們直接影響著模型的收斂速度和效果。 迭代次數指的是在訓練過程中,模型進行多少次更新。通常情況 下,迭代次數越多,模型的收斂效果就越好。但是,當迭代的次數太 多可能會導致過擬合的發生,因此,需要在訓練次數和模型效果之間 進行平衡,避免訓練次數過多或過少導致訓練效果不佳。 一般而言,迭代次數需要根據具體的問題和模型進行調整。我們 可以通過以下幾種方式選擇迭代次數: 根據訓練曲線選擇: 可以觀察訓練過程中的損失函數曲線,通常情況下,隨著迭代次數的 增加,訓練損失會逐漸減少,但驗證損失可能先減少再增加,出現過 擬合現象。當驗證損失開始增加時,就可以停止訓練。 使用早停法選擇: 早停法是一種常用的防止過擬合的方法。具體做法是在訓練過程中, 定期計算測試集上的損失函數,當測試集上的損失函數在連續幾個迭 代中沒有下降時,就停止訓練,避免出現過擬合現象。 根據經驗法則選擇: 根據經驗法則選擇迭代次數,例如:通常訓練 1,000 到 10,000 次就可 以達到較好的訓練效果。但是需要注意的是,這些經驗法則不適用於 所有的模型和資料集,需要根據具體情況調整。 選擇迭代次數需要考慮多個因素,包括模型複雜度、資料集大小、 訓練速度等,需要讀者通過實驗調整找到最佳的訓練策略。 76 第四章 讓 AI 開始學習 : 訓練
學習率指的是在模型訓練過程中每次更新參數時,參數的更新量 大小。簡單來說就是指每次更新模型參數時的步伐大小,同時也是深 度學習模型中最重要的超參數之一。而學習率的大小會直接影響模型 的訓練速度和收斂效果,因此需要根據具體情況調整學習率,來避免 學習率過大或過小導致訓練效果不佳。 Too low Just right Too high 步伐太小, 步伐穩健 步伐太大,來來回回 你想 train 幾年 不斷錯過最低點 學習率的大小會直接影響模型的訓練速度和收斂效果,因此需要 調整學習率以達到最佳效果。通常來說,學習率的選擇可以遵循以下 幾個方法: 初始學習率選擇: 一般來說,初始學習率的選擇可以參考現有文獻或經驗法則。通常情 況下,較小的學習率可以使模型更穩定,但是訓練速度較慢;較大的 學習率可以使模型更快速地收斂,但是也容易出現不穩定的情況。 觀察訓練曲線: 訓練過程中,可以觀察訓練和測試集上的損失函數曲線,如果發現損 失函數一直在波動或者無法收斂,那麼可能需要調整學習率。 學習率的選擇會受到諸多因素的影響,例如:模型複雜度、資料 集大小、訓練策略等。因此,需要通過實驗調整來找到最佳的學習率, 以達到最佳的訓練效果。 77
在實務應用中,通常需要進行多次實驗調整超參數,找到最佳的 訓練策略。例如:可以使用交叉驗證等技術,將資料集分成訓練集和 測試集,通過調整超參數的值,比較不同模型的測試集表現,選擇最 佳的超參數值。 迭代次數與學習率在深度學習中的作用到底是什麼呢 ? 迭代次數決定模型訓練的總輪數,學習率則決定每一次 更新參數的速度大小,適當地調整這兩個參數可以幫助 模型更快地收斂到最佳狀態,提高訓練效率和準確率。 78 第四章 讓 AI 開始學習 : 訓練
NOT E 79
5第 章 考考 AI 學會了沒 : 驗證與測試 一、驗證與測試有何不同 ?----------------------------81 二、考不好的解決方案 : 測試指標過低的對策 ---------84 80 第五章 考考 AI 學會了沒 : 驗證與測試
一 驗證與測試有何不同 ? 在機器學習中,資料集的劃分是非常重要的一步。一般來說,我 們將資料集分成訓練集、測試集和驗證集。訓練集用於訓練模型,測 試集用於調整模型的超參數,驗證集用於評估模型性能。其中,測試 集和驗證集是兩個獨立的資料集,用於評估模型的泛用性。本文將重 點介紹測試集和驗證集。 首先,我們需要了解什麼是過擬合。過擬合是指模型在訓練集上 表現良好,但在驗證集上表現不佳的現象。這是因為模型在訓練過程 中過於追求訓練集上的準確率,從而過度擬合了訓練集中的雜訊和細 節。這種現像在機器學習中非常常見,因此我們需要對模型進行評估 和調整。為了避免過擬合,我們需要將資料集分成訓練集、測試集和 驗證集。其中,訓練集用於訓練模型,測試集用於調整模型的超參數, 驗證集用於評估模型性能。這種劃分方式可以有效地避免模型在訓練 集上過擬合,並且可以保證模型具有良好的泛用性。 在資料集的劃分中,測試集和驗證集是兩個獨立的資料集,用於 評估模型的泛用性。測試集用於調整模型的超參數,如學習率、正規 化係數等。通過對測試集的評估,我們可以選擇最佳的超參數組合, 從而使模型在驗證集上的性能達到最優。 測試集用於評估模型的性能。一般來說,測試集是從資料集中隨 機抽取的一部分資料,與訓練集和驗證集互相獨立。通過對測試集的 評估,我們可以得到模型的準確率 ( Precision ) 、精度 ( Accuracy ) 、 召回率 ( Recall ) 、信任分數 ( F1-score ) 等性能指標,從而評估模型 的泛用性。 81
需要注意的是,測試集只能在最終評估模型時使用一次。如果在 調整模型時反複使用測試集,則可能會導致測試集的性能指標失真, 從而無法準確評估模型的性能。驗證集是指在訓練模型時,從訓練集 中保留出一部分資料,用於評估模型的表現和進行超參數調整。通常 情況下,訓練集是用來訓練模型的,而驗證集是用來評估模型的性能, 以便調整模型的參數。 在深度學習模型中,驗證集的作用是通過計算模型在測試集上的損 失函數或準確率等指標來評估模型的性能。這些指標可以幫助我們了 解模型是否過擬合,以及在訓練過程中是否需要進行調整。如果模型 在驗證集上的表現不佳,我們可以調整模型的參數或模型架構,以提 高模型的性能。需要注意的是,驗證集的資料必須和訓練集是互相獨 立的,這樣才能確保模型在訓練集上學到的知識是泛化的。在實際應 用中,驗證集的大小通常是訓練集的 10%~20%。 在模型訓練過程中,我們可以使用驗證集來調整模型參數,但為了 避免過度擬合,必須在最終選擇好模型後,使用驗證集來對模型進行 最終評估。驗證集與訓練集、測試集的差別在於其資料與模型訓練過 程完全獨立,這樣才能真正地反映出模型的泛用性。通常,我們會將 82 第五章 考考 AI 學會了沒 : 驗證與測試
原始資料集切分為訓練集、測試集和驗證集三個部分。這裡的切分比 例通常是 70% 的資料作為訓練集,10% 的資料作為測試集,20% 的資 料作為驗證集。當然,這個比例也可以根據實際情況進行調整。 使用驗證集來評估模型的表現通常會給出一個最終的準確率或其他 指標。如果驗證集的表現不如預期,則需要重新檢查訓練過程中是否 有問題,例如:是否存在過擬合、是否需要調整超參數等。如果驗證 集的表現良好,則可以認為模型有比較好的泛用性,可以應用於實際 場景中。通常情況下,我們使用交叉驗證技術來選擇模型的最佳超參 數和模型結構。在交叉驗證中,我們將訓練資料分為若干份,每次使 用其中一份作為測試集,其餘部分作為訓練集,然後多次運行模型, 直到所有資料都被用作測試集和訓練集。這樣可以對模型進行多次評 估,從而獲得更穩定的結果。 在使用測試集和驗證集進行模型選擇和評估時,我們需要確保這 些資料集和訓練資料是互相獨立的。否則,模型在測試集和驗證集上 的表現可能會過於樂觀,從而導致模型在實際應用中的表現不佳。 驗證 & 測試 ? 驗證集是用來調整模型參數的,測試集的目的是模擬模 型在實際環境中的表現,因此需要與訓練集和驗證集互 斥,以避免模型過度擬合。 83
二 考不好的解決方案 : 測試指標過低的對策 在機器學習中,將資料集劃分為訓練集、測試集和驗證集是常見 的做法,其目的是評估模型的性能和泛用性。訓練集是用來訓練模型 參數的,測試集是用來調整模型的超參數和選擇最佳模型的,而驗證 集則是用來評估模型在未見過資料上的性能。 不同階段的分數具有不同的意義,訓練集上的分數反映了模型在 訓練集上的擬合程度,測試集上的分數反映了模型在未見過的資料上 的泛用性,而驗證集上的分數則是最終的評估指標,反映了模型的真 實性能。而關於測試指標的說明如下所述: 訓練分數: 訓練分數指的是模型在訓練資料集上的表現。在模型訓練期間,模型 根據訓練資料集調整其權重和偏置,以最小化損失函數。因此,在訓 練集上獲得高分數並不一定意味著模型在測試集或驗證集上也能表現 出色,因為模型可能過擬合了訓練資料集。 測試分數: 測試分數指的是模型在測試資料集上的表現。在訓練期間,可以使用 測試資料集來選擇模型的超參數或進行早期停止,以避免模型在訓練 集上過擬合。因此,測試分數可以幫助我們了解模型在沒有見過的資 料上的表現,但它並不能保證模型在測試集上的表現。 驗證分數: 驗證分數指的是模型在驗證資料集上的表現。驗證集通常是模型沒有 見過的資料集,因此驗證分數可以用來評估模型的泛用性,即模型在 新資料上的表現。如果測試分數與訓練分數和驗證分數差別很大,說 明模型在訓練和驗證期間出現了過擬合或欠擬合。 84 第五章 考考 AI 學會了沒 : 驗證與測試
為什麼看一個 AI 模型好不好看驗證分數就知道 ? 在 AI 模型訓練過程中,我們會將一部分資料留出來作為 驗證集,以評估模型在未見過的資料上的表現。如果模 型在驗證集上表現良好,那麼我們有理由相信它也能在 未來的測試集上表現良好。 為了減少過擬合的風險,可以使用以下的處理方式: (1) 增加資料集: 增加資料集可以使模型更好地泛化,從而減少過擬合的風險。 (2) 採用正規化技術: 正規化技術可以通過對模型的複雜度進行懲罰來減少過擬合的風險。 (3) 採用早期停止: 早期停止可以在模型開始過擬合之前停止訓練,從而避免模型在訓練 集上過擬合。 (4) 使用更簡單的模型: 選擇更簡單的模型可以減少過擬合的風險,但可能會影響模型的表 現。因此,需要根據具體情況選擇合適的模型。 (5) 交叉驗證: 交叉驗證就是以不同的模型驗證同一個資料集,從而更好地評估模 型的表現和泛用性。 85
(6) 資料預處理: 對資料進行預處理可以幫助模型更好地學習資料的特徵,從而減少 過擬合或欠擬合的風險。例如:可以對資料進行標準化、歸一化、 特徵縮放等操作。 (7) 調整超參數: 手動調整超參數可以幫助我們找到最佳的模型配置,從而獲得更好 的表現。但是,手動調整超參數可能會非常耗時和耗力,因此可以 考慮使用自動調整參數工具來優化超參數。 (8) 集成學習: 集成學習可以通過組合多個模型的預測結果來提高模型的泛用性和 表現,從而減少過擬合或欠擬合的風險。例如:可以使用 bagging 、boosting、stacking 等技術。 (9) 對模型進行正反向傳播過程中的梯度裁剪,以防止梯度爆炸或梯度 消失。 (10) 使用更高級別的模型或框架: 如使用遷移學習等更高級別的模型或框架,以提高模型的泛用性 和表現。 86 第五章 考考 AI 學會了沒 : 驗證與測試
在機器學習中,正確劃分資料集並在不同階段進行評估是非常重 要的。通過對模型的訓練、驗證和測試分數進行監控,並採取相應的 策略來優化模型的表現,可以使我們更好地理解模型的行為和性能, 並為我們在實際問題中使用模型提供指導。 為什麼要減少過擬合 ? 過擬合指的是模型在訓練集上表現很好,但在測試集或 實際應用中表現不佳的情況。這使得模型對於新的、未 見過的資料的泛用性很差,無法很好地進行預測。 87
NOT E 88 第五章 考考 AI 學會了沒 : 驗證與測試
NOT E 89
6第 章 讓 AI 為我們工作 : 模型應用方式 一、應用的方式有哪些 ?------------------------------91 二、應用的注意事項 ---------------------------------105 90 第六章 讓 AI 為我們工作 : 模型應用方式
一 應用的方式有哪些 ? 人工智慧(AI)的應用方式有多種,其中一些常見的應用方式包 括以下幾點: 自然語言處理: 利用機器學習技術處理自然語言的相關問題,如自動翻譯、文字摘要、 語音識別等。 圖像辨識與處理: 利用機器學習技術識別圖像中的物體、人物、場景等,並進行處理, 如自動標記、圖像增強等。 模式識別: 利用機器學習技術識別和分類不同的模式,如生物醫學中的疾病識別、 金融中的市場趨勢預測等。 智能輔助: 利用機器學習技術為人們提供更加便利的服務,如智能家居、智能健 身等。 自動化: 利用機器學習技術實現自動化操作,如自動駕駛、自動化控制等。 教育與娛樂: 利用機器學習技術開發教育和娛樂應用,如智能教育、智能遊戲等。 社交與溝通: 利用機器學習技術進行社交和溝通,如智能客服、智能翻譯等。 91
下面就說一下實際 AI 導入應用的方式 : VisCam 串接應用: VisCam 是一個專門用於視覺檢測和影像處理的平台,可以進行物件檢 測、影像識別等任務。 92 第六章 讓 AI 為我們工作 : 模型應用方式
自己在 PC 上寫程式: 可以在個人電腦上安裝 Python 等程式語言,並使用相關的圖像處理庫 (如 OpenCV)和深度學習框架(如 TensorFlow、PyTorch)進行物 件檢測。 使用邊緣運算裝置: 邊緣運算裝置(如 NVIDIA Jetson、Raspberry Pi)可以進行基於深度 學習的物件檢測,同時還可以進行即時視頻分析。 93
雲端平台: 雲端平台(如 AWS、Azure)提供了物件檢測的 API 服務,可以在不 需要建立自己的物件檢測模型和設備的情況下進行物件檢測。 中繼伺服器: 使用中繼伺服器(如 Flask、Django)可以將自己的物件檢測模型部 署在伺服器上,並通過網路接口進行物件檢測,以實現分佈式物件檢 測。 94 第六章 讓 AI 為我們工作 : 模型應用方式
ADLINK Pocket AI 坊間的訓練平台,不乏定點式的桌上型電腦搭配相對算力足夠的 GPU 顯示卡,或使用規搭較高、配有獨立顯示卡的筆記型電腦。在越來越 多 AI 模型百花齊放的現在與未來,為幫助 AI 教育紮根,並降低更多 並非工程背景使用者的 AI 學習門檻,市面上已有能讓 AI 初學者輕鬆 提升算力的裝置。 例如:凌華科技 (ADLINK) 的外接式 GPU 加速器「Pocket AI」, 內建 NVIDIA RTX GPU,使用者在進行 AI 運算或生成作業時,只需將 此加速器與現有支援 Thunderbolt 串口的入門級電腦連接,無須另外 購買價格較高、厚重並且電池效能容易被消耗的電腦,即可馬上享受 效能升級、運算流暢的便利。另一方面,此種外接式 GPU 加速器外型 輕巧好攜帶,可在需要進行 AI 作業時再接上,除了極具成本效益,也 是最具高機動性的 AI 學習輔助工具。 95
96 第六章 讓 AI 為我們工作 : 模型應用方式
講完了導入方式,那來說一些實際應用的方式吧,以下的應用案 例將透過 VisLab & VisCam 來為各位展示。 1 斯氏繡眼的生長期追隨 : 利 用 斯 氏 繡 眼 資 料 集, 將 其 聲 音 轉 換 為 MFCC 圖 片 形 式 後, 利 用 VisLab 的圖像辨識來分類各時期的叫聲,進行訓練。並透過 VisCam 讀取 AI,利用相機鏡頭擷取手機上的梅爾頻譜圖進行辨識。 2 Automated Sorting Robotic Arm : 在傳送帶的開頭有一個攝像頭,用來標記物體並確定速度,一個攝像 頭固定在機器人上,用於確定位置、方向以執行分揀。所有信號將由 PC 通過 Visual Studio 軟體處理和控制。我們假設有一個系統在進入 傳送帶之前保持物體之間的距離,這樣系統就不會錯過任何物體。 97
CAM CAM CAM CAM 98 第六章 讓 AI 為我們工作 : 模型應用方式
3 不鏽鋼金屬拉髮絲紋表面特徵檢測 : 研磨不鏽鋼金屬試片,根據專家所提出的建議對目標之缺陷進行框選, 再依據 VisLab 的不同模型對其進行訓練,取得最佳辨識模型。 4 I CARE U 居家安全警示系統 : 以 AI 人工智慧技術取代人為監管畫面,透過影像辨識,將意外事件區 分為輕、中、重等三種不同程度的事件等級,並根據不同等級做出個 別的應對措施。 99
5 股票走勢分析 : 設計出一個工具與一般股票軟體不同之處在於它能分析近兩個禮拜的 股票狀態,讓使用者快速瞭近期的股票走勢,能快速篩選股票。 將股票代碼 VisCam 執行轉檔程式 輸入自動 自動標記 匯出 excel 截圖程式 表格 檢視表格裡 對有興趣之股票 有沒有股 再自行做 票的狀態處 技術分析判斷 在 live 或 是否買進或賣出 lower 100 第六章 讓 AI 為我們工作 : 模型應用方式
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270