首先,我也是乙個機器學習初學者,這裡跟大家聊一下自己的最近學習感悟。我認為在面對一件事務的時候,首先對這個事務來乙個深刻的認識很重要。首先我們來看一下統計學習具體由什麼構成或者有什麼重要的要素?
這一點我參造《統計學習方法》裡面寫道,統計機器學習方法是由模型、策略和演算法構成的。
方法 = 模型+策略+演算法
在監督學習過程中,模型就是要學習的條件概率分布或者決策函式。模型的假設空間(hypothesis space)包含所有可能的條件概率分布或決策函式。
舉個栗子:假設函式是輸入變數的線性函式,那麼模型的假設空間就是所有這些線性函式組成的函式集合。假設空間中的模型的模型一般有無窮多個。假設空間用f表示,
決策函式的集合,則f=
條件概率的集合,則 f=
於是這裡乙個重要的概念出現,f是由乙個引數向量決定的函式族或者引數向量決定的條件概率分布族,這個引數向量也稱為引數空間。
風險函式
但是當樣本量很小的時候,會產生過擬合現象(over-fitting).結構風險最小化是為了防止過擬合而提出來的策略。
關於成本函式、目標函式和風險函式有疑問的童鞋可以看看這篇機器學習machine learning:成本(cost) 函式,損失(loss)函式,目標(objective)函式的區別和聯絡?
演算法也就是學習模型的具體計算方法。機器學習基於訓練資料集,根據學習策略,從假設向量(空間)中選取最優的模型,最後需要考慮用什麼樣的計算方法求解最優模型。這時候機器學習主要歸結為求解最優化問題,如何找到全域性最優解,成為乙個重要的問題。既可以利用現有的優化演算法,有時候也需要開發自己的優化演算法。bp演算法就是乙個經典的例子。
機器學習中所謂的訓練其實就是損失函式的優化過程,可以有不同的優化方法,這些方法並不是機器學習演算法的一部分,這屬於凸優化或者啟發式優化演算法。而不同的優化(訓練、學習)演算法效果也不同,突出的表現為
1、不同的優化演算法適應於不同的場景(大規模資料、較深較複雜網路、稀疏資料、收斂速率高)等
2、不同優化演算法可以解決特定問題:學習率固定不變、在極值點附近收斂緩慢、收斂波動較大等。
3、啟發式優化演算法可以用於尋找全域性最優點,避免陷入區域性最優點和鞍點,但收斂太慢。
具體可以參考以下博主文章:機器學習常見的幾種優化方法
那麼我們在具體面對資料的時候機器學習模型設計應該注意哪些呢?機器學習模型設計五要素
當然具體的實戰過程中還會具體一些考慮,下次待續….
機器學習初學者筆記(一)
1 監督學習 給演算法乙個資料集,其中包括了正確的資料,然後演算法的 目的是找出更多的正確 值 2 回歸問題 目標是 乙個連續值輸出 3 分類問題 離散值輸出 4 無監督學習 給演算法無標籤或者相同標籤的資料集,然後利用演算法將其分簇 也可以看成是聚類演算法 5 學習步驟 首先有乙個訓練集,然後利用...
機器學習初學者筆記(二)
7 工作流程 輸入乙個x,然後通過學習演算法能夠輸出函式h,進而 y。這裡的函式h是假設函式是乙個引導x到y的函式。8 如何決定函式h?通過利用代價函式。若有訓練集以及乙個函式 9 如何確定代價函式的最小值對應的梯度下降法 梯度下降法的思想是 開始時隨機給定乙個引數的組合 梯度下降法的公式為 對於這...
給機器學習初學者的忠告
1 理論知識沒那麼重要。不要為了學習機器學習,去把高等數學 線性代數和概率與統計三門課像準備考研一樣再學一遍,認識牛頓 萊布尼茨兩位高等數學的祖師爺,再了解行列式 矩陣和概率統計中的一些名詞術語就足夠在這一行業混吃混喝了。2 不要把過多精力花在演算法上。就像去學習開車,不需要研究汽車內容構造,更不需...