演算法後面是數學和函數,所謂的數據訓練究竟是在訓練什麼?
調參數。用已有的數據讓機器找到解決問題效果比較好的參數。
訓練是指跑模型和調參數兩個步驟:給定一組參數,把模型在數據集上跑一遍。最後把跑分最優的參數確定出來,模型就在我們的數據集上訓練好了。
如果你指的是機器學習演算法,我個人的理解是所謂的訓練過程,也叫學習過程,其實是一個統計過程。儘管這麼說不算很準確,因為嚴格的說現在的深度學習已經算不上真正的統計方法,但是這樣比較容易明白訓練的本質。這個過程是,首先給定一個統計模型,統計模型具有一定的參數,訓練過程就是通過已有的觀測到的數據,來計算對應模型的參數應該是什麼,才能更好的描述這些數據,也使得我們可以估計一些未知的數據。舉個例子,線性回歸。我現在假設一個人的身高與其父母身高呈線性關係,height =a*f+b*m+c。這就是模型。那麼我想知道具體是什麼關係,我就需要大量的數據來計算a b c的值,以得出最合適的能描述這種關係的參數。這就是訓練。得到參數後,我就可以通過父母的身高,計算出子女的身高是多少了,這個就是預測。現在的深度學習,支持向量機,邏輯回歸,隨機森林等等,結構更加複雜,以至於失去了直觀的統計意義,是為了解決更複雜的,非線性的問題,但究其本質的思想方法,其實就是統計過程。這就是我對機器學習過程的理解。
函數的參數(parameter)
以人臉識別為例。
數學和演算法的任務是正確的將你的臉和你的名字對應起來。
數據訓練任務是告訴程序哪張臉和你的名字對應是正確的。
簡單用人來類比一下。
眼睛看到如下的圖片,大腦就「知道」這些圖片是【貓的圖片】: