图像深度

【深度学习】卷积神经网络CNN基本原理

╄→гoц情女王★ 提交于 2019-11-28 15:21:06
为什么要用卷积神经网络? 传统神经网络的劣势 我们知道,图像是由一个个像素点构成,每个像素点有三个通道,分别代表RGB颜色,那么,如果一个图像的尺寸是(28,28,1),即代表这个图像的是一个长宽均为28,channel为1的图像(channel也叫depth,此处1代表灰色图像)。如果使用全连接的网络结构,即网络中的神经与与相邻层上的每个神经元均连接,那就意味着我们的网络有28 * 28 =784个神经元,hidden层采用了15个神经元,那么简单计算一下,我们需要的参数个数(w和b)就有:784*15*10+15+10=117625个,这个参数太多了,随便进行一次反向传播计算量都是巨大的,从计算资源和调参的角度都不建议用传统的神经网络。 卷积神经网络是什么? 三个基本层 卷积层(Convolutional Layer) 我们用传统的三层神经网络需要大量的参数,原因在于每个神经元都和相邻层的神经元相连接,但是思考一下,这种连接方式是必须的吗?全连接层的方式对于图像数据来说似乎显得不这么友好,因为图像本身具有“二维空间特征”,通俗点说就是局部特性。譬如我们看一张猫的图片,可能看到猫的眼镜或者嘴巴就知道这是张猫片,而不需要说每个部分都看完了才知道,啊,原来这个是猫啊。所以如果我们可以用某种方式对一张图片的某个典型特征识别,那么这张图片的类别也就知道了。这个时候就产生了卷积的概念

深度学习笔记14_猫狗分类案例优化 - 数据增强

不想你离开。 提交于 2019-11-28 10:39:27
猫狗分类案例优化 - 数据增强 数据增强的基本概念 **数据增强:**利用多种数字图像处理方法(旋转,剪切,错切,缩放,翻转,边缘填充)生成可信图像. 其目标是,模型在训练时不会两次查看完全相同的图像。这让模型能够观察到数据的更多内容,从而具有更好的泛化能力。 在keras中可以通过:ImageDataGenerator函数来实现图像的随机变换. rotation_range 是角度值(在 0~180 范围内),表示图像随机旋转的角度范围。 width_shift 和 height_shift 是图像在水平或垂直方向上平移的范围(相对于总宽度或总高度的比例)。 shear_range 是随机错切变换的角度。 zoom_range 是图像随机缩放的范围。 horizontal_flip 是随机将一半图像水平翻转。如果没有水平不对称的假设(比如真实世界的图像),这种做法是有意义的。 fill_mode是用于填充新创建像素的方法,这些新像素可能来自于旋转或宽度/高度平移。 import os , shutil original_data_dir = "G:/Data/Kaggle/dogcat/train" base_dir = "G:/Data/Kaggle/dogcat/smallData" if os . path . isdir ( base_dir ) == False :

深度学习网络篇——ZFNet(Part3 ZFNet的实验环节)

限于喜欢 提交于 2019-11-28 08:15:20
上篇ZFNet的文章中我们简单的分享了一下ZFNet的网络结构和训练细节,这篇文章将分享ZFNet论文上的实验环节。ZFNet做了很多巧妙的实验,从这边文章中也可以看到未来深度网络发展方向的蛛丝马迹。 一、Experiments实验 1.ImageNet 2012 该数据集由1.3M / 50k / 100k的训练/验证/测试样例组成,分布在超过1000个类别中。 首先,使用(Krizhevsky等,2012)中指定的确切体系的模型,我们尝试在验证集上复制它们的结果。 1)我们在ImageNet 2012验证集,错误率达到其报告值的0.1% 2)与作者给出的错误率很一致。以此作为参考标准。 我们用新修改的模型,分析性能,获得了不错的结果。 该模型显着地打败了(Krizhevsky等,2012)的架构,击败了他们的单个模型的结果1.7%(测试top 5的成绩)。 当我们组合多个模型时,我们获得了14.8%的测试误差,发布性能中最佳。 我们注意到,这个错误几乎是ImageNet 2012分类挑战中顶级成绩(使用非卷积网络)错误率的一半,它获得了26.2%的错误(Gunji et al,2012) 【上图解读】ImageNet 2012分类错误率。 *表示在ImageNet 2011和2012训练集上都训练过的模型。 2.不同的ImageNet模型尺寸 1.对AlexNet

深度学习网络篇——ZFNet(Part2 ZFNet的训练细节)

对着背影说爱祢 提交于 2019-11-28 08:15:04
上篇文章中我们介绍了ZFNet的发展历程和一些算法小心机,在这篇文章中我们将分享一下ZFNet的训练细节!Come on!!!Baby!!! 一、ZFNet训练细节 【AlexNet和ZFNet的区别】 1.AlexNet中使用2个GPU运的稀疏连接;在ZFNet中被单GPU密集连接替换; 2.将AlexNet第一层卷积核由11变成7,步长由4变为2(预告一波); 【ZFNet的训练】 ------(预处理)该模型在ImageNet 2012培训集上进行了培训(130万张图像,分布在1000多个不同的类别)。 ------每个RGB图像都经过预处理,方法是将最小尺寸调整为256,裁剪图片中间的256x256区域,然后减去整张图像每个像素的颜色均值,然后用10个不同224x224窗口对原图像进行裁剪(中间区域加上四个角落,及水平翻转图像)。 ------进行随机梯度下降法,对128个图片组成的块来更新参数。 ------起始学习率为0.01,动量系数为0.9。当验证集误差趋近于收敛时,手动调整学习率。 ------在全连接网络中使用系数为0.5的dropout(Hinton等,2012),且所有权值都初始化为0.01,偏置设为0。 ------高训练集的大小。 ------我们在70个迭代之后停止了训练,在单个GTX580 GPU上花了大约12天,基于(Krizhevsky等

深度学习_调参经验

时光怂恿深爱的人放手 提交于 2019-11-28 05:17:27
面对一个图像分类问题,可以有以下步骤: 1.建立一个简单的CNN模型,一方面能够快速地run一个模型,以了解这个任务的难度 卷积层1 :卷积核大小3*3,卷积核移动步长1,卷积核个数64,池化大小2*2,池化步长2,池化类型为最大池化,激活函数ReLU。 卷积层2 :卷积核大小3*3,卷积核移动步长1,卷积核个数128,池化大小2*2,池化步长2,池化类型为最大池化,激活函数ReLU。 卷积层3 :卷积核大小3*3,卷积核移动步长1,卷积核个数256,池化大小2*2,池化步长2,池化类型为最大池化,激活函数ReLU。 全连接层 :隐藏层单元数1024,激活函数ReLU。 分类层 :隐藏层单元数10,激活函数softmax。 参数初始化,所有权重矩阵使用random_normal(0.0, 0.001),所有偏置向量使用constant(0.0)。使用cross entropy作为目标函数,使用Adam梯度下降法进行参数更新,学习率设为固定值0.001。 该网络是一个有三层卷积层的神经网络,能够快速地完成图像地特征提取。全连接层用于将图像特征整合成分类特征,分类层用于分类。cross entropy也是最常用的目标函数之一,分类任务使用cross entropy作为目标函数非常适合。Adam梯度下降法也是现在非常流行的梯度下降法的改进方法之一,学习率过大会导致模型难以找到较优解

深度学习基础(CNN详解以及训练过程1)

别等时光非礼了梦想. 提交于 2019-11-27 21:03:18
深度学习是一个框架,包含多个重要算法: Convolutional Neural Networks(CNN)卷积神经网络 AutoEncoder自动编码器 Sparse Coding稀疏编码 Restricted Boltzmann Machine(RBM)限制波尔兹曼机 Deep Belief Networks(DBN)深信度网络 Recurrent neural Network(RNN)多层反馈循环神经网络神经网络 对于不同问题(图像,语音,文本),需要选用不同网络模型比如CNN RESNET等才能达到更好效果。 今天来讲最基础的CNN网络。 可以不可以模仿人类大脑的这个特点,构造多层的神经网络,较低层的识别初级的图像特征,若干底层特征组成更上一层特征,最终通过多个层级的组合,最终在顶层做出分类呢?答案是肯定的,这也是许多深度学习算法(包括CNN)的灵感来源。 CNN网络介绍 卷积神经网络是一种多层神经网络,擅长处理图像特别是大图像的相关机器学习问题。 卷积网络通过一系列方法,成功将数据量庞大的图像识别问题不断降维,最终使其能够被训练。CNN最早由Yann LeCun提出并应用在手写字体识别上(MINST)。LeCun提出的网络称为LeNet,其网络结构如下: 这是一个最典型的卷积网络,由卷积层、池化层、全连接层组成。其中卷积层与池化层配合,组成多个卷积组,逐层提取特征

周志华:“深”为什么重要,以及还有什么深的网络

此生再无相见时 提交于 2019-11-27 14:50:26
本文约 11000 字, 建议阅读 20 分钟。 本文为你整理周志华教授的角度深度神经网络之所以获得成功的本质因素,找到神经网络之外的其它的深度模型。 8 月 10 日至 16 日,IJCAI 2019 在中国澳门隆重召开。14 日下午, 南京大学周志华 教授进行特邀大会演讲,演讲主题是 《Deep Learning: Why deep and is it only doable for neural networks?》 。在演讲中,周志华教授从自己的角度解读了深度神经网络之所以获得成功的本质因素,以及如何在兼顾这些因素的同时,找到神经网络之外的其它的深度模型。 我们把演讲全文整理如下。 一、深度学习就等于深度神经网络吗? 深度学习今天已经有各种各样的应用,到处都是它,不管图像也好,视频也好,声音自然语言处理等等。那么我们问一个问题,什么是深度学习? 我想大多数人的答案,就是深度学习差不多就等于深度神经网络。有一个非常著名的学会叫 SIAM,是国际工业与应用数学学会,他们有一个旗舰的报纸叫 SIAM news。在去年的 6 月份,这个报纸的头版上就有这么一篇文章,直接就说了这么一句话, 说深度学习是机器学习中使用深度神经网络的的子领域。 所以如果我们要谈深度学习的话,是绕不开深度神经网络的。 首先我们必须从神经网络说起。神经网络其实并不是一个新生事物

目标跟踪算法综述

眉间皱痕 提交于 2019-11-27 05:22:51
转自 https://www.zhihu.com/question/26493945 作者:YaqiLYU 第一部分:目标跟踪速览 先跟几个SOTA的tracker混个脸熟,大概了解一下目标跟踪这个方向都有些什么。一切要从2013年的那个数据库说起。。如果你问别人近几年有什么比较niubility的跟踪算法,大部分人都会扔给你吴毅老师的论文,OTB50和OTB100(OTB50这里指OTB-2013,OTB100这里指OTB-2015,50和100分别代表视频数量,方便记忆): Wu Y, Lim J, Yang M H. Online object tracking: A benchmark [C]// CVPR, 2013. Wu Y, Lim J, Yang M H. Object tracking benchmark [J]. TPAMI, 2015. 顶会转顶刊的顶级待遇,在加上引用量1480+320多,影响力不言而喻,已经是做tracking必须跑的数据库了,测试代码和序列都可以下载: Visual Tracker Benchmark ,OTB50包括50个序列,都经过人工标注: 两篇论文在数据库上对比了包括2012年及之前的29个顶尖的tracker,有大家比较熟悉的OAB, IVT, MIL, CT, TLD, Struck等,大都是顶会转顶刊的神作

机器学习、计算机视觉面经整理(持续完善整理中……)

强颜欢笑 提交于 2019-11-26 12:58:40
算法岗计算机视觉方向 求职经验总结 进入11月份,楼主找工作也基本进入尾声了,从7月份开始关注牛客网,在求职的过程中学到了不少,感谢牛客提供这样一个平台,让自己的求职历程不再孤单。 先说一下楼主教育背景,本科西部末流985,研究生调剂到帝都某文科学校.专业都是CS专业,求职方向都是计算机视觉算法。有某外企以及二线互联网实习经历,本科虽然CS出身,但实际动手能力并不强。研究生的研究方向并不是计算机视觉方向。实习的时候开始接触计算机视觉,自己比较感兴趣,开始转CV方向。回想这几个月的求职经历,其中的辛苦只有自己知道。最终拿到了 百度SP ,京东SSP,美团无人驾驶SP,顺丰科技SP,拼多多SP,以及虹软SP,思科,中电29等offer。 想把我学习与求职路上的一些心得告诉学弟学妹们。 1. 一定要有一门自己比较熟悉的语言。 我由于使用C++ 比较多,所以简历上只写了C++。C++的特性要了解,C++11要了解一些,还有STL。面试中常遇到的一些问题,手写代码实现一个string类,手写代码实现智能指针类,以及STL中的容器的实现机制,多态和继承,构造函数, 析构函数等。推荐看一下 网易云课堂翁恺老师 的C++ 的视频以及经典的几本书。 2.一定要刷题 楼主主要刷了 剑指offer 以及leetcode上的easy,middle的题目。如果编程能力不是很强,推荐可以分类型进行刷题

深度学习-DCGAN论文的理解笔记

懵懂的女人 提交于 2019-11-26 12:36:19
训练方法 DCGAN 的训练方法跟GAN 是一样的,分为以下三步: (1)for k steps:训练D 让式子[logD(x) + log(1 - D(G(z)) (G keeps still)]的值达到最大 (2)保持D 不变,训练G 使式子[logD(G(z))]的值达到最大 (3)重复step(1)和step(2)直到G 与D 达到纳什均衡 Alec Radford等人于2016年初提出DCGAN以改善GAN的可训练性。他们认为传统GAN之所以不稳定,一个原因便是判别器D搭载的是初级的多层感知机模型,为了将火热的CNN纳入GAN的体系中,作者将多层感知机用CNN进行替换,并做了如下改进:  1 将池化层用stride=1stride=1的卷积层代替 2 将输给生成器G的100维噪声映射为四维张量用作CNN输入而不是向量 3 每进行一次卷积操作就进行批规一化(Batch Normalization) 4 使用ReLU层替换传统的Sigmoid函数,并对输出层使用Tanh激活 5 对判别器D使用LeakyReLU函数作为激活函数 6 移除所有全连接层   在以上改进的支撑下,论文给出了生成器G的网络结构:     经实验验证,该模型生成的图像较为稳定,虽然只能生成64*64大小的图像,但是这可以通过一些基本的图像处理方法,如金字塔来提升生成图像的分辨率