机器学习
up_XCY
越努力,越幸运。
展开
-
对LSTM层的参数units 的理解
model = Sequential()model.add(LSTM(32, batch_input_shape=(None, 10, 64)))以上LSTM的第一个参数units=32,指的并不是一层LSTM有32个LSTM单元。在很多LSTM的框图中,我们都会将LSTM单元按照时间顺序排列开来,句子的长度是多少我们就会画出多少个LSTM单元。这也是给我们带来误解的地方。实际上一层LST...原创 2019-11-01 22:32:26 · 14919 阅读 · 3 评论 -
支持向量机svm
一、优化目标首先我们用logistic回归的假设函数来引出svm:svm假设函数的得出过程:svm假设函数的结果是输出0或1,而不是概率:二、直观上对大间隔的理解在logistic回归中,当z大于等于0时,我们输出1;当z小于0时,我们输出0。在svm中,我们将两者的输出条件进行了优化,即条件更高。当z=大于等于1时,我们输出1;当z=小于等于-1时...原创 2019-04-08 08:56:30 · 209 阅读 · 0 评论 -
反向传播算法
反向算法就是从最后的输出结果去推算出输入的值,然后计算出误差大小:原创 2019-04-01 21:16:08 · 156 阅读 · 0 评论 -
确定执行的优先级以及误差分析
本节我们讨论在设计一个机器学习的系统时,应该先做什么后做什么。我们以垃圾邮件分类为例:特征向量:我们发现很多遇见故意拼错单词,从而逃避被视为垃圾邮件:正确的步骤:我们应该先实现一个简单粗暴的算法,然后将邮件进行分类,接着手动的去将分错了的邮件重新分类,并且归纳出分错邮件的特征,从而增加我们的特征个数,在判断是否要使用提取词干、区分大小写等方法时,我们直...原创 2019-04-07 10:41:16 · 326 阅读 · 0 评论 -
学习曲线
本节我们学习在高偏差和高方差的情况下,增加数据的个数能否有效的改进算法误差。当训练集的个数很少时,你会发现数据很好用一条线来拟合,所以误差很小,当训练集的个数越来越多时,用一条线越来越难拟合所有的数据,所以误差越来越大。但反之,当训练集个数越多,越具有泛化作用,验证集的误差越小,当训练集的数据较少时,泛化性差,验证集误差很大。在高偏差的情况下,想通过增加训练集的个数来改进算法,结果...原创 2019-04-07 09:20:45 · 413 阅读 · 0 评论 -
神经网络的代价函数
神经网络的参数描述:k为输出的个数代价函数与 之前所学的代价函数更加复杂,因为之前的输出结果是一个,现在是k个,所以加了1-k的求和:原创 2019-04-01 19:11:13 · 922 阅读 · 0 评论 -
多元分类
之前我们描述的是输出为一个的例子,现在我们讲解输出为多个的例子: 计算机视觉中的图像识别:行人、汽车、摩托车和货车: 对应的神经网络的模型:这里我们的输出是是一个四维向量...原创 2019-04-01 18:24:15 · 771 阅读 · 0 评论 -
偏差和方差
首先我们用房屋问题来说明偏差和方差的问题:如下图所示,左边是欠拟合导致的偏差过大问题,右边是过拟合导致的方差过大问题。我们画出d为横坐标,偏差方差的大小为纵坐标的图像:你会发现欠拟合的情况下,测试集的偏差和方差都很大;过拟合的情况下,偏差会很小但是方差会很大。如下图:加入正则项之后的偏差和方差:...原创 2019-04-06 22:55:49 · 252 阅读 · 0 评论 -
例子与直觉理解
这里我们用几个例子来说明神经网络的逻辑运算过程: 一:xor/xnor二:逻辑与and三:逻辑非四:(not x1)and(not x2)这里我们在利用以上单一的逻辑运算,实现一个比较复杂的xnor运算,刚好拟合神经网络的前向传递过程,每一层都可以计算出比前一层更加复杂的运算结果:神经网络的许多隐藏层就相当于上面运算的一层一层的过程,层越多就...原创 2019-04-01 18:01:39 · 286 阅读 · 0 评论 -
模型展示(二)
这里我能将之前的一些计算过程向量化: 在神经网络模型中,我们将前面的遮住,你会发现和之前的逻辑回归是一样的: 第一层是输入,输入特征x1、x2、x3..., 第二层是隐藏层,计算输入的结果, 第三层是输出层,得出假设函数。 这是一个前向传播的过程: 其他神经网络的架构,这里第一层是输入层,最后一层是输出层,中间两...原创 2019-04-01 17:10:01 · 215 阅读 · 0 评论 -
异常检测的问题动机和高斯(正态)分布的基本知识
异常检测的举例:飞机引擎的例子,比如一个引擎制造厂已经生产了很多正常的引擎,我们要检测之后生产的引擎是否正常。我们的做法是:将之前m个做的正常的引擎作为训练集,如下图,然后将新生产的引擎的特征值标记到里面,看是否在正常的范围。还有就是我们可以进行异常概率估计,如下图,中心的正产概率很高,慢慢的往外概率就越来越低,当低于某个门阀值时,我们就认为发生了异常。异常检测还可以用来检...原创 2019-04-10 19:35:11 · 268 阅读 · 0 评论 -
应用PCA的建议
PCA运用在监督学习算法下,可以对数据x降维,从而加速学习算法的速度。如下所示,我们的训练集x是10000维向量,我们可以通过PCA将其降维成z是1000维的向量,此时训练集从(x,y)变成(z,y)。每次输入x都通过pca的映射变成z,然后再带入到假设函数中计算。除了加速学习算法的速度,PCA还可以减少内存的需求。当然,有时也会发生一些不好的运用pca的例子。比如我...原创 2019-04-10 18:50:55 · 384 阅读 · 0 评论 -
不对成性分类的误差以及查准率和召回率的权衡
这里我们讨论的是偏斜类分类问题,即正负类的数据个数相差太多。以病人是否患癌症为例,训练集中不患癌症的比例约为99.2%,相比于患癌数目太多。这种情况下,假设我们设计的算法的正确率为99%,但是你会发现,当我们设计一个结果恒等于不患癌的算法时,我们的正确率为99.2%,比之前设计的算法正确率高,但是这是一个欺骗我们的无效的算法。所以这里我们,提出了查准率和召回率:我们发现,在设置...原创 2019-04-07 16:24:36 · 315 阅读 · 0 评论 -
机器学习数据
本节我们讨论,机器学习中获取大量数据的重要性。我们使用含有较多参数的学习算法来避免高偏差问题,用大量的数据来避免高方差的问题(不会产生过拟合的情况)...原创 2019-04-07 16:49:14 · 293 阅读 · 0 评论 -
异常检测算法和开发和评估异常检测
异常检测算法的实现过程:首先我们来说明密度估计的概念,由于服从正态分布,我们假设这里x服从独立假设,所以x的密度p(x)=1、我们选择那些产生异常的特征xi;2、我们计算出训练集的均值和方差;3、我们计算出每个新加入的样本的p(x),如果大于门阀值,则说明是正常的,否则则为异常。异常决策举例:开发和评估异常检测:这里我们用监督学习的例子来说明异常检测的评...原创 2019-04-11 12:09:18 · 1364 阅读 · 0 评论 -
降维
目标一:数据压缩如下图所示,特征x1表示物体的长度cm为单位,特征x2表示物体的长度英尺为单位。你会发现这两个特征说明的是同一个东西,存在冗余。这时我们就可以进行降维。我们把二维特征x(x1,x2)降维成一维z:同样我们也可以将三维的降成二维的:目标二:可视化所谓可视化,就是当我们的特征太多,我们无法用图像将这些信息显示出...原创 2019-04-09 20:54:08 · 239 阅读 · 0 评论 -
k均值算法的优化目标和随机初始化
这里我们来学习k均值算法的优化目标(代价函数):优化目标的值等于每一个训练集数据到该所属的聚类中心距离的平方的平均值其实在我们进行之前所循环进行的聚类分簇和移动聚类中心的操作,都是在不断的最小化J的大小,使J最小化。我们再来说随机初始化:在之前我们选择聚类中心是随机任意的选择,但是这里我们用的是更加好或者用的更加多的随机选择聚类中心的方法。我们在训练集中随机选择k个...原创 2019-04-09 13:13:53 · 2381 阅读 · 0 评论 -
无监督学习
这里我们学习无监督学习:首先我们来看比较监督学习和无监督学习的区别:监督学习的数据有标签,即对于给出的每一个训练集都有明确的输出y(正类或者负类)。然而对于无监督学习,训练集的数据是没有标签的,即对于每次给出的输入x,并没有明确的输出y。如下面的连长图所示:对于无监督学习算法,我们用之前最初说到的聚类算法,将训练集分为k簇。聚类算法的应用举例:这里...原创 2019-04-09 11:26:09 · 248 阅读 · 0 评论 -
随机初始化
假如我们将所有的权值参数都初始化为0,那么在运算过程中你会发现不管你的隐藏层有多少个节点,它们的计算结果都是一样的,即这个神经网络系统只会一种结果,这样就大大的限制了神经网络的自我学习能力算法的作用:这里我们使用随机初始化,我们将所有的权值初始化为之间,它们都十分接近于0,这样我们就可以利用神经网络的自我学习能力了:...原创 2019-04-03 10:20:26 · 1036 阅读 · 0 评论 -
梯度检测
梯度检测是用来验证反向传播算法的正确性的。当θ是实数的时候,我们求该点的导数时的运算过程如下:当θ为向量时,我们求导数的过程就变成了对各个θ求偏导数:梯度检测的过程:之前学过的反向传播算法的过程就是不断地求导,梯度检测就是通过求偏导数,验证结果是否与之前反向传播算法得到的结果是一样的或者相差很小。整个算法的实现过程:首先运用反向传播算法求出DVec,这个运用...原创 2019-04-03 09:52:39 · 1729 阅读 · 0 评论 -
展开参数
这一节我们学习怎么将输入的参数矩阵化,怎么将矩阵中的数据参数化,这两个是一个相反的过程。首先我们假设我们的模型是10 10 1 ,即第一层10个输入,第二层隐藏层10个,第三层1个输出。我们先将参数输入到theta1、theta2、theta3中,然后将这三个矩阵合并成一个231x1的大矩阵中,最后运用reshape函数获取各个矩阵中的参数。代码实现过程:...原创 2019-04-03 09:07:19 · 236 阅读 · 0 评论 -
理解反向传播
首先说明前向传播的计算过程: 前向传播过程就是根据输入的参数,一步步的加权求和,最后得出结果。而反向传播的过程和前向传播完全相反:我们这里假设最后只有一个输出J,我们根据这个输出一步步的倒推,一步步的计算出前一层的数据,然后与实际前向算法的结果做差就可以求出误差的大小了。...原创 2019-04-03 08:34:59 · 432 阅读 · 0 评论 -
使用svm
这里我们学习svm算法的使用和使用的条件:svm软件包线性核函数即不适用相似性函数的K函数;高斯核函数即之前将的k函数;在我们使用相似性函数计算相似度时,我们要进行参数的放缩,以免一个很大的参数直接决定了相似度结果:其他的核函数选择:但是他们都要满足墨塞尔定理。多元分类:和我们之前所学的逻辑回归中的多元分类原理一样,自己为正类其他的都是负类。逻辑回归和s...原创 2019-04-08 13:11:24 · 279 阅读 · 0 评论 -
核函数
一、核函数的思想这里我们讨论决策边界是复杂的非线性方程时的情况:首先我们引入特征值f的概念:我们介绍相似性函数和核函数的定义:举例:我们选择3个标记点,你会发现当我们的数据x与给出的3个标记中的任意一个接近时,我们得到的相似度为1,否则为0。当我们给出的x接近其中一个标记点时,相对应的f值为1,其他的f值为0,假设函数的结果也为1;当我们给出的x不接近任何一...原创 2019-04-08 11:52:41 · 404 阅读 · 0 评论 -
选择要使用的功能以及多元高斯分布
当我们的训练集的分布不符合高斯分布时,我们可以通过转换将其变成服从高斯分布:误差分析算法:我们先用训练集来拟合参数(均值和方差),然后通过验证集来找出分析错误的数据,从而从中发现新的异常特征,然后加入新的异常特征,最后用测试集来检测是否提高了性能。所以这里也是告诉我们为什么要将验证集和测试集分开,因为如果加入新的异常特征后,还是用验证集的数据来验证性能是否提升,这是不合理的,因为一定会...原创 2019-04-11 17:39:09 · 265 阅读 · 0 评论 -
模型选择和训练、验证、测试集
在上一节中,我们将数据分为训练集和测试集。我们是根据测试集的数据来选择模型和评估检测的,但是这是一个不过你公平的过程,因为我们用来进行模型选择和评估的数据是一组相同的数据,拟合的情况肯定很好,但是对于那些没有出现在测试集中的数据没有泛化作用。所以这里我们进一步改进,我们将数据分为:训练集、验证集和测试机。验证集用来选择模型,测试集用来评估假设。...原创 2019-04-06 10:46:13 · 3348 阅读 · 0 评论 -
接下来做什么以及评估假设
以房屋价格为例子我们来说明误差的问题,假如我们用之前学习的算法来进行房屋价格的预测,但是预测结果和我们实际的结果相差很大,接下来我们应该做什么呢?1、我们可能尝试着去获取更多的训练集,认为只要获取两倍甚至10倍的训练集就可以得到准确的结果2、我们尝试着去减少特征的个数,从而避免过拟合的结果3、增加特征的个数4、我们也可能会尝试增加多项式特征的方法,比如x1的平方、x2的平...原创 2019-04-06 10:14:53 · 188 阅读 · 0 评论 -
模型展示(一)
这节课讲解神经网络的知识: 一、神经元的结构 树突(输入) 细胞体 轴突(输出) 神经元: 单个神经元的输入、处理、输出: x1、x2...做为输入,假设函数作为输出,θ为参数。 多个神经元的结构: ...原创 2019-04-01 10:40:58 · 323 阅读 · 0 评论 -
多元梯度下降法演练 I – 特征缩放 多元梯度下降法II – 学习率
特征缩放:瘦长的椭圆,会导致趋向最值时梯度下降的震荡;所以需要缩放特征值,使得其取值范围相近。按经验,特征缩放到3倍或1/3是比较可以接受的。相关参量调整到相同范围,有助于对最优值的寻找,应该也可以用于 群体智能算法。从上图左边我们可以看到,由于两个特征值的取值范围相差很多倍(2000:5),导致代价函数是一个瘦高的椭圆,这样进行梯度下降,你会发现很慢甚至一直震荡,缓慢的到达最优解。所...原创 2019-01-14 20:56:52 · 344 阅读 · 0 评论 -
多元梯度下降法
多元梯度下降法与线性的相比,就是变量变多了。所以在梯度下降算法中实现θ的更新也变得复杂,但原理一样。默认x0等于1,依次偏导更新θ:原创 2019-01-13 17:59:02 · 368 阅读 · 0 评论 -
多功能
所谓多功能就是变量不止x一个,而是有x1、x2、x3、x4... 我们之前的假设函数只有一个变量x:现在我们假设变量不止一个:多功能假设函数含有多个x变量: ...原创 2019-01-13 17:44:02 · 170 阅读 · 0 评论 -
矩阵和向量
本节讲述矩阵和向量的概念,是线代的基本知识不做详细描述。接下来本章讲述的是矩阵和向量的运算:加法、乘法、转置以及逆。这些都是线代的基础,不做详细说明。...原创 2019-01-13 15:10:02 · 829 阅读 · 0 评论 -
线性回归的梯度下降
线性回归的梯度下降:将梯度下降法运用到平方差代价函数。我们之前所学的梯度下降算法、假设函数以及平方代价函数:将梯度下降法运用到平方差代价函数的过程:就是将代价函数求偏导分别代入梯度算法右边的偏导数,更新θ0和θ1的值。 batch梯度下降:使用全部样本数据的一种梯度下降方法。求解线性回归,可以用梯度下降,也可以用正规方程组法,各有优点,前者更适合大数据...原创 2019-01-13 14:55:02 · 279 阅读 · 0 评论 -
Logistic回归的正则化
这里我们学习logistics回归的正则化,和之前学习的线性回归正则化相似,代价函数(costfunction)增加了正则项:梯度下降算法也同样分离了θ0,其他的θ迭代过程也增加了一点由于偏导数变化而增加的一点尾巴:这里看上去的形式与线性回归的一样,但是由于假设函数不同,所以意义是完全不一样。...原创 2019-01-17 14:31:36 · 1174 阅读 · 0 评论 -
线性回归的正则化
正则化之后我们的代价函数增加了正则项发生了变化:相应了我们的梯度下降算法也有了一点变化,由于惩罚项只对θ1.2.3...起作用,所以我们分离出θ0。并且由于增加了正则项,所以梯度下降过程也增加了一点尾巴(求偏导数的结果发生了一点变化)如下图:化简之后你会发现,发生的变化就是没进行一次迭代,θ的值就会缩小你点点。 同理我们在使用正规方程求解的结果公式也发生了变化:增...原创 2019-01-17 13:50:17 · 1108 阅读 · 0 评论 -
代价函数
首先我们运用一个例子来说明正则化的思想:还是以房价为例,如果假设函数是一个二次函数,我们会觉得拟合的很好。但如果我们用高次函数区完美拟合训练集,会出现我们上次提到的过拟合问题。在这里我们将θ3.4的系数(也叫惩罚项)设为1000(很大的一个数),那么为了使代价函数的值最小,我们只能让θ3.4趋近于0,这样假设函数也就和一个二次函数差不多,如下面的红线。这就是正则化的思想,我们没有舍去...原创 2019-01-17 12:59:45 · 190 阅读 · 0 评论 -
梯度下降
首先看看梯度下降法的过程:其实就是通过不断的改变θ0,θ1...的值经过计算得到最小的代价函数值。如下图:就像下山问题一样,我们在山顶的不同位置,观察四周,一步一步的从可以到达的最低位子下山。直观的感受到了梯度下降的过程,每次都沿着梯度方向调整,类似贪心算法,得到的是局部最优解。上面是两个不同的起点,得到的不同的局部最优解。梯度下降法的数学求解过程:α表示...原创 2019-01-11 15:26:38 · 221 阅读 · 0 评论 -
代价函数(一)(二)
在回归算法中用字母表示特定的意义:m = 训练样本的数量。x = 输入变量(特征)y = 输出变量(x,y) = 一个训练样本(x^(i),y^(i))= 第i个训练样本 本节假定theta_0 = 0以解释代价函数的作用对给定的theta_1,h(x)是对x的函数J(theta_1)是关于参数的函数最小化J使得theta_1能够使hx预测值更加准确 这里可以看...原创 2019-01-11 14:46:34 · 493 阅读 · 0 评论 -
(吴恩达机器学习)单变量线性回归
单变量线性回归:所谓单变量线性回归其实就是一元线性函数方程---Y=AX+B h为假设函数,x为自变量(输入的数据),y为因变量(输出的结果)。 由训练集(一大堆数据)的出假设函数或者给出θo与θ1得出假设函数:代价函数目标:寻找一个theta_1, theta_0 使得预测值接近训练集中的样本方法:预测值与实际值求差的平方,对...原创 2018-12-31 12:07:11 · 270 阅读 · 0 评论 -
特征和多项式回归
这里我们以房子的价格为例说明多项式的回归,即我们选取多个影响房屋价格的因素。 为了更好的拟合实际数据集,我们选择三次函数拟合还是平方根函数拟合。无论是三次函数拟合还是平方根函数拟合,都是为了切换实际,因为二次拟合会下降,不符合实际。 ...原创 2019-01-15 14:54:12 · 308 阅读 · 0 评论