delta函数

神经网络(三)—— BP算法基本推导

流过昼夜 提交于 2020-01-31 00:21:19
BP算法 前情回顾 上回我们说到,单层的线性神经网络权值的迭代公式是: w : = w − η X T ( f ( w X ) − y ) f ′ ( w X ) w:=w-\eta X^T(f(wX)-y)f'(wX) w : = w − η X T ( f ( w X ) − y ) f ′ ( w X ) 其中呢,这个 ( f ( w X ) − y ) f ′ ( w X ) (f(wX)-y)f'(wX) ( f ( w X ) − y ) f ′ ( w X ) 我们称它为 δ \delta δ ,于是 w : = w − η X T δ w:=w-\eta X^T\delta w : = w − η X T δ 不用必须是线性神经网络,其他激活函数也适用于这个公式,只不过线性的话就可以把f’(wX)这一项去掉。 对于多层的神经网络来说,每一层的权值怎么更新呢? 下面以二层的网络为例给出推导。 基本推导 损失函数自然就是 E = 1 2 ( O − Y ) 2 E=\frac12(O-Y)^2 E = 2 1 ​ ( O − Y ) 2 这个二层的网络是如何工作的? 我们把它看成两个单层的就好。 一开始我们初始化了两层的权值V和W。 假设我们的激活函数是f(x). 中间层的输出就可以计算: M = f ( V X ) M = f(VX) M = f ( V X )

[笔记] 高数笔记

你说的曾经没有我的故事 提交于 2020-01-24 18:37:13
函数极限 设函数 \(f(x)\) 在点 \(x_0\) 的某一去心邻域内有定义,如果存在常数 \(A\) ,对于任意给定的正数 \(\varepsilon\) (无论它多么小),总存在正数 \(\delta\) ,使得对于 \(0<|x-x_0|<\delta\) ,均有 \(f(x)-A<\varepsilon\) ,那么常数 \(A\) 就叫做函数 \(f(x)\) 当时 \(x\rightarrow x_0\) 的极限,记作 \[ \lim\limits_{x\rightarrow x_0} f(x)=A \] 夹逼定理 :求函数的极限时,我们可以通过上界和下界两个函数去夹某个函数 \(f(x)\) ;如 \[ \sin(x)<x<\tan(x)\\ \Rightarrow \frac{\sin(x)}{x}<\frac{\sin(x)}{\sin(x)}=1,\frac{\sin(x)}{x}>\frac{\sin(x)}{\tan(x)} =\cos(x)\\ \Rightarrow \lim\limits_{x\to 0} \frac{\sin(x)}{x}=1 \] 导数与斜率 斜率 :对于一次函数 \(y=kx+b\) , \(k\) 即为斜率; 导数 : \(f’(x)=\lim\limits_{\Delta x\to 0} \frac{f(x+\Delta x

深度学习(二)——神经网络基础(多层感知器、反向传播算法)

ⅰ亾dé卋堺 提交于 2020-01-21 01:29:50
深度学习(二)——神经网络基础 文章目录 深度学习(二)——神经网络基础 神经网络的通用分类 神经网络的基本结构 基础架构 人工神经元 激活函数 模型训练与反向传播算法 前向传播 反向传播 梯度消失和梯度爆炸 神经网络的通用分类 人工神经网络模型可以理解为一组基本处理单元,它们紧密地相互连接,对输入进行类似的数学运算后生成期望的输出。基于信息在网络中传播的方式,可以将神经网络分为两个通用类别: 前馈神经网络 前馈神经网络 中信息的流动只能 由前到后 ,也就是说,一层神经元的输出只能作为后一层神经元的输入。这些网络架构可以被称为 有向无环图 。典型的模型有 多层感知器(MLP) 和 卷积神经网络(CNN) 。 反馈神经网络 反馈神经网络 具有形成有向循环的连接,也就是说,后一层神经元也可以反过来作为前一层神经元的输入,这就使得神经网络 可以处理序列数据 。反馈网络还具有 记忆能力 ,可以在其内部存储器中存储信息和序列关系。典型的模型有 循环神经网络(RNN) 和 长短期记忆网络(LSTM) 。 神经网络的基本结构 下面以多层感知器为例,介绍神经网络的基本结构。 基础架构 下图给出了MLP网络架构的一个例子: 这是一个五层感知器的例子,每一层分别含有3、4、2、3、3个人工神经元。我们用这个例子来介绍人工神经网络的一些特点: 分层架构 :人工神经网络包含层次化的处理级别。每个级别被称为

ML对抗攻击

和自甴很熟 提交于 2020-01-17 22:48:08
记录一下李宏毅机器学习课程关于对抗攻击的内容; 1、 一般模型training过程 :   输入x_0,调整模型Network的参数θ,使得输出y_0和y_true的loss越小越好;损失函数:L_train(θ) = C(y_0, y_true) Non-targeted Attack :   固定模型Network的参数θ,调整输入x',使得输出y'和y_true越远越好;损失函数:L(x') = -C(y', y_true) Targeted Attack:    固定模型Network的参数θ,调整输入x',使得输出y'和y_true越远越好,同时让y'和某个y_false越近越好; L(x') = -C(y', y_true) + C(y',y_false) Constraint:    约束:d(x_0,x') ≤ ε,希望攻击后的图片不要被人所发现,x_0和x'够相近   常见的有两种约束,L2-norm和L-infinity   1)L2-norm     d(x_0, x') = ||x_0 - x'|| 2      = (Δx_1) 2 + (Δx_2) 2 + (Δx_3) 2 +...   2) L-infinity       d(x_0, x') = ||x_0 - x'|| ∞      =max{ Δx_1, Δx_2+ Δx_3+...} 来源:

梯度提升与梯度下降

随声附和 提交于 2020-01-15 00:00:55
梯度提升与梯度下降 梯度是什么 梯度是谁的 梯度下降 梯度提升 总结 梯度是什么 “梯度提升”与“梯度下降”中的“梯度”是什么?梯度是损失函数对需要求解的模型参数的导数。梯度方向是参数导数中绝对值最大的方向,因此梯度方向有两个,一个是梯度最大方向,另一个是梯度最小方向。 梯度是谁的 “梯度”是目标函数在当前点的梯度(不是参数的梯度),因此有了目标函数、样本点,才会有梯度。 梯度下降 在参数空间中,梯度下降是指目标函数在当前点的取值下降(最小化目标函数),参数自身沿着负梯度的方向下降。因此梯度下降,是目标函数对最优参数的搜索,其变量是参数。 梯度下降通常用来求解这种无约束最优化问题,它是一种迭代方法:初选取参数初值(还包括算法终止距离参数和学习率参数),不断迭代,更新参数的值,进行损失函数的最小化。 为什么梯度的负方向是函数局部下降最快的方向?下面开始证明。 假设迭代公式为: θ t = θ t − 1 + Δ θ \theta_{t}=\theta_{t-1}+\Delta \theta θ t ​ = θ t − 1 ​ + Δ θ ,将 L ( θ t ) L\left(\theta_{t}\right) L ( θ t ​ ) 在 θ t − 1 \theta_{t-1} θ t − 1 ​ 处进行泰勒展开: L ( θ t ) = L ( θ t − 1 + Δ θ ) ≈

python assert断言函数

こ雲淡風輕ζ 提交于 2020-01-01 14:34:48
本文转载自: https://www.cnblogs.com/feiyuenotes/p/7788995.html 作者:feiyueNotes 转载请注明该声明。 python assert断言是声明布尔值必须为真的判定,如果发生异常就说明表达式为假。 可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。 self.assertEqual(a,b,msg=msg) #判断a与.b是否一致,msg类似备注,可以为空 self.assertNotEqual(a,b,msg=msg) #判断a与b是否不一致 self.assertTrue(a,msg=none) #判断a是否为True self.assertFalse(b,msg=none) #判断b是否为false self.assertAlmostEqual(a,b,places=none,msg=none,delta=none) #该判断过程有点复杂,判断过程如下 注:places与delta不能同时存在,否则出异常 #若a==b,则直接输入正确,不判断下面的过程 #若delta有数,places为空,判断a与b的差的绝对值是否<=delta,满足则正确,否则错误 #若delta为空,places有数,判断b与a的差的绝对值,取小数places位,等于0则正确,否则错误

秒懂机器学习---机器学习无法逃避的梯度下降法

最后都变了- 提交于 2019-12-22 05:12:14
秒懂机器学习---机器学习无法逃避的梯度下降法 一、总结 一句话总结: 梯度下降法有其缺陷,但是可以和其它算法配合使用,比如模拟退火等。 1、导数的几何意义是什么? 斜率:导数又叫微分,是图像的斜率。 2、复合函数(比如z=f[u(x,y),v(x,y)])的偏导数的链式求导法则是怎样的? δz/δx=(δz/δu)*(δu/δx)+(δz/δv)*(δv/δx) 3、偏导数的几何意义是什么? 曲面无数条切线中的一条:多远看书表示的是高维空间中的曲面。而曲面上的每一点都有无穷多条切线,而求偏导数就是选择其中的一条切线。 4、梯度的定义是什么? 某一函数在该点处的方向导数沿着该方向取得最大值:(梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)) 单变量中表示导数或斜率:在单变量的实值函数的情况,梯度只是导数,或者,对于一个线性函数,也就是线的斜率。 5、梯度是向量还是标量? 向量 6、多元函数中的梯度分别为什么? 偏导数:一个n元函数f关于n个变量的偏导数 三元函数f的梯度为(fx,fy,fz),二元函数f的梯度为(fx,fy),一元函数f的梯度为fx 要明确梯度是一个向量,是一个n元函数f关于n个变量的偏导数,比如三元函数f的梯度为(fx,fy,fz),二元函数f的梯度为

人工神经网络反向传播算法(BP算法)证明推导

穿精又带淫゛_ 提交于 2019-12-18 07:23:09
为了搞明白这个没少在网上搜,但是结果不尽人意,最后找到了一篇很好很详细的证明过程,摘抄整理为 latex 如下。 (原文: https://blog.csdn.net/weixin_41718085/article/details/79381863 ) 更新:为了让看博客的带哥们能直观的看,我编译截图了,放在这里,latex 源码在下面 这个只是为了应付作业总结的,所以没有认真检查过,如果内容、正确性(尤其是这个)和格式上有什么问题请务必在下面评论区中指出。 \documentclass{article} \usepackage{xeCJK} \usepackage{amsmath} \setCJKmainfont{Noto Serif CJK SC} \title{人工神经网络反向传播算法\\链式法则在人工智能中的应用} \begin{document} \maketitle \section{背景} \subsection{人工神经元} 人工神经元是一个运算,它将输入分别以不同的权重组合相加并做一次偏移操作后进行某个非线性运算得到输出,以数学语言描述即是 \[ x^{(j + 1)} = \sigma(b + \sum_i W_i x_i^{(j)}) \] 其中 \(j\) 指神经元所处的层数,本例中 \(x_i^{(j)}\) 是来自第 \(j\) 层的第 \(i\)

数学基础系列(一)----函数、极限、连续性、导数

喜欢而已 提交于 2019-12-10 22:44:24
为了加深在人工智能、深度学习领域的学习,接下来会推出数学基础系列博客,加深自己在这领域的基础知识。 一、函数 1、函数的定义 函数表示量与量之间的关系如:$A=\pi r^{2}$。更普遍的是用$y=f(x)$表示,其中x表示自变量,y表示因变量。函数在x 0 处取得的函数值$y_{0}=y\mid _{x=x_{0}}=f(x_{0})$。值得一提的是,符号只是一种表示,也可以用其他符号来表示,比如:$y=g(x)$、$y=\varphi (x)$、$y=\psi (x)$等。 2、常用函数形式 分段函数:$f(x)=\left\{\begin{matrix}\sqrt{x}, &x\geqslant 0 \\ -x, & x< 0\end{matrix}\right.$ 反函数:$h=\frac{1}{2}gt^{2}\rightarrow h=h(t) \rightarrow t=\sqrt{\frac{2h}{g}}\rightarrow t=t(h)$ 显函数:$y=x^{2}+1$ 隐函数:$F(x,y)=0$,$3x+y-4=0$ 3、函数特点 奇函数:相对于原点对称的函数$f(-x)=-f(x)$,如$f(x)=x^{3}$,代入计算可得$f(-x)=(-x)^{3}=-x^{3}=-f(x)$。 偶函数:相当于Y轴对称的函数$f(-x)=f(x)$,如$f(x)

【Algorithm】梯度下降算法的数学原理

爷,独闯天下 提交于 2019-12-10 22:21:00
1.前言 在机器学习,深度学习中,我们通过定义损失函数并采用最小化损失函数的策略来优化模型中的参数。到了这个环节,其实我们面临的就是最优化问题。求解这些问题的方法也有很多,最常用就是 梯度下降算法 ,在李航博士的《统计学习方法》中也还有 牛顿法 等。而针对梯度下降算法的不足,对此改进的有 随机梯度下降法 以及添加 动量 等。在本篇博文中,我们先来看看梯度下降算法的数学原理。 2.预备知识 在了解梯度下降算法之前,我们需要有一定的数学基础,例如:偏导,梯度,泰勒展开式。偏导大家应该很清楚,就不做细谈,现在让我们回忆以下梯度以及泰勒展开式的相关概念。 2.1梯度 本部分主要参考百度文库[1]。梯度:表示一函数在该点的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。这里又有一个新名词 方向导数 ,那么什么是方向导数呢?下面我们来看看: 背景 :假如我们有一个曲面(我们可以联想到这是一个山坡, z z z 可以看成一个高度) z = ( x , y ) z=(x,y) z = ( x , y ) ,其中 ( x , y ) ∈ D (x,y)\in D ( x , y ) ∈ D ,可以将 D D D 理解为这座山所占水平面的那块平面区域,在这块区域上有一点 M 0 ( x 0 , y 0 ) ∈ D M_0(x_0,y_0)