CNN学习笔记:梯度下降法】的更多相关文章

CNN学习笔记:梯度下降法 梯度下降法 梯度下降法用于找到使损失函数尽可能小的w和b,如下图所示,J(w,b)损失函数是一个在水平轴w和b上面的曲面,曲面的高度表示了损失函数在某一个点的值…
CNN学习笔记:卷积神经网络 卷积神经网络 基本结构 卷积神经网络是一种层次模型,其输入是原始数据,如RGB图像.音频等.卷积神经网络通过卷积(convolution)操作.汇合(pooling)操作和非线性激活函数的映射等一系列操作的层层堆叠,将高层语义信息逐层由原始信息中抽取出来,逐层抽象. 将信息逐渐抽象出来的过程称为前馈运算(Feed-Forward).通过计算预测值与真实值之间的误差和损失,凭借反向传播算法(Back-Propagation algorithm)将误差或损失由最后一层逐…
CNN学习笔记:批标准化 Batch Normalization Batch Normalization, 批标准化, 是将分散的数据统一的一种做法, 也是优化神经网络的一种方法. 在神经网络的训练过程中,随着网络深度的增加,后面每一层的输入值(即x=WU+B,U是输入)逐渐发生偏移和变动,之所以训练收敛慢,一般是整体分布往非线性函数的取值区间的上下限两端靠近,所以这将导致反向传播时低层网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因,而BN就是通过一定的规范手动,把每层神经网络任意神…
CNN学习笔记:激活函数 激活函数 激活函数又称非线性映射,顾名思义,激活函数的引入是为了增加整个网络的表达能力(即非线性).若干线性操作层的堆叠仍然只能起到线性映射的作用,无法形成复杂的函数.常用的函数有sigmoid.双曲正切.线性修正单元函数等等. 使用一个神经网络时,需要决定使用哪种激活函数用隐藏层上,哪种用在输出节点上. 比如,在神经网路的前向传播中,这两步会使用到sigmoid函数.sigmoid函数在这里被称为激活函数. sigmoid函数 之前在线性回归中,我们用过这个函数,使我…
CNN学习笔记:正则化缓解过拟合 过拟合现象 在下图中,虽然绿线完美的匹配训练数据,但太过依赖,并且与黑线相比,对于新的测试数据上会具有更高的错误率.虽然这个模型在训练数据集上的正确率很高,但这个模型却很难对从未见过的数据做出正确响应,认为该模型存在过拟合现象. 绿线代表过拟合模型,黑线代表正则化模型.故我们使用正则化来解决过拟合问题. 正则化模型 正则化是机器学习中通过显示控制模型复杂度来避免模型过拟合.确保泛化能力的一种有效方式.正则化在损失函数中引入模型复杂度指标,利用给W加权值,弱化了训…
卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01   |   In Machine Learning  |   9 Comments  |   14935  Views 概述 卷积神经网络(Convolutional Neural Network, CNN)是深度学习技术中极具代表的网络结构之一,在图像处理领域取得了很大的成功,在国际标准的ImageNet数据集上,许多成功的模型都是基于CNN的.CNN相较于传统的图像处理算法的优点之一在于,避免了对图像复杂的…
CNN学习笔记:目标函数 分类任务中的目标函数 目标函数,亦称损失函数或代价函数,是整个网络模型的指挥棒,通过样本的预测结果与真实标记产生的误差来反向传播指导网络参数学习和表示学习. 假设某分类任务共N个训练样本,针对网络最后分类层第i个样本的输入特征为xi,其对应的真实标记为yi∈{1,2,...,C},另h=(h1,h2,...,hC)⊤为网络的最终输出,即样本i的预测结果,其中C为分类任务类别数. 交叉熵损失函数 交叉熵损失函数又称为Softmax损失函数,是目前卷积神经网络中最常用的分类…
CNN学习笔记:全连接层 全连接层 全连接层在整个网络卷积神经网络中起到“分类器”的作用.如果说卷积层.池化层和激活函数等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的特征表示映射到样本的标记空间的作用. 一段来自知乎的通俗理解: 从卷积网络谈起,卷积网络在形式上有一点点像咱们正在召开的“人民代表大会”.卷积核的个数相当于候选人,图像中不同的特征会激活不同的“候选人”(卷积核).池化层(仅指最大池化)起着类似于“合票”的作用,不同特征在对不同的“候选人”有着各自的喜好. 全连接相…
CNN学习笔记:池化层 池化 池化(Pooling)是卷积神经网络中另一个重要的概念,它实际上是一种形式的降采样.有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的.它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值.直觉上,这种机制能够有效地原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要.池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合.通常来说,CNN的卷积层之间都…
CNN学习笔记:卷积运算 边缘检测 卷积 卷积是一种有效提取图片特征的方法.一般用一个正方形卷积核,遍历图片上的每一个像素点.图片与卷积核重合区域内相对应的每一个像素值乘卷积核 .内相对应点的权重,然后求和,再加上偏置后,最后得到输出图片中的一个像素值. 卷积操作的作用 卷积是一种局部操作,通过一定大小的卷积核作用于局部图像区域获得图像的局部信息. 我们现在使用三种边缘卷积核(亦称滤波器),整体边缘滤波器.横向边缘滤波器和纵向边缘滤波器. 试想,若原图像素(x, y)处可能存在物体边缘,则其四周…
CNN学习笔记:Logistic回归 线性回归 二分类问题 Logistic回归是一个用于二分分类的算法,比如我们有一张图片,判断其是否为一张猫图,为猫输出1,否则输出0. 基本术语 进行机器学习,首先要有数据,比如我们收集了一批关于西瓜的数据,例如 (色泽=青绿:根蒂=收缩:敲声=浊响) (色泽=乌黑:根蒂=稍蜷:敲声=沉闷) (色泽=浅白:根蒂=硬挺:敲声=清脆) 每对括号内是一条记录,这组记录的集合称为一个数据集,每条记录是关于一个事件或对象的描述,称为一个示例或样本,反映事件或对象在某方…
CNN学习笔记:神经网络表示 双层神经网络模型 在一个神经网络中,当你使用监督学习训练它的时候,训练集包含了输入x还有目标输出y.隐藏层的含义是,在训练集中,这些中间节点的真正数值,我们是不知道的,即在训练集中你看不到他们的数值,我们只能看到输入和输出. 定义神经网络的层数 神经网络层数是指,除输入层意外的其他层的合计数,此处只有一层隐藏层和一层输出层. 神经网络的计算过程 a[n]表示第N层神经元的激活函数组成的矩阵,z[n]函数表示第N层神经元的处理逻辑做出的矩阵,激活函数a通过z函数的数据…
梯度下降法 梯度下降法是训练神经网络最常用的优化算法 梯度下降法(Gradient descent)是一个 ==一阶最优化算法== ,通常也称为最速下降法.要使用梯度下降法找到一个函数的 ==局部最小值==,必须想函数上当前点对应的==梯度==(或者是近似梯度)的反方向的规定部长距离点进行==迭代==搜索. 梯度下降法基于以下的观察:如果实值函数$f(x)$在a点处==可微==并且有定义,那么函数$f(x)$在点a沿着==梯度==相反的方向$-\nabla f(a)$下降最快 $$\theta…
激活函数Relu 最近几年卷积神经网络中,激活函数往往不选择sigmoid或tanh函数,而是选择relu函数.Relu函数的定义 $$f(x)= max(0,x)$$ Relu函数图像如下图所示: CNN示例 上图是一个CNN的示意图,一个卷积神经网络由若干卷积层.Pooling层.全连接层组成.你可以构建各种不同的卷积神经网络,它的常用架构模式为: INPUT -> [[CONV]*N -> POOL?]*M -> [FC]*K 也就是N个卷积层叠加,然后(可选)叠加一个Poolin…
CNN的基本结构包括两层: 特征提取层:每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征.一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来: 特征映射层:网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等.特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性.此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数.卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提…
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补充>的是我自己加的内容而非课堂内容,参考文献列于文末.博主能力有限,若有错误,恳请指正: #---------------------------------------------------------------------------------# 这一周的内容是机器学习介绍和梯度下降法.作为入…
mnist的卷积神经网络例子和上一篇博文中的神经网络例子大部分是相同的.但是CNN层数要多一些,网络模型需要自己来构建. 程序比较复杂,我就分成几个部分来叙述. 首先,下载并加载数据: import tensorflow as tf import tensorflow.examples.tutorials.mnist.input_data as input_data mnist = input_data.read_data_sets("MNIST_data/", one_hot=Tru…
觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.1 mini-batch gradient descent mini-batch梯度下降法 我们将训练数据组合到一个大的矩阵中 \(X=\begin{bmatrix}x^{(1)}&x^{(2)}&x^{(3)}&x^{(4)}&x^{(5)}...x^{(n)}\end{bmatrix}\) \(Y=\begin{bmatrix}y^{(1)}&y^{(2)}&y^{(3)}&y^{(4)…
深度学习课程笔记(十三)深度强化学习 --- 策略梯度方法(Policy Gradient Methods) 2018-07-17 16:50:12 Reference:https://www.youtube.com/watch?v=z95ZYgPgXOY&t=512s…
一.梯度下降法 优点:即使特征变量的维度n很大,该方法依然很有效 缺点:1)需要选择学习速率α 2)需要多次迭代 二.正规方程法(Normal Equation) 该方法可以一次性求解参数Θ 优点:1)不需要选择α 2)不用多次迭代,一次求解 3)正规方程法不需要归一化处理 缺点:逆矩阵的计算量比较大,尤其当特征变量的维度n很大时:计算逆矩阵的运算量大概是矩阵维度的3次方. 总结:当特征变量维度n较大时(n>=10000),选择梯度下降法:当n值较小时(n<10000),选择正规方程法求解Θ.…
梯度下降算法的任务是寻找参数θ,使之能够最小化损失函数. 那么梯度下降法中的学习速率α应该如何选择呢?通常我们画出损失函数随迭代次数增加而变化的曲线. 可能会得到如下的一条曲线,x轴表示迭代次数,y轴表示梯度下降算法迭代相应次数之后算出的损失函数值. 可以看到,当迭代300次之后,损失函数的值并没有下降多少,也就是说在这里梯度下降算法基本上已经收敛了.因此,这条曲线还可以帮助你判断梯度下降算法是否已经收敛.(对于某一个特定的问题,梯度下降算法所需要的迭代次数相差很大,可能对于某一个问题只需要30…
所谓Mini-batch梯度下降法就是划分训练集和测试集为等分的数个子集,比如原来有500W个样本,将其划分为5000个baby batch,每个子集中有1000个样本,然后每次对一个mini-batch进行梯度下降 mini-batch大小 = m: 极限情况下,当mini-batch的单个子集样本数量和原集合大小一致都为m时,也就是说对原样本只划分一个子集,这意味着没有划分,此时的梯度下降法为原始的Batch梯度下降 batch方法意味着每次迭代对大量的数据进行处理,这意味着在进行深度神经网…
目录 Adagrad法 RMSprop法 Momentum法 Adam法 参考资料 发展历史 标准梯度下降法的缺陷 如果学习率选的不恰当会出现以上情况 因此有一些自动调学习率的方法.一般来说,随着迭代次数的增加,学习率应该越来越小,因为迭代次数增加后,得到的解应该比较靠近最优解,所以要缩小步长η,那么有什么公式吗?比如:,但是这样做后,所有参数更新时仍都采用同一个学习率,即学习率不能适应所有的参数更新. 解决方案是:给不同的参数不同的学习率 Adagrad法 假设N元函数f(x),针对一个自变量…
首先感谢吴恩达老师的免费公开课,以下图片均来自于Andrew Ng的公开课 指数加权平均法 在统计学中被称为指数加权移动平均法,来看下面一个例子: 这是伦敦在一些天数中的气温分布图 Vt = βVt-1 + (1 - β)θt  β指的是加权系数 0<β<1 θt 指的是当前时刻的温度 当β=0.9的时候 1/1-β = 10 所以看到上图的红线其实就是考虑了10天之内的平均气温,其拟合度较好 当β=0.98的时候 1/1-β = 50 所以上图中的绿线是考虑了50天之内的平均气温,于是这种平…
学习图像梯度,图像边界等 梯度简单来说就是求导. OpenCV提供了三种不同的梯度滤波器,或者说高通滤波器:Sobel,Scharr和Lapacian.Sobel,Scharr其实就是求一阶或二阶导.Scharr是对Sobel的部分优化.Laplacian是求二阶导. 1.Sobel算子和Scharr算子 Sobel算子是高斯平滑和微分操作的结合体,所以他的抗噪声能力很好.你可以设定求导的方向(xorder 或 yorder).还可以设定使用的卷积核大小(ksize).当ksize=-1时,会使…
目录 1. 准备数据集 1.1 MNIST数据集获取: 1.2 程序部分 2. 设计网络结构 2.1 网络设计 2.2 程序部分 3. 迭代训练 4. 测试集预测部分 5. 全部代码 1. 准备数据集 1.1 MNIST数据集获取: torchvision.datasets接口直接下载,该接口可以直接构建数据集,推荐 其他途径下载后,编写程序进行读取,然后由Datasets构建自己的数据集 ​ ​ 本文使用第一种方法获取数据集,并使用Dataloader进行按批装载.如果使用程序下载失败,请将其…
一.文章来由 好久没写原创博客了,一直处于学习新知识的阶段.来新加坡也有一个星期,搞定签证.入学等杂事之后,今天上午与导师确定了接下来的研究任务,我平时基本也是把博客当作联机版的云笔记~~如果有写的不对的地方,欢迎批评指正. 二.<一天搞懂深度学习> 300多页的PPT,台大教授写的好文章. 对应的视频地址 1.Lecture I: Introduction of Deep Learning (1)machine learning≈找函数 training和testing过程 (2)单个神经网…
1,自编码器简介 传统机器学习任务很大程度上依赖于好的特征工程,比如对数值型,日期时间型,种类型等特征的提取.特征工程往往是非常耗时耗力的,在图像,语音和视频中提取到有效的特征就更难了,工程师必须在这些领域有非常深入的理解,并且使用专业算法提取这些数据的特征.深度学习则可以解决人工难以提取有效特征的问题,它可以大大缓解机器学习模型对特征工程的依赖.深度学习在早期一度被认为是一种无监督的特征学习(Unsuperbised Feature Learning),模仿了人脑的对特征逐层抽象提取的过程.这…
在之前的TensorFlow学习笔记——图像识别与卷积神经网络(链接:请点击我)中了解了一下经典的卷积神经网络模型LeNet模型.那其实之前学习了别人的代码实现了LeNet网络对MNIST数据集的训练.而这篇文章是想自己完成LeNet网络来训练自己的数据集.LeNet主要用来进行手写字符的识别与分类,下面记录一下自己学习的过程. 我的学习步骤分为以下四步: 1,温习LeNet-5的网络层 2,使用LeNet-5训练MNIST数据集 3,使用LeNet-5训练TFRecord格式的MNIST数据集…
续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有Hello World,机器学习入门有MNIST.在此节,我将训练一个机器学习模型用于预测图片里面的数字. 开始先普及一下基础知识,我们所说的图片是通过像素来定义的,即每个像素点的颜色不同,其对应的颜色值不同,例如黑白图片的颜色值为0到255,手写体字符,白色的地方为0,黑色为1,如下图. MNIST…