机器学习
文章平均质量分 65
PKU_Jade
这个作者很懒,什么都没留下…
展开
-
先验分布,后验分布,共轭分布的关系
先考虑一下我们是如何解决一个概率问题的:在一个实际问题中我们通常是根据经验选出一个模型,例如一个抛硬币可以抽象为伯努利分布(0-1分布)的模型,人的身高分布可以抽象为正态分布的模型,然后根据数据推算出模型的参数。而这个选取的模型就决定了似然函数p(X|θ)p(X|\theta)的形式。例如抛硬币模型:f(k;n,p)=Pr(K=k)=(nk)pk(1−p)n−kf(k;n,p)=\Pr(K=k)={原创 2017-09-19 15:16:12 · 4804 阅读 · 0 评论 -
如何理解反向传播算法(backpropagation)
两个假设为了计算∂C/∂w\partial C/\partial w需要对cost function的形式做两个假设,cost function可以被写为C=1n∑xCxC = \frac{1}{n} \sum_x C_xC可以被写为aLa^L的函数,即C=C(aL)C=C(a^L),要注意在优化过程中输入的x,yx,y都是固定的数,变量是ww.四个基本式子backprop室为了计算∂C/∂w原创 2017-05-04 21:43:38 · 2547 阅读 · 0 评论 -
广义线性模型
什么是广义线性模型广义线性模型(GLM)假设实验者所量测的随机变数(Y)的分布函数与实验中系统性效应(X,即信息,非噪声)可经由一链接函数(link function)建立起可资解释其相关性的函数。也就是说可以找到一个链接函数,找出X与Y的相关性。也就是说E(y)=μ=g−1(Xβ)\operatorname {E}({\boldsymbol {y}})={\boldsymbol {\mu }}原创 2017-09-25 14:21:01 · 480 阅读 · 0 评论 -
检验样本是否服从正态分布,处理偏态分布
在数据分析中如果某个数据服从正态分布的话,我们可以利用正态分布的性质做出很多有意义的分析,例如t-检验。。如何检验样本是否服从正态分布? 可以使用Q-Q图来进行检验,Q-Q图是一个散点图,点(x, y)表示数据x的某个分位数,y表示和x的分位数相同的分位数(即FX(x)=FY(y)F_X (x)=F_Y(y)),如果说两个分布的QQ图在一条直线上,则说明每个[xi,xi+1],[yi,yi+1][原创 2017-09-23 22:10:09 · 13314 阅读 · 0 评论 -
特征工程
特征值处理对特征的值进行操作特征处理特征二值化:通过阈值把特征转化为0-1,有些特征只接受布尔值作为输入。特征离散化:把连续的数值转化为离散的,是让每一部分样本相同,还是每一部分区间长度相同?特征值转化:放缩、平移特征正规化:把所有的特征的分布变为N(0,1)N(0, 1),这样在梯度下降时收敛更快。对特征加入先验:例如可以用来区分是语法词还是情感词。特征选择less is more原创 2017-09-21 10:53:30 · 415 阅读 · 0 评论 -
条件随机场(CRF)
在进行样本标注时,不认为它们类别之间是独立的,而是和它们的先后关系有一定的区别,例如在词性标注中,两个相邻的单词即使在其他语料中几乎都被标记为动词,那么它俩也不可能同时为动词,这样就是利用了样本的顺序信息。据此,我们可以建立多个特征函数来评价一个标记序列,Introduction to Conditional Random FieldsImagine you have a sequence of s原创 2017-10-01 15:50:00 · 444 阅读 · 0 评论 -
为什么使用ReLU而不是sigmoid
sigmoid计算复杂,需要计算指数梯度弥散: 对于每层只有一个神经元的网络,考虑每一层的偏导数,我们发现 ∂C∂b1=σ′(z1),w2σ′(z2),w3σ′(z3),w4σ′(z4),∂C∂a4.(122)\begin{eqnarray} \frac{\partial C}{\partial b_1} = \sigma’(z_1) , w_2 \sigma’(z_2) , w_3原创 2017-10-12 13:25:41 · 2382 阅读 · 0 评论 -
词的向量化表示
为什么使用向量表示词但是在NLP中,传统方法通常是把词转换为离散的不可分割的符号,这导致很难利用不同的词之间的关系(所有的单词之间的距离都一样),例如dog:id143,cat:id537,这使得我们需要更多的数据来训练模型,而使用向量的表达的话可以克服这一缺点,例如在向量中可以利用cat和dog之间的相似性。使用向量表示词也叫word embeddingps:上面说的都是使用连续的向量空间中的点表原创 2017-04-24 22:07:05 · 4677 阅读 · 0 评论 -
em算法的一些理解
数据: 不完全数据,即含有隐变量——无法观测的变量目的: 求出模型中所有参数的合理估计。为什么使用em算法: 不同于极大似然估计,可以显式的求出使得数据似然度最大的参数,在含有隐变量的模型中,由于需要对隐变量做全概率展开,所以最终的似然函数是求和的形式,而且关键的是没有隐变量数据所以无法求出最大似然度对应的参数。em算法是如何克服上面的障碍的: 1. 我们的目的是估计参数,但是现在数据有缺原创 2017-09-15 10:06:50 · 1187 阅读 · 0 评论 -
如何处理不平衡数据
采样法过采样和欠采样过采样:过拟合(学习到小类别样本中的噪声) 欠采样:欠拟合(丢失大类别样本中的重要数据)SMOTE算法找到小类别样本中的k个近邻,然后在他们之间的连线上取点,作为新的样本。缺点:容易过拟合Borderline-SMOTE其与SMOTE的不同是:SMOTE是对每一个minority样本产生综合新样本,而Borderline-SMOTE仅对靠近边界的minority样本创造新数据。翻译 2017-10-16 22:21:16 · 1363 阅读 · 0 评论 -
tf.control_dependencies()作用及用法
在有些机器学习程序中我们想要指定某些操作执行的依赖关系,这时我们可以使用tf.control_dependencies()来实现。 control_dependencies(control_inputs)返回一个控制依赖的上下文管理器,使用with关键字可以让在这个上下文环境中的操作都在control_inputs 执行。with g.control_dependencies([a, b, c])原创 2017-06-20 15:33:14 · 41827 阅读 · 11 评论 -
tf.train.ExponentialMovingAverage解析
Maintains moving averages of variables by employing an exponential decay.这是官方的文档解释。 要想理解上面这句话就要知道什么是moving average和exponential decay。下面分别解释一下这两个概念。exponential decay在有时学习率的设置时,我们会把学习率设计为指数衰减的,就是让学习率满足一原创 2017-06-19 21:04:05 · 6502 阅读 · 1 评论 -
windows平台tensorboard的配置及使用
由于官网和其他教程里面都是以Linux为平台演示tensorboard使用的,而在Windows上与Linux上会有一些差别,因此我将学习的过程记录下来与大家分享(基于tensorflow1.1.0版本)。最简单的tensorboard应用tensorboard是为了将复杂的计算图可视化的工具,使用tensorboard包括两个步骤,在python程序中将想要可视化的结果,包括中间结果,例如准确率原创 2017-06-18 19:23:25 · 14435 阅读 · 0 评论 -
概率编程简介
直观理解概率编程概率编程的推理过程就是:对问题进行建模,然后利用计算机采样的方法进行自动的贝叶斯推理(Bayesian inference),得出未知参数的概率分布。什么是贝叶斯推理?贝叶斯推理主要利用贝叶斯公式 p(θ|X)=p(θ)p((X|θ)p(X)p(\theta|X)=\frac{p(\theta)p((X|\th原创 2017-04-12 18:55:37 · 4943 阅读 · 0 评论 -
Laplace近似后验概率
Laplace近似就是使用正态分布来近似连续变量概率密度函数。 lnf(z)≅lnf(z0)−12A(z−z0)2A=−d2dz2lnf(z)∣z=z0\ln f(z) \cong \ln f(z_0) - \frac{1}{2}A(z - z0)^2 \quad A = - \frac{d^2}{dz^2} \ln f(z) \mid{z=z_0}1 非共轭的先验概率在很多时候在我们建立的概率原创 2017-04-18 15:55:28 · 3154 阅读 · 0 评论 -
Bayesian trained NN
类似于稀疏自编码器,给每一层的权重只有小部分是高方差的,即只有一小部分是激活的。原创 2017-04-15 10:24:05 · 449 阅读 · 0 评论 -
tensorflow识别手写数字
这篇教程用tensorflow实现了一个softmax分类器(logistics回归的推广),用来熟悉tf的一些语法和使用tf进行机器学习的流程。原创 2017-04-15 15:22:43 · 455 阅读 · 0 评论 -
tensorflow识别手写数字(2)
TensorFlow 擅长大规模的计算图模型,它的特长之一就是训练深度神经网络,这篇教程将会使用TensorFlow 构建一个CNN来识别MNIST.建立CNN在之前的softmax中我们的准确率只有92%左右,在这里我们使用一个简单的CNN将会把准确率提升至99.2%。原创 2017-04-15 18:13:21 · 433 阅读 · 0 评论 -
如何理解信息论中的各种熵?
信息论,机器学习中常用的熵的直观理解原创 2017-04-20 21:09:40 · 2281 阅读 · 0 评论 -
卷积神经网络(CNN)的参数优化方法
http://www.jeyzhang.com/cnn-learning-notes-2.html转载 2017-04-25 14:00:38 · 1159 阅读 · 0 评论 -
为什么深层网络很难训练
为什么需要深层神经网络第一:层数的增多会使每一层任务都变得简单,例如计算乘法,可以在第一层计算按位加法,第二层计算两个数的加法,第三层计算乘法,这样的算法逻辑更加简单,清晰。也就是说中间层可以做更深的抽象。 第二:数学上可以证明只有一层隐藏层的神经网络可以表示任意的函数,但是神经元的数量却是指数级增加的,但是使用深层网络可以解决这个问题。 所以综上深层神经网络可以解决浅层神经网络无法轻易解决的问原创 2017-04-25 15:53:13 · 3543 阅读 · 1 评论 -
tensorflow实现机器学习模型的基本步骤
第一步:定义模型,即前向计算的流程,定义好之后就可以得到一个确定的计算图了,在这个步骤具体需要定义tf.placeholder:用来传入数据,tf.Variable:用来存放模型参数(tf.Variable在计算图中可以存储并更新)和具体的计算操作: 示例:x = tf.placeholder(tf.float32, [None, 784])W = tf.Variable(tf.zeros([原创 2017-06-17 20:24:58 · 1931 阅读 · 0 评论 -
【译】理解LSTM网络,RNN入门材料
RNN和LSTM介绍翻译 2017-04-16 15:50:29 · 2362 阅读 · 1 评论