梯度

Keras gradCAM

百般思念 提交于 2020-01-19 17:32:24
#######a 加载有权重的模型 model = resnet_18_res2net(input_shape=(256, 256, 1), nclass=2)print(model.summary())model.compile(keras.optimizers.Adam(lr=0.0001), loss='categorical_crossentropy', metrics=['accuracy'])model_path = "train_weights/"model.load_weights(os.path.join(model_path, "resnet_18_res2net.h5"))#resnet18_se#####输入图像 image = np.array(Image.open('C:/Users/xian/Desktop/grad_CAM/2.bmp').convert("L"))#RGBimage = np.expand_dims(image, axis=0)image = np.expand_dims(image, axis=-1)image = image.astype('float32') / 255print(image.shape)###调用函数 cam,heatmap=grad_cam(model,image,1,'concatenate_5')#

梯度下降法

…衆ロ難τιáo~ 提交于 2020-01-19 16:44:04
https://blog.csdn.net/pengchengliu/article/details/80932232 梯度下降推导过程 首先理解什么是梯度? 通俗来说,梯度就是表示某一函数在该点处的方向导数沿着该方向取得较大值,即函数在当 前位置的导数 。 其中,θo是自变量参数,即下山位置坐标,η是学习因子,即下山每次前进的一小步**(步进长度)**, θ是更新后的θo ,即下山移动一小步之后的位置。 一阶泰勒展开式 这里需要一点数学基础,对泰勒展开式有些了解。简单地来说,一阶泰勒展开式利用的就是函数的局部线性近似这个概念。我们以一阶泰勒展开式为例 最后得到的梯度下降公式: BGD,SGD,MBGD的区别 BGD(批量梯度下降 ):更新每一参数都用所有样本更新,m=all,更新100次遍历多有数据100次 SGD(随机梯度下降) :更新每一参数都随机选择一个样本更新,m=1 **MBGD(小批量梯度下降):**更新每一参数都选m个样本平均梯度更新,1<m<all 总结:SGD训练速度快,大样本选择;BGD能得到全局最优解,小样本选择;MBGD综合二者选择 来源: CSDN 作者: 御剑归一 链接: https://blog.csdn.net/wj1298250240/article/details/104040674

线性回归:梯度下降

心不动则不痛 提交于 2020-01-19 05:51:29
目录: 1、什么是线性回归   1.1 理论模型   1.2 数据和估计 2、线性回归参数求解方法   2.1 直接求取参数   2.2 梯度下降法   2.3 随机梯度下降法 3、为什么选择最小二乘为评判标准   3.1 似然函数   3.2 求解极大似然函数   3.3 结论 1、什么是线性回归   线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。 1.1 理论模型   给一个随机样本 ,一个线性回归模型假设回归子 和回归量 之间的关系是除了X的影响以外,还有其他的变量存在。我们加入一个误差项 (也是一个随机变量)来捕获除了 之外任何对 的影响。所以一个多变量线性回归模型表示为以下的形式: 其他的模型可能被认定成非线性模型。一个线性回归模型不需要是自变量的线性函数。线性在这里表示 的条件均值在参数 里是线性的。例如:模型 在 和 里是线性的,但在 里是非线性的,它是 的非线性函数。 1.2 数据和估计   用矩阵表示多变量线性回归模型为下式:   其中 Y 是一个包括了观测值 的列向量, 包括了未观测的随机成份 以及回归量的观测值矩阵: 2、线性回归参数求解方法   

【深度学习】为什么会存在激活函数?

孤者浪人 提交于 2020-01-18 21:56:41
来源: AINLPer 微信公众号( 点击了解一下吧 ) 编辑: ShuYini 校稿: ShuYini 时间: 2019-9-1 引言     在深度学习网络中,我们经常可以看到对于某一个隐藏层节点的激活值计算一般分为两步,如下图:     第一步,输入该节点的值为 x 1 x_1 x 1 ​ , x 2 x_2 x 2 ​ 时,在进入这个隐藏节点后,会先进行一个线性变换,计算出值 z [ 1 ] = w 1 x 1 + w 2 x 2 + b [ 1 ] = W [ 1 ] x + b [ 1 ] z^{[1]}=w_1x_1+w_2x_2+b^{[1]}=W^{[1]}x+b^{[1]} z [ 1 ] = w 1 ​ x 1 ​ + w 2 ​ x 2 ​ + b [ 1 ] = W [ 1 ] x + b [ 1 ] ,上标 1 表示第 1 层隐藏层。     第二步,再进行一个非线性变换,也就是经过非线性激活函数,计算出该节点的输出值(激活值) a ( 1 ) = g ( z ( 1 ) ) a^{(1)}=g(z^{(1)}) a ( 1 ) = g ( z ( 1 ) ) ,其中 g(z)为非线性函数。     那么问题来了,这个激活函数到底有什么用呢,可不可以不加激活函数呢? 什么是激活函数?     激活函数是神经网络中极其重要的概念

6.1激活函数-数据预处理笔记

岁酱吖の 提交于 2020-01-18 05:50:39
文章目录 处理过程 激活函数 sigmoid函数 问题1 首先是饱和神经元将使梯度消失 问题2 sigmoid是非0中心函数 问题3 exp()是一个计算成本高的函数 tanh激活函数 ReLU激活函数 ReLU改进 leaky relu 实践 数据预处理 初始化网络权重 处理过程 处理过程包括 激活函数 数据预处理 权重初始化 批量归一化 训练过程监控 超参的优化 激活函数 当输入数据,在全连接层或者卷积层,我们将输入乘上权重值,然后将结果输入一个激活函数,或非线性单元。 上图是一些例子 sigmoid函数 每个数被输入sigmoid中,都会被压缩到[0,1]的范围内,然而它从在很多问题。 问题1 首先是饱和神经元将使梯度消失 当x=-10,太过接近sigmoid负饱和区,这个区域本质上是平的所以梯度变为0,我们将返回上游梯度乘一个约为0的数,所以得到一个非常小的梯度,所以某种意义上经过链式法则后让梯度流消失因此0梯度就传递到下游的节点。 当x=0,可以有一个好的梯度可以好的反向传播 当x=10,或者很大正值,它们位于梯度平滑区域,无法得到梯度流的反馈。 问题2 sigmoid是非0中心函数 当输入神经元的数值始终为正,它会乘以某个权重W,然后我们将通过激活函数来运行 权重W梯度如何? 当我们把上游梯度传回来,就是对我们的损失L关于f进行求导,就是dl/df它的值就是正数或负数

图像特征提取之HOG特征

为君一笑 提交于 2020-01-17 08:59:26
目标检测的图像特征提取之(一)HOG特征 zouxy09@qq.com http://blog.csdn.net/zouxy09 1、HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主。 (1)主要思想: 在一副图像中,局部目标的表象和形状(appearance and shape)能够被梯度或边缘的方向密度分布很好地描述。(本质:梯度的统计信息,而梯度主要存在于边缘的地方)。 (2)具体的实现方法是: 首先将图像分成小的连通区域,我们把它叫细胞单元。然后采集细胞单元中各像素点的梯度的或边缘的方向直方图。最后把这些直方图组合起来就可以构成特征描述器。 (3)提高性能: 把这些局部直方图在图像的更大的范围内(我们把它叫区间或block)进行对比度归一化(contrast-normalized),所采用的方法是:先计算各直方图在这个区间(block)中的密度

【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week10 Large Scale Machine Learning

╄→гoц情女王★ 提交于 2020-01-17 03:27:58
吴恩达-机器学习公开课 学习笔记 Week10 Large Scale Machine Learning 10 Large Scale Machine Learning 课程内容 10-1 Gradient Descent with Large Datasets Learning With Large Datasets Stochastic Gradient Descent Mini-Batch Gradient Descent Stochastic Gradient Descent Convergence 10-2 Advanced Topics Online Learning Map Reduce and Data Parallelism 测验 Large Scale Machine Learning 课程链接 课件 10 Large Scale Machine Learning 课程内容 此文为Week10 中Large Scale Machine Learning的部分。 10-1 Gradient Descent with Large Datasets Learning With Large Datasets 得到一个高效的机器学习系统的最好的方式之一是用一个低偏差的学习算法,然后用很多数据来训练它。 在大规模的机器学习中,我们喜欢找到合理的计算量的方法

@。Tensorflow,纯新手入门笔记->优化器

夙愿已清 提交于 2020-01-16 21:38:34
第九节:Tensorflow优化器 高中数学学过,函数在一阶导数为零的地方达到其最大值和最小值。梯度下降算法基于相同的原理,即调整系数(权重和偏置)使损失函数的梯度下降。 (就是使用优化器,调整权重W,偏置B,使得损失函数到达一个损失最少的点) 有三种梯度下降: 1.Vanilla 梯度下降 :在 Vanilla 梯度下降(也称作批梯度下降)中,在每个循环中计算整个训练集的损失函数的梯度。该方法可能很慢并且难以处理非常大的数据集。该方法能保证收敛到凸损失函数的全局最小值,但对于非凸损失函数可能会稳定在局部极小值处。 **2.随机梯度下降:**在随机梯度下降中,一次提供一个训练样本用于更新权重和偏置,从而使损失函数的梯度减小,然后再转向下一个训练样本。整个过程重复了若干个循环。由于每次更新一次,所以它比 Vanilla 快,但由于频繁更新,所以损失函数值的方差会比较大。 3.小批量梯度下降 :该方法结合了前两者的优点,利用一批训练样本来更新参数。 亮点: 1.Vanilla 梯度下降:很慢,难以处理非常大的数据集。能保证收敛到凸损失函数的全局最小值,但对于非凸损失函数可能会稳定在局部极小值处。 2.随机梯度下降:比第一个快,但是由于频繁更新,所以损失函数值得方差会比较大。 3.批量梯度下降,快!准!狠 优化器的使用: 第一个优化器: GradientDescentOptimizer

函数梯度及空间曲面切平面

我怕爱的太早我们不能终老 提交于 2020-01-15 05:41:06
函数梯度及空间曲面切平面 求曲面(线)的 \(y=x^2\) 在点 \(P(1,1)\) 处的切线。 解:   令: \(f(x,y)=x^2-y\) ,   则梯度方向为: \(\nabla f(x,y)=2xi-j\)   所以等值面(等高线) \(f(x,y)=x^2-y=0\) 的在点 \(P(1,1)\) 处的法向量为: \(\overrightarrow {n} = (2,-1)\)   所以, \(y=x^2\) 在 \(P(1,1)\) 处的切线(面)方程为:        \(2(x-1)-(y-1)=0\)   即: \(2x-y-1=0\) 总结: 首先重申一下 梯度的概念 :    函数 \(f(\overrightarrow {x})\) 在某点的梯度是这样一个向量:它指向的方向函数增加最快;此时,函数在这个方向的 方向导数 达到最大值,这个最大值就是梯度的模。   所谓“ 梯度垂直于等高线 ” 是指: == \(f(x,y)\) 在某点梯度方向垂直于 \(f(x,y)=C\) 的等高线,而不是垂直于 \(f(x,y)\) 本身==。 ==梯度为等高线在该点的法向量==。 如果两个等值面法线相等,则这两个等值面相切,且有共同的切平面。 这个材料写的还可以: 方向导数与梯度 或者打开学习的正确方式: 梯度,方向导数,切平面 画图说明:   如果把 \(f(x