机器学习
文章平均质量分 75
生活不只*眼前的苟且
这个作者很懒,什么都没留下…
展开
-
从Encoder到Decoder实现Seq2Seq模型
参考文章: https://zhuanlan.zhihu.com/p/27608348转载 2018-09-12 19:12:59 · 1529 阅读 · 0 评论 -
常用激活函数比较
本文结构:什么是激活函数为什么要用都有什么sigmoid ,ReLU, softmax 的比较如何选择1. 什么是激活函数如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数 Activation Function。2. 为什么要用如果不用激励函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。如果使用的话,激活函数...转载 2018-05-14 15:29:31 · 693 阅读 · 0 评论 -
一文看懂卷积神经网络(CNN)
1 人工神经网络1.1 神经元 神经网络由大量的神经元相互连接而成。每个神经元接受线性组合的输入后,最开始只是简单的线性加权,后来给每个神经元加上了非线性的激活函数,从而进行非线性变换后输出。每两个神经元之间的连接代表加权值,称之为权重(weight)。不同的权重和激活函数,则会导致神经网络不同的输出。 举个手写识别的例子,给定一个未知数字,让神经网络识别是什么数字。此时的神经网络的输...转载 2018-04-28 17:35:47 · 1735 阅读 · 0 评论 -
卷积神经网络中的池化方法(pooling)总结
在卷积神经网络中,我们经常会碰到池化操作,而池化层往往在卷积层后面,通过池化来降低卷积层输出的特征向量,同时改善结果(不易出现过拟合)。为什么可以通过降低维度呢?因为图像具有一种“静态性”的属性,这也就意味着在一个图像区域有用的特征极有可能在另一个区域同样适用。因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值 (或最大...转载 2018-04-28 16:52:35 · 15781 阅读 · 0 评论 -
梯度下降和delta法则
梯度下降 利用感知器法则的要求是必须训练样本是线性可分的,当样例不满足这条件时,就不能再收敛,为了克服这个要求,引出了delta法则,它会收敛到目标概念的最佳近似!delta法则的关键思想是利用梯度下降(gradient descent)来搜索可能的权向量的假设空间,以找到最佳拟合训练样例的权向量。 简单的理解,就是训练一个无阈值的感知器,也就是一个线性单元。它的输出o如下: ...转载 2018-05-06 21:14:40 · 685 阅读 · 0 评论 -
RNN隐藏层的两种计算方法GRU和LSTM
本篇文章主要介绍两种RNN的隐藏层信息计算方法GRU(Gated Recurrent Units)和LSTM(Long-Short-Term-Memories),这两种隐藏层的计算方法通过引入门(Gate) 的机制来解决RNN的梯度消失问题,从而学习到长距离依赖。这里说的隐藏层计算方法指的是如何计算下个时刻的隐藏层信息,标准RNN中计算 方法是:而LSTM和GRU可以理解为计算ht的另一种方法。L...转载 2018-05-11 17:05:38 · 10870 阅读 · 3 评论 -
单向及双向循环神经网络及其tensorflow实现
前言循环神经网络得益于其记忆功能使其擅长处理序列方面的问题,它能提取序列之间的特征,进而对序列输出进行预测。比如我说“我肚子饿了,准备去xx”,那么根据前面的序列输入来预测“xx”很可能就是“吃饭”。单向循环神经网络所谓的单向循环神经网络其实就是常见的循环神经网络,可以看到t时刻、t-1时刻、t+1时刻,不同时刻输入对应不同的输出,而且上一时刻的隐含层会影响当前时刻的输出。这种结构就是单向循环神经...转载 2018-05-11 15:19:40 · 3347 阅读 · 0 评论 -
混淆矩阵及confusion_matrix函数的使用
1.混淆矩阵 混淆矩阵是机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型作出的分类判断两个标准进行汇总。这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测成另一个class)下图是混淆矩阵的一个例子 其中灰色部分是真实分类和预测分类结果相一致的,绿色部分是真实分类和预测分类不一致的,即分类错误的。2.confusion_m...转载 2018-05-11 09:44:26 · 37799 阅读 · 7 评论 -
一文搞懂隐马尔可夫模型(HMM)
什么是熵(Entropy)简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度。熵越大,系统越无序,意味着系统结构和运动的不确定和无规则;反之,,熵越小,系统越有序,意味着具有确定和有规则的运动状态。熵的中文意思是热量被温度除的商。负熵是物质系统有序化,组织化,复杂化状态的一种度量。熵最早来原于物理学. 德国物理学家鲁道夫·克劳修斯首次提出熵的概念,用来表示任何一种能量在空间中分布的...转载 2018-04-26 11:57:59 · 831 阅读 · 0 评论 -
轻松理解条件随机场(CRF)
理解条件随机场最好的办法就是用一个现实的例子来说明它。但是目前中文的条件随机场文章鲜有这样干的,可能写文章的人都是大牛,不屑于举例子吧。于是乎,我翻译了这篇文章。希望对其他伙伴有所帮助。原文在这里[http://blog.echen.me/2012/01/03/introduction-to-conditional-random-fields/]想直接看英文的朋友可以直接点进去了。我在翻译时并没有...转载 2018-04-26 10:18:03 · 1922 阅读 · 0 评论 -
梯度消失、梯度爆炸及其解决方法
前言本文主要深入介绍深度学习中的梯度消失和梯度爆炸的问题以及解决方案。本文分为三部分,第一部分主要直观的介绍深度学习中为什么使用梯度更新,第二部分主要介绍深度学习中梯度消失及爆炸的原因,第三部分对提出梯度消失及爆炸的解决方案。有基础的同鞋可以跳着阅读。 其中,梯度消失爆炸的解决方案主要包括以下几个部分。- 预训练加微调- 梯度剪切、权重正则(针对梯度爆炸)- 使用不同的激活函数- 使用bat...转载 2018-05-02 12:55:51 · 11378 阅读 · 0 评论 -
深度神经网络中的梯度丢失与梯度爆炸
神经网络的反向传播要理解梯度丢失(vanishing gradient)和梯度爆炸,首先需要理解神经网络的反向传播算法。一般来说,训练一个神经网络需要很多个迭代。在每个迭代中,都包含两个步骤。前馈(feed forward):它指的是从神经网络的输入开始,根据每一层的权重和偏置,逐层计算输出,直到得到神经网络的最终输出。这个输出值可以是对图片的分类,也可以是对数据走势的预测等等。反向传播(back...转载 2018-05-02 12:47:19 · 1547 阅读 · 0 评论 -
余弦距离、欧氏距离和杰卡德(Jaccard)相似性度量的比较
1、余弦距离余弦距离,也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量。向量,是多维空间中有方向的线段,如果两个向量的方向一致,即夹角接近零,那么这两个向量就相近。而要确定两个向量方向是否一致,这就要用到余弦定理计算向量的夹角。余弦定理描述了三角形中任何一个夹角和三个边的关系。给定三角形的三条边,可以使用余弦定理求出三角形各个角的角度。假定三角形的三条边为a,...转载 2018-05-09 09:51:49 · 13574 阅读 · 2 评论 -
循环神经网络(RNN)Recurrent Neural Networks
参考地址: https://zybuluo.com/hanbingtao/note/541458转载 2018-05-02 11:31:38 · 164 阅读 · 0 评论 -
Encoder-Decoder模型和Attention模型
Encoder-Decoder模型及RNN的实现Encoder-Decoder(编码-解码)是深度学习中非常常见的一个模型框架,比如无监督算法的auto-encoding就是用编码-解码的结构设计并训练的;比如这两年比较热的image caption的应用,就是CNN-RNN的编码-解码框架;再比如神经网络机器翻译NMT模型,往往就是LSTM-LSTM的编码-解码框架。因此,准确的说,Encode...转载 2018-05-07 20:01:57 · 9020 阅读 · 1 评论 -
详解CNN五大经典模型:Lenet,Alexnet,Googlenet,VGG,DRL
关于卷积神经网络CNN,网络和文献中有非常多的资料,我在工作/研究中也用了好一段时间各种常见的model了,就想着简单整理一下,以备查阅之需。Lenet,1986年Alexnet,2012年GoogleNet,2014年VGG,2014年Deep Residual Learning,2015年Lenet就从Lenet说起,可以看下caffe中lenet的配置文件(1),可以试着理解每一层的大小,和...转载 2018-05-08 19:07:29 · 9700 阅读 · 1 评论 -
Wordnet 与 Hownet 比较
近年来,随着计算机本身以及信息高速公路的飞速发展,人们开始更加重视语义的研究。各国都致力于可用于自然语言处理的大规模语义词典或大规模知识库的建设。例如:普林斯顿大学的英语Wordnet,微软的Mindnet,欧洲有基于Wordnet的Eurowordnet,日本的日语和英语的概念词典,韩国的Koreanwordnet,中国有以Wordnet为框架而研制的现代汉语概念词典――中文概念辞书(CCD)和...转载 2018-05-22 16:54:56 · 961 阅读 · 0 评论 -
用Docker容器自带的tensorflow serving部署模型对外服务(成功率100%)
前传:相信很多人和我一样,在试图安装tensorflow serving的时候,翻遍了网上的博客和官网文档,安装都是以失败而告终,我也是一样,这个问题折磨了我两个星期之久,都快放弃了。幸运的是在同事的建议下,我采用了一种迂回的策略安装成功了。我们采用的策略是: pull一个已经安装好了tensorflow serving的docker镜像,替换它自带的一些模型为我们...原创 2018-08-27 10:36:36 · 15689 阅读 · 16 评论 -
机器学习算法实践-SVM中的SMO算法
前言前两篇关于SVM的文章分别总结了SVM基本原理和核函数以及软间隔原理,本文我们就针对前面推导出的SVM对偶问题的一种高效的优化方法-序列最小优化算法(Sequential Minimal Optimization, SMO)的原理进行总结并进行相应的Python实现。坐标上升算法(Coordinate Ascent)在SMO算法之前,还是需要总结下坐标上升算法,因为SMO算法的...转载 2018-07-27 10:59:31 · 2098 阅读 · 0 评论 -
KKT条件
KKT条件介绍 最近学习的时候用到了最优化理论,但是我没有多少这方面的理论基础。于是翻了很多大神的博客把容易理解的内容记载到这篇博客中。因此这是篇汇总博客,不算是全部原创,但是基础理论,应该也都差不多吧。因才疏学浅,有纰漏的地方恳请指出。 KKT条件是解决最优化问题的时用到的一种方法。我们这里提到的最优化问题通常是指对于给定的某一函数,求其在指定作用域上的全局最小值。...转载 2018-07-27 10:29:02 · 6171 阅读 · 0 评论 -
dropout为什么有效
开篇明义,dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。dropout是CNN中防止过拟合提高效果的一个大杀器,但对于其为何有效,却众说纷纭。在下读到两篇代表性的论文,代表两种不同的观点,特此分享给大家。组合派参考文献中第一篇中的观点,Hinto...转载 2018-07-06 16:03:58 · 1866 阅读 · 1 评论 -
MLP多层感知机(人工神经网络)原理及代码实现
一、多层感知机(MLP)原理简介多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构,如下图:从上图可以看到,多层感知机层与层之间是全连接的(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接)。多层感知机最底层...转载 2018-07-05 11:23:19 · 74535 阅读 · 3 评论 -
基于sigmoid的文本多标签分类模型代码实现
sigmoid一般是用来做二分类的,它是将一个标量的数字转换成[0,1]之间的一个概率值,如果概率值大于0.5, 则判定为是某个分类,否则则不是某个分类,公式如下:本文基于sigmoid做了一个将一段长文本打上多个标签的算法模型,首先声明,我的模型最终的效果不好,因为我的文本很长,而且采用的模型很简单,就一层神经网络,权当练手。数据集文件的格式为每行一个样本,以制表符分隔。第一列为文本...原创 2018-07-05 10:45:01 · 6600 阅读 · 4 评论 -
如何用softmax和sigmoid来做多类分类和多标签分类
首先,说下多类分类和多标签分类的区别多标签分类: 一个样本可以属于多个类别(或标签),不同类之间是有关联的,比如一个文本被被划分成“人物”和“体育人物”两个标签。很显然这两个标签不是互斥的,而是有关联的多类分类: 一个样本属于且只属于多个分类中的一个,一个样本只能属于一个类,不同类之间是互斥的,比如一个文本只能被划分成“人物”,或者被划分成“文化”,而不能同时被划分成“人物”和“文...原创 2018-07-04 17:07:28 · 15767 阅读 · 5 评论 -
基于softmax的文本多分类模型代码实现
对于多分类问题,可以使用softmax来做,但是效果不是那么好,当做一个算法的练手吧首先是数据集处理的代码:文件名:data_loader.py# coding: utf-8import sysfrom collections import Counterimport pdbimport numpy as npimport tensorflow.contrib.keras as kr...原创 2018-07-04 15:59:34 · 2886 阅读 · 1 评论 -
Attension Mechanism模型的详细介绍,原理、分类及应用
模型汇总24 - 深度学习中Attention Mechanism详细介绍:原理、分类及应用Attention是一种用于提升基于RNN(LSTM或GRU)的Encoder + Decoder模型的效果的的机制(Mechanism),一般称为Attention Mechanism。Attention Mechanism目前非常流行,广泛应用于机器翻译、语音识别、图像标注(Image Caption)...转载 2018-06-28 18:39:42 · 1939 阅读 · 0 评论 -
softmax实现多分类算法推导及代码实现
关于多分类我们常见的逻辑回归、SVM等常用于解决二分类问题,对于多分类问题,比如识别手写数字,它就需要10个分类,同样也可以用逻辑回归或SVM,只是需要多个二分类来组成多分类,但这里讨论另外一种方式来解决多分类——softmax。关于softmax如何多分类从下图看,神经网络中包含了输入层,然后通过两个特征层处理,最后通过softmax分析器就能得到不同条件下的概率,这里需要分成三个类别,最终会得...转载 2018-07-03 10:40:53 · 10398 阅读 · 1 评论 -
一文详解LDA主题模型
【本文作者】达观数据 夏琦【作者简介】夏琦,达观数据NLP组实习生,就读于东南大学和 Monash University,自然语言处理方向二年级研究生,师从知识图谱专家漆桂林教授。曾获第五届“蓝桥杯”江苏省一等奖、国家二等奖。前言本篇博文将详细讲解LDA主题模型,从最底层数学推导的角度来详细讲解,只想了解LDA的读者,可以只看第一小节简介即可。PLSA和LDA非常相似,PLSA也是主题模型方面非常...转载 2018-05-24 20:34:08 · 4612 阅读 · 0 评论 -
朴素贝叶斯分类器的例子
一、病人分类的例子让我从一个例子开始讲起,你会看到贝叶斯分类器很好懂,一点都不难。某个医院早上收了六个门诊病人,如下表。 症状 职业 疾病 打喷嚏 护士 感冒 打喷嚏 农夫 过敏 头痛 建筑工人 脑震荡 头痛 建筑工人 感冒 打喷嚏 教师 感冒 头痛 教师 脑震荡现在又来了第七个病人,是一个打喷嚏的建筑工人。请问他患上感冒的概率有多大?根据贝叶斯...转载 2018-06-12 11:32:57 · 1151 阅读 · 0 评论 -
支持向量机(SVM)
参考地址:https://blog.csdn.net/Left_Think/article/details/76726568转载 2018-06-04 15:08:16 · 325 阅读 · 0 评论 -
matplotlib画折线图中文乱码解决
说到底,乱码的原因是因为没有安装中文字体导致的,所以首先要做的就是安装一个中文字体。报表中发现有中文乱码和中文字体不整齐(重叠)的情况,首先考虑的就是操作系统是否有中文字体,在CentOS 7中发现输入命令查看字体列表是提示命令无效: 如上图可以看出,不仅没有中文字体,连字体库都没有,那么接下来就记录一下在Linux CentOS 7中如何安装字体库以及中文字体。安装字体库在CentOS 4.x...原创 2018-05-23 14:33:43 · 2765 阅读 · 0 评论 -
深度神经网络(DNN)模型与前向传播算法
深度神经网络(Deep Neural Networks, 以下简称DNN)是深度学习的基础,而要理解DNN,首先我们要理解DNN模型,下面我们就对DNN的模型与前向传播算法做一个总结。1. 从感知机到神经网络 在感知机原理小结中,我们介绍过感知机的模型,它是一个有若干输入和一个输出的模型,如下图: 输出和输入之间学习到一个线性关系,得到中间输出结果:z=∑i=1mwixi+bz=∑i=...转载 2018-05-02 10:19:46 · 684 阅读 · 0 评论 -
KL距离(衡量两个概率分布的差异情况)
KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对熵(Relative Entropy)。它衡量的是相同事件空间里的两个概率分布的差异情况。KL距离全称为Kullback-Leibler Divergence,也被称为相对熵。公式为:感性的理解,KL距离可以解释为在相同的事件空间P(x)中两个概率P(x)和Q(x)分布的差异...转载 2018-04-24 10:04:56 · 10275 阅读 · 0 评论 -
bootstrap, boosting, bagging的区别和联系
Bootstraping: 名字来自成语“pull up by your own bootstraps”,意思是依靠你自己的资源,称为自助法,它是一种有放回的抽样方法,它是非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法。其核心思想和基本步骤如下: (1) 采用重抽样技术从原始样本中抽取一定数量(自己给定)的样本,此过程允许重复抽样。 (2) 根据抽出的样本计算给定的统计量T。...转载 2018-04-13 14:59:26 · 500 阅读 · 0 评论 -
生成模型与判别模型的区别
引入监督学习的任务就是学习一个模型(或者得到一个目标函数),应用这一模型,对给定的输入预测相应的输出。这一模型的一般形式为一个决策函数Y=f(X),或者条件概率分布P(Y|X)。监督学习方法又可以分为生成方法(generative approach)和判别方法(discriminative approach)。所学到的模型分别为生成模型(generative model)和判别模型(discrim...转载 2018-03-30 11:11:03 · 657 阅读 · 0 评论 -
DSSM算法-计算文本相似度
转载请注明出处: http://blog.csdn.net/u013074302/article/details/76422551导语在NLP领域,语义相似度的计算一直是个难题:搜索场景下query和Doc的语义相似度、feeds场景下Doc和Doc的语义相似度、机器翻译场景下A句子和B句子的语义相似度等等。本文通过介绍DSSM、CNN-DSSM、LSTM-DSSM等深度学习模型在计算语义相似度上...转载 2018-03-19 20:38:09 · 20484 阅读 · 3 评论 -
Bag-of-words模型-可用于计算文本及图片相似度
引言本blog之前已经写了四篇关于SIFT的文章,请参考九、图像特征提取与匹配之SIFT算法,九(续)、sift算法的编译与实现,九(再续)、教你一步一步用c语言实现sift算法、上,及九(再续)、教你一步一步用c语言实现sift算法、下。上述这4篇文章对SIFT算法的原理和C语言实现都做了详细介绍,用SIFT做图像匹配效果不错。现在考虑更为高层的应用,将SIFT算法应用于目标识别:发现图像中包含...转载 2018-03-19 20:34:11 · 1158 阅读 · 0 评论 -
文本相似度-bm25算法原理及实现
原理BM25算法,通常用来作搜索相关性平分。一句话概况其主要思想:对Query进行语素解析,生成语素qi;然后,对于每个搜索结果D,计算每个语素qi与D的相关性得分,最后,将qi相对于D的相关性得分进行加权求和,从而得到Query与D的相关性得分。BM25算法的一般性公式如下:其中,Q表示Query,qi表示Q解析之后的一个语素(对中文而言,我们可以把对Query的分词作为语素分析,每个词看成语素...转载 2018-03-14 19:46:31 · 4193 阅读 · 4 评论 -
向量空间模型(VSM)--用于计算文本相似度
向量空间模型将文档映射为一个特征向量V(d)=(t1,ω1(d);…;tn, ωn(d)),其中ti(i=1,2, …,n)为一列互不雷同的词条项,ωi(d)为ti在d中的权值, 一般被定义为ti在d中出现频率tfi(d)的函数,即 。 在信息检索中常用的词条权值计算方法为 TF-IDF 函数,其中N为所有文档的数目,ni为含有词条ti的文档数目。TF-IDF公式有很多变种,下面是一个常用的TF-...转载 2018-03-14 20:11:42 · 8071 阅读 · 0 评论 -
自动机,状态机,有限自动机,有限状态机,有限状态自动机,非确定下有限状态自动,确定性有限状态自动机的区别于联系
http://blog.csdn.net/c601097836/article/details/47040703转载 2018-01-16 10:37:14 · 278 阅读 · 0 评论