
机器学习
文章平均质量分 92
MarDino
这个作者很懒,什么都没留下…
展开
-
图像修复(深度学习版)
前言这几天在折腾一项大作业使用深度学习来实现图像修复图像修复这块在CV界还是有很多坑需要去填的从2016年横空出世的自解编码器,到英伟达退出的Pconv模型,再到注意力机制各种玩的很花的模型都能进一步提升修复能力下面我就介绍一项自编解码器,即AutoEncoderDecoder之前一直不知道该怎么去做然后参考了一篇基于pytorch的https://blog.youkuaiyun.com/q...原创 2019-12-06 14:05:49 · 3434 阅读 · 6 评论 -
卷积神经网络的可视化——热力图Grad CAM
前言在大部分人看来,卷积神经网络是一种黑盒技术,通过理论推导,以及梯度传播,去不断逼近局部最优解。这也导致人们对于神经网络研究进展的缓慢,因为这种黑盒模型无法给出研究人员进行改进的思路。所幸的是,近几年来的论文,也从常规的神经网络结构转向神经网络可视化,目的是让我们能看见卷积神经网络“学习”到了什么,神经网络是怎么判别物体的类别今天就要为大家介绍一种卷积神经网络可视化的技巧,它发表于一篇论文,...原创 2019-11-30 14:34:20 · 13936 阅读 · 6 评论 -
kmeans聚类算法
前言kmeans是一种聚类算法其简单,易用在机器学习,数据挖掘领域常常应用原理众所周知聚类就是要对一堆杂乱无章的数据进行分类合并假设我们有数据集dataset,并且将其聚类为k个簇kmeans聚类算法的思想有如下几步第一步首先在数据集随机挑选k个点,分别作为这k个簇的质心第二步其余的点根据欧式距离公式,找到离其自身最近的质心并合并为一类第三步现在我们已经初步的到聚类过的...原创 2019-11-28 14:47:27 · 640 阅读 · 0 评论 -
Squeeze_Excitation个人理解
前言在神经网络地不断发展中,研究人员不断探索网络中通道之间的特性在最近提出的几个网络比如目标检测中的ResNext,甚至是注意力Attention机制都采用了一种从全局信息采集,对各个通道分配不同的权值,以此来获得更好的信息流动Squeeze_Excitation这种从全局信息来调整各个通道的权重比,最早是应用在Squeeze_excitation的网络块...原创 2019-11-27 10:52:08 · 3416 阅读 · 1 评论 -
Keras实现层的分离
前言笔者最近在复现Shufflenet Mobilenet 和谷歌最新推出的EfficientNet结构发现各大网络都在往轻巧化方向发展其中一个很关键的,就是Depthwise卷积结构的提出,可以参考我上篇博客而其中Depthwise卷积需要对单独的通道在做一次卷积,而不是多通道上进行累加因此这就涉及到了通道的分离下面我们直接来看代码代码实现import kerasfrom ke...原创 2019-11-18 19:51:06 · 613 阅读 · 0 评论 -
DropConnect与Dropout区别
训练神经网络过程中,过拟合常常出现为了避免出现过拟合Hinton提出使用Dropout层来减少过拟合Dropout就是将某些神经网络的隐层单元的输出设置为0从而反向传播的时候不会进行参数的更新现在很多机器学习框架已经帮我们实现好了Dropout层了我们只需传入保留率,这是一个数值在0-1的超参数就可以实现DropoutDropConnect而DropConnect它丢弃掉的是神经...原创 2019-11-15 13:51:17 · 1696 阅读 · 0 评论 -
一文读懂Depthwise卷积
视频来源:https://www.bilibili.com/video/av67348232?from=search&seid=10221504884724623592常规卷积相信接触过卷积神经网络的都知道常规卷积的操作我们通过N个DkDk大小的卷积核卷积出来的结果设为DnDn*N现在我们来计算一下常规卷积的计算开销一个卷积核做一次卷积操作需要的开销为 ...原创 2019-11-15 10:10:24 · 14376 阅读 · 2 评论 -
Swish激活函数
swish激活函数的格式f(x) = x*sigmoid(βx)β是个可调参数在深层模型上要优于传统的relu具有无上界,有下界,光滑,非单调绘图代码import numpy as npimport matplotlib.pyplot as pltdef sigmoid(x): return 1/ (1 + np.exp(-x))x = np.arange(-5, ...原创 2019-11-14 18:31:03 · 6461 阅读 · 2 评论 -
Mish激活函数
前言人们对激活函数都在不断探究,而现在广泛应用的激活函数通常是relu,tanh这两种但是relu在负值的时候直接截断梯度下降的不够平滑因而有团队提出一种新的激活函数来进行优化Mish激活函数Mish激活函数的表达式为 Mish = x*tanh(ln(1+e^x))使用matplotlib画图可得从图中可以看出他在负值的时候并不是完全截断而是允许比较小的负梯度流...原创 2019-11-13 09:16:19 · 19492 阅读 · 1 评论 -
LSTM长短期记忆模型
前言传统卷积神经网络更加针对的是空间相关性的数据,比如各种各样的图片而生活中,并不是所有数据都是具有较强的空间相关性的。比如我们的文字,语音,它是一种随时间变化的数据,我们常称这种数据为序列数据于是出现了RNN循环神经网络来解决这种序列数据。但是序列数据通常长度很长,它相当于卷积神经网络一层层卷积层,当长度过长,会引发梯度消失或梯度爆炸。卷积神经网络我们可以控制,但是序列数据长度就在这儿,如...原创 2019-11-11 16:10:38 · 1634 阅读 · 0 评论 -
ShuffleNet原理
前言ShuffleNet是一款旷视研究院提出的针对移动设备的轻量级网络它是为了进一步改善MobileNetShuffleNet作者发现,虽然MobileNet作者采用逐通道卷积与逐点卷积(即用1x1卷积块进行卷积)来降低模型参数,但大部分参数都集中在1x1卷积快计算中。所以ShuffleNet改进方法就是将特征图进行分组,让卷积块只对组内的特征图进行计算,分组后,网络需要对不同组的输出进行信...原创 2019-11-06 19:04:58 · 636 阅读 · 0 评论 -
激活函数解析
前言激活函数在神经网络经常用到激活函数,激活函数的作用是对神经元的输出做一个非线性的变换,进而求得对应的梯度,进行梯度下降优化Sigmoidsigmoid函数表示式为sigmoid(x) = 1 / (1 + e^(-x))它相较阶跃函数有更好的可导性如果设sigmoid函数为f(x)则其导数为f(x)*(1-f(x))所以它求导也很简单但是当输入发生偏移,比如偏移到3或4,其...原创 2019-11-05 18:21:47 · 320 阅读 · 0 评论 -
MXNET自定义损失函数
在学习李沐老师的目标检测篇章目标检测中由于负类较多,正类较少,我们可以适当的减少对负类的惩罚因此根据视频教程我们来重新写一个损失函数通常mxnet的损失函数需要继承Loss类from mxnet.gluon.loss import Lossclass FocalLoss(gluon.loss.Loss): def __init__(self, axis=-1, alpha=0...原创 2019-10-31 16:01:01 · 953 阅读 · 1 评论 -
循环神经网络初接触
前言之前的文章都是以卷积网络为基础,对图像进行一些处理。但是有一类数据实际上并不是跟图像一样具有较强的空间关联性。而是与时间有关。比如我们的说的一句话,如“你好”,说出“你”这个字,下一个字大概率是“好”,这样组成一个词“你好”,所以传统卷积网络并不适合处理语言,因此我们将引出循环神经网络来对语言进行训练。语言模型首先我们引入语言模型,这是自然语言处理常用的技术。由前面的例子我们可以认为一句...原创 2019-10-23 18:33:45 · 169 阅读 · 0 评论 -
飞桨框架初体验——人脸识别
前言笔者最近在尝试接触飞桨框架感觉百度开发的这个框架性能,架构都还是很不错的相比其他的框架简洁很多并且官网还有一些项目可供学习今天写这篇博客是基于https://aistudio.baidu.com/aistudio/projectdetail/44338人脸识别项目并对总体进行一个总结图像数据处理图像数据有很多种处理方法该项目选择以字典形式进行存储import osimpo...原创 2019-10-18 13:18:17 · 3790 阅读 · 0 评论 -
解析深度学习优化算法(包含一定公式推导)
前言在深度学习任务中,我们通常会定义一个损失函数,其表征的是预测值与实际值的差距,然后通过一定的优化算法来减少损失函数计算出来的损失值在这个优化环节上,算法起到了至关重要的作用,我们需要通过算法来快速降低我们的训练误差,同时还要防止过拟合现象的出现在深度学习中挑战在深度学习中,优化各个参数其实就是对损失函数求最小值。而我们在一个二次函数中,很明显就能知道哪个是最小值但是深度学习中,特征...原创 2019-10-12 12:55:49 · 1207 阅读 · 0 评论 -
Keras实现CNN网络识别验证码
最近在极客时间学习Tensorflow教程,想写一篇博文来总结一下CNN识别验证码这个小项目生成验证码我们会引入captcha这个库来生成我们的验证码这个库安装也很简单直接使用pip install 安装即可我们生成一个验证码的数据集from captcha.image import ImageCaptchaimport randomimport numpy as npimpo...原创 2019-09-04 18:46:18 · 1212 阅读 · 8 评论 -
机器学习集合划分
众所周知,在机器学习深度学习领域,合理划分训练集验证集和测试集是很重要的,本文主要介绍如何划分。过去,人们运用机器学习传统方法的时候,一般将训练集和测试集划为7:3.若有验证集,则划为6:2:2. 这样划分确实很科学,当数据量不大的时候(万级别及以下)。但到了大数据时代,数据量陡增为百万级别,此时我们不需要那么多的验证集和训练集。假设有100W条数据,只需要拿出1W条来当验证集,1W条来...转载 2019-09-27 10:20:44 · 208 阅读 · 0 评论 -
残差网络ResNet学习笔记
引言随着深度学习的发展,简单的浅层网络卷积结构已经无法满足需求。而一味的加深网络结构,又会使网络很难收敛。研究者们都在网络结构上进行创新。而一种新型结构Resnet在ImageNet比赛上拔得头筹,拿下识别冠军,引起了不小的轰动基础结构 残差块残差网络是由一个个残差块来进行组成的这是一种跳跃连接的方式第一条线路经过常规的卷积,激活,批量归一化后,在输出的时候与输入进行相加。最后整个输...原创 2019-09-29 09:13:27 · 1095 阅读 · 0 评论 -
Softmax回归
前言Softmax回归主要用于分类问题,它所解决的是常规分类算法输出值不稳定的问题比如 有三种类别分类,我对于一组图像输出值为0.1 100 0.1那很显然,我们第二个输出值较大,可以表明第二类是我们预测的类别但是如果对于另外一组图片 1000 100 1000 对于这种例子,在刚刚举的例子最大输出值,在这一组就显得比较小,这种误差值比较大,我们难以在后续的优化算法进行优化所以我们提出的...原创 2019-10-08 15:51:08 · 179 阅读 · 0 评论 -
1X1卷积核的理解
前言1x1卷积核在近几年应用广泛。比如残差网络Resnet,Googlenet的Inception块,都有1x1卷积核的身影,下面笔者讲述下自己对1x1卷积核的理解1x1卷积核简介大家可能常见的都是3x3, 5x5等卷积核而且在数字图像处理应用上,经常会有一些设计好的卷积核来去进行边缘检测而1x1卷积核并没有这种作用它的长宽度均为1,这也使他作用范围是在通道维数上面实际上,它的作用跟...原创 2019-10-08 16:51:13 · 1811 阅读 · 1 评论 -
Tensorflow初接触——房价预测
最近笔者进入学校的机器学习实验室,开始学习相关知识。并跟随极客时间的相关课程学习。第一次接触机器学习框架Tensorflow,遇到的坑也不少,这里我以吴恩达机器学习的房价数据为基础,用Tensorflow进行简单的线性回归,并使用Tensorboard进行数据流图的可视化基础概念首先简要介绍以下Tensorflow的几个概念1.张量,也就是tensor,我们只需简单的理解为线性代数的向量就...原创 2019-08-16 11:45:45 · 380 阅读 · 0 评论