機器學習之大數據集
前言
以下內容是個人學習之後的感悟,轉載請註明出處~
簡介
大數據時代已經來臨,它將在眾多領域掀起變革的巨浪。機器學習對於大數據集的處理也變得越來越重要。大數據
集務必會帶來恐怖的計算量,不僅耗費大量資源,而且給數據處理的實時性帶來巨大的挑戰。
想要解決這個難題,就需要采取以下措施:選擇更加適合大數據集的算法、更加好的硬件,采用並行計算等。
本文內容較多,建立以下目錄,方便瀏覽:
- 批量梯度下降法
- 隨機梯度下降法
- 微型批量梯度下降法
- 判斷收斂
- 選擇學習速率α
- 在線學習
- map readuce
批量梯度下降法
以線性回歸為例,如果m很大,每次循環都得進行m次求和,計算量非常大,不建議。
隨機梯度下降法
以線性回歸為例,隨機梯度下降法采用單次代價函數cost,每次叠代θ,不需要執行那麽多次加法,計算量小很多。
註意:樣本需要隨機打亂。
微型批量梯度下降法
以線性回歸為例,設樣本數量m=1000,小批量數b=10,即每次叠代只需10次疊加,計算量也很少。
判斷收斂
之前數據量很少的時候,我們都是直接判斷代價函數J(θ),只要其不再減少則收斂。然後在數據量很大的情況下,如
果實時監控代價函數,必然帶來巨大的計算量。其實,我們可以每隔1000次計算一下代價函數cost,將其畫成曲線,取其
低谷處為收斂,若出現曲線趨勢遞增,則表明發散。(圖中的細小起伏波紋是噪音導致)
選擇學習速率α
我們選擇隨機梯度下降法來處理大數據,雖然可以達到減小計算量的效果,但是並不能準確地達到極值點,有些人為
了盡量逼近極值點,設置α=常數1/(叠代次數+常數2)。
雖然無法達到極值點,但是也相差不多,所以一般α取常數即可。
在線學習
很多情況下,數據是源源不斷地傳輸過來,而且我們要時常更新一些信息,這時就需要使用在線學習。
在線學習是沒輸入一個樣本都會計算下誤差,調整一下參數,是基於樣本的。假設有m個樣本, 在線學習的過程是先輸入樣本,然後調整參數,接著再輸入,再調整參數,這樣持續到最後一個樣本。這樣也就導致了在 線學習沒有並行性,一般在使用在線學習時會隨機打亂訓練樣本的順序,這樣可以 有效避免陷入局部最小值。在線學習的一個優點是能夠追蹤 訓練數據小的改變。在線學習一般用於實時產生數據的web網站等(流數據)。 在線學習有兩個優點:- 在線學習容易執行
- 對大規模和困難模式分類問題能提供有效解
map readuce
以批量梯度下降法為例,將m=400的數據集分為4部分,分別由4臺電腦處理。如下圖所示:
此外,你也可以用多核電腦進行並行計算。
以上是全部內容,如果有什麽地方不對,請在下面留言,謝謝~
機器學習之大數據集