课时3 计算机视觉历史回顾与介绍下 ImageNet有5000万张图片,全部都是人工清洗过得,标注了超过2万个分类. CS231n将聚焦于视觉识别问题,图像分类关注的是大图整体:物体检测告诉你东西具体出现在图片的哪里以及物体之间的联系是什么之类的. CNN是深度学习架构的一种,2012年之前的imageNet,都是特征+支持向量机的,也是分层结构,但没有端到端的特征: Kunihiko Fukushima提出了一个模型,称为Neocognitron,是神经网络架构的开端. 数据本身并没有什么意义…
课时1 计算机视觉历史回顾与介绍上 CS231n:这一一门关于计算机视觉的课程,基于一种专用的模型架构,叫做神经网络(更细一点说,是卷积神经网络CNN).计算机视觉是人工智能领域中发展最为迅猛的一个分支,是一个与很多领域紧密关联的学科. 视觉信息,或者叫像素信息是最难被利用的信息,可以把它称之为“互联网中的暗物质”. 我们现在面对的问题:非常大量的数据,以及这些“暗物质”的挑战.我们面对的问题,我们使用的建模(方式)也是跨学科的 如果兴趣范围是关于计算机视觉的一些广泛的讨论,比如工具之类或者一些…
课时26 图像分割与注意力模型(上) 语义分割:我们有输入图像和固定的几个图像分类,任务是我们想要输入一个图像,然后我们要标记每个像素所属的标签为固定数据类中的一个 使用卷积神经,网络为每个小区块进行分类,对在区块的中间打上标签,对图像的全部区块分类完毕,我们就可以得到每个像素所对应的标签,这个操作实际上非常耗时,因为一张图片将会被分割非常多的小块. 如果这些神经网络具有相关的结构,通过这个图像金字塔方法的话,这些图像的输出将会有不同的感受野. 语义分割的迭代精化 我们有一个输入图像,他们被分割…
课时24 深度学习开源库使用介绍(上) Caffe 被用于重新实现AlexNet,然后用AlexNet的特征来解决其他事情 用C++书写的,可以去GitHub上面读取源代码 主要四个类: Blob可以存你的权重,像素值,激活等,是n维的张量,就像NumPy一样,他实际上内部有四个n维张量,这个张量有一个数据的版本,用于存储原始未处理的数据.剩下三个分别有diffs,GPU,CPU: 层是一种与你作业中所需要实现的功能相似的功能,会接收输入的Blob,caffe管这些输入的Blob称为底端输入,然…
课时8 反向传播与神经网络初步(上) 反向传播在运算连路中,这是一种通过链式法则来进行递推的计算过程,这个链路中的每一个中间变量都会对最终的损失函数产生影响. 链式法则通常包含两部分,局部梯度和后一层的梯度相乘 前向和反向花费的时间是基本一样的. 大的函数也可以直接视作一个整体计算梯度 当局部梯度非常容易求得时,你可以把这部分表达式看作一整个S门 加法:梯度分配器:所以无论何时当你有一个加法运算时,他会分配相等的梯度值. 最大值门:一个梯度路由,他的工作方式是,认为比较大的输入梯度为1,比较小的…
课时12 神经网络训练细节part2(上) 训练神经网络是由四步过程组成,你有一个完整的数据集图像和标签,从数据集中取出一小批样本,我们通过网络做前向传播得到损失,告诉我们目前分类效果怎么样.然后我们反向传播来得到每一个权重的梯度,这个梯度告诉我们如何去调整每一个权重,最终我们能够更好的分类图片. 为什么要使用激活函数? 如果在整个的神经网络中不使用激活函数,你的网络的分类能力基本等同于一个线性分类器,所以激活函数是相当关键的.他提供了所有的方法,你可以他用来存储数据 BN使得网络的训练更加健壮…
课时11 神经网络训练细节part1(下) 2010年,Glorot等人写的论文,我们称之为Xavier初始化,他们关注了神经元的方差表达式.他们推荐一种初始化方式,那就是对每个神经元的输入进行开根号.但是这种方法用在relu网络不是很奏效,这时候需要考虑一个额外因数2,如果没有这个2,则激活输出的分布会以指数级收缩 将梯度正则化就不是反向传播了,如果对梯度进行了人为调整,则优化目标就会变得混乱(因为人为强行改变分布),得到的并不是梯度. 批数据的规范化 基本主旨一般是,你想你的神经网络的每一部…
课时10 神经网络训练细节part1(上) 没有大量的数据也不会有太多影响,只需要找一个经过预训练的卷积神经网络然后进行调整 从数据集中抽样一小批数据, 将数据运入卷积神经网络中来计算损失值 通过反向传播来确定梯度 最后通过梯度值来微调权值的数值 sihmoid函数 是一个挤压函数,取值为0到1之间的实数 他的第一个问题:一个饱和的神经元,也就是说这个神经元的输出要么非常接近0要么非常接近1,这些神经元会导致在反向传播算法中出现梯度趋0的问题.这个问题就叫做梯度弥散(消失).他有个激活区域. 另…
课时7 线性分类器损失函数与最优化(下) 我们为什么要最大化对数概率而非直接最大化概率? 你在做逻辑斯蒂回归时,如果你只是想要最大化概率,那你使用log是无意义的.因为log函数是单调函数,最大化概率和最大化对数概率是等价的. Softmax vs. SVM 我们调整其中的评分,使值上下浮动,对于SVM而言,分类正确率可能不会改变.因为测试样例中的边界是由一个大数决定的,SVM对于那种误分类评分低的样例不是很在意.但是对Softmax而言,任何一个测试样例都能提升分类器的性能.SVM具有附加的稳…
课时14 卷积神经网络详解(上) CNN处理的是一些数据块,在这之间有很多层,一系列的层将输入数据变换为输出数据,所以完成操作的中间量不仅是NN时候讲的那些向量,而是立体结构,有宽,高和深度,在整个计算过程中要保持这些三维特征.这里的深度指的是一个数据体的第三个维度. 工作流程 我们得到一些数据,作为网络的输入,在CNN中我们有这样的滤波器,假设现在我们只有一个滤波器,这些滤波器空间维度很小,我们用这个滤波器来和输入图像做卷积运算.这里的卷积运算,意思是说滤波器要在这个图像的空域范围内全部位置滑…
课时2 计算机视觉历史回顾与介绍中 1966年是计算机视觉的诞生年. 视觉处理流程的第一步,是对简单的形状结构处理,边缘排列. 边缘决定了结构. David Marr写了一本非常有影响力的书,视觉是分层的,第一层应该是边缘层:接下来一层为2.5D,这里你将2D的图像信息调整为包含真实世界的3D信息.以对简单的形状结构处理开始,但是没有告诉我们告诉我们以那个结束. 计算机视觉领域非常核心的问题:我们会有遮挡问题. 感知分组是视觉领域最为重要的问题,如此基础的问题并没有完全的被解决.…
课时6 线性分类器损失函数与最优化(上) 多类SVM损失:这是一个两分类支持向量机的泛化 SVM损失计算了所有不正确的例子,将所有不正确的类别的评分,与正确类别的评分之差加1,将得到的数值与0作比较,取两者中的最大值.然后将所有的数值进行求和.用平均值来代替不会影响结果. 这些评分都是无标度的,因为我们可以随便选择W,让它成比例地增大或者减小,然后分数也随之成比例地变化.所以分数的大小和它的量度的选择紧密相关,将安全系数的值设为1在某种程度上来说只是一个随意的选择. 在实际的数据集中使用这个损失…
课时5 数据驱动的图像分类方式:K最邻近与线性分类器(下) 在参数化方法中,我们要做的是构造一个函数,输入一张图片,对每一类输出一个数值.对任意一张图片,我们会计算出它到底属于哪一类.这些参数有时候也会被称作权重.我们不能改原始图像,但是我们可以修改权重,我们希望把它设成对训练集中每张图像可以实现正确输出的值. 我们没办法应对不同大小的图片,但是我们可以做到的最简单的事情是改变每一张图片的大小使他们变成相同的大小.然后我们就可以确定的把它们转换成在空间上都对齐的列.事实上,目前最前沿水平的方法只…
课时4 数据驱动的图像分类:K最邻与线性分类器(上) 图像分类之前,我们需要将图片转换成一张巨大的数字表单,然后从所有种类中,给这个表单选定一个标签. 为什么分类问题是个困难的问题:图像分类难点是,当你想要处理这表单中数以百万计的数字并对其进行分类,这个问题是相当的复杂的,另外,相机是可以进行旋转和缩放的,并且旋转.平移.聚焦点选取等操作都会让图片样式不同.再考虑下相机高度的调整,这些所有的相机调整会使图片看起来完全不一样,我们对所有这些调整都具有鲁棒性:还有一些其他的挑战,例如光纤问题,我们对…
官网 链接:CS231n: Convolutional Neural Networks for Visual Recognition Notes: 链接:http://cs231n.github.io/ 中文字幕视频 by 大数据文摘 链接:http://study.163.com/course/courseMain.htm?courseId=1003223001 课件中文翻译 by 杜克 链接:https://www.52ml.net/tags/cs231 课件英文视频及字幕等 by 爱可可-…
http://study.163.com/course/introduction/1003223001.htm…
课程主页:CS231n: Convolutional Neural Networks for Visual Recognition 关注其:Course Project主页 视频学习:云课堂 斯坦福CS231n-深度学习与计算机视觉 助教:Andrej Karpathy 斯坦福CS231n学习笔记-中文系列 cs231n学习笔记-CNN-目标检测.定位.分割…
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-detail/274 声明:版权所有,转载请联系平台与作者并注明出处 收藏ShowMeAI查看更多精彩内容 本系列为 斯坦福CS231n <深度学习与计算机视觉(Deep Learning for Computer Vision)>的全套学习笔记,对应的课程视频可以在 这里 查看.更多资料获取方式见文末…
深度学习与计算机视觉(12)_tensorflow实现基于深度学习的图像补全 原文地址:Image Completion with Deep Learning in TensorFlow by Brandon Amos 原文翻译与校对:@MOLLY && 寒小阳 (hanxiaoyang.ml@gmail.com) 时间:2017年4月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/70214565 声明:版权所有,转载请联系作…
理论知识:Optimization: Stochastic Gradient Descent和Convolutional Neural Network CNN卷积神经网络推导和实现.Deep learning:五十一(CNN的反向求导及练习) Deep Learning 学习随记(八)CNN(Convolutional neural network)理解 ufldl学习笔记与编程作业:Convolutional Neural Network(卷积神经网络) [UFLDL]Exercise: Co…
前言 1.理论知识:UFLDL教程.Deep learning:十六(deep networks) 2.实验环境:win7, matlab2015b,16G内存,2T硬盘 3.实验内容:Exercise: Implement deep networks for digit classification.利用深度网络完成MNIST手写数字数据库中手写数字的识别.即:用6万个已标注数据(即:6万张28*28的图像块(patches)),作为训练数据集,然后把它输入到栈式自编码器中,它的第一层自编码器…
作者: 寒小阳 &&龙心尘 时间:2015年11月. 出处: http://blog.csdn.net/han_xiaoyang/article/details/49949535 http://blog.csdn.net/longxinchen_ml/article/details/50001979 声明:版权所有,转载请注明出处,谢谢. 1. 线性分类器 在深度学习与计算机视觉系列(2)我们提到了图像识别的问题,同时提出了一种简单的解决方法--KNN.然后我们也看到了KNN在解决这个问题…
前言 理论知识:UFLDL教程.Deep learning:三十三(ICA模型).Deep learning:三十九(ICA模型练习) 实验环境:win7, matlab2015b,16G内存,2T机械硬盘 难点:本实验难点在于运行时间比较长,跑一次都快一天了,并且我还要验证各种代价函数的对错,所以跑了很多次. 实验内容:Exercise:Independent Component Analysis.从数据库Sampled 8x8 patches from the STL-10 dataset…
前言 理论知识:UFLDL教程.Deep learning:二十六(Sparse coding简单理解).Deep learning:二十七(Sparse coding中关于矩阵的范数求导).Deep learning:二十九(Sparse coding练习) 实验环境:win7, matlab2015b,16G内存,2T机械硬盘 本节实验比较不好理解也不好做,我看很多人最后也没得出好的结果,所以得花时间仔细理解才行. 实验内容:Exercise:Sparse Coding.从10张512*51…
理论知识:UFLDL数据预处理和http://www.cnblogs.com/tornadomeet/archive/2013/04/20/3033149.html 数据预处理是深度学习中非常重要的一步!如果说原始数据的获得,是深度学习中最重要的一步,那么获得原始数据之后对它的预处理更是重要的一部分. 1.数据预处理的方法: ①数据归一化: 简单缩放:对数据的每一个维度的值进行重新调节,使其在 [0,1]或[ − 1,1] 的区间内 逐样本均值消减:在每个样本上减去数据的统计平均值,用于平稳的数…
前言 理论知识:UFLDL教程和http://www.cnblogs.com/tornadomeet/archive/2013/04/09/3009830.html 实验环境:win7, matlab2015b,16G内存,2T机械硬盘 实验内容:Exercise:Convolution and Pooling.从2000张64*64的RGB图片(它是the STL10 Dataset的一个子集)中提取特征作为训练数据集,训练softmax分类器,然后从3200张64*64的RGB图片(它是th…
前言 实验内容:Exercise:Learning color features with Sparse Autoencoders.即:利用线性解码器,从100000张8*8的RGB图像块中提取颜色特征,这些特征会被用于下一节的练习 理论知识:线性解码器和http://www.cnblogs.com/tornadomeet/archive/2013/04/08/3007435.html 实验基础说明: 1.为什么要用线性解码器,而不用前面用过的栈式自编码器等?即:线性解码器的作用? 这一点,Ng…
1前言 本人写技术博客的目的,其实是感觉好多东西,很长一段时间不动就会忘记了,为了加深学习记忆以及方便以后可能忘记后能很快回忆起自己曾经学过的东西. 首先,在网上找了一些资料,看见介绍说UFLDL很不错,很适合从基础开始学习,Adrew Ng大牛写得一点都不装B,感觉非常好,另外对我们英语不好的人来说非常感谢,此教程的那些翻译者们!如余凯等.因为我先看了一些深度学习的文章,但是感觉理解得不够,一般要自己编程或者至少要看懂别人的程序才能理解深刻,所以我根据该教程的练习,一步一步做起,当然我也参考了…
在前面两篇文章介绍了深度学习的一些基本概念,本文则使用Python实现一个简单的深度神经网络,并使用MNIST数据库进行测试. 神经网络的实现,包括以下内容: 神经网络权值的初始化 正向传播 误差评估 反向传播 更新权值 主要是根据反向传播的4个基本方程,利用Python实现神经网络的反向传播. 初始化 首先定义代表神经网络的类NeuralNetwork, class NeuralNetwork: def __init__(self,layers,alpha=0.1): self.W = []…
深度学习与计算机视觉(11)_基于deep learning的快速图像检索系统 作者:寒小阳 时间:2016年3月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/50856583 声明:版权所有,转载请联系作者并注明出处 1.引言 本系统是基于CVPR2015的论文<Deep Learning of Binary Hash Codes for Fast Image Retrieval>实现的海量数据下的基于内容图片检索系统,250w…