使用機器學習解決問題的五步驟 : 模型推論

緯緯道來
·
·
IPFS
·

前言 & 概述

本篇為機器學習觀念入門的第七篇文章,歷經了定義問題建立資料集模型訓練模型評估後,終於來到了最後一步 —— 模型推論 (Model Inference)。在本篇文章中,將會介紹什麼是「模型推論」以及其與「模型訓練」的差異。

模型推論的意義

模型推論 (Model Inference) 實際上描述的就是模型已經完成訓練與評估,並將模型部署到實際的目標硬體中,將資料輸入到模型中,並由模型預測結果的過程。

以生活化的例子而言,模型推論就像是一位經過長期訓練的士兵,通過了各種測驗,終於能夠獨當一面的作戰。

說到這裡,可能還是有些疑問。畢竟,在「模型訓練」的過程中,我們也會輸入樣本到模型中,並由模型產生預測結果。難道模型完成訓練後,只需要將模型「複製」到目標的裝置上運行,就算是模型推論了嗎 ?

模型訓練與模型推論的差異

當然不是的!模型訓練」的重點在於最小化損失函數 (Loss Function) 替模型找到一組最佳的參數。在此階段的模型可能會相當複雜,包含了成千上萬的參數在裡頭。

然而,「模型推論」的重點在於將模型部署到目標硬體裝置或是生產線上,實際開始應用模型來解決問題。既然已經要實際應用模型於現實生活中,那麼模型的大小運算量就會被慎重考慮!因為模型的大小與運算量攸關到記憶體的用量、運算所需時間、所需電力等因素。

舉例來說,如果我們訓練出一個「人臉辨識」模型並將其部署到「空拍機」上,為了增強空拍機的續航力,模型的運算過程勢必不能消耗太多電力;或者我們要將模型部署到「自駕車」上,那麼模型的運算速度一定要夠快,慢了一秒都可能發生意外。

因此,「模型推論」不單單只是輸入資料並產生預測的過程,還必須最佳化模型的效能、速度與能耗。常見的最佳化方法有兩種 : Pruning 與 Quantization

Pruning 與 Quantization

我們在這裡簡單說明 Pruning 與 Quantization 的概念,如果想更深入學習模型效能、速度與能耗的最佳化問題,可以參考 TensorFlow 的官方文件

  • Pruning : 全名為 Weight Pruning,中文稱為「權重修剪」。透過觀察模型中哪些參數對於模型的預測過程較沒有影響,將這些參數移除,達到降低模型複雜度與運算量的目的。
  • Quantization : 中文稱為「量化」。模型中的參數如果是 32-bit 的浮點數,將其轉為 8-bit。透過簡化模型中參數的「精確程度」達到降低模型體積並提高運算速度的目的。

不管是 Pruning 或是 Quantization,都是希望夠在簡化模型複雜度、提升運算速度並降低能源與時間消耗的同時,保持模型原來的預測準確度。

結語

在本篇文章中,我們介紹了模型推論的概念,並比較其與模型訓練的差異。也提到了 Pruning 與 Quantization 兩種模型最佳化的方法!在下一篇文章中,我們將以一個完整的例子,重新複習這五個步驟 (定義問題建立資料集模型訓練模型評估與模型推論)。

CC BY-NC-ND 2.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!

緯緯道來研究所學生,主修資訊工程,熱衷於深度學習與機器學習。初期先以基本的程式教學為主,希望我的文章能夠幫助到你!(https://linktr.ee/johnnyhwu)
  • 来自作者
  • 相关推荐

Python 中 if __name__ == “__main__” 有什麼用處

近期的心情寫照

Python Module 觀念解析