
机器学习系列
SuperFengCode
这个作者很懒,什么都没留下…
展开
-
机器学习系列3:梯度下降
梯度下降(Gradient descent)是一个用来求代价函数最小值的算法。梯度下降算法的思想就是首先先从一组参数值(θ0, θ1)开始,不断地去尝试各种(θ0, θ1),直到使得代价函数 J(θ0, θ1) 最小为止。以下图代价函数为例,从不同起始点开始,到达的局部最优位置不同,也就是局部最优解不同。那么如何求得局部最优解呢?可以把这个代价函数看成一座座小山,你从一个点出发,每次迈出一...原创 2019-02-01 15:07:38 · 454 阅读 · 0 评论 -
机器学习系列14:偏差与方差
在训练机器学习模型中,结果不能被很好地预测通常是因为高偏差(欠拟合)或高方差(过拟合)。把交叉验证集的代价函数和测试集的代价函数画在一个图像中:左面红色部分为高偏差(欠拟合),右边红色部分为高方差(过拟合)。对于如下模型,线性回归正则化的代价函数为:其中蓝色框为正则化项,λ 越大,代表对参数的惩罚就越大。训练集代价函数J_train (θ)、交叉验证集代价函数...原创 2019-03-21 18:10:06 · 443 阅读 · 0 评论 -
机器学习系列18:核函数
让我们来考虑这样一个问题,现在给定一个数据集,让你划分出决策边界,该怎么办呢?数据集中正样本为「叉」,负样本为「圈」,如下图:第一反应就是用一个高阶多项式去构造一个假设函数,当假设函数大于等于零时,我们就可以认为它为正样本,否则为负样本,类似下面这种形式:但是有一个问题出现了,我们不能确定构造的假设函数就是最符合这个例子的高阶多项式,可能还有其他的高阶多项式能够更好地符合这个例子。...原创 2019-04-04 14:50:16 · 397 阅读 · 0 评论 -
机器学习系列17:支持向量机
支持向量机(Support vector machine)是一种强大的机器学习算法,和神经网络相比,它在学习复杂的非线性方程时,能够提供更清晰和更加强大的方式。为了学习支持向量机,我们可以先从逻辑回归开始,看看如何经过小小的改动能得到支持向量机。在逻辑回归中,假设函数 h_θ(x) 为:图像为:对于一个样本来说,代价函数为:当 y =1 时,第二项为 0,只需要考...原创 2019-03-31 16:30:23 · 388 阅读 · 2 评论 -
机器学习系列16:机器学习系统设计
偏斜分类的误差评估举个例子,我们想训练一个模型去诊断患者是否患有癌症。在人群中,患有癌症是一个极小概率发生的事情,比如 1000 个人中患有癌症的只有 5 人。那么在这个样本中,患有癌症的人的概率为 0.5%,正常人的概率为 99.5%,这是一个偏斜类,正结果(设为 1 )占总样本数极小。如果我们训练的机器学习模型的正确率为 99%,看似这个正确率非常高,模型表现的很好,可是考虑下面...原创 2019-03-27 16:52:42 · 370 阅读 · 0 评论 -
机器学习系列19:将核函数应用于支持向量机
当我们在已知参数的情况下,如何用带有核函数的支持向量机(SVM)去训练假设函数呢?首先我们将样本做为标记:对于每一个 x,都要计算出它的特征 f,f 为一个向量:如果下式成立,就可以预测 y 等于 1,也就是为正样本:但是如何选取参数呢?我们最小化下面这个函数的时候,就可以得到参数向量:现在还有两个系数没有选择,C 和σ^2。C 相当于 1...原创 2019-04-10 17:14:11 · 522 阅读 · 0 评论 -
机器学习系列20: K-均值算法
在无监督学习中,我们会把没有标签的数据集交给算法,让它自动地发现数据之间的关系,聚类算法(Clustering algorithm)就是一种无监督学习算法。它会自动地将无标签的数据集进行分类,如下图:它会将这个数据集划分成两类,每一个绿圈就是一类。在聚类算法中,最常见的就是 K-均值算法(K-means algorithm),我们先来看看这个算法在下面这个数据集中是如何进行工作的...原创 2019-04-17 18:05:16 · 548 阅读 · 0 评论 -
机器学习系列21:降维
降维(Dimensionality Reduction)可以保持数据在原有特征的基础上对数据进行压缩,从 3D 降到 2D,使得数据的分布情况不发生改变,如下图:降维还有一个作用,就是能更好地可视化数据。比如说,现在有一个数据集,有 50 个特征,如果想通过图像来分析这个数据集,目前是做不到的,因为只能画出三维图像,也就是说特征数为 3。但是如果运用降维,把特征数从 50 降到 3,你就可...原创 2019-04-28 19:25:49 · 280 阅读 · 0 评论 -
机器学习系列22:异常检测
现在有一个网站,为了防止该网站被人恶意攻击,你采取了以下措施。给每个用户建立用户画像,记录他的一些操作,例如:打字速度,浏览时间,点击网页次数等等。。。可以将这些特征建立一个模型,让它有一个阈值,当低于这个阈值时,就可能是有人在恶意攻击你的网站,这时候你就要小心了。就像下图,如果超出蓝圈,那这个数据就有可能发生了异常:那么这个模型是怎么建立出来的呢?用到的是异常检测算法(Anomal...原创 2019-05-15 18:32:59 · 796 阅读 · 0 评论 -
机器学习系列23:基于内容的推荐算法
如今,推荐算法已经深入到我们生活的各个方面,比如说淘宝根据我们之前的浏览记录给我们推荐想要购买的商品;抖音不停地给我们推荐各种我们感兴趣的视频(虽然我个人不太喜欢抖音,觉得抖音会让我们丧失独立思考的能力,但是它的推荐算法还是很厉害的)。。。这些推荐算法极大地便捷了我们的生活,身为一个学习机器学习的同学,怎么能不关注一下推荐算法呢?下面来举个栗子:如今有一个电影推荐系...原创 2019-05-22 13:40:11 · 949 阅读 · 0 评论 -
机器学习系列24:协同过滤
在上一次中,我们是先知道电影的特征,然后通过算法计算出用户的特征。下面我们来考虑一下能不能知道用户的特征,让算法学习出电影的特征呢?我们可以看到,这个算法与之前的算法是一样的,只不过传入的特征不同而已。我们可以先随机地求出一些用户特征 θ,用这些特征计算出电影的特征 x,通过电影的特征又能更好地计算出用户的特征,不断迭代... 最终会收敛到一个最优的位置,这时用户的特征和电影的特征被计...原创 2019-05-29 18:49:27 · 459 阅读 · 0 评论 -
机器学习系列15:学习曲线
我们在调试一个学习算法时,通常会用学习曲线(Learning Curves)观察机器学习算法是否为欠拟合或过拟合。随着样本数的不断增大,我们发现在高偏差(欠拟合)时交叉验证集代价函数J_cv(θ)和测试集代价函数J_test (θ)的图像如下,这个图像也叫做学习曲线(Learning Curves):在高偏差时,随着样本数目的增加,测试集的偏差与交叉验证集的偏差几乎...原创 2019-03-24 19:16:11 · 1754 阅读 · 0 评论 -
机器学习系列13:机器学习诊断法
在机器学习中,我们训练了一个模型,可能会发现这个模型得到的数据与实际数据偏差太大。这时,通常我们会在如下办法中选择去优化我们的算法: 得到更多的训练集; 减小特征的数目; 尝试去增加特征; 增加多项式; 增大 λ; 减小 λ。 以上这些步骤通常会花费你大量的时间,而且毫无目的地选择很可能会没有效果。为了防止以上的事情发...原创 2019-03-17 17:31:49 · 714 阅读 · 0 评论 -
机器学习系列11:神经网络
什么是神经网络(Neural Networks)呢?最开始科学家想用算法去模拟大脑达到人工智能。通过一系列的实验发现,大脑是通过神经元进行工作的,神经元之间通过电信号传递信息。于是他们就开始模拟神经元的工作过程,用算法去模拟神经元,这就形成了神经网络。神经网络可以用来学习复杂的非线性假设模型。如下图,蓝色圈模拟输入信息,黄色圈模拟神经元,假设函数h_θ(x)模拟输出信息,该函数就是我...原创 2019-03-11 17:38:16 · 280 阅读 · 0 评论 -
机器学习系列4:线性回归的梯度下降算法
之前我们已经学过了线性回归、代价函数和梯度下降,但是他们就像一个人的胳膊和腿,只有组合在一起才会成为一个「完整的人」,这个「完整的人」就是一个机器学习算法,让我们一起来学习第一个机器学习算法吧。 这个机器学习算法叫做线性回归的梯度下降算法(Gradient Descent For Linear Regression),还记得我们学过的线性回归函数、代价函数和梯度下降算法吗?如果忘记了,让我...原创 2019-02-02 18:17:45 · 662 阅读 · 0 评论 -
机器学习系列1:监督学习和无监督学习
欢迎大家跟我一起步入机器学习之路。在学习之前,我们首先是不是应该知道什么是机器学习呢? 在 1998 年,「Tom Mitchell」对机器学习给出了如下的定义:A computer program is said to learn from experience E with respect to some task T and some performance measure P,...原创 2019-01-29 11:24:28 · 348 阅读 · 0 评论 -
机器学习系列5:特征缩放
首先我们应该了解一下多元线性回归。相比于单变量线性回归,该函数拥有多个变量值,那么他所拥有的参数就不仅仅是一个或者两个,而是多个。例如下面这个函数:如果把该函数的参数 θ 和变量 x 全部写成向量的形式,就可以简化成下面这个函数: 如果你想预测房价,现在有两个变量 x1 和 x2 来控制房子的价格。 x1 为房子的大小,范围在 0 到 2000,x2 为房子中卧室的数目,范...原创 2019-02-09 12:50:52 · 493 阅读 · 0 评论 -
机器学习系列2:代价函数
现在我有一些数据集,就像上图中的叉。那么我想通过一个一次函数也叫线性回归函数(一条直线)去拟合这些数据,一次函数在没有确定之前,应该是这个样子的:其中 θ0 和 θ1 都是未知量。现在关键就是如何求 θ0 和 θ1 这两个参数。θ0 和 θ1 可以取任意值,怎么取值才能让这条直线最佳地拟合这些数据呢?这就是代价函数登场的时刻了。这就是一次函数的代价函数 J(θ0, θ1)。看到...原创 2019-01-30 19:29:43 · 368 阅读 · 0 评论 -
机器学习系列6:正规方程
求一个函数的参数,例如下面这个方程,我们一般都会用梯度下降法去求。还会不会有其他方法求参数呢?答案是有的,可以用正规方程(Normal Equation)去求参数。 那么问题来了,什么是正规方程呢?这个方程长什么样子,就让我们来见识一下。其中 X 是一个矩阵,这个矩阵的每一行都是一组特征值,y 是数据集结果的向量。 举个例子,还是求房价,现在有 4 组训练集,如下表...原创 2019-02-11 12:36:30 · 741 阅读 · 0 评论 -
机器学习系列7:逻辑回归
你们有没有每天被垃圾短信骚扰的经历呢?假设我收到了一条短信,这条短信对我来说只有两种情况,要么是对我有用的,要么是没用的。我想通过一个模型去预测该短信是否为垃圾短信,这时候用原来学过的线性回归算法就不太好用了,因为结果只有两种值,要么是垃圾短信(假设为 1),要么不是垃圾短信(假设为 0)。这时候我们要学习一种新的算法去预测这种分类问题,它就是逻辑回归算法(Logistic Regression)...原创 2019-02-28 18:42:15 · 274 阅读 · 0 评论 -
机器学习系列9:正则化
在介绍正则化之前,我们先来介绍一下什么是欠拟合和过拟合问题。欠拟合和过拟合在线性回归问题中,像下面这个数据集,通过房屋面积去预测房价,我们用一次函数去拟合数据:发现拟合地并不是很好,我们称它为欠拟合。当我们用二次多项式去拟合时:我们发现这个拟合的刚刚好。当我们用高次多项式去拟合时:发现这个函数图像异常扭曲,虽然数据集全部拟合到图像上了,但是这个函数并...原创 2019-03-05 16:59:37 · 279 阅读 · 0 评论 -
机器学习系列8:逻辑回归的代价函数
还记得我们原来在线性回归中学过的代价函数吗?我们把黄色部分用函数的形式来表示:如果我们在逻辑回归中也用这个代价函数去拟合参数行不行呢?答案是不行。因为这个代价函数在逻辑回归中的图像是这个样子的:这是一个非凸函数,有多个局部最优解,运用梯度下降算法并不会收敛到它的全局最优解,这样就达不到我们预期的效果。那该怎么办呢?让我们来学习逻辑回归中的代价函数吧。逻辑回归的代价...原创 2019-03-02 14:41:16 · 981 阅读 · 0 评论 -
机器学习系列12:反向传播算法
当我们要运用高级算法进行梯度下降时,需要计算两个值,代价函数和代价函数的偏导数:代价函数我们之前已经知道怎么求了,现在只需要求代价函数的偏导数即可。采用如下方法,先进行前向传播算法,然后再进行反向传播算法(Backpropagation Algorithm),反向传播算法与前向传播算法方向相反,它用来求代价函数的偏导数。具体过程看下图:用 δ 作为误差,计算方法为:...原创 2019-03-14 15:17:24 · 734 阅读 · 0 评论 -
机器学习系列10:线性回归和逻辑回归的正则化
线性回归的正则化还记得在线性回归中我们有哪两种方法去求代价函数的最小值吗?当然是梯度下降和正规方程了。让我们来复习一下线性回归中梯度下降算法,如下:其中黄色部分就是代价函数对参数 θ 的偏导数。当我们正则化代价函数后,代价函数发生了改变:相应地,偏导数也会改变,得到正则化后的梯度下降算法:把其中的θ_j提出来,简化后:那正规方程正则化后呢?就成了下面...原创 2019-03-07 18:17:47 · 577 阅读 · 0 评论 -
机器学习系列25:随机梯度下降算法
如今机器学习的数据集动则几千万或上亿,如果运用我们之前学过的 Batch 梯度下降算法,就会发现效率很低,因为在梯度下降时,每次循环都要对所有的数据进行求和,这会浪费大量的时间。有没有更好的方法去处理大数据呢?答案是有的。我们在处理大数据时,会选择随机梯度下降算法(Stochastic gradient descent)。下面是随机梯度下降算法的代价函数:之后是随机梯度下降算法:...原创 2019-06-10 09:43:25 · 1790 阅读 · 0 评论