1. 之前课程里,一个32*32*3的图像被展成3072*1的向量,左乘大小为10*3072的权重矩阵W,可以得到一个10*1的得分,分别对应10类标签. 在Convolution Layer里,图像保持原样,依旧是32*32*3,把它和一个5*5*3的filter进行卷积运算(filter和原图像有相同的通道数,比如这里都是3).这里的"卷积"并不是严格按照信号处理里先把图像翻转,这里只是对应像素乘积累加,可以按照fully connected layer的写法,把5*5*3的fil…
(没太听明白,下次重新听一遍) 1. Recurrent Neural Networks…
1. 之前课程里,一个32*32*3的图像被展成3072*1的向量,左乘大小为10*3072的权重矩阵W,可以得到一个10*1的得分,分别对应10类标签. 在Convolution Layer里,图像保持原样,依旧是32*32*3,把它和一个5*5*3的filter进行卷积运算(filter和原图像有相同的通道数,比如这里都是3).这里的“卷积”并不是严格按照信号处理里先把图像翻转,这里只是对应像素乘积累加,可以按照fully connected layer的写法,把5*5*3的filter展开…
1. CPU vs. GPU: CPU核心少(几个),更擅长串行任务.GPU有很多核心(几千个),每一个核都弱,有自己的内存(几个G),很适合并行任务.GPU最典型的应用是矩阵运算. GPU编程:1)CUDA,只能在英伟达:2)OpenCL类似CUDA,好处是可以跑在任何平台上,但相对慢一些.深度学习可以直接调用现成的库,不用自己写CUDA代码. 用cuDNN比不用快几倍. 深度学习的瓶颈可能不在GPU的运算,而在GPU和数据的通信上,解决办法是:1)把数据读入RAM:2)用SSD而不是HDD:…
(没太听明白,下次重新听一遍) 1. Recurrent Neural Networks…
这一节课很零碎. 1. 神经网络到底在干嘛? 浅层的是具体的特征(比如边.角.色块等),高层的更抽象,最后的全连接层是把图片编码成一维向量然后和每一类标签作比较.如果直接把图片和标签做像素级的最近领域分类,误差很大,但是转成编码之后就准多了. 可以用PCA可视化最后一层的特征,深度学习领域更高阶的做法是用t-SNE(Van der Maaten and Hinton, "Visualizting Data using t-SNE", JMLR 2008). 可视化非线性函数的激活值也可…
1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很大的loss function,一个方向梯度变化明显,另一个方向梯度变化很缓慢,SGD在优化过程中会震荡着下降,导致优化很慢.深度学习的网络会有上百万甚至更多的参数需要优化,在这个上百万维的空间里,更容易出现各个维度梯度变化差别很大的问题. 2)陷落在局部最小点或者鞍点(saddle point).…
1. 激活函数: 1)Sigmoid,σ(x)=1/(1+e-x).把输出压缩在(0,1)之间.几个问题:(a)x比较大或者比较小(比如10,-10),sigmoid的曲线很平缓,导数为0,在用链式法则的时候,后一层传回来的导数乘以sigmoid的导数也是0了,换句话说,对于sigmoid饱和的区域后一层的导数传不到前面去了.(b)输出永远为正,即下一层的输入永远为正,我们希望输入的均值为0.(c)exp还是稍微有点难计算. 2)tanh(x),输出压缩在[-1,+1]之间,比sigmoid的进…
1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很大的loss function,一个方向梯度变化明显,另一个方向梯度变化很缓慢,SGD在优化过程中会震荡着下降,导致优化很慢.深度学习的网络会有上百万甚至更多的参数需要优化,在这个上百万维的空间里,更容易出现各个维度梯度变化差别很大的问题. 2)陷落在局部最小点或者鞍点(saddle point).…
1. 激活函数: 1)Sigmoid,σ(x)=1/(1+e-x).把输出压缩在(0,1)之间.几个问题:(a)x比较大或者比较小(比如10,-10),sigmoid的曲线很平缓,导数为0,在用链式法则的时候,后一层传回来的导数乘以sigmoid的导数也是0了,换句话说,对于sigmoid饱和的区域后一层的导数传不到前面去了.(b)输出永远为正,即下一层的输入永远为正,我们希望输入的均值为0.(c)exp还是稍微有点难计算. 2)tanh(x),输出压缩在[-1,+1]之间,比sigmoid的进…
1. Semantic Segmentation 把每个像素分类到某个语义. 为了减少运算量,会先降采样再升采样.降采样一般用池化层,升采样有各种"Unpooling"."Transpose Convolution"(文献中也叫"Upconvolution"之类的其他名字). 这个问题的训练数据的获得非常昂贵,因为需要一个像素一个像素的贴标签. 2. Classification + Localizatoin 一般用同一个网络,一方面得出分类,一…
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "Helvetica Neue"; color: #323333 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "Helvetica Neue"; color: #042eee } span.s1 { } span.s2 { text-decoration: underline } Is objec…
1. Backpropagation:沿着computational graph利用链式法则求导.每个神经元有两个输入x.y,一个输出z,好多层这种神经元连接起来,这时候已知∂L/∂z,可以求出∂L/∂x = ∂L/∂z * ∂z/∂x,∂L/∂y = ∂L/∂z * ∂z/∂y.靠这种方式可以计算出最终的loss function相对于最开始的输入的导数. 这种方法的好处是,每个神经元都是很简单的运算(比如加.减.乘.除.指数.sigmoid等),它们导数的解析式是很容易求解的,用链式法则连乘…
1. CPU vs. GPU: CPU核心少(几个),更擅长串行任务.GPU有很多核心(几千个),每一个核都弱,有自己的内存(几个G),很适合并行任务.GPU最典型的应用是矩阵运算. GPU编程:1)CUDA,只能在英伟达:2)OpenCL类似CUDA,好处是可以跑在任何平台上,但相对慢一些.深度学习可以直接调用现成的库,不用自己写CUDA代码. 用cuDNN比不用快几倍. 深度学习的瓶颈可能不在GPU的运算,而在GPU和数据的通信上,解决办法是:1)把数据读入RAM:2)用SSD而不是HDD:…
一.高效的训练     1.Large-batch training 使用大的batch size可能会减小训练过程(收敛的慢?我之前训练的时候挺喜欢用较大的batch size),即在相同的迭代次数下, 相较于使用小的batch size,使用较大的batch size会导致在验证集上精度下降.文中介绍了四种方法. Linear scaling learning rate 梯度下降是一个随机过程,增大batch size不会改变随机梯度的期望,但是减小了方差(variance).换句话说,增大…
Ahmet Taspinar Home About Contact Building Convolutional Neural Networks with Tensorflow Posted on augustus 15, 2017 adminPosted in convolutional neural networks, deep learning, tensorflow 1. Introduction In the past I have mostly written about ‘clas…
前言:今天他给大家带来一篇发表在CVPR 2017上的文章. 原文:LBCNN 原文代码:https://github.com/juefeix/lbcnn.torch 本文主要内容:把局部二值与卷积神经网路结合,以削减参数,从而实现深度卷积神经网络端到端的训练,也就是未来嵌入式设备上跑卷积效果将会越来越好. 主要贡献: 提出一种局部二值卷积(LBC)可以用来替代传统的卷积神经网络的卷积层,这样设计的灵感来自于局部二值模式(LBP).LBC主要由一个预先定义好的稀疏二值卷积滤波器,这个滤波器在整个…
http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/ 讲CNN以及其在NLP的应用,非常深入浅出的讲法,好文,mark. When we hear about Convolutional Neural Network (CNNs), we typically think of Computer Vision. CNNs were responsible for major breakt…
Learning to Compare Image Patches via Convolutional Neural Networks ---  Reading Summary 2017.03.08 Target: this paper attempt to learn a geneal similarity function for comparing image patches from image data directly. There are several ways in which…
An Intuitive Explanation of Convolutional Neural Networks https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/ Posted on August 11, 2016 by ujjwalkarn What are Convolutional Neural Networks and why are they important? Convolutional Neural…
When we hear about Convolutional Neural Network (CNNs), we typically think of Computer Vision. CNNs were responsible for major breakthroughs in Image Classification and are the core of most Computer Vision systems today, from Facebook’s automated pho…
Table of Contents: Architecture Overview ConvNet Layers Convolutional Layer Pooling Layer Normalization Layer Fully-Connected Layer Converting Fully-Connected Layers to Convolutional Layers ConvNet Architectures Layer Patterns Layer Sizing Patterns C…
一.卷积 卷积神经网络(Convolutional Neural Networks)是一种在空间上共享参数的神经网络.使用数层卷积,而不是数层的矩阵相乘.在图像的处理过程中,每一张图片都可以看成一张“薄饼”,其中包括了图片的高度.宽度和深度(即颜色,用RGB表示). 在不改变权重的情况下,把这个上方具有k个输出的小神经网络对应的小块滑遍整个图像,可以得到一个宽度.高度不同,而且深度也不同的新图像. 卷积时有很多种填充图像的方法,以下主要介绍两种,一种是相同填充,一种是有效填充. 如图中紫色方框所…
http://cs231n.github.io/   里面有很多相当好的文章 http://cs231n.github.io/convolutional-networks/ Table of Contents: Architecture Overview ConvNet Layers Convolutional Layer Pooling Layer Normalization Layer Fully-Connected Layer Converting Fully-Connected Laye…
CNN 大概是目前 CV 界最火爆的一款模型了,堪比当年的 SVM.从 2012 年到现在,CNN 已经广泛应用于CV的各个领域,从最初的 classification,到现在的semantic segmentation, object detection,instance segmentation,super resolution 甚至 optical flow 都能看的其身影.还真是,无所不能. 虽然 CNN 的应用可以说是遍地开花,但是细究起来,可以看到 CNN 的基本模型还是万变不离其宗…
Convolutional Neural Networks (CNNs / ConvNets) 前面做了如此漫长的铺垫,现在终于来到了课程的重点.Convolutional Neural Networks, 简称CNN,与之前介绍的一般的神经网络类似,CNN同样是由可以学习的权值与偏移量构成,每一个神经元接收一些输入,做点积运算加上偏移量,然后选择性的通过一些非线性函数,整个网络最终还是表示成一个可导的loss function,网络的起始端是输入图像,网络的终端是每一类的预测值,通过一个ful…
Setting up the data and the model 前面我们介绍了一个神经元的模型,通过一个激励函数将高维的输入域权值的点积转化为一个单一的输出,而神经网络就是将神经元排列到每一层,形成一个网络结构,这种结构与我们之前介绍的线性模型不太一样,因此score function也需要重新定义,神经网络实现了一系列的线性映射与非线性映射,这一讲,我们主要介绍神经网络的数据预处理以及score function的定义. data processing 给定一个训练集,S={xi∈RD|i…
Linear Classification 在上一讲里,我们介绍了图像分类问题以及一个简单的分类模型K-NN模型,我们已经知道K-NN的模型有几个严重的缺陷,第一就是要保存训练集里的所有样本,这个比较消耗存储空间:第二就是要遍历所有的训练样本,这种逐一比较的方式比较耗时而低效. 现在,我们要介绍一种更加强大的图像分类模型,这个模型会很自然地引申出神经网络和Convolutional Neural Networks(CNN),这个模型有两个重要的组成部分,一个是score function,将原始…
Introduction 这是斯坦福计算机视觉大牛李菲菲最新开设的一门关于deep learning在计算机视觉领域的相关应用的课程.这个课程重点介绍了deep learning里的一种比较流行的模型:Convolutional Neural Networks,简称CNN,主要利用CNN来做visual recognition,或者说是image classification,object recognition等.我自己在学习的过程中,一边翻译一边总结,整理出这些中文版的lecture not…
https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/ An Intuitive Explanation of Convolutional Neural Networks Posted on August 11, 2016 by ujjwalkarn What are Convolutional Neural Networks and why are they important? Convolutional Neural…