梯度

激活函数

早过忘川 提交于 2020-02-07 09:28:27
激活函数 因为线性的卷积运算,无法形成复杂的空间表示,故很难提取出高语义的信息,因此需要加入非线性的映射,称为激活函数,可以逼近任意的非线性函数,以提升整个神经网络的表达能力. 常用的激活函数 Sigmoid 函数 σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1+e^{-x}} σ ( x ) = 1 + e − x 1 ​ \sigma(x) 的导数计算 σ ( x ) ′ = ( 1 1 + e − x ) ′ = 1 − 1 1 + e − x = 1 − σ ( x ) \sigma(x)' = \left(\frac{1}{1+e^{-x}}\right)' = 1 - \frac{1}{1+e^{-x}} = 1- \sigma(x) σ ( x ) ′ = ( 1 + e − x 1 ​ ) ′ = 1 − 1 + e − x 1 ​ = 1 − σ ( x ) 目的是将一个实数输入转化到 0~1 之间的输出,具体的说也是将越大的负数转化到越靠近 0, 将越大的正数转化到越靠近 1. 即 0 端对应抑制状态,1 端对应激活状态. 中间部分梯度大. 缺点: (1) Sigmoid 函数会造成梯度消失. 靠近 0 和 1 两端时,梯度几乎变为 0, (2) Sigmoid 输出不是以 0 为均值, 这会导致经过 SIgmoid

图像特征提取三大法宝:HOG特征,LBP特征,Haar特征

喜欢而已 提交于 2020-02-07 04:46:25
图像特征提取三大法宝:HOG特征,LBP特征,Haar特征 (一)HOG特征 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)中的密度,然后根据这个密度对区间中的各个细胞单元做归一化

BP神经网络

纵饮孤独 提交于 2020-02-07 03:02:50
起源:线性神经网络与单层感知器 古老的线性神经网络,使用的是单层Rosenblatt感知器。该感知器模型已经不再使用,但是你可以看到它的改良版:Logistic回归。 可以看到这个网络,输入->加权->映射->计算分类误差->迭代修改W、b,其实和数学上的回归拟合别无二致。 Logistic回归对该模型进行了改良: 线性神经网络(回归)使用的LMS(最小均方)的数学原理其实可由最大似然估计+假设误差概率模型得到。(详见Andrew Ng视频) 在二类分类(误差非0即1)情况下,适用于连续型数据的最小均方显然不是很好的cost函数,会引起梯度过大。 仿照线性回归假设误差服从正态分布建立概率模型,Logistic回归假设误差服从二项分布建立概率模型。 Logistic函数的(0~1连续特性)在这里充当着,由输入评估概率的角色,而不是像下面的BP网络一样,起的是高维空间非线性识别作用。 该手法同样在RBM限制玻尔兹曼机中使用。 实际上,这两种模型的起源都是最小二乘法的线性回归。不同的是,早期的解决线性回归使用的矩阵解方程组,求得参数。 而基于梯度下降使目标函数收敛的数学方法,在计算神经科学领域,就变成神经网络了。 Part I :BP网络的结构与工作方式 BP网络中使用隐层(HideLayer)设定,目的是通过全连接的网络+非线性Sigmoid函数,疯狂地通过特征空间映射来区分非线性数据

大白话解读梯度下降法解决一元线性回归

我是研究僧i 提交于 2020-02-07 01:49:37
1.一元线性回归与损失函数 在我们解决一元线性回归进行拟合曲线的时候,常常会使用梯度下降法。 假设我们的数据集为 # 训练数据 x_train = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]) y_train = np.array([1, 3, 4, 5, 6, 7, 8, 9, 10]) 我们想将其拟合成一条曲线,然后进行训练。拟合曲线表示如下 我们如何去拟合呢?显然两点确定一条直线的。我们就其次,然后求得一个函数,各个点到该函数的方差和最小,于是,我们将其称为损失函数(也叫代价函数、目标函数),该函数如下 该方程为凸函数,并且有极小值。 2.梯度下降法求解最小值 我们解决一个函数的最小值的时候,往往会想到使用导数来求。但是,在多维数据,或者大数据情况下,这种求解方法不适用。 于是,我们有了一个新的方法。 例题:求解y = x^2的极小值 1.我们可以随机取一个点m,假设取到了10, 那么我们显然偏离了,我们进行计算,发现y = 10^2=100,偏右边了怎么办呢? 2.我们将m减去导数,得到100-2*10,靠近了一点点,我们反复取值,即可靠近最低点。 3.在机器学习中,往往允许的误差是极小的,所以,我们应该将m乘上一个alpha值,这个值是学习率,学习率越低,往往拟合函数越好,但是也不是无限低的。 3.梯度下降求解一元线性回归 我们将梯度下降

【时空序列预测第四篇】PredRNN++: Towards A Resolution of the Deep-in-Time Dilemma in Spatiotemporal Predictive

风格不统一 提交于 2020-02-06 20:15:33
前言 保持住节奏,每周起码一篇paper reading,要时刻了解研究的前沿,是一个不管是工程岗位还是研究岗位AIer必备的工作,共勉! 准备再写几篇这种非常细致的文章之后,接下来写作主要集中在模型的结构,创新点,解决的问题,以及比较巧妙的操作,代码实战,以及我个人感觉需要写下来,并且有意思的东西。 一、Address 这是ICML2018年的一篇paper,来自于清华的团队 PredRNN++: Towards A Resolution of the Deep-in-Time Dilemma in Spatiotemporal Predictive http://proceedings.mlr.press/v80/wang18b/wang18b.pdf 二、Introduction 2.1 创新思路 文中abstract中先指出本文作者的创新之一在于把双memory用级联的方式链接构建新的LSTM结构(Causal LSTM),并且全篇文章围绕deeper in time来说明,这里deeper in time在读完全篇之后理解为就是网络cell的堆叠和时间步的结构。 这里还提出了用一个gradient highway units work去解决存在的梯度消失问题,并且此结构和Causal LSTM无缝连接。 句子后面之所以会强调自适应的获取短时和长时的信息依赖

【深度学习基础】从零开始的炼丹生活07——深度模型中的优化

喜夏-厌秋 提交于 2020-02-04 07:09:35
往期回顾: 04——从传统机器学习走向深度学习 05——深度前馈网络、神经网络概述 06——深度学习中的正则化 介绍了神经网络的基本构件和正则化策略之后,学习一下深度模型中的优化。先说一说传统的纯优化与机器学习中的优化的异同,再介绍一下神经网络中优化的挑战,最后说说基本的优化算法。(参考《深度学习》第8章) 一、机器学习中的优化 传统的优化方法是纯优化最小化目标 J 本身,而机器学习的优化是间接作用的。在机器学习问题中,我们关注某些性能度量 P ,其定义于测试集上并且是不可解的。因此机器学习希望通过降低代价函数 J(θ)来间接提高 P 。 1. 经验风险最小化 机器学习算法的目标是降低期望泛化误差 J ∗ ( θ ) = E ( x , y ) ∼ p d a t a L ( f ( x ; θ ) , y ) J^*(\theta)=\mathbb E_{(\bold {x,y})\sim p_{data}}L(f(x;\theta),y) J ∗ ( θ ) = E ( x , y ) ∼ p d a t a ​ ​ L ( f ( x ; θ ) , y ) 这被称为 风险 。此时数据取自真实的潜在分布,然而,我们遇到的问题通常并不清楚真实分布,只知道训练集中的样本。 我们将机器学习中的优化转换回一个优化问题的最简单方法就是最小化训练集上的期望损失,以训练集上的经验分布 p

cv2小记——图像梯度

99封情书 提交于 2020-02-04 06:25:58
# coding: utf-8 # !/usr/bin/python """ @File : 图像梯度.py @Author : jiaming @Modify Time: 2020/2/3 12:13 @Contact : https://blog.csdn.net/weixin_39541632 @Version : 1.0 @Desciption : 图像梯度、图像边界 cv2.Sobel() cv2.Schar() cv2.Laplacian() """ import os import sys import numpy as np import cv2 import pprint from matplotlib import pyplot as plt rawPath = os . path . abspath ( __file__ ) currentFile = os . path . basename ( sys . argv [ 0 ] ) dataPath = rawPath [ : rawPath . find ( currentFile ) ] + r 'static\\' """ OpenCV 提供了三种不同的梯度滤波器,或者说高通滤波器:Sobel、 Scharr、 Laplacian """ """ Sobel 算子和 Scharr 算子 Sobel

激活函数篇(Sigmoid、tanh、ReLU、PReLU)

ⅰ亾dé卋堺 提交于 2020-02-04 01:50:58
写在前面:此文只记录了下本人感觉需要注意的地方,不全且不一定准确。详细内容可以参考文中帖的链接,比较好!!! 常用激活函数(激励函数)理解与总结 激活函数的区别与优点 梯度消失与爆炸 1. 激活函数是什么? 在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数(又称激励函数)。 2. 激活函数的用途 如果不用激活函数,每一层的输入都是上一层输出的线性函数,而多层线性函数与一层线性函数的功能是等价的,网络的逼近能力就相当有限,因此引入非线性函数作为激励函数,使得深层神经网络的可以更好的逼近任意函数。 3. 常见的激活函数: Sigmoid 函数: 表达形式: f ( z ) = 1 1 + e − z f(z) = \frac{1}{1+e^{-z}} f ( z ) = 1 + e − z 1 ​ 函数图像: 导数图像: 优缺点: 优点 能够把输入的连续值压缩到【0~1】之间,可解释性强,0为不活跃,1为活跃 缺点 梯度反向传递时,容易导致梯度的爆炸和消失(大概率梯度消失,有时梯度爆炸)。 而由于 σ ( z ) \sigma (z) σ ( z ) 最大值为0.25,且通常初始| w | < 1 ,则有: 极易出现梯度消失;当初始化 |w| > 4 时,w * σ ( z ) \sigma (z) σ ( z ) > 1 ,才会产生梯度爆炸。

【TensorFlow】激活函数(Activation Functions)原理解析(十二)

给你一囗甜甜゛ 提交于 2020-02-02 06:00:49
神经网络结构的输出为所有输入的加权和,这导致整个神经网络是一个线性模型。如果将每一个神经元的输出通过一个非线性函数,那么整个神经网络的模型也就不再是线性的了,使得神经网络可以更好地解决较为复杂的问题。这个非线性函数也就是 激活函数 。 神经网络中激活函数的主要作用是提供网络的非线性建模能力,如不特别说明,激活函数一般而言是非线性函数。假设一个示例神经网络中仅包含线性卷积和全连接运算,那么该网络仅能够表达线性映射,即便增加网络的深度也依旧还是线性映射,难以有效建模实际环境中非线性分布的数据。加入(非线性)激活函数之后,深度神经网络才具备了分层的非线性映射学习能力。因此,激活函数是深度神经网络中不可或缺的部分。 从定义来看,几乎所有的连续可导函数都可以用作激活函数。但目前常见的多是分段线性和具有指数形状的非线性函数。下文将依次对它们进行总结。 TensorFlow提供的激活函数有: 详见官方文档 1、tf.nn.relu(features, name=None) 2、tf.nn.relu6(features, name=None) 3、tf.nn.softplus(features, name=None) 4、tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None, name=None) 5、tf.nn.bias_add

cs231n--反向传播

陌路散爱 提交于 2020-02-01 21:35:39
原博客:https://blog.csdn.net/sinat_36458870/article/details/82824529(此处只做学习记录用) 回顾上次的内容,其实就会发现,虽然我们构造好了损失函数,可以简单使用导数的定义解决损失函数优化问题,但是并不高效。 1. 该课程,主要是 : 反向传播形成直观而专业的理解 利用链式法则递归计算表达式的梯度 理解反向传播过程及其优点。 如果你想:理解、实现、设计和调试神经网络,请再看一遍。 目的:给出f(x)(x是输入数据的向量),计算 ∇ f ( x ). 2. 通过简单表达式理解梯度 先看看二元乘法函数: f ( x , y ) = x y, 求一下偏导数 f ( x , y ) = x y → d f/ d x ​ = y d f/ d y ​ = x 啥意思呢? 请记住导数的意义:函数变量在某个点周围的很小区域内变化,而导数就是-->变量变化导致的函数在该方向上的变化率 d f ( x ) ​/ d x = lim (h-->0) ( f ( x + h ) − f ( x )) / h ​ 等同于: ∇ f ( x ) = lim (h-->0) ( f ( x + h ) − f ( x )) / h ​ 官方解释:若x = 4, y=-3, 则f(x,y) = -12, x的导数 ∂ f/ ∂ x = − 3