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。主要用迭代的方法。



CS190.1x Scalable Machine Learning的更多相关文章
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)
		
##机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)---#####注:机器学习资料[篇目一](https://github.co ...
 - How do I learn machine learning?
		
https://www.quora.com/How-do-I-learn-machine-learning-1?redirected_qid=6578644 How Can I Learn X? ...
 - 100 Most Popular Machine Learning Video Talks
		
100 Most Popular Machine Learning Video Talks 26971 views, 1:00:45, Gaussian Process Basics, David ...
 - Java Machine Learning Tools & Libraries--转载
		
原文地址:http://www.demnag.com/b/java-machine-learning-tools-libraries-cm570/?ref=dzone This is a list o ...
 - 【机器学习Machine Learning】资料大全
		
昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...
 - Why The Golden Age Of Machine Learning is Just Beginning
		
Why The Golden Age Of Machine Learning is Just Beginning Even though the buzz around neural networks ...
 - SOME USEFUL MACHINE LEARNING LIBRARIES.
		
from: http://www.erogol.com/broad-view-machine-learning-libraries/ http://www.slideshare.net/Vincenz ...
 - A Gentle Introduction to the Gradient Boosting Algorithm for Machine Learning
		
A Gentle Introduction to the Gradient Boosting Algorithm for Machine Learning by Jason Brownlee on S ...
 - 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】
		
转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...
 
随机推荐
- Oracle表字段的增删改和重命名
			
增加字段语法:alter table tablename add (column datatype [default value][null/not null],….); 说明:alter table ...
 - C# 字符串的操作
			
var tStr = "0|1:开门|2:关门|3:门检失败|4:开门|5:开门|6:关门"; ).Split(], s.Split(]).Replace(").Repl ...
 - Chrome 无法加载Shockwave Flash
			
遇到的问题 Chrome经常出现上图的提示,把Adobe Flash重装了N多次也是无法解决此问题,经多次尝试终于解决此问题. 解决方法 1.在Chrome地址栏输入:chrome://plugins ...
 - Practice telephone techniques
			
https://www.englishclub.com/speaking/telephone-practice-appointments.htm https://www.englishclub.com ...
 - Python3编写网络爬虫03-正则表达式的使用
			
一.正则表达式(处理字符串强大的工具,有特定的语法结构)功能:实现字符串的检索,替换,匹配验证实例: 地址:http://tool.oschina.net/regex/ #测试文本Hello,my p ...
 - php包含那点事情[WOOYUN]
			
有空就多整理下曾经研究过的知识和需要温顾的知识,明年可能去寻工作络. 关于PHP中LFI(Local File Include,本地文件包含)漏洞,大家都很熟悉了;paper很多很多,特别是国外的.. ...
 - python2.7 threading RLock/Condition文档翻译 (RLock/Condition详解)
			
RLock Objects 可重入锁是一个同步原语,它可以被同一个线程多次获取.在内部,除了原始锁使用的锁定/解锁状态之外,它还使用“线程拥有”和“递归级别”的概念.在锁定状态下,某些线程拥有锁:在未 ...
 - 使用let声明变量的理解
			
先看阮大神的[ECMAScript 6 入门]中关于这一部分的描述 var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { ...
 - CSS3的新增选择器
			
一.兄弟选择器:选择E元素所有兄弟元素F. <style> p~p{ color:#f00;} </style> </head> <body> < ...
 - PHP生成有背景的二维码图,摘自网络
			
有一天产品MM高高兴兴的走过来,兴奋的和我分享她想出来的一个新的idea. 产品MM:你看这个(她指了指她的手机),一脸兴奋 那是一张带着二维码的图片,内容如下: 她接着说:如果我们的分销也能做成类似 ...