Large Scale Machine Learning - Week_10
Gradient Descent with Large Datasets Learning With Large Datasets 我們得知要獲得一個高效能的機器學習演算法,可以透過大量資料來訓練演算法/模型,達到我們覺得合理的預期結果。但訓練數據大量,也有它自己的問題,特別是計算量的部分。 就拿計算梯度下降的部分來講,如果我們每做一次梯度下降就要跌代計算所有的模型和真實結果的誤差,要是數據量到達千萬的級別,可能就要花掉許多時間或者得運用更強大的運算資源去縮短時間,這樣的計算代價是非常昂貴的,所以後續會再提到其他的計算梯度下降的演算法,幫助我們可以更有效率且花費較少計算資源去訓練模型。 當然在使用上千萬的數據去計算前,當然也要先嘗試看看數千筆的數據是否也能達到我們的目標,要如何確認機器學習演算法是否該運用多少資料並檢查機器學習的演算法是否正確運行時,那就可以畫出學習曲線,也就是關於代價函數和數據及數量的xy圖,下面左方的圖代表高方差的數據,下面右方的圖代表高偏差的數據,關於兩種模型的偏差,都有相 對應的方式可以去解決問題。 在大規模的機器學習中,我們喜歡找到合理計算量的方法,或者高效率的計算方法來處理大數據,接下來的章節我們會介紹隨機梯度下降和映射化簡等方法來處理大量數據。 -------------------------------------------------------------------------------------------------------------------------- Stochastic Gradient Descent 當我們遇到規模很大數據時,可以透過隨機梯度下降,隨機梯度下降的代價函數表示如下: 這和普通批次的代價函數(Batch Gradient Descent)的差異在於沒有m樣本數量這個常數。主要普通的批次代價函數,是對所有樣本的代價函數求平均值,而隨機梯度下降(Stochastic Gradient Descent)的代價函數是對單一樣本求代價函數。 進行隨機梯度下降此演算法時要先隨機重新排序訓練樣本,然後再對每個訓練樣本進行隨機梯度下降的工作,作法如下: 下面為進行隨機梯度下降時的迭代公式: 和普通的批次梯度下降迭代公...