![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习
Polaris47
人工智能的人工
展开
-
垃圾分类数据集
需要的请联系 q838132989原创 2020-04-07 13:58:27 · 11400 阅读 · 134 评论 -
神经网络训练常见的37个坑
转自:http://www.infoq.com/cn/articles/37-reasons-why-your-neural-network-is-not-working神经网络已经持续训练了 12 个小时。它看起来很好:梯度在变化,损失也在下降。但是预测结果出来了:全部都是零值,全部都是背景,什么也检测不到。我质问我的计算机:“我做错了什么?”,它却无法回答。如果你的模型正在输出垃...转载 2019-07-01 10:38:21 · 6841 阅读 · 1 评论 -
目标检测算法综述
Two - stage:1、生成可能区域(Region Proposal) & CNN 提取特征2、放入分类器分类并修正位置发展:R-CNN -> SPP Net -> Fast R-CNN -> Faster R-CNN -> Mask R-CNNOne - stage:1.直接对预测的目标物体进行回归...原创 2019-04-18 10:56:55 · 320 阅读 · 0 评论 -
优化算法总结
1-1.批量梯度下降(Batch gradient descent) - 训练集较小对整个训练集执行梯度下降法,然后才能进行一步梯度下降法。即一次遍历训练集只做一个梯度下降。优点:对于凸目标函数,可以保证全局最优; 对于非凸目标函数,可以保证一个局部最优。缺点:速度慢;数据量大时不可行;计算机内存问题1-2.随机梯度下降(SGD) -训练集较大仅计算某个样本的梯度...原创 2019-04-18 10:56:06 · 312 阅读 · 0 评论 -
目标检测中的IoU和NMS
IoU概念:目标检测的评价体系中,有一个参数叫做IoU,简单来讲就是模型产生的目标窗口和原来标记窗口的交并比:非极大值抑制NMS:目标检测算法会从一张图片中找出n个可能是物体的矩形框,然后为每个矩形框为做类别分类概率:就像上面的图片一样,定位一个车辆,最后算法就找出了一堆的方框,我们需要判别哪些矩形框是没用的。非极大值抑制的方法是:先假设有6个矩...原创 2019-04-18 10:55:04 · 1134 阅读 · 0 评论 -
MTCNN总结
MTCNN(Multi-task Cascaded Convolutional Networks,多任务级联卷积神经网络)同时实现人脸检测和对齐当给定一张照片的时候,将其缩放到不同尺度形成图像金字塔,以达到尺度不变。Stage 1:使用P-Net是一个全卷积网络,用来生成候选窗和边框回归向量(bounding box regression vectors)。使...原创 2019-04-18 10:52:38 · 359 阅读 · 0 评论 -
损失函数总结
1. 均方误差损失函数(回归问题)注意:当我们用MSE做为损失函数的时候,最好别用sigmoid,tanh这类的激活函数。从数学的角度来理解,sigmoid函数当x趋于正无穷或者负无穷的时候,函数值接近于1和0,也就是当自变量大于一定值的时候,函数变得非常平缓,斜率比较小,甚至变为0。然后当斜率很小的时候,他的导数就很小,而BP在反向传播更新参数的时候,就是要靠导数。新的参数 = 旧的...原创 2019-04-17 17:56:10 · 526 阅读 · 0 评论 -
实时无感人脸识别考勤机项目
时间:2018-07 ~ 2019-03项目简介:此项目是基于mtcnn和facenet开发的一套实时无感考勤系统。首先是待考勤人员的个人信息录入。然后在过道或者入口装置监控摄像头,当有人经过时,摄像头抓取人脸并上传服务器,对抓取到的人脸进行人脸识别,判断此人身份,若此人未曾录入过人脸信息(即陌生人),则管理员将收到一条有陌生人的微信推送。若是已录入过信息的人员经过,管理员和此人都会...原创 2019-04-17 17:55:20 · 7114 阅读 · 8 评论 -
Batch Normalization
只有当训练数据和测试数据是满足相同分布时,我们的模型才能够通过训练数据训练出在测试集上有好的效果。而BatchNorm就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布。训练深度网络的时候经常发生训练困难的问题,因为,每一次参数迭代更新后,上一层网络的输出数据经过这一层网络计算后,数据的分布会发生变化,为下一层网络的学习带来困难(神经网络本来就是要学习数据的分布,要是分布一...原创 2019-04-17 17:53:13 · 191 阅读 · 0 评论 -
梯度消失与梯度爆炸
梯度消失、爆炸原因:目前优化神经网络的方法都是基于反向传播的思想,即根据损失函数计算的误差通过梯度反向传播的方式,指导深度网络权值的更新优化。原因: (网络太深,激活函数求导小于1)计算梯度的公式有一项是对激活函数进行求导,如果此部分大于1,那么层数增多的时候,最终的求出的梯度更新将以指数形式增加,即发生梯度爆炸,如果此部分小于1,那么随着层数增多,求出的梯度更新信息将会以指...原创 2019-04-17 17:52:41 · 201 阅读 · 0 评论 -
激活函数比较
为什么要用激活函数如果不用激励函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。1.Sigmoid函数缺点:(1)在深度神经网络中梯度反向传递时导致梯度爆炸和梯度消失。如果我们初始化神经网络的权值为[0,1...原创 2019-04-17 17:52:07 · 321 阅读 · 0 评论 -
权重初始化方法
作用:缓解梯度消失和梯度爆炸问题,有利于模型性能和收敛速度。1.把权重初始化为0把权重初始化为0的方式不可取的。这是因为如果把w初始化0,那么每一层的神经元学到的东西都是一样的(输出是一样的),而且在反向传播的时候,他们的梯度相同。在这种情况下, 隐含层单元就会完全一样,因此他们完全对称。导致模型性能下降,还会出现梯度消失的情况。2. 小随机数初始化只要随机初始...原创 2019-04-17 17:51:23 · 772 阅读 · 0 评论 -
如何提升模型的性能
从数据上提升性能 收集更多的数据 产生更多的数据 对数据做缩放 对数据做变换 特征选择 重新定义问题 从算法上提升性能 算法的筛选 从文献中学习 从算法调优上提升性能 模型可诊断性(判断过拟合还是欠拟合) 权重的初始化(0初始化;小随机值初始化;Xavier初始化;He初始化) ...原创 2019-04-17 17:50:34 · 404 阅读 · 1 评论 -
对于训练集与验证集测试集分布不同的处理办法
猫的分类举例:假设我们可以从网上获取大量的高清晰的猫的图片去做分类,如20W张,但是只能获取少量利用手机拍摄的不清晰的图片,如1W张。但是我们系统的目的是应用到手机上做分类。 也就是说,我们的训练集和开发集、测试集来自于不同的分布。那么我们如何去确定是由于分布不匹配的问题导致开发集的误差,还是由于算法中存在的方差问题所致?...原创 2019-04-17 17:49:45 · 6996 阅读 · 0 评论 -
深度学习为什么要这么深?
1.神经网络做的就是向某种算法或者函数逼近。训练过程就是调整参数的过程,当层数越深,可调参数越多,意味着调整的自由度越大,能更好的拟合复杂的目标函数2. 特征间存在层次性,层次更深,特征不变性更强,类别分类能力越强神经网络从浅层到深层,先提取低层次的简单特征(边缘特征)然后,将简单特征组合成复杂一点的特征(器官)再将前层提取到的特征组合起来逐渐提取到高维特征...原创 2019-04-17 17:48:31 · 804 阅读 · 0 评论 -
如何解决数据不平衡问题?
在学术研究与教学中,很多算法都有一个基本假设,那就是数据分布是均匀的。当我们把这些算法直接应用于实际数据时,大多数情况下都无法取得理想的结果。因为实际数据往往分布得很不均匀,都会存在“长尾现象”,也就是所谓的“二八原理”。影响:(1)少数类所包含的信息就会很有限,从而难以确定少数类数据的分布,即在其内部难以发现规律,进而造成少数类的识别率低(2)不恰当的归纳偏置。许多归纳推理系统...原创 2019-04-17 17:47:29 · 3110 阅读 · 0 评论 -
inceptionv3迁移学习 训练+测试
迁移学习在实际应用中的意义非常大,它可以将之前已学过的知识(模型参数)迁移到一项新的任务上,使学习效率大大的提高。我们知道,要训练一个复杂的深度学习模型,成本是十分巨大的。而迁移学习可以大大的降低我们的训练成本,在短时间内就能达到很好的效果。 迁移学习的四种应用场景:场景一:数据集小,数据相似度高(与pre-trained model的训练数据相比而言) 在这种情况下...原创 2018-11-16 12:44:19 · 6496 阅读 · 30 评论 -
tensorflow + python + keras-yolov3目标检测
keras-yolo3源码地址:https://github.com/qqwweee/keras-yolo3 要跑通这个项目,首先,在官网下载yolo模型参数(https://pjreddie.com/darknet/yolo/),然后把yolov3.cfg yolov3.weights转换成yolo.h5文件放在model_data/下,然后运行convert.py 第一个参数为yo...原创 2018-11-13 21:02:31 · 1711 阅读 · 8 评论 -
Tensorflow - 加载卷积神经网络实现手写体数字识别
上一篇博客中,我们已经训练好了模型https://blog.csdn.net/Polaris47/article/details/80718328接下来我们要加载模型并识别真实场景下的一个手写体数字在此之前,我们先要准备好一张28*28像素的图像(可用ps制作),然后通过处理将像素的强度值变为0-1之间,之后即可输入模型进行识别。保存已训练的模型文件如下:代码如下:i...原创 2018-11-07 18:19:39 · 352 阅读 · 0 评论