资源 | 源自斯坦福CS229,机器学习备忘录在集结
在 Github 上,afshinea 贡献了一个备忘录对经典的斯坦福 CS229 课程进行了总结,内容包括监督学习、无监督学习,以及进修所用的概率与统计、线性代数与微积分等知识。
项目地址:https://github.com/afshinea/stanford-cs-229-machine-learning
据项目介绍,该 repository 旨在总结斯坦福 CS 229 机器学习课程的所有重要概念,包括:
- 学习该课程所需的重要预备知识,例如概率与统计、代数与微积分等进修课程。
- 对每个机器学习领域知识的备忘录,以及在训练模型时需要的提示与技巧。
- 上面所有的元素最终汇编进来一个备忘录里。
VIP Cheatsheets
在这一部分中,该项目根据 CS 229 提供了监督学习、无监督学习、深度学习、机器学习技巧等重点内容。其中监督学习主要介绍了回归、分类和生成,无监督主要介绍了聚类与降维算法,深度学习概述了三种神经网络。
监督学习
如下所示监督学习介绍了非常多基础概念,包括损失函数、梯度下降和最大似然估计等。其中损失函数展示了常用的最小二乘损失函数、折页损失函数和交叉熵损失函数等,每一种损失函数的图像、定义和应用的算法都展示在其中。

监督学习部分一共有四页备忘录,除了一般的线性与 Logistic 回归,还重点介绍了 SVM、朴素贝叶斯和 K 近邻等其它一些非参模型。这些基本上都是直接给出的定义,因此不会有过多的冗余信息,这对于机器学习开发者与研究者作为参考还是非常有帮助的。
除了标准的定义外,很多重点概念还会用形象的图示表达出来,如下展示了监督学习中的支持向量机:

上述定义清楚地描述了 SVM 的定义,它希望能根据「支持向量」最大化分类边界之间的间隔,这样的分类模型将更稳定。基本上着一幅图就讲述了 SVM 的基本想法,同时也展现了分类原理,根据它再「回忆起」合页损失函数也就更容易了。
无监督学习
无监督学习主要记录了 EM 算法、聚类算法和降维算法等,其中聚类又详细介绍了 K 均值聚类、层级聚类和其他聚类距离度量方法等,而降维算法则主要展示了主成分分析法和独立成分分析法这两种。

除了标准的定义,这些算法的原理图也非常重要,如上所示在 K 均值聚类中,四幅图展示了该算法的具体过程。首先随机初始化均值,然后将离均值近的样本分配为均值所代表的那一类,随后根据误差更新均值的位置,并直到模型收敛。主成分分析同样有非常好的可视化,如下 PCA 会先归一化数据特征,然后根据奇异值分解找出主成分,最后再将所有数据映射到主成分而实现降维。

深度学习
很多读者已经比较了解深度学习了,尤其是全连接网络、卷积网络和循环网络。这一份备忘录同样也展示了这三种网络重要的概念与定义,且同时描述了强化学习的一些基本概念,如马尔可夫决策过程、贝尔曼方程价值迭代算法和 Q 学习等。

我们认为在图 CNN 中,非常重要的是计算输出特征图大小的公式,即 N = (W-F+2P)/S + 1。其中 W 表示输入特征图的长宽,F 表示卷积核大小,P 表示在每一端填补零值的数量,S 表示卷积步幅,因此计算出来的 N 就表示输出特征图的尺寸。这对于设计卷积网络非常重要,我们经常需要该公式控制网络中间的特征图大小。
机器学习技巧
这一份备忘录从分类、回归、模型选择和模型诊断出发展示了 ML 中的一些技巧。其中分类与回归主要从度量方法的角度探讨,也就是说到底什么样的方法才能确定模型的好坏,以及它们的特定属性。同样模型选择与诊断也都希望判断模型的好坏,只不过一个是从交叉验证与正则化的角度考虑,另一个是从偏差与方差的角度考虑。

VIP Refreshers
这一部分作者提供了进修课程的备忘录,包括对概率与统计、代数与微积分的介绍。
概率与统计
从排列与组合开始,这一部分介绍了概率与统计的概念定义。包括条件概率、贝叶斯法则、概率密度函数、概率分布函数与随机变量的均值和方差等。后面的统计也展示了非常多的定义与规则,包括分布的 K 阶矩、常见的离散型与连续型随机变量分布,以及样本均值、方差、协方差等数据特征。



最后,该备忘录同样记录了参数估计,这对于机器学习来说是最为关键的概念之一,因为本质上机器学习就是需要通过大量样本对模型的参数进行估计,或者称为「学习」。此外,之所以高斯分布如此重要,最后面的中心极限定理可以给我们答案。也就是说,如果采样 n 个服从独立同分布的样本,那么当 n 趋近于无穷大的时候,这个未知的分布一定是接近于高斯分布的。
线性代数与微积分
矩阵运算与微分在实际搭建模型时非常重要,因为不论是传统的机器学习还是深度学习,我们实际都是使用矩阵甚至是张量进行运算,了解它们的法则才能理解模型的实际过程。在这一份备忘录中,作者描述了向量与矩阵的定义、各种常见矩阵运算的定义,以及大量的矩阵概念,例如矩阵的迹、矩阵的逆、矩阵的秩、矩阵的正定和特征值与特征向量等。


矩阵微分的基本概念也展示在上面,因为我们在根据反向传播更新参数时,基本使用的都是矩阵微分。这也就需要我们了解 Jacobian 矩阵和 Hessian 矩阵。
资源 | 源自斯坦福CS229,机器学习备忘录在集结的更多相关文章
- 斯坦福CS229机器学习课程笔记 Part1:线性回归 Linear Regression
机器学习三要素 机器学习的三要素为:模型.策略.算法. 模型:就是所要学习的条件概率分布或决策函数.线性回归模型 策略:按照什么样的准则学习或选择最优的模型.最小化均方误差,即所谓的 least-sq ...
- 斯坦福CS229机器学习课程笔记 part3:广义线性模型 Greneralized Linear Models (GLMs)
指数分布族 The exponential family 因为广义线性模型是围绕指数分布族的.大多数常用分布都属于指数分布族,服从指数分布族的条件是概率分布可以写成如下形式:η 被称作自然参数(nat ...
- 斯坦福CS229机器学习课程笔记 part2:分类和逻辑回归 Classificatiion and logistic regression
Logistic Regression 逻辑回归 1.模型 逻辑回归解决的是分类问题,并且是二元分类问题(binary classification),y只有0,1两个取值.对于分类问题使用线性回归不 ...
- CS229 斯坦福大学机器学习复习材料(数学基础) - 线性代数
CS229 斯坦福大学机器学习复习材料(数学基础) - 线性代数 线性代数回顾与参考 1 基本概念和符号 1.1 基本符号 2 矩阵乘法 2.1 向量-向量乘法 2.2 矩阵-向量乘法 2.3 矩阵- ...
- CS229 机器学习课程复习材料-概率论
本文是斯坦福大学CS229机器学习课程的基础材料,原始文件下载 原文作者:Arian Maleki , Tom Do 翻译:石振宇 审核和修改制作:黄海广 备注:请关注github的更新. CS229 ...
- CS229 机器学习课程复习材料-线性代数
本文是斯坦福大学CS 229机器学习课程的基础材料,原始文件下载 原文作者:Zico Kolter,修改:Chuong Do, Tengyu Ma 翻译:黄海广 备注:请关注github的更新,线性代 ...
- Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)” 清晰讲解logistic-good!!!!!!
原文:http://52opencourse.com/125/coursera%E5%85%AC%E5%BC%80%E8%AF%BE%E7%AC%94%E8%AE%B0-%E6%96%AF%E5%9D ...
- 斯坦福大学机器学习,EM算法求解高斯混合模型
斯坦福大学机器学习,EM算法求解高斯混合模型.一种高斯混合模型算法的改进方法---将聚类算法与传统高斯混合模型结合起来的建模方法, 并同时提出的运用距离加权的矢量量化方法获取初始值,并采用衡量相似度的 ...
- LR 算法总结--斯坦福大学机器学习公开课学习笔记
在有监督学习里面有几个逻辑上的重要组成部件[3],初略地分可以分为:模型,参数 和 目标函数.(此部分转自 XGBoost 与 Boosted Tree) 一.模型和参数 模型指给定输入xi如何去 ...
随机推荐
- final版——爱阅APP功能说明书
爱阅APP功能说明书 一.引言 以下内容是final版的功能说明书. 新增功能: 1.WiFi传书 2.书友群跳转 3.网址内部打开 4.设置-->关于爱阅 5.设置-->TXT文本的翻页 ...
- Linux driver 板级文件跟踪一般方法
/*********************************************************************************** * Linux driver ...
- PDF软件推荐——Sumatra PDF - imsoft.cnblogs
Sumatra PDF 优点:绿色,小巧,快速,支持格式丰富 缺点:不支持修改和添加标记 链接: http://pan.baidu.com/s/1eQ1s3Nc 密码: d8h6 主页:http:// ...
- 国内Ubuntu镜像源
国内有很多Ubuntu的镜像源,包括阿里的.网易的,还有很多教育网的源,比如:清华源.中科大源. 我们这里以中科大的源为例讲解如何修改Ubuntu 18.04里面默认的源. 编辑/etc/apt/so ...
- java8 array、list操作 汇【3】)(-Java8新特性之Collectors 详解
//编写一个定制的收集器 public static class MultisetCollector<T> implements Collector<T, Multiset<T ...
- gtx860M,cuda9路1080p多高斯运动检测测试
多高斯背景差分,非常吃cpu,特别是多路视屏,所以想用gpu做检测 后面的跟踪一系列的规则判断用cpu opencv+cuda+stl做了个测试 代码: // MTTestCudaMog.cpp : ...
- LG1419 【寻找段落】
前言 鉴于这题的题解质量(连LaTeX公式都没有),我决定再发一篇详细的题解,不仅方便大家,还可以作为我学习单调队列优化dp的小结(尽管这题不是dp). 分析 题目要求求一个最大的实数\(x\),使得 ...
- python 2个dict如何合并
dictMerged2 = dict( dict1, **dict2 ) 这种效率比较高 refer to: http://www.pythoner.com/13.html
- windows下,java环境变量的设置,设置点击startup.bat启动tomcat
1.首先.安装好java jdk以后环境变量设置: CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar JAVA_HOME:C:\ ...
- 阻塞队列 BlockingQueue
在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利.本文 ...