淺談keras中的metrics作用-神經網絡評價指標

2020-12-05 健健談智造

#科技新星創作營# #機器學習# #深度學習# #神經網絡#

背景介紹

最近在用keras寫模型的時候,參考別人代碼時,經常能看到各種不同的metrics,因此會產生這麼幾個問題:

metrics評價都對哪些指標進行評價?為什麼要在模型中定義這些指標呢?為什麼能在模型中定義多個指標?model.compile(loss='mean_squared_error', optimizer='sgd', metrics=['mae', 'acc'])

理解metrics

想要理解metrics,最好先理解什麼是loss function

神經網絡的訓練大多是採用梯度法,通過一個迭代的過程不斷降低損失函數的值。

損失應該有兩個重要的屬性

它的值越小,模型越適合數據;它應該是可微的。因此,知道了這一點,我們就完全可以定義度量是什麼:

它是一個函數,輸入模型對實例的預測值和實例真值,輸出則是一個可度量的模型"適合度"指標值。

所以,loss function是一個度量,但它並不總是成立的。

為了理解這些差異,讓我們看看度量metrics使用的最常見示例:

使用不可微函數衡量神經網絡模型的性能:例如,當準確度accuracy是不可微的(甚至不連續),因此我們無法直接用它來優化網絡。但是,我們可以使用它來選擇具有最佳精度的模型。當模型的最終損失是幾個損失函數的組合時,可以用metrics來獲得不同損失函數的值。假設損失裡有一個正則化項來計算模型權重與0的差異(l1正則或l2正則),以及一個衡量你的模型適合度的項。在這種情況下,我們便可以使用度量來單獨跟蹤模型在各個時期的適應度是如何變化的。跟蹤一個我們不想直接參與模型優化的度量:假設我們正在解決一個多維回歸問題,其中我們最關心的是mse,但同時我們對模型在問題上的解的餘弦距離隨時間的變化也感興趣。那麼,我們便使可以用metrics啦。上面便解釋清楚了度量的用途,以及為什麼可以在一個模型中使用多個度量。

在keras中metrics使用的機制

現在,讓我們來談談metricskeras的使用機制。

訓練時有兩種計算方法:

在編譯時定義metrics:在上面代碼中,keras為代碼中定義的每個度量都會定義一個單獨的張量,以便在訓練時計算它。這通常會使計算速度更快,但這也需要額外的編譯。這裡的度量應該根據keras.backend函數來定義。使用keras.callback:我們也可以使用回調來計算度量。由於每個回調都有model的默認屬性,因此在訓練過程中,我們可以使用model.predict或模型參數來計算各種metrics。此外,它使計算方式更加靈活,不僅可以按batch-wise計算,也可以按照batch-wise、train-wise計算。不過這種方式會帶來較慢的計算速度和更複雜的邏輯——因為metrics需要我們自己定義。可用度量metrics列表

大家可以在 https://keras.io/api/metrics/ 進行詳細查看。

Accuracy metrics

Accuracy classBinaryAccuracy classCategoricalAccuracy classTopKCategoricalAccuracy classSparseTopKCategoricalAccuracy classProbabilistic metrics

BinaryCrossentropy classCategoricalCrossentropy classSparseCategoricalCrossentropy classKLDivergence classPoisson classRegression metrics

MeanSquaredError classRootMeanSquaredError classMeanAbsoluteError classMeanAbsolutePercentageError classMeanSquaredLogarithmicError classCosineSimilarity classLogCoshError classClassification metrics based on True/False positives & negatives

AUC classPrecision classRecall classTruePositives classTrueNegatives classFalsePositives classFalseNegatives classPrecisionAtRecall classSensitivityAtSpecificity classSpecificityAtSensitivity classImage segmentation metrics

MeanIoU classHinge metrics for "maximum-margin" classification

Hinge classSquaredHinge classCategoricalHinge class

相關焦點

  • matlab神經網絡訓練結果評價指標詳解及實現原始碼
    評價神經網絡訓練結果的好壞主要有三個指標(1)Regression下面的回歸圖顯示了網絡輸出對培訓、驗證和測試集的目標。為了完美的配合,數據應該沿著45度的線下降,網絡輸出等於目標。如果需要更準確的結果,您可以通過在nftools中單擊retrain來重新訓練網絡。這將改變網絡的初始權重和偏差,並可能在重新培訓後產生一個改進的網絡。其他選項在以下窗格中提供。(2)Error histogram藍色棒代表訓練數據,綠色棒代表驗證數據,紅色條表示測試數據。
  • 深度研究:回歸模型評價指標R2_score
    回歸模型的性能的評價指標主要有:RMSE(平方根誤差)、MAE(平均絕對誤差)、MSE(平均平方誤差)、R2_score。但是當量綱不同時,RMSE、MAE、MSE難以衡量模型效果好壞。這就需要用到R2_score,實際使用時,會遇到許多問題,今天我們深度研究一下。預備知識 搞清楚R2_score計算之前,我們還需要了解幾個統計學概念。
  • BP神經網絡
    隱含層節點的作用是從樣本中提取並儲存其內在的規律,每個節點有若干個權值,而每個權值都是增強網絡映像能力的一個參數。一般來說,如果一個神經網絡的隱含層包含有無數隱含層節點,那麼該神經網絡可以實現從輸入到輸出的任意精度的非線性映像。但是現實中我們無法實現無數個隱含層節點,我們必需根據需要確定隱含層節點數。
  • 研究不同神經元在人工神經網絡中的作用
    德國數字轉型技術與管理研究所和機械工程信息管理研究所的研究人員最近進行了一項研究,旨在更好地了解神經網絡決策過程的機制。他們在arXiv上發表的一篇論文中概述了他們的發現,闡明了單個神經元和不同神經元群在這些網絡中的作用。
  • 期刊評價指標系列2:SNIP
    前文「期刊評價指標系列:SJR─SCOPUS期刊評鑑指標」中已介紹過用Google PageRank為核心概念所提出的期刊評鑑指標,本文將繼續針對
  • Launchmetrics收購國內KOL關係管理與數據分析平臺PARKLU帕克街
    (Media Impact Value)算法,以建立一個能夠衡量東西方品牌的營銷推廣計劃的綜合指標上海2020年11月18日 /美通社/ -- 作為在時尚、奢侈品和美妝行業(FLB)領先的品牌績效分析與管理雲平臺,Launchmetrics宣布收購KOL關係管理與數據分析平臺PARKLU。
  • 深度科普:神經網絡的類型及其作用
    「神經」只是大腦的另一種表達。「所以這是一個大腦網絡?」本質上,完全如此!神經網絡是人類最強大的工具——大腦的簡化。它使用的神經元都是通過權重(下圖中的線條)相互連接的。神經元被賦予一些數值輸入,然後乘以權重。權重是神經網絡的核心,通過將權重轉換為特定的數值,就可以處理任何輸入並獲得期望的輸出。神經網絡只是一種處理數據的方式。
  • 多模態神經影像學在癲癇網絡中的研究進展
    在發作間期,致癇區神經元功能異常和超極化抑制作用,腦組織血液灌流減少,圖像上表現為低代謝;在發作期,致癇區過度放電會導致血流增加,圖像上表現為高代謝。PET-CT的敏感性較好,但是對腦組織的空間解析度及定位的特異性均不高,限制了其在臨床中的應用。
  • 人工智慧算法:訓練神經網絡中的批量歸一化(附代碼)
    而且,如果您還沒有這樣做的話,本文將解釋BN的基本直覺,包括其起源以及如何使用TensorFlow和Keras在神經網絡中實現它。對於那些熟悉BN技術並且只想專注於實現的人,可以跳到下面的「代碼」部分。
  • 基於深度神經網絡的脫硫系統預測模型及應用
    因為電廠監測系統測量值易受溫度、溼度等影響而漂移,EMA 可以使得數據輸入更重視變化趨勢而不是瞬時振蕩,對神經網絡模型訓練過程、防止過擬合有積極作用。另對深度神經網絡而言,ReLU激活函數可顯著降低因 sigmoid 激活函數接近飽和區時導數趨於 0 帶來的梯度消失現象。此外,在輸入小於 0 時,ReLU 層的輸出也為 0,減少了網絡間相互依賴過程,對防止模型過擬合有積極作用。
  • 華泰證券: 人工智慧選股之全連接神經網絡
    神經網絡模型的反向傳播機制可以類比於飛機的發動機,地位十分重要,是神經網絡模型具有學習能力的關鍵。  全連接神經網絡模型的構建包括特徵和標籤提取、特徵預處理、樣本內訓練、交叉驗證和樣本外測試等步驟。最終在每個月底可以產生對全部個股下期上漲概率的預測值,然後根據正確率、F1-score等指標以及策略回測結果對模型進行評價。
  • 連創造者都質疑的影響力指標?最可憐的Altmetrics了解一下
    在《altmetrics: a manifesto》中,Priem等人提出了以下質疑:「研究人員必須問問自己Altmetrics是不是真的反映了影響還是空有名聲。」這相當有意思,這一創始文件中的自我反思與Hirsch創建的h指數以及Garfield創立的JIF(期刊影響因子)風格懸殊。後兩者雖然會提出這些指標的局限性,但是從來不會以這種方式質疑自己的有效性。
  • 胖不胖:看人工神經網絡怎麼「稱」
    2016年第3期《前沿科學》刊載了清華大學體育與健康科學研究中心主任張冰教授等的論文「基於BP神經網絡的體脂百分比評估模型研究」,對這一問題進行了詳細解讀。張冰告訴記者,通常人體體重可劃分為兩部分,脂肪組織的重量和去脂肪重量。人體成分是指人體中的脂肪重量和去脂體重佔體重的比例,而用來評價一個人的身體成分最重要的指數就是體脂百分比或稱脂肪率,即脂肪重量佔人體體重的百分比。
  • 代碼詳解:一文掌握神經網絡超參數調優
    全文共7002字,預計學習時長14分鐘或更長神經網絡在通信行業和研究中的使用十分常見,但令人遺憾的是,大部分應用都未能產出足以運行其他算法的高性能網絡。應用數學家在開發新型優化算法時,喜歡進行功能測試,有時也被稱為人造景觀。
  • 《SCIENTOMETRICS》論文導讀| Volume 125, issue 3(中)
    然而,跟蹤此類計劃的有效性取決於開發能夠跟蹤基礎研究對臨床研究影響程度的指標。我們提出了一個新的文獻計量學指標--TS評分,該指標計算相對簡單,可以大規模實施,易於複製,並且具有良好的可靠性和有效性。該指標廣泛適用於旨在估計基礎研究相對於基礎研究的使用情況,在更多的下遊應用研究中的使用程度的場合。TS得分應可用於各種政策分析和研究評估目的。
  • 神經網絡中的激活函數
    什麼是神經網絡激活函數?激活函數有助於決定我們是否需要激活神經元。如果我們需要發射一個神經元那麼信號的強度是多少。激活函數是神經元通過神經網絡處理和傳遞信息的機制為什麼在神經網絡中需要一個激活函數?在神經網絡中,z是輸入節點與節點權值加上偏差的乘積。
  • ...神經網絡重現生物視覺系統,發《自然:神經科學》後再中NeurIPS...
    具體來說,機器學習界提出的典型的深度模型通常都很難和人腦的解剖結構之間找到對應關係,因為它們有很多層,而且缺少循環信號通路之類的在生物結構中非常重要的連接。在這篇論文中,作者們通過實驗展示了完全可以設計一個和生物結構更為相符的模型,而且讓它在機器學習用的評價指標和神經科學用的指標方面都取得好成績。
  • 心臟自主神經評價有六大手段!阜外醫院賈玉和等文章
    例如,心率減速力、心臟交感神經顯像H/M 值和WR 值、血漿去甲腎上腺素濃度等均對射頻消融術後房顫復發有一定的預測作用,H/M 值還可以預測房顫進展。但是目前治療並不支持將心率變異性參數作為房顫患者心臟自主神經功能評價的手段,更不能作為射頻消融術後房顫復發的獨立預測因子。
  • 評價指標為何如此必要?有哪些設計之道?
    本文作者作為在幾十個數據科學項目上戰鬥了好幾年的老炮兒,希望通過這篇文章跟大家聊聊他心中的「評價指標設計之道」。簡單來說,他認為評價指標的設計共有5個關鍵點:代價成本、簡潔性、可信性、準確性和因果相關性。它們之間的權衡與取捨決定了所設計的評價指標的側重方向,它們也是評價指標的設計過程中最核心的考慮因素。
  • 在機器學習回歸問題中,你應該使用哪種評估指標?
    如果你像我一樣,你可能會在你的回歸問題中使用R平方(R平方)、均方根誤差(RMSE)和均方根誤差(MAE)評估指標,而不用考慮太多。儘管它們都是通用的度量標準,但在什麼時候使用哪一個並不明顯。R方(R)R代表模型所解釋的方差所佔的比例。R是一個相對度量,所以您可以使用它來與在相同數據上訓練的其他模型進行比較。