陈一帅
北京交通大学电子信息工程学院网络智能实验室
北京交通大学《大数据存储和处理》课程,源自斯坦福CS245大规模数据挖掘,讲解大数据、机器学习、深度学习、推荐算法的基本原理和算法,一路下来,带大家在动手中,走上算法研发的职业道路。详细课程信息请访问:https://yishuai.github.io/bigalgo
课本
人类已经进入了大数据时代。数据就像空气、水、电力、能源一样,成为了最重要的生产要素。本章介绍大数据的特点和存储计算模型,为后面的大数据机器学习算法奠定基础。
本节带大家了解大数据及其应用的特点,参观大数据中心
课程PPT:PPT(7MB)
本节详细介绍大数据系统的存储模型和各项性能指标,然后学习目前最流行的分布式文件系统HDFS的基础知识。这是了解大数据系统的基础,对理解大数据系统性能至关重要。
课程PPT:PPT(1MB)
本节介绍Map-Reduce计算模型、框架、开销分析和优化。大数据计算就是通过Map-Reduce实现的,所以掌握这些内容非常重要。
课程PPT:PPT(1MB)
感知机模型,从人类大脑神经元得到启发,具有完美几何解释,一手开创了人工智能。这样的模型,不了解行吗?不行。那就让我们开始吧。
机器学习是从已知数据中学习出一个函数,然后用这个函数对未知的数据进行预测。本节我们简单了解一下这个概念。
课程PPT:PPT(90KB)
感知机模型是一个非常优美、容易理解的机器学习模型。让我们以它为例子,理解什么是机器学习模型吧。很好理解的。试试吧?
课程PPT:PPT(1.8MB)
感知机有着非常优美的几何描述。基于该几何描述,我们能够非常轻松地理解机器学习是如何从数据中学会一个模型的。这个过程非常有意思,就像人类一样,它能够从错误中改进自己,取得进步呢!所以犯错误真的是非常棒的,因为错误是最好的学习机会。
课程PPT:PPT(146KB)
感知机模型也有一些不足,比如它只能模型能够线性分隔的数据。这个缺点曾经导致感知机被放弃了很多年,直到深度学习挽救了它。本节我们介绍当数据线性不可分时,如何训练感知机模型,以及多元感知机和非线性感知机。它们让我们理解现实世界中的机器学习任务是非常复杂的,我们需要对数据有清楚的认识,才来训练出好的机器学习模型。这就是成为一个机器学习高手的秘诀。
课程PPT:PPT(168KB)
感知机是深度学习的基础。下面我们来看看感知机进化到深度学习后,有些什么变化
MIT 深度学习课程PPT:PPT(1.8MB)
梯度下降是深度学习的基础。下面我们来看看深度学习是任何运用梯度下降的
PPT 我们用一个简单例子,来体验一下梯度下降方法的代码实现:本节介绍 Logistic 回归(LR)和 神经元网络(NN)的基本概念,包括:
斯坦福 Dan Jurafsky 教授材料
伯克利 Sergey Levine 教授材料
伯克利 Sergey Levine 教授材料
练习
Winnow分类算法和感知机很像,但它使用乘法。当许多维度无关时,它性能更好。它很简单,因此很适合高维数据,在大数据中很常用。
课程PPT:PPT(129KB)
具有最优美数学形式的支持向量机分类模型,自从被提出以来,就震惊了整个学术界。人们无法想象,这样美的模型怎么可能被人类发明,然而它确实被发明出来了。叹为观止。本章介绍支持向量机的原理和其梯度下降、随机梯度下降的优化方法。
和感知机一样,SVM支持向量机也是要找到一个线性分隔平面。但它比感知机厉害。感知机只要训练集没有错误了,就停止优化了,而SVM还会继续优化,直到找到最佳的分隔平面为止。这是什么意思呢?
课程PPT:PPT(690KB)
本节介绍如何构建SVM的优化问题,找到最优线性分隔平面。这个过程非常有意思。
课程PPT:PPT(523KB)
加入Hinge Loss,对越过分隔平面的样本点进行惩罚,这让SVM更能容忍噪声,反映数据的本质特征。Hinge Loss非常有趣,让我们看看吧。
课程PPT:PPT(776KB)
本节我们综合考虑分割平面的距离Loss和样本的Hinge Loss,得到整个SVM模型的Loss函数。通过控制该函数中的C参数,我们可以调节模型对噪声的容忍度,及其泛化能力。该Loss函数是Convex的,所以可以用梯度下降法优化,这就太方便了。
本节介绍如何计算SVM Loss函数的梯度,特别是Hinge Loss的梯度。得到了梯度后,我们就可以用梯度下降方法,从数据中学习SVM模型了!
本节介绍Hinge Loss导数表。我们将利用这个表,计算所有样本的Hinge Loss的导数。在大数据中,这个表会非常大,所以用Map-Reduce来实现它。了解这个对理解大数据下的SVM模型非常重要。让我们来看看吧。
本节介绍随机梯度下降和Batch梯度下降方法的原理、实现和效果。这些方法能够极大地提高模型训练的速度(上万倍),所以是目前机器学习和深度学习中的主流方法。
本节介绍如何构造SVM优化问题的拉格朗日函数,然后通过建立它的对偶问题,进行求解。通过这种方法,求解更加方便。
课程PPT:PPT(842KB)
参考课本:李航老师课本第7章 SVM 的 7.2节《线性支持向量机与软间隔最大化》,7.4节《序列最小最优化算法》及其代码实现:代码1,代码2
伟大的贝叶斯定理,一直在人类探索世界的过程中处于绝对核心的位置,在此基础上,人们还提出了贝叶斯网络。它们都是我们探索世界的底层逻辑,做出最优决策的准绳。本章介绍它们及其在文本分类中的应用,即朴素贝叶斯分类器。
PPT(14.4MB)
贝叶斯推断能基于收集到的证据,对特定假设的概率进行估计,比如“昨天是不是下雨了?”。它是统计机器学习的基石,因此是人工智能和机器学习的核心概念。本节通过讲解和举例,带大家理解贝叶斯推断的内涵。
本节介绍如何综合考虑多个证据,对特定假设的概率进行估计。为此,朴素贝叶斯分类器引入了条件独立。条件独立让贝叶斯分类变得简单、可扩展,性能还特别好。
朴素贝叶斯分类特别适合文本分类。本节通过示例,带大家完成自己的第一个贝叶斯文本分类器。这一方法非常实用,请一定要掌握哦。
本节首先介绍朴素贝叶斯文本分类的数学模型,然后介绍机器学习的生成模型和判别模型基本概念,指出朴素贝叶斯模型是一个生成模型,这是它不同于感知机、支持向量机的地方。我们然后给出完整的朴素贝叶斯文本分类模型,包括对零概率的处理。这是我们第一次接触统计机器学习模型。模型的魅力是无穷的。
本节基于客户流失分类的例子,讲解我们在机器学习中经常遇到的一个非常重要的问题:维数诅咒,即:特征使用越多,数据越稀疏,导致分类器参数的精确估计变得更加困难。然后我们说明朴素贝叶斯是如何解决这个问题。这是一个理解维数诅咒的特别好的例子,
本节介绍在实际中运用朴素贝叶斯分类方法中可能遇到的两个问题:1)两种类别的先验概率极不平衡;2)连续变量,时的处理方法。这些方法在实际中非常有用。
贝叶斯网络能够将我们对世界的理解,特别是对各种关系的理解,引入机器学习模型。这个优点非常重要,因为我们特别希望我们的机器学习模型是能够解释,是符合我们理解的世界的规律的。我们前面学过的朴素贝叶斯分类器就是贝叶斯网络中的一种。本节通过讲解和举例,带大家理解并掌握贝叶斯网络。本节内容十分重要,请一定要掌握哦。
本节分析几种贝叶斯网络中常见的元素关系的独立和条件独立,然后给出马尔科夫毯的概念。马尔科夫毯能帮助我们在一个贝叶斯网络中,定位和我们想要推断的元素的相关元素,因此展开测量和模型。本节内容十分重要。
当理论分析难以进行时,我们还可以通过仿真的方法,研究概率问题。本节介绍蒙特卡洛仿真和马尔科夫链蒙特卡洛仿真。它们在实际中应用非常广泛,值得掌握。
PPT (8.5M)
“提出假设”是数据分析的第一步。提出一个假设后,我们从数据中寻找相关证据,对该假设进行检验。本节介绍假设检验的基本原理,关于模型参数的假设检验,和非参数假设检验方法。
PPT (367K)
降维是机器学习改进性能的重要手段,同时隐含了重要的深度学习概念:表征学习,应用非常广泛。本章学习PCA(主元素分析)和SVD(奇异值分解)两种降维方法,非常有意思。
降维原理:PPT(571KB)
机器学习是从数据中进行学习。如果数据包含冗余或无关变量,模型性能会下降。降维能够消除这些变量,提高模型性能。本节通过具体示例,解释为什么应该降维。
对数据矩阵的协方差矩阵做特征分解,得到的特征向量,就是数据在该方向上的投影方差最大的向量,即:特征值最大的特征向量指明了该数据的主方向,依次类推还有其它次方向。这些方向相互正交。然后,将原始数据矩阵与这些主方向做乘积,就完成了向量投影,即坐标变换。这一过程非常有意思。本节从数学的角度,阐述PCA的基本原理。
本节介绍降维的数学基础:矩阵的特征值和特征向量。通过它们,我们就可以实现各种神奇的降维效果。本节特别介绍幂迭代(power iteration)计算特征向量的方法。该方法特别适合大数据场景。快来看看吧!
主元素分析(PCA)可以对原始输入数据进行变换,得到原始数据的正交基描述,而且输入数据在这些正交基上的能量还是依次递减的,第一个基就是数据的主元素。所以,我们就可以实现降维。当我们发现原始输入数据中的特征相关时,就应该做主元素分析。这非常重要,
奇异值分解可以将一个矩阵分解为三个子矩阵的乘积,其中两个子矩阵分别反映了原始矩阵的行和列的基本信息,而另一矩阵的数值反映了它们在原始矩阵中的重要程度。基于它们,我们可以获得对样本和样本特征的降维描述,方便后续数据的处理和模型的学习,也可以据此进行推荐,非常有趣。本节我们练习斯坦福的另一个作业。一定要完成哦。
PPT(762KB)
PCA和SVD练习:PDF(318KB)
降维意味着用一个向量来表示一个对象。因此,除了将用户、商品表示为向量,我们还可以将单词也表示为向量,这就是Word2Vec。本节介绍
PDF(18.6MB)
本节介绍 KNN、决策树、Boosting 这三种常用机器学习模型的基本概念。
参考:李航老师课本
PPT(3.9MB)
学会了降维和机器学习,我们下面来完成一套完整的机器学习流程,包括两个实验和一个练习。
哪个机器学习算法最值钱?推荐。我们现在买的大部分东西都不是我们主动寻找的,而是被推荐的。其它呢?读的书、观的影、看的文、交的友、走的路、爱的人、....,一切的一切、都是被推荐的。所以,本节我们学习推荐。
PPT(3.9MB)
UCSD PPT 1(2.5MB)
UCSD PPT 2(1.4MB)
参考:Dan Jurafsky, 推荐系统与合作过滤,PPT(3MB)
本节介绍推荐系统的基础模型:一个非常稀疏的矩阵描述。推荐系统的作用就是基于有限的数据样本,推断出用户可能最感兴趣的商品。
本节介绍如何利用TF-IDF等方法,提取、构建用户和商品的内容向量,然后匹配它们,为用户提供推荐,比如我们发现一篇文章是关于贝多芬的,而一位用户的历史表明他很喜欢贝多芬的文章,那么就为他推荐这篇文章。这就是基于内容的推荐。
本节介绍另一种流行的推荐算法:协同过滤(CF:Collaborative Filter)。它通过用户-商品矩阵,发现相似用户或相似商品,进行推荐。该方法在实际中效果非常好。本节也简短地总结两种推荐系统,讨论推荐中常遇到的另一个问题:冷启动问题。
在推荐系统的发展史中,奖金高达100万美元的Netflix推荐大赛占据着史诗般的地位。正是这个大赛,极大地提高了推荐系统的知名度,让推荐系统研究成为显学。本节介绍该大赛的问题设置、基于SGD的协同过滤算法、矩阵分解方法、时变模型、集成方法,并回顾当年百万美元花落谁家的惊险一幕。
课本阅读
对话推荐系统练习
PCA、SVD 算法练习
朋友,你有没有走进游戏厅,面对满屋老虎机,不知道如何下手?你知不知道,人生也有一点像老虎机,你需要在尝试中学习?你又想不想知道,要玩好人生老虎机,是要乐观呢,还是悲观?没错,这是一个机器学习问题。本节我们就来系统学习这个问题,找到老虎机的最优玩法。
PPT(2.1MB)
当你走进一个游戏厅,面对一排老虎机,是不是有一丝茫然:怎么玩才是最优的呢?这是一个通过实验进行学习的问题。本节介绍这一问题的基本概念和应用场景,你会发现原来它这么有用啊。
本节介绍多臂老虎机(MAB)问题的模型。它是“通过实验学习”这一问题的经典模型。这个模型非常有趣,
本节首先介绍多臂老虎机的性能评估指标:悔恨。这是通过试验学习特有的一个性能指标,非常有趣,也非常有道理。你一定会喜欢的。本节然后定义什么是多臂老虎机问题的最优策略。它非常深刻,很有意思,
通过实验学习的核心问题是:如何平衡“探索未知”和“利用已知”。这是决策制定中的经典难题。对这个问题的讨论,可能会给你带来极大的启发,改变你的人生!
本节介绍基于实验的学习的一个简单解法方法:epsilon-贪心算法。它会随着时间的增长,慢慢减少探索,增加利用。它可是一种最优算法哦:采用该算法,你最终会找到最优的老虎机。
UCB(置信区间上界)算法会选择置信区间上界最大的老虎机。这一方法既探索了未知,又利用了已知,让人拍案叫绝,成为目前应用最广泛的通过试验学习的算法。它也是一种最优算法:采用该算法,你最终会找到最优的老虎机。
上下文老虎机(Contextual Bandit)允许你在做决策时,考虑此时情境。比如在推荐新闻时,考虑读者的喜好。这实在是太强大了,
本节介绍经典的 Contextual Bandit 算法:LinUCB。它假设回报是情境变量的线性加权和,即线性回归模型。它会按UCB算法选出最好的老虎机,也会根据实验结果不断更新每个老虎机的回报模型。本节也介绍Yahoo是如何用该方法实现新闻推荐的,
实验:基于微软 Vowpal Wabbit AI库 的 Contextual Bandit 实验
恭喜大家完成了大数据机器学习的内容。致敬。再会!