
Machine Learning学习笔记
文章平均质量分 66
Softdiamonds
这个作者很懒,什么都没留下…
展开
-
学习笔记8:常用损失函数之交叉熵(Cross Entropy)
1.信息量假设X是一个离散型随机变量,其取值集合为XX\mathcal{X},概率分布函数为p(x)=Pr(X=x),x∈Xp(x)=Pr(X=x),x∈Xp(x)=Pr(X=x),x∈\mathcal{X},我们定义事件X=x0X=x0X=x_0的信息量为:I(x0)=−log(p(x0))I(x0)=−log(p(x0))I(x_0)=-log(p(x_0)) 可以理解为,一个事件发生的概...原创 2018-05-03 11:06:38 · 3536 阅读 · 0 评论 -
学习笔记7:判别模型和生成模型
假设样本为X,标签为Y:判别模型是对条件分布P(Y|X)进行建模;生成模型是对x,y的联合分布P(X,Y)进行建模。举个例子,假设有4个样本:生成模型如下:而判别模型则是:可以看出,生成模型主要表示了输入X和输出Y的生成关系;而判别模型主要关心的是输入X应该输出什么样的Y。典型的生成模型主要有高斯混合模型,受限玻尔兹曼机,朴素贝叶斯和隐马尔科夫模型。典型的判别模型主要有K邻近法,感知机和决策树。生...原创 2018-04-28 15:12:50 · 329 阅读 · 0 评论 -
学习笔记11:深度信念网络(DBN)
在了解RBM的基础上,介绍深度信念网络。DBN 是由多层 RBM 组成的一个神经网络,它既可以被看作一个生成模型,也可以当作判别模型,其训练过程是:使用非监督贪婪逐层方法去预训练获得权值。 训练过程: 1. 首先充分训练第一个 RBM; 2. 固定第一个 RBM 的权重和偏移量,然后使用其隐性神经元的状态,作为第二个 RBM 的输入向量; 3. 充分训练第二个 RBM 后,将第二个 RBM 堆叠在...原创 2018-05-08 15:04:33 · 1426 阅读 · 0 评论 -
学习笔记12:用 Scikit-Learn 实现 One-Hot Encoding(独热编码)
scikit-learn 的 LabelBinarizer 函数可以很方便地把你的目标(labels)转化成独热编码向量。示例:import numpy as npfrom sklearn import preprocessing# Example labels 示例labelslabels = np.array([1,5,3,2,1,4,2,1,3])# Create the enc...原创 2018-05-16 12:08:39 · 719 阅读 · 0 评论 -
学习笔记13:随机梯度下降法(Stochastic gradient descent, SGD)
假设我们提供了这样的数据样本(样本值取自于y=3*x1+4*x2):x1 x2 y1 4 192 5 265 1 194 2 29x1和x2是样本值,y是预测目标,我们需要以一条直线来拟合上面的数据,待拟合的函数如下:我们的目的就是要求出θ1和θ2的值,让h(θ)尽量逼近目标值y。这是一个线性回归问题,若对线性回归有所了解的同学就知道:利用最小二乘法则和梯度下降法可以求出两个参数,而深度学习也同样...原创 2018-05-16 16:50:27 · 8977 阅读 · 1 评论 -
学习笔记15:贝叶斯决策理论
对于模式识别的方法,大体可以分为基于知识和基于数据的两类。所谓基于知识的方法,主要以专家系统为代表,一般归于人工智能的范畴;而基于数据的方法,则可归于基于数据的机器学习。基于数据的方法,基础是统计模式识别,即依据统计的原理来建立分类器。 说到统计,则不得不谈到概率,这里罗列一些概率论的机器学习中的基本概念,百度都可以查到,不再赘述: 样本、样本集、类(类别)、特征、已知样本、未知样本、...原创 2018-07-27 10:06:41 · 655 阅读 · 0 评论 -
学习笔记16:极大似然估计
首先来看一个例子,设有两个完全相同的盒子A和B,其中,盒子A中有99个白球,1个黑球;盒子B中有99个黑球,一个白球。今随机抽取一箱,并从中抽取一球,结果取得的是白球,问这个球从哪个箱子取出?对于这个例子,想必大多人会说,是从盒子A中取出的,因为盒子A中有99%是白球,而盒子B中的白球仅占1%,所以盒子A的可能性远远大于B。换言之,这个球“更像”盒子A中取出的。这里的“更像”即为最大似然之原意...原创 2018-07-27 10:46:11 · 513 阅读 · 0 评论 -
学习笔记17:最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式
最大似然估计(Maximum likelihood estimation, 简称MLE)和最大后验概率估计(Maximum a posteriori estimation, 简称MAP)是很常用的两种参数估计方法,如果不理解这两种方法的思路,很容易弄混它们。下文将详细说明MLE和MAP的思路与区别。但别急,我们先从概率和统计的区别讲起。概率和统计是一个东西吗?概率(probabilty...转载 2018-07-27 11:42:38 · 597 阅读 · 0 评论 -
学习笔记10:利用TFLearn构建神经网络识别MNIST手写数字数据集
更多内容参考:TFLearn官方文档TFLearn是一个深度学习库,它提供了基于tensorflow的高层API接口.它是在tensorflow上建立的一个模块化的易于使用的库,有助于加快你构建deep learning网络的过程,节省冗长的代码时间.TFLearn 有如下特性:Easy-to-use and understand high-level API for implementing d...原创 2018-05-06 15:56:54 · 838 阅读 · 1 评论 -
学习笔记6:激活函数之Softmax
softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解。假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是:具体示例如下图:softmax直白来说就是将原来输出是3,1,-3通过softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为1(满足概率的性质),那么我们就可以将它理解成概率,在最后选取输出结点的时候,...原创 2018-04-27 22:09:50 · 25017 阅读 · 2 评论 -
学习笔记9:受限玻尔兹曼机(RBM)
1.RBM模型玻尔兹曼机是一大类的神经网络模型,但是在实际应用中使用最多的则是RBM。RBM本身模型很简单,只是一个两层的神经网络,因此严格意义上不能算深度学习的范畴。不过深度玻尔兹曼机(Deep Boltzmann Machine,以下简称DBM)可以看做是RBM的推广。理解了RBM再去研究DBM就不难了,因此本文主要关注于RBM。回到RBM的结构,它是一个个两层的神经网络,如下图所示:...原创 2018-05-03 11:37:46 · 2614 阅读 · 1 评论 -
学习笔记4:主成分分析(PCA)
算法:原创 2018-04-26 10:55:56 · 281 阅读 · 0 评论 -
学习笔记3:k折交叉验证(k-fold cross validation)
K折交叉验证,将初始采样(样本集X,Y)分割成K份,一份被保留作为验证模型的数据(test set),其他K-1份用来训练(train set)。交叉验证重复K次,每份验证一次,平均K次的结果或者使用其它结合方式,最终得到一个单一估测。这个方法的优势在于,同时重复运用随机产生的子样本进行训练和验证,每次的结果验证一次,10折交叉验证是最常用的。(切记每次作为验证模型的数据是不同的)。示例from ...原创 2018-04-24 12:09:21 · 25146 阅读 · 0 评论 -
学习笔记2:scikit-learn中使用r2_score评价回归模型
在sklearn中包含四种评价尺度,分别为mean_squared_error、mean_absolute_error、explained_variance_score 和 r2_score。1、均方差(mean-squared-error)2、平均绝对值误差(mean_absolute_error)3.可释方差得分(explained_variance_score) explained vari...原创 2018-04-24 10:57:06 · 78946 阅读 · 14 评论 -
学习笔记1:逻辑回归
1.逻辑回归的数学模型建立变量的线性组合:使用sigmoid函数对线性模型进行映射:2.定义损失函数在模型确定后,需要用一个损失函数(loss function)或代价函数(cost function)来度量预测错误的程度。常用的损失函数有以下几种:逻辑回归的损失函数为对数似然函数:等价于:最终:3.最小化损失函数转化为最优化问题,使用梯度下降法等方法求解。参考:https://blog.csdn...原创 2018-04-23 09:50:33 · 295 阅读 · 0 评论 -
学习笔记5:自编码器(Autoencoder)
自编码器是一种特殊的神经网络(neural network),它的输出目标(target)就是输入(所以它基本上就是试图将输出重构为输入),由于它不需要任何人工标注,所以可以采用无监督的方式进行训练。自编码器其实也是一种神经网络算法。它与神经网络的区别有:1、自编码器适合无监督学习,即没有标注,也可以提取高阶特征;2、输入与输出一致,期望提炼出高阶特征来还原自身数据。3、单隐含层的自编码器,类似于...原创 2018-04-26 11:48:03 · 1926 阅读 · 0 评论 -
TensorFlow学习4:保存和读取 TensorFlow 模型
训练一个模型的时间很长。但是你一旦关闭了 TensorFlow session,你所有训练的权重和偏置项都丢失了。如果你计划在之后重新使用这个模型,你需要重新训练!幸运的是,TensorFlow 可以让你通过一个叫 tf.train.Saver 的类把你的进程保存下来。这个类可以把任何 tf.Variable存到你的文件系统。保存变量让我们通过一个简单地例子来保存 weights 和 bias T...原创 2018-05-17 11:49:45 · 629 阅读 · 0 评论 -
学习笔记14:L2正则化和丢弃(dropout)
训练模型的过拟合会降低模型的泛化能力,采用正则化的方法解决过拟合的问题。正则化的原理是在损失函数中增加一个惩罚项来限制过大的权重。L0正则化的值是模型参数中非零参数的个数。L1正则化表示各个参数绝对值之和。L2正则化标识各个参数的平方的和的开方值。3、L0正则化根据上面的讨论,稀疏的参数可以防止过拟合,因此用L0范数(非零参数的个数)来做正则化项是可以防止过拟合的。从直观上看,利用非零参数的个数,...原创 2018-05-18 15:44:54 · 1844 阅读 · 0 评论 -
学习笔记18:ROC曲线和AUC值
在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度。错误率指的是在所有测试样例中错分的样例比例。实际上,这样的度量错误掩盖了样例如何被分错的事实。在机器学习中,有一个普遍适用的称为混淆矩阵(confusion matrix)的工具,它可以帮助人们更好地了解分类中的错误。比如有这样一个在房子周围可能发现的动物类型的预测,这个预测的三类问题的混淆矩阵如下表所示:一个三类问题的混...原创 2018-08-07 16:47:44 · 1028 阅读 · 0 评论