机器学习-理论
文章平均质量分 91
Icoding_F2014
相信代码可以变化世界
展开
-
多分类条件下分类指标:Macro-average和Micro-average,以及Weighted-average
在二分类条件下,我们可以很轻易的在混淆矩阵的基础上定义出各种指标(例如Accurarcy, precision, F1F_1F1, recall),其定义方法如下:true positive: TP,真实情况为True,预测也为正的样本数。false positive:FP,真实情况为False,预测为正的样本数。false negative:FN,真实情况为True,预测为负的样本数。true negative: TN,真实情况为False,预测为负的样本数。对于这四个指标,在英文的取名是是原创 2021-03-17 18:23:51 · 12922 阅读 · 3 评论 -
Dropout: A Simple Way to Prevent Neural Networks from Overtting 论文阅读
Dropout: A Simple Way to Prevent Neural Networks from Overtting基本原理结果敏感性分析对特征图谱的影响: 可以看到 使用dropout后cnn计算出来的特征图谱要平滑的很多稀疏性的影响 可以看出,使用droupout后 很多隐层单元的activation 激活值都接近与0,只有少部分的神经元的激活值特别大。p的影响 左图表示 隐层原创 2017-12-01 18:08:05 · 443 阅读 · 0 评论 -
深度堆栈自编码网络
为什么会引进自编码网络?我们都是知道深度神经网络里面的网络一般是比较深的,在训练之初,模型参数的初始化对模型影响十分深远的。当初始化选的好时,模型可以很快的收敛,可以避开一些局部最优点。当初始化选的不好是,模型要么就收敛到局部最优的马鞍点,要么就是收敛的特别慢。所以为了解决参数初始化的问题,Hinton大佬提出了使用大量的没label的数据来“无监督”算法逐层预训练网络的初值,再使用有label的数原创 2017-12-02 14:17:20 · 10120 阅读 · 0 评论 -
验证集与测试集的区别
在对机器学习算法进行学习和实践的时候,我们经常会遇到“验证集”和“测试集”,通常的机器学习书籍都会告诉我们,验证集和测试集不相交,验证集和训练集不相交,测试集和训练集不相交。也就是验证集与测试集似乎是同一级的东西,那么我们自然而然会有一个困惑为什么还要分测试集和验证集呢? 其实问题的答案是:训练集用于训练模型参数,测试集用于估计模型对样本的泛化误差,验证集用于“训练”模型的超参数。什么是模型...原创 2018-04-07 09:23:28 · 26470 阅读 · 21 评论 -
机器学习——朴素贝叶斯模型
引入一下?本文件主要描述了贝叶斯模型用于分类的一个实例,使用一个汽车改革的数据集作为实验本例子中涉及到的各维特征都是离散的。贝叶斯模型核心在于:给定特征向量X,计算该向量所属于的类别y。我们将这个问题转化为选择使得条件概率p(yi|X)最大的yi。为了选择出最大的p(yi|X),我们首先需要计算出这些条件概率(不然拿头比较呀)。根据贝叶斯公式:p(yi∣X)=p(X,yi)p(X)=p(...原创 2018-09-23 17:45:14 · 756 阅读 · 0 评论 -
自然语言处理——(一)语言模型
#引入语言模型的提出:原创 2018-09-21 23:21:48 · 766 阅读 · 0 评论 -
为什么在神经网络里面使用梯度下降法对模型的权值矩阵进行调整
我们都知道,神经网络是先将模型参数的调整问题转换为一个求某个损失函数的极小值问题,然后通过梯度下降算法让参数选择合适的值使得该损失函数取得极小值。那么为什么梯度下降算法可以完成这个任务呢?假设一个模型的损失函数为C(θ)C(\theta)C(θ),其中θ\thetaθ 是模型待确定的参数,它包含各层的权值矩阵WiW^{i}Wi,各层的偏置向量bib^{i}bi等等。那么如何取得一个合适的θ′\t...原创 2018-09-22 19:52:31 · 2784 阅读 · 0 评论 -
机器学习——聚类
概述机器学习里面的聚类是无监督的学习问题,它的目标是为了感知样本间的相似度进行类别归纳。它可以用于潜在类别的预测以及数据压缩上去。潜在类别预测,比如说可以基于通过某些常听的音乐而将用户进行不同的分类。数据压缩则是指将样本进行归类后,就可以用比较少的的One-hot向量来代替原来的特别长的向量。聚类,既可以作为一个单独的过程,也可以作为其他机器学习任务的预处理模块。其实,在深度学习里面就十分流...原创 2018-11-11 16:13:29 · 8140 阅读 · 0 评论 -
信息论模型——熵、互信息
前言在机器学习以及神经网络里面,我们经常会遇到“熵”、“互信息”、“条件熵”,“最大熵”等字眼,尤其是最大熵模型 在自然语言处理中用处可谓是超级大。这些概念都是信息论里面的东西,因此它们都被统一称为信息论模型。这篇博客就是专门来研究一下信息论模型,先介绍基本概念,下篇博客介绍最大熵模型。熵的定义信息量记离散型随机变量XXX,取xkx_{k}xk的概率为pkp_{k}pk.即:P(X...原创 2018-12-06 18:02:23 · 1704 阅读 · 0 评论 -
矩阵和向量的求导法则
在Machine Learning 和Deep Learning里面 经常涉及对矩阵和向量的求导,本文介绍一下常用的求导法则。原创 2018-12-16 20:46:51 · 8545 阅读 · 5 评论 -
ResNet残差网络——Deep Residual Learning for image recongnition
作者简介——何凯明2003 年广东省理科高考状元(2000后的业界翘楚的状元郎),2016年前在微软亚洲研究院,2016后在Facebbok AI 研究院。知名论文:motivation研究人员开始意识到在深度神经网络里面,深度depth是影响网络性能最重要的一个元素。但是简单的在浅层网络堆叠新的神经层的做法会有问题:随着网络层次的加深,研究人员发现网络越深 train error反...原创 2019-04-07 12:08:21 · 583 阅读 · 0 评论 -
再看Tensorflow 里面的Graph 和Session
前言今天深度学习课上老师着重讲了tensorflow里面的graph和Session的关系,这勾起了我的很多记忆,以前初学tensorflow的时候 那些概念都没有理解的很透彻,现在再来集中的总结一下。Graph在分布式系统中,人们经常使用计算图来表示并行计算模型。计算图是一个有向图,图里面有节点和有向边。在计算图里面,节点表示"计算"单元,有向边表示数据的流动关系或者依赖关系。不过在te...原创 2019-05-10 00:06:59 · 1205 阅读 · 0 评论 -
Locality Sensitive Hashing 局部敏感哈希算法之Min Hashing
简介本人之前接触的Hash函数主要是密码学里面哈希函数,这些哈希函数追求单向性和随机性。单向性是值给定key,y=Hash(key)y=Hash(key)y=Hash(key) 是容易计算的,但是给定yyy,计算对应的key却是困难的。随机性是指,在密码学的哈希函数里面,出于抵御统计攻击的考虑,只要key1key1key1 和 key2key2key2 只要有一比特的不同,那么这两个key 哈希...原创 2019-05-16 17:41:58 · 1167 阅读 · 1 评论 -
从投影的角度理解 SVD 分解
前言SVD分解是一种特别有意思的降维手段,它在降维的同时还可以发现某些潜在的隐向量,这些向量对于数据之间的潜在关系有很大的帮助。下面我们使用一个例子来逐步导出SVD的近似分解,理解如何通过SVD来发现数据之间的潜在关系。数据集假设我们手上有一个电影评分矩阵AAA,Ai,jA_{i,j}Ai,j 表示第iii 个人对第jjj 个电影的打分(0-5,打分越高说明评价越高)。一共有6个人,5个...原创 2019-06-03 13:01:16 · 1801 阅读 · 1 评论 -
强化学习(1)—— 马尔科夫过程与强化学习
接下来,会有系列博客介绍强化学习的核心思想。马尔科夫过程 MR一个马尔科夫过程具有下列定义:也就是说这个随机过程具有一个优先的状态集SSS ,以及一个状态转移矩阵PPP ,Pi,jP_{i,j}Pi,j 表示从状态sis_isi转移到状态sjs_jsj 的概率。显然在这种定义下,需要Pi,∗P_{i,*}Pi,∗ 加和等于1。这种决策过程的一个特点是Pi,jP_{i,j}Pi,j...原创 2019-07-01 16:59:18 · 1767 阅读 · 1 评论 -
强化学习(2)——基于MC和TD的值函数估计
上一章基础博客【强化学习(1)—— 马尔科夫过程与强化学习】https://blog.csdn.net/jmh1996/article/details/94389616 的最后我们提到强化学习的本质是在马尔科夫决策过程中求得一个最优策略,而且我们指出确定性的最优策略为:也就是说如果我们知道对于给定的状态sss 的所有q(s,a)q(s,a)q(s,a) 的值,那我们设置使得q(s,a)q(s,...原创 2019-07-01 18:19:41 · 3381 阅读 · 0 评论 -
Affinity Propagation: AP聚类算法
@article{frey2007clustering, title={Clustering by passing messages between data points}, author={Frey, Brendan J and Dueck, Delbert}, journal={science}, volume={315}, number={5814}, pages=...原创 2019-08-15 11:26:05 · 207 阅读 · 0 评论 -
自适应学习速率?
前言在监督学习中,我们都或多或少的意识到学习速率η\eta是一个对模型相当重要的参数。η\eta太大收敛快,但是也可能导致算法在最优值附近徘徊而无法收敛。η\eta太小,参数更新及其缓慢,收敛也相应的十分缓慢。更重要的是,学习速率“太大”和“太小”完全是由经验判断的。在某些模型下η\eta取10−510^{-5}就算小了,但是在其他模型下η\eta取这个值可能就很大。那么有木有方法,能够让学习速率也原创 2017-11-06 16:29:40 · 4700 阅读 · 0 评论 -
Apriori 算法实现--结合FP树
#coding:utf8__author__ = 'jmh081701'import numpy as npclass FPTree: index={} def __init__(self): self.count=1 self.name ="" self.children=[] self.parent=[]原创 2017-10-23 17:57:15 · 486 阅读 · 0 评论 -
Apriori算法--关联分析算法(一)
在实际生产生活我们经常会遇到一些“关联分析”(Association Analyse)的任务。举几个实际例子。1.人们的购物清单里面的各个商品有没有什么关联呢?就像下面这个购物清单写的那样子,右边是各个顾客所买的东西。 有的时候我们想问,顾客购买商品的时候会不会多个商品组合起来买呢?顾客会不会倾向于豆奶和尿布这两样商品一起买?我们怎么从一份购物清单里面发现这种往往会一起出现的商品组合呢?2.现在原创 2017-10-16 15:49:49 · 23925 阅读 · 2 评论 -
机器学习--生成学习算法之GDA
原创 2016-03-11 15:21:39 · 1555 阅读 · 0 评论 -
生成学习算法
生成学习算法的核心思想: 根据贝叶斯公式p(Y=y|X=x)=p(X=x,Y=y)/p(X=x),计算给定特征向量X时,Y=y概率的大小,然后从各个y中找出那个最大的Y。其中跟据特征向量是连续还是离散的,又可以有不同的处理方式。当特征向量的分量是连续型随机变量时,可以使用连续概率密度函数来计算 概率(p(X=x,Y=y)或p(X=x)(比如使用高斯分布)。如果是离散型又可使用不同的离散型概原创 2016-10-28 11:24:09 · 326 阅读 · 0 评论 -
经典决策树代码-信息增益
使用经典决策树算法,进行西瓜的分类原创 2016-12-14 19:28:21 · 915 阅读 · 0 评论 -
马尔可夫模型(定义)
定义如下:原创 2017-01-11 20:00:29 · 1274 阅读 · 0 评论 -
Tensorflow 基础
前言本文主要介绍学习tensorflow的一些基础知识,是tensorflow C++的基础,里面的样例使用的是python,后续将给出C++的示例。数据流图基础像计算机科学里面通用的数据流表示一样,在tensorflow的数据流图里面,使用节点和边来表示数据流的流动与各种操作。 节点:一般以圆圈/椭圆/方框表示,表示某种运算或操作。 边:有向边,对应于流入节点或从节点流出的数据,边的方向对应于原创 2017-08-02 17:00:07 · 818 阅读 · 0 评论 -
Tensorflow 基础(二)
Tensorflow 1.2 tensorflow里面的tensor在tensorflow 里面,所有的数据都是以张量tensor的形式存在的。张量其实就是n维矩阵的抽象。一维的张量是向量,二维的张量是矩阵。tensorflow的数据类型tensorflow 可接受python自带的数据类型Tensorflow可以接受python数值,布尔值,字符串或由它们构成的列表。单个数值将被转化为标量,数值原创 2017-08-03 00:06:55 · 1657 阅读 · 0 评论 -
为什么Tensorflow需要使用"图计算"来表示计算过程
今天一个同学问我,在tensorflow里面是图? 我跟他说: (来自Andrew Ng,吴神) 就比如说 J=a+bc 吧 在图计算的表示中: 1.节点表示某种运算,一般都是二元运算 2.有向边,表示数据和数据的流向比如 上面的图中 有三个节点u=bc,v=a+u,J=3v 它们都在做运算。 而那些边就表示数据的流动。什么意思嘞? 比如 节点u=a+u,有两条边流进来,就说明啊原创 2017-09-26 01:16:33 · 5396 阅读 · 5 评论 -
CNN学习(一)
前言本系列文章介绍学习CNN的过程,并结合Tensorflow来使用CNN进行图像的识别CNN概述卷积神经网络是在普通的BP全连接的基础上发展而来的,CNN重点就为了解决BP全连接网络中因为网络权值参数过多而导致的无法训练的问题,CNN提出的局部连接、权值共享、池化技术都是出于减少网络参数的目的。如下图所示: 假如我们的网络模型是: 输入层->一层隐含层->输出层 样图是100原创 2017-09-03 11:12:17 · 1261 阅读 · 0 评论 -
CNN学习(二)-LeNet网络结构的学习
LeNet简介LeNet神经网络由深度学习三巨头之一的Yan LeCun提出,他同时也是卷积神经网络 (CNN,Convolutional Neural Networks)之父。LeNet主要用来进行手写字符的识别与分类,并在美国的银行中投入了使用。LeNet的实现确立了CNN的结构,现在神经网络中的许多内容在LeNet的网络结构中都能看到,例如卷积层、池化层。虽然LeNet早在20世纪90年代就已原创 2017-09-03 13:45:02 · 1917 阅读 · 0 评论 -
分类器性能指标错误率、正确率、召回率
前言在使用机器学习的方法解决分类问题时,我们通常需要一个指标来衡量我们模型的性能,以下介绍一些常用的分类性能指标,在实际应用中可以依照应用需求采用相应的指标。错误率错误率是使用最普遍、最简单同时又是最粗糙的分类指标。其计算方法为: 设测试样本集T={(X1,Y1),···,(Xn,Yn)},其中Xi为该样本i的输入特征,Yi为样本的真实标签。 T的预测结果:PY={PY1,PY2,···,PYn原创 2017-10-08 16:12:07 · 22134 阅读 · 0 评论 -
K-means聚类(一)
聚类:聚类(clustering)是一种无监督学习(也就是说没有label,因为我们的目标就是为了生成label.),它将相似的样本归类成同一簇,而将不相似的样本归类到其它簇中。 簇识别(cluster indentify)是为了发现有那些簇,同时各种簇里面到底有什么。K-means是一种聚类方法,K的含义是可以生成K个簇(K个类别),而每个类别会有一个中心(centro),这个簇中心是根据簇内元原创 2017-09-30 21:23:22 · 658 阅读 · 0 评论 -
numpy 切片操作
numpy在处理数据的时候,经常会有切片操作,如提取指定几行的数据或者几列的数据,本文记录一些典型的切片方法以备日后查看。一维数组的切片:数组[start:end:step] 从start到end,以step为步长的元素 且:start>>> b=np.random.randint(1,10,[10])>>> barray([6, 5, 2, 3, 9, 9, 3, 8, 5, 8])正向第原创 2017-10-05 11:05:39 · 4890 阅读 · 3 评论 -
范数
在机器学习领域中,有时我们需要衡量一个向量的长度或大小。此时我们经常使用成为范数的函数来衡量向量的大小。 范数本质上是一类映射关系,将向量空间的所有向量映射到非负实数域上。这个非负的数值可以理解为向量的长度。 范数需要的满足的条件: 1)f(x)=0 <=> x=0,x是零向量 2)f(x)>=0,非负性 3)f(x+y)<=f(x)+f(y) 4) f(ax)=|a|f原创 2017-10-11 22:56:19 · 2206 阅读 · 0 评论 -
FP-growth算法——原理
FP-growth算法之前我们已经可以使用Apriori算法来在一个数据集里面找出那些支持度较高的元素组合,我们来回顾一下Apriori算法的核心。 Apriori算法的核心其实就是分三步: 1.在现有组合的基础上,生成可能的元素组合类型 2.遍历数据集,求得这些元素组合的支持度(频率) 3.剪枝,除去支持度不符合条件的组合。 这三步迭代即可。其中在原创 2017-10-20 23:42:04 · 4740 阅读 · 3 评论 -
机器学习数据标准和归一化
很多时候我们需要对数据集里面的数据进行标准化和归一化处理。例如: X={年龄(年),体重(kg)} 和 X={年龄(年),体重(g)},虽然逻辑上表达的同样的含义,但是反应在数据上两个分量却是相差特别大。这个时候我们往往希望两个分量的值不会因为量纲不同而差异太大,使得各的分量对模型的影响都差不多。这个时候我们就会使用标准化和归一化技术。另外,使用标准化和归一化技术还可以加速模型的收敛。这是因为试想原创 2017-10-21 21:09:45 · 1673 阅读 · 0 评论 -
Word Embedding 和Skip-Gram模型 的实践
什么是Word Embedding? word Embedding其实就是一个对词语进行向量化的高级方法。该方法对词语进行向量化后结果能够倾向于同类词语之间向量的距离会更小。例如在一堆预料中,I like apple和I like watermelon.经常出现,那么 apple 和watemelon向量化后两个向量的距离结果应该比apple和China两个向量之间距离小。原创 2017-10-30 18:18:52 · 1345 阅读 · 0 评论 -
Logistic Regression的一些认识
最近在看Andrew Ng的机器学习内容,接触到了Logistic Regression.写下一些个人认识分享给大家。个人认识有限,如果有错误的地方还请各位大牛指正。Logistic回归模型讲义在介绍Logistic回归模型之前介绍了关于普通线性回归。普通线性回归,就是假设目标因变量y与自变量X之间是存在线性关系(这种关系当然是基于经验的,或者是我们一拍脑袋决定的),然后将线性关系中的那几个参数确原创 2016-03-07 00:58:01 · 1134 阅读 · 1 评论