iT邦幫忙

2022 iThome 鐵人賽

DAY 12
1
AI & Data

機器學習的 hello world - 用手寫數字辨識系統學習 ML 的 30 天系列 第 12

[DAY12] 評估結果成效的準則-性能指標(metrics)

  • 分享至 

  • xImage
  •  

如果我們想要知道模型結果的成效,我們會設定成效或說性能指標(metrics)來看其結果。今天我們會分成下面三點來介紹:

  • 指標(metrics)是什麼?
  • 損失函數(loss function) 跟 指標(metric) 的差異
  • 成效(performance)的意義與常用指標(matrix)-正確率

一、指標(metrics)是什麼?

Keras 官網上的介紹是:

A metric is a function that is used to judge the performance of your model.
Metric functions are similar to loss functions, except that the results from evaluating a metric are not used when training the model. Note that you may use any loss function as a metric.

翻譯一下,我們可以得到三個資訊:

  1. 指標(metric)是用於判斷模型性能(performance)的函數。
  2. 類似損失函數(loss function),只是在訓練模型時不使用指標的結果。
  3. 你可以使用任何損失函數作為指標。

進階理解後,我們可以濃縮成兩點問題:

  • 什麼是模型性能/成效(performance)呢?
  • 損失函數(loss function) 跟 指標(metric) 差在哪呢?為什麼訓練時不使用 metric的結果讓機器做修正?

二、損失函數(loss function) 跟 指標(metric) 的差異

這邊我想先提損失函數(loss function)跟指標(metric)的差異,主要是因為我們想找的指標不一定跟機器修改的方向一樣

譬如說我們想知道正確率這個指標,但正確率(反面說就是錯誤率)其實不大適合用在分類問題當損失函數讓機器修正。我們可以看一下Tommy Huang老師機器/深度學習: 基礎介紹-損失函數(loss function)一文中提到的這個例子:
https://ithelp.ithome.com.tw/upload/images/20220926/20131719dFMukL9ONB.png
Model1 跟 Model2 的錯誤率都一樣,但顯然 Model2 呈現出的結果會比較好(機率區別較大)。

引用一下作者的結論:

  1. 單看錯誤率比較不出此兩模型的差異

  2. 這樣後續模型學習時,比較難得到較好的學習方向,因為用錯誤率得到只知道此筆資料判別錯誤,但模型不會知道現在的模型錯的很多還是很少,這樣模型在學習時根本不知道最佳的模型在那的方向,也不知道要更新多少。

所以我們可以拿損失函數(loss function)當指標,但不用指標(metric)結果讓機器做修正。

ps.損失函數(loss function)可見 [DAY9] 評估 NN model 好壞的指標-損失函數(loss function) 介紹


三、成效(performance)的意義與常用指標(matrix)-正確率

所以成效(performance)是什麼?是我們預期得到的一些結果。我們常會使用統計的混淆矩陣(confusion matrix)[註1]去產生一些成效指標,如正確率(Accuracy)

這邊不提混淆矩陣及其他常用指標(有興趣的可以看備註了解!),這邊先提正確率這個比較容易理解的指標。

譬如說我們手寫數字辨識答案是[1,2,3,4,5],而系統預測[0,2,4,4,5],這樣正確率=3/5=60%

Keras 提供不同正確率的套件,可以看一下自己的資料形式去做相對應使用。→ https://keras.io/api/metrics/


四、小結

神經網路模型(NN model)用損失函數(loss function)去判斷修改成回歸誤差最小或分類效果最好的情形,而我們用指標(metric)去闡述資料的結果成效(performance)。

用 Keras 疊一個神經網路需要先知道的幾個名詞 第5天(/6 days) 完成。

[註1] 混淆矩陣推薦看 機器學習\統計方法: 模型評估-驗證指標(validation index) 這一篇文章,裡面介紹了很多實用指標跟算法。


上一篇
[DAY11] NN model 的訓練設定-訓練週期(epoch) 與 批次(batch)
下一篇
[DAY13] 資料的劃分-訓練集(training set)、驗證集(validation set) 與 測試集(testing set)
系列文
機器學習的 hello world - 用手寫數字辨識系統學習 ML 的 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
sysherry
iT邦新手 4 級 ‧ 2022-10-08 23:55:03

發現這段沒有寫到混淆矩陣 confusion matrix/images/emoticon/emoticon16.gif
我們很常用 confusion matrix 這個指標去看錯誤細節等

我要留言

立即登入留言