- 博客(17)
- 资源 (19)
- 问答 (2)
- 收藏
- 关注
原创 学习SVM(四) 理解SVM中的支持向量(Support Vector)
我们在开始接触SVM时肯定听到过类似这样的话,决定决策边界的数据叫做支持向量,它决定了margin到底是多少,而max margin更远的点,其实有没有无所谓。 然后一般会配一张图说明一下哪些是支持向量(Support Vector),这个图在之前的学习SVM(二) 如何理解支持向量机的最大分类间隔里面就有,这里不在重复贴了。但是问题的关键是,这些Support Vector是怎么被确定的呢?
2017-06-25 16:03:43 29563 3
原创 学习SVM(二) 如何理解支持向量机的最大分类间隔
学习SVM(一) SVM模型训练与分类的OpenCV实现 学习SVM(二) 如何理解支持向量机的最大分类间隔 学习SVM(三)理解SVM中的对偶问题 学习SVM(四) 理解SVM中的支持向量(Support Vector)SVM算法在在1995年正式发表,在针对中小型数据规模的分类任务上有着卓越的效果,同时有着完整的理论证明,在20世纪末的几年和21世纪初的10年完胜神经网络,吴恩达在其200
2017-06-24 16:01:45 29509 9
原创 如何理解卷积神经网络中的权值共享
权值共享这个词最开始其实是由LeNet5模型提出来,在1998年,LeCun发布了LeNet网络架构,就是下面这个: 虽然现在大多数的说法是2012年的AlexNet网络是深度学习的开端,但是CNN的开端最早其实可以追溯到LeNet5模型,它的几个特性在2010年初的卷积神经网络研究中被广泛的使用——其中一个就是权值共享。其实权值共享这个词说全了就是整张图片在使用同一个卷积核内的参数,比如一个
2017-06-23 19:53:08 55693 21
原创 理解交叉熵作为损失函数在神经网络中的作用
交叉熵的作用通过神经网络解决多分类问题时,最常用的一种方式就是在最后一层设置n个输出节点,无论在浅层神经网络还是在CNN中都是如此,比如,在AlexNet中最后的输出层有1000个节点: 而即便是ResNet取消了全连接层,也会在最后有一个1000个节点的输出层: 一般情况下,最后一个输出层的节点个数与分类任务的目标数相等。假设最后的节点数为N,那么对于每一个样例,神经网络可以得到一个N维的
2017-06-18 15:59:10 57462 24
原创 理解深层神经网络中的迁移学习及TensorFlow实现
什么是迁移学习在深度学习中,所谓的迁移学习是将一个问题A上训练好的模型通过简单的调整使其适应一个新的问题B。在实际使用中,往往是完成问题A的训练出的模型有更完善的数据,而问题B的数据量偏小。而调整的过程根据现实情况决定,可以选择保留前几层卷积层的权重,以保留低级特征的提取;也可以保留全部的模型,只根据新的任务改变其fc层。迁移学习的作用那么对于不同的任务,为什么不同的模型间可以做迁移呢?上面提到了,
2017-06-17 22:04:30 12034 17
原创 TensorFlow基本操作 实现卷积和池化
之前已经提到过图像卷积的操作和意义,并且用OpenCV中的filter2D函数实现了一些例子。OpenCV中的filter2D函数仅仅是用一个卷积核去卷积单个的图像矩阵,而在TensorFlow中,卷积操作主要用于CNN中的卷积层,所以输入不再仅仅局限与三维或一维的矩阵,卷积核的个数不再是单个,输出的通道数=卷积核的个数,为此TensorFlow提供了tf.nn.conv2d函数实现了一个卷积层的卷
2017-06-17 13:47:41 8375 6
原创 TensorFlow 图像预处理(二) 图像翻转,图像色彩调整
图像翻转 tf.image.flip_up_down:上下翻转 tf.image.flip_left_right:左右翻转 tf.image.transpose_image:对角线翻转 除此之外,TensorFlow还提供了随机翻转的函数,保证了样本的样本的随机性: tf.image.random_flip_up_down:随机上下翻转图片 tf.image.random_flip
2017-06-12 15:55:36 24400 3
原创 TensorFlow 图像预处理(一) 图像编解码,图像尺寸调整
TensorFlow提供了几类图像处理函数,下面介绍图像的编码与解码,图像尺寸调整。编码与解码图像解码与编码:一张RGB三通道的彩色图像可以看成一个三维矩阵,矩阵中的不位置上的数字代表图像的像素值。然后图像在存储时并不是直接记录这些矩阵中的数字,而是经过了压缩编码。所以将一张图像还原成一个三维矩阵的过程就是解码的过程,反之就是编码了。其实如果大家熟悉opencv的话,imread和imwrite就是
2017-06-12 11:34:22 33406 7
原创 TensorFlow 组合训练数据(batching)
在之前的文章中我们提到了TensorFlow TensorFlow 队列与多线程的应用以及TensorFlow TFRecord数据集的生成与显示,通过这些操作我们可以得到自己的TFRecord文件,并从其中解析出单个的Image和Label作为训练数据提供给网络模型使用,而在实际的网络训练过程中,往往不是使用单个数据提供给模型训练,而是使用一个数据集(mini-batch)
2017-06-11 14:35:13 12714
原创 TensorFlow TFRecord数据集的生成与显示
TFRecord TensorFlow提供了TFRecord的格式来统一存储数据,TFRecord格式是一种将图像数据和标签放在一起的二进制文件,能更好的利用内存,在tensorflow中快速的复制,移动,读取,存储 等等。 TFRecords文件包含了tf.train.Example 协议内存块(protocol buffer)(协议内存块包含了字段 Features)。我们可以写一
2017-06-10 13:11:57 26341 26
原创 TensorFlow 队列与多线程的应用
深度学习的模型训练过程往往需要大量的数据,而将这些数据一次性的读入和预处理需要大量的时间开销,所以通常采用队列与多线程的思想解决这个问题,而且TensorFlow为我们提供了完善的函数。实现队列在Python中是没有提供直接实现队列的函数的,所以通常会使用列表模拟队列。 而TensorFlow提供了整套实现队列的函数和方法,在TensorFlow中,队列和变量类似,都是计算图上有状态的节
2017-06-09 10:20:20 2531
原创 Python实现队列数据结构
队列是一种应用广泛的数据结构,是一种只允许在一端进行插入操作,另一端进行删除操作的线性表,具有先进先出(First-In-First-Out)的原则。队列的两种主要操作是:向队列中插入新元素和删除队列中的元素。插入操作也叫做入队,删除操作也叫做出队。入队操作在队尾插入新元素,出队操作删除队头的元素。Python中并没有提供关于队列函数,所以一般把列表当做队列来使用,下面通过类定义队列中的常用操作:c
2017-06-08 12:07:21 1686
原创 Python3 一些与C++不一样的运算符
Python逻辑运算符 逻辑“与”运算符 and 逻辑表达式 a and b 如果变量a,b中有一个是Flase,那么a and b为Flase 如果变量a,b都为True,那么a and b为True逻辑“或”运算符 or 逻辑表达式 a or b 如果变量a,b中最多只有一个是Flase,那么a or b为True 如果变量a,b都为Flase,那么a orb为Flase逻辑“
2017-06-05 16:39:53 1158
原创 Python3 import 与 from...import
在 python 中,用 import 或者 from…import 来导入相应的模块。模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中。导入 sys 模块import sysprint ('命令行参数为:',sys.argv[0])在上的代码中,导入Python的整个sys模块,下面我们想打印第一个命令行参数,也就是文件
2017-06-04 22:46:18 8040
原创 [Intensive Reading]从AlexNet理解卷积神经网络的一般结构
2012年AlexNet在ImageNet大赛上一举夺魁,开启了深度学习的时代,虽然后来大量比AlexNet更快速更准确的卷积神经网络结构相继出现,但是AlexNet作为开创者依旧有着很多值得学习参考的地方,它为后续的CNN甚至是R-CNN等其他网络都定下了基调,所以下面我们将从AlexNet入手,理解卷积神经网络的一般结构。先给出AlexNet的一些参数和结构图: 卷积层:5层 全连接层...
2017-06-04 17:58:37 84606 69
原创 时间复杂度的计算
如果我们想验证一段代码的效率,一个最直接的办法就是编出来之后运行一下,这个方法称为事后统计方法,但是这个方法存在着非常大的弊端,比如我们需要时间编写代码,而代码写完后如果不符合要求需要重新编写;测试的方法会受到硬件和内存占有率的影响等等。所以为了让代码的评估更加规范和科学,我们更多的使用事前分析估计方法,即计算一个代码的时间复杂度。 其实一段代码的时间复杂度计算很容易,它是一种对计算次数的统计,它
2017-06-02 11:15:26 3274 1
原创 理解激活函数在神经网络模型构建中的作用
什么是激活函数在生物学家研究大脑神经元工作机理时,发现如果一个神经元开始工作时,该神经元是一种被激活的状态,我想着大概就是为什么神经网络模型中有一个单元叫做激活函数。 那么什么是激活函数呢,我们可以从逻辑回归模型开始理解它,下图是一个Logistic回归分类器: 在上图中我们发现,Logistic回归分类器在对所有的输入做了线性相加(Net ipt function)之后,其结果经过了一
2017-06-01 12:02:36 12857 2
眼球跟踪定位算法,eyelike
2018-04-14
numpy-1.10.0
2017-05-13
matplotlib-1.3.0
2017-05-13
软件加密工具Zprotect
2017-03-22
《机器学习实战》源码
2017-02-13
《机器学习实战》源代码
2017-01-24
Halcon试用版生成C++代码
2017-04-03
软件设计中,加入动态模型的方法
2017-01-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人