在機器學習中,全部的機器學習算法都或多或少的依賴於對目標函數最大化或者最小化的過程,咱們經常把最小化的函數稱爲損失函數,它主要用於衡量機器學習模型的預測能力。在尋找最小值的過程當中,咱們最經常使用的方法是梯度降低法。git
雖然損失函數可讓咱們看到模型的優劣,而且爲咱們提供了優化的方向,可是咱們必須知道沒有任何一種損失函數適用於全部的模型。損失函數的選取依賴於參數的數量、異常值、機器學習算法、梯度降低的效率、導數求取的難易和預測的置信度等若干方面。這篇文章將介紹各類不一樣的損失函數,並幫助咱們理解每種損失函數的優劣和適用範圍。github
因爲機器學習的任務不一樣,損失函數通常分爲分類和迴歸兩類,迴歸會預測給出一個數值結果而分類則會給出一個標籤。這篇文章主要集中於迴歸損失函數的分析。本文中全部的代碼和圖片均可以在這個地方找到!算法
迴歸函數預測數量,分類函數預測標籤機器學習
迴歸損失函數函數
1.均方偏差、平方損失——L2損失:學習
均方偏差(MSE)是迴歸損失函數中最經常使用的偏差,它是預測值與目標值之間差值的平方和,其公式以下所示:優化
下圖是均方根偏差值的曲線分佈,其中最小值爲預測值爲目標值的位置。咱們能夠看到隨着偏差的增長損失函數增長的更爲迅猛。spa
MSE損失(Y軸)與預測(X軸)的關係圖blog
2.平均絕對偏差——L1損失函數:圖片
平均絕對偏差(MAE)是另外一種經常使用的迴歸損失函數,它是目標值與預測值之差絕對值的和,表示了預測值的平均偏差幅度,而不須要考慮偏差的方向(注:平均誤差偏差MBE則是考慮的方向的偏差,是殘差的和),範圍是0到∞,其公式以下所示: