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