CS190.1x Scalable Machine Learning
這門課是CS100.1x的后續課,看課程名字就知道這門課主要講機器學習。難度也會比上一門課大一點。如果你對這門課感興趣,可以看看我這篇博客,如果對PySpark感興趣,可以看我分析作業的博客。
Course Software Setup
這門課的環境配置和上一門一模一樣,參考我的這篇博客CS100.1x Introduction to Big Data with Apache Spark。
Lecture 1 Course Overview and Introduction to Machine Learning
這一章主要是背景介紹和一些基本概念的介紹。現在的數據越來越多,單一的機器處理這些數據的時候會很慢,所以產生了分布式計算,但是分布式計算本身很復雜,所以出現了Spark來簡化分布式計算,特別是Spark MLlib,對解決機器學習問題非常好用。
緊接著介紹了機器學習的概念,包括機器學習的分類,機器學習的相關術語,機器學習的處理流程,處理垃圾郵件的具體例子,線性代數基礎知識和衡量時間和空間復雜度的Big O。
這里每個內容都很廣,所以不在這里贅述。有興趣的可以搜搜其他博客。
Lecture 2 Big Data, Hardware Trends, and Apache Spark
這章內容和上一門課的lecture3和lecture4一模一樣。參考我的這篇博客CS100.1x Introduction to Big Data with Apache Spark。
Lecture 3 Linear Regression and Distributed ML Principles
這一章干活很多。首先介紹了線性回歸和最小二乘法,線性回歸在工業中應用非常廣,因為算法簡單,效果好,而且可以通過增加特征來提高模型復雜度。當模型復雜度高時,容易過擬合,Rideg regression是個很好的選擇。
這一章還給出了一個預測歌曲年代的例子,通過這個例子簡單介紹了機器學習的處理流程。后面的作業會詳細的解決這個問題。
這一章解釋了如何用分布式來解決線性回歸的問題。我們都知道,在解決線性回歸的問題時,有一個closed form solution,如下圖
我們得到時間復雜度和空間復雜度
我們發現當數據量很大時,n一般很大,而d表示特征的多少,相比較n,顯得很小。所以計算和存儲的瓶頸就在于如何存儲X和如何計算X的轉置乘以X(原諒我懶得打公式)。因為這兩項涉及到n。
第一個問題很好解決,因為我們這里就是講分布式系統,直接把數據分布式存儲就行。
第二個問題需要一些技巧,如下圖,我們把矩陣的乘法從inner product變成outer product。
現在的時間和空間復雜度為
通過這些步驟,還有一個問題就是,時間和空間的復雜度里仍然有平方項,當d很大時,本地計算d*d也夠嗆。所以最好有一個復雜度為線性實現的方法。
第一個思路是利用數據的稀疏性,稀疏矩陣在實際問題中很常見,我們可以利用PCA降維,來把d變小;第二個思路就是換個算法,比如梯度下降。
梯度下降的定義和過程我們就不多說了,這里說說梯度下降在分布式里的應用和代碼實現。
通過上面的步驟,也解釋了三個經驗法則。
Lecture 4 Logistic Regression and Click-through Rate Prediction
這一章主要講邏輯回歸和其應用——點擊預測。點擊預測主要用于在線廣告,而且有很多難點,比如影響點擊的因素太多太亂、數據量太大。然后介紹了監督學習的概念,并從線性回歸到邏輯回歸。然后介紹了FP,FN定義和用ROC plot來覺得閾值。接著介紹了如何處理類別型特征(label encoding和one-hot encoding)。當對特征這樣處理后,整個矩陣可能會很稀疏,這時候用sparse representation會節省存儲空間和計算量。
當one-hot encoding處理后特征太多時,最好不要丟特征,因為雖然矩陣很稀疏,不代表沒有信息量;另外一個選擇是用feature hashing。
Lecture 5 Principal Component Analysis and Neuroimaging
這一章主要講PCA和神經科學。。我沒太明白為什么講神經科學,難道是和作業有關系么。然后介紹了無監督學習,從而引出了PCA。介紹PCA的博客太多了,這里不贅述。
這里重點講講PCA在分布式上的實現。分兩種情況。
第一種情況是Big n和small d,分為4步。
第二種情況是big n和big d。主要用迭代的方法。
轉載于:https://www.cnblogs.com/-Sai-/p/6736475.html
總結
以上是生活随笔為你收集整理的CS190.1x Scalable Machine Learning的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PB混淆加密大师(powerbuilde
- 下一篇: html页面上传图片回显,html js