精华内容
下载资源
问答
  • 反向传播的理解

    千次阅读 2019-01-28 22:57:28
    这是一场以误差(Error)为主导的反向传播(Back Propagation)运动,旨在得到最优的全局参数矩阵,进而将多层神经网络应用到分类或者回归任务中去。 前向传递输入信号直至输出产生误差,反向传播误差信息更新权重...

    转载自:https://www.sohu.com/a/168767295_826434

    一、前言

    这是一场以误差(Error)为主导的反向传播(Back Propagation)运动,旨在得到最优的全局参数矩阵,进而将多层神经网络应用到分类或者回归任务中去。

    前向传递输入信号直至输出产生误差,反向传播误差信息更新权重矩阵。这两句话很好的形容了信息的流动方向,权重得以在信息双向流动中得到优化,这让我想到了北京城的夜景,车辆川流不息,车水马龙,你来我往(* ॑꒳ ॑* )⋆*。

    至于为什么会提出反向传播算法,我直接应用梯度下降(Gradient Descent)不行吗?想必大家肯定有过这样的疑问。答案肯定是不行的,纵然梯度下降神通广大,但却不是万能的。梯度下降可以应对带有明确求导函数的情况,或者说可以应对那些可以求出误差的情况,比如逻辑回归(Logistic Regression),我们可以把它看做没有隐层的网络;但对于多隐层的神经网络,输出层可以直接求出误差来更新参数,但其中隐层的误差是不存在的,因此不能对它直接应用梯度下降,而是先将误差反向传播至隐层,然后再应用梯度下降,其中将误差从末层往前传递的过程需要链式法则(Chain Rule)的帮助,因此反向传播算法可以说是梯度下降在链式法则中的应用。

    二、举个栗子

    为了帮助较好的理解反向传播概念,对它有一个直观的理解,接下来就拿猜数字游戏举个栗子。

    2.1 两人猜数字

    这一过程类比没有隐层的神经网络,比如逻辑回归,其中小黄帽代表输出层节点,左侧接受输入信号,右侧产生输出结果,小蓝猫则代表了误差,指导参数往更优的方向调整。由于小蓝猫可以直接将误差反馈给小黄帽,同时只有一个参数矩阵和小黄帽直接相连,所以可以直接通过误差进行参数优化(实纵线),迭代几轮,误差会降低到最小。

    2.2 三人猜数字

    这一过程类比带有一个隐层的三层神经网络,其中小女孩代表隐藏层节点,小黄帽依然代表输出层节点,小女孩左侧接受输入信号,经过隐层节点产生输出结果,小蓝猫代表了误差,指导参数往更优的方向调整。由于小蓝猫可以直接将误差反馈给小黄帽,所以与小黄帽直接相连的左侧参数矩阵可以直接通过误差进行参数优化(实纵线);而与小女孩直接相连的左侧参数矩阵由于不能得到小蓝猫的直接反馈而不能直接被优化(虚棕线)。但由于反向传播算法使得小蓝猫的反馈可以被传递到小女孩那进而产生间接误差,所以与小女孩直接相连的左侧权重矩阵可以通过间接误差得到权重更新,迭代几轮,误差会降低到最小。

    三、完整流程

    上边的栗子从直观角度了解了反向传播,接下来就详细的介绍其中两个流程前向传播与反向传播,在介绍之前先统一一下标记。

    3.1 数学标记

    3.2 前向传播

    如何将输入层的信号传输至隐藏层呢,以隐藏层节点c为例,站在节点c上往后看(输入层的方向),可以看到有两个箭头指向节点c,因此a,b节点的信息将传递给c,同时每个箭头有一定的权重,因此对于c节点来说,输入信号为:

    同理,节点d的输入信号为:

    由于计算机善于做带有循环的任务,因此我们可以用矩阵相乘来表示:

    所以,隐藏层节点经过非线性变换后的输出表示如下:

    同理,输出层的输入信号表示为权重矩阵乘以上一层的输出:

    同样,输出层节点经过非线性映射后的最终输出表示为:

    输入信号在权重矩阵们的帮助下,得到每一层的输出,最终到达输出层。可见,权重矩阵在前向传播信号的过程中扮演着运输兵的作用,起到承上启下的功能。

    3.3 反向传播

    既然梯度下降需要每一层都有明确的误差才能更新参数,所以接下来的重点是如何将输出层的误差反向传播给隐藏层。

    其中输出层、隐藏层节点的误差如图所示,输出层误差已知,接下来对隐藏层第一个节点c作误差分析。还是站在节点c上,不同的是这次是往前看(输出层的方向),可以看到指向c节点的两个蓝色粗箭头是从节点e和节点f开始的,因此对于节点c的误差肯定是和输出层的节点e和f有关。

    不难发现,输出层的节点e有箭头分别指向了隐藏层的节点c和d,因此对于隐藏节点e的误差不能被隐藏节点c霸为己有,而是要服从按劳分配的原则(按权重分配),同理节点f的误差也需服从这样的原则,因此对于隐藏层节点c的误差为:

    同理,对于隐藏层节点d的误差为:

    为了减少工作量,我们还是乐意写成矩阵相乘的形式:

    你会发现这个矩阵比较繁琐,如果能够简化到前向传播那样的形式就更好了。实际上我们可以这么来做,只要不破坏它们的比例就好,因此我们可以忽略掉分母部分,所以重新成矩阵形式为:

    仔细观察,你会发现这个权重矩阵,其实是前向传播时权重矩阵w的转置,因此简写形式如下:

    不难发现,输出层误差在转置权重矩阵的帮助下,传递到了隐藏层,这样我们就可以利用间接误差来更新与隐藏层相连的权重矩阵。可见,权重矩阵在反向传播的过程中同样扮演着运输兵的作用,只不过这次是搬运的输出误差,而不是输入信号(我们不生产误差,只是误差的搬运工(っ̯ -。))。

    四、链式求导

    第三部分大致介绍了输入信息的前向传播与输出误差的后向传播,接下来就根据求得的误差来更新参数。

    首先对隐藏层的w11进行参数更新,更新之前让我们从后往前推导,直到预见w11为止:

    因此误差对w11求偏导如下:

    求导得如下公式(所有值已知):

    同理,误差对于w12的偏导如下:

    同样,求导得w12的求值公式:

    同理,误差对于偏置求偏导如下:

    带入上述公式为:

    接着对输入层的w11进行参数更新,更新之前我们依然从后往前推导,直到预见第一层的w11为止(只不过这次需要往前推的更久一些):

    因此误差对输入层的w11求偏导如下:

    求导得如下公式(有点长(ฅ́˘ฅ̀)):

    同理,输入层的其他三个参数按照同样的方法即可求出各自的偏导,在这不再赘述。

    在每个参数偏导数明确的情况下,带入梯度下降公式即可(不在重点介绍):

    至此,利用链式法则来对每层参数进行更新的任务已经完成。

    五、引入delta

    利用链式法则来更新权重你会发现其实这个方法简单,但过于冗长。由于更新的过程可以看做是从网络的输入层到输出层从前往后更新,每次更新的时候都需要重新计算节点的误差,因此会存在一些不必要的重复计算。其实对于已经计算完毕的节点我们完全可以直接拿来用,因此我们可以重新看待这个问题,从后往前更新。先更新后边的权重,之后再在此基础上利用更新后边的权重产生的中间值来更新较靠前的参数。这个中间变量就是下文要介绍的delta变量,一来简化公式,二来减少计算量,有点动态规划的赶脚。

    接下来用事实说话,大家仔细观察一下在第四部分链式求导部分误差对于输出层的w11以及隐藏层的w11求偏导以及偏置的求偏导的过程,你会发现,三个公式存在相同的部分,同时隐藏层参数求偏导的过程会用到输出层参数求偏导的部分公式,这正是引入了中间变量delta的原因(其实红框的公式就是delta的定义)。

    大家看一下经典书籍《神经网络与深度学习》中对于delta的描述为在第l层第j个神经元上的误差,定义为误差对于当前带权输入求偏导,数学公式如下:

    因此输出层的误差可以表示为(上图红色框公式):

    隐藏层的误差可以表示为(上图蓝色框公式):

    同时对于权重更新的表示为(上图绿色框公式):

    其实对于偏置的更新表示为(上图红色框):

    上述4个公式其实就是《神经网络与深度学习》书中传说的反向传播4大公式(详细推导证明可移步此书):

    仔细观察,你会发现BP1与BP2相结合就能发挥出最大功效,可以计算出任意层的误差,只要首先利用BP1公式计算出输出层误差,然后利用BP2层层传递,就无敌了,这也正是误差反向传播算法的缘由吧。同时对于权重w以及偏置b我们就可以通过BP3和BP4公式来计算了。

    至此,我们介绍了反向传播的相关知识,一开始看反向传播资料的时候总觉得相对独立,这个教材这么讲,另一篇博客又换一个讲法,始终不能很好的理解其中的含义,到目前为止,思路相对清晰。我们先从大致流程上介绍了反向传播的来龙去脉,接着用链式求导法则来计算权重以及偏置的偏导,进而我们推出了跟经典著作一样样儿的结论,因此本人觉得较为详细,应该对初学者有一定的借鉴意义,希望对大家有所帮助。

     

    展开全文
  • 什么反向解析

    2013-12-12 11:00:00
    正向解析容易理解,而反向解析什么时候使用呢?其实反向解析作用为服务器的身价验证。对于互联网上的服务器而言,大部分对接收数据地址进行反向查询,如果解析成功,表明该信息来自注册合法的地址,否则表明地址不...

    反向解析与正向解析相反,是指从IP地址到域名的解析过程。正向解析容易理解,而反向解析什么时候使用呢?其实反向解析作用为服务器的身价验证。对于互联网上的服务器而言,大部分对接收数据地址进行反向查询,如果解析成功,表明该信息来自注册合法的地址,否则表明地址不可靠。比如建立邮件服务器,如果接受邮件时,源地址无法进行反向解析,表明发信服务器为非法站点,很能可能为lj邮件,可以直接进行屏蔽。

    __________________ 金笛邮件

    转载于:https://my.oschina.net/u/1416142/blog/183836

    展开全文
  • 关于反向传播,我非常推荐下面的一个在线书籍,其给出了非常详实、生动且易于理解反向传播算法以及相关公式的推导,链接为:Neural Networks and Deep Learning。本文将对其讲解给以归纳和总结,其中不乏添加一些...

        关于反向传播,我非常推荐下面的一个在线书籍,其给出了非常详实、生动且易于理解的反向传播算法以及相关公式的推导,公式不繁杂是一大特点,Neural Networks and Deep Learning。本文将对其讲解给以归纳和总结,其中有些个人的见解,通篇将使用下图所示神经网络。

    一、符号假设

    损失函数为 C

    第 l 层的第 j 个神经元表示为 nr_j^l

    l 层的第 j 个神经元的偏置为 b_j^l,输入层无偏置

    l-1 层的第 k 个神经元与第 l 层的第 j 个神经元之间的的权重为 w^l_{jk}l\geqslant 1

    l 层的第 j 个神经元的激活值为 a_j^l

    l 层的第 j 个神经元的输入值为 z_j^l=\sum_{k=1}^{n_{l-1}}w_{jk}^l+b_j^l,其中 n_{l-1} 表示第 l-1 层的神经元数量

    二、什么是误差

        BP算法的全称是误差反向传播算法 ,本节来说下什么是误差,并结合下图来理解误差。

        现在,如果 nr_1^1 的输入发生变化,C 的变化为

                                                                                             \frac{\partial C}{\partial z_1^1}\Delta z_1^1

        假设 \Delta z_1^1 的变化较小。如果偏导项较大,且与 \Delta z_1^1 的符号相反,损失就会降低;反之,如果偏导项接近于零,那么无论 \Delta z_1^1 变化多大,损失的变动都不会很明显。那么,我们可以认为 C 的变化量由 \frac{\partial C}{\partial z_1^1} 来决定。\frac{\partial C}{\partial z_1^1} 越大,C 下降的空间就越大;反之,C 下降的空间就越小。因此,\frac{\partial C}{\partial z_1^1}  便可以用来度量学习误差。

     

    三、单样本误差计算

        本节假定神经网络的输入仅有一个样本,后面会对多个样本下的误差计算进行推导。用 \delta _j^l 表示 nr_j^l 的误差。稍后会发现,对误差的计算将关系到对权重和偏置的偏导计算。假定损失函数为均方误差,那么输出层的误差为:

                                                                  \delta^L=\begin{bmatrix} \delta _1^L\\ \delta _2^L\\ .\\ .\\ .\\ \delta _{n_L}^L \end{bmatrix} =\begin{bmatrix} \frac{\partial C}{\partial Z_1^L}\\ \frac{\partial C}{\partial Z_2^L}\\ .\\ .\\ .\\ \frac{\partial C}{\partial Z_{n_L}^L} \end{bmatrix} = \begin{bmatrix} \frac{\partial C}{\partial A_1^L}\frac{\partial A_1^L}{\partial Z_1^L}\\ \frac{\partial C}{\partial A_2^L}\frac{\partial A_2^L}{\partial Z_2^L}\\ .\\ .\\ .\\ \frac{\partial C}{\partial A_{n_L}^L}\frac{\partial A_{n_L}^L}{\partial Z_{n_L}^L} \end{bmatrix} = \begin{bmatrix} \textbf{\textit{a}}^L_1-\textbf{y}_1\\ \textbf{\textit{a}}^L_2-\textbf{y}_2\\ .\\ .\\ .\\ \textbf{\textit{a}}^L_{N_L}-\textbf{y}_{n_L} \end{bmatrix} \odot \begin{bmatrix} \sigma'(\textbf{\textit{z}}^L_1)\\ \sigma'(\textbf{\textit{z}}^L_2)\\ .\\ .\\ .\\ \sigma'(\textbf{\textit{z}}^L_{n_L}) \end{bmatrix}

        其中,\textbf{\textit{a}}^L 是输出层的激活向量, \textbf{y}是样本标签向量。单个神经元的误差为:

                                                                                                 \delta _j^L=\frac{\partial C}{\partial z_j^L}=\frac{\partial C}{\partial a_j^L}\cdot \frac{\partial a_j^L}{\partial z_j^L}=\frac{\partial C}{\partial a_j^L} \sigma ^{'}\left ( z_j^L \right )

        误差反向传播体现在相邻层的误差存在依赖:

                                                                     \large \delta ^l= \begin{bmatrix} \sum_{i=1}^{n_{l+1}}\frac{\partial C}{\partial Z^{l+1}_i}\frac{\partial Z^{l+1}_i}{\partial A_1^l}\frac{\partial A^l_1}{\partial Z_1^l}\\ \sum_{i=1}^{n_{l+1}}\frac{\partial C}{\partial Z^{l+1}_i}\frac{\partial Z^{l+1}_i}{\partial A_2^l}\frac{\partial A^l_2}{\partial Z_2^l}\\ .\\ .\\ .\\ \sum_{i=1}^{n_{l+1}}\frac{\partial C}{\partial Z^{l+1}_i}\frac{\partial Z^{l+1}_i}{\partial A_{n_l}^l}\frac{\partial A^l_{n_l}}{\partial Z_{n_l}^l} \end{bmatrix} =((\textbf{\textit{w}}^{l+1})^T\delta ^{l+1}) \ \bigodot \ \sigma^{'} (\textbf{\textit{z}}^l)

        为了更加直观的理解上式,不妨来看一下其非向量表达形式

                                                                                                     \delta_j ^l=(\delta ^{l+1}\sum_{k=1}^{N_{l+1}}\textbf{\textit{w}}_{jk}^{l+1})\ast \ \sigma^{'}(\textbf{\textit{z}}_j^l)

          第一项是第 l+1 层各个神经元的学习误差的加权,第二项是激活函数对 \textbf{\textit{z}}_j^l 的偏导,表示激活值的变化率。其表达的直观意义是什么那? 结合下图和自己的理解来浅谈一下。

          聚焦 nr_1^1,第二层每个神经元的误差和第一层每个神经元是存在关系的,如nr_1^2 的误差的 20% 由 nr_1^1 导致,50% 由 nr_2^1 所致, 30% 由 nr_3^1 所致,而这些值恰是连接 nr_1^2 的权重值。那么在反向计算误差时,很自然的第二层每个神经元会将对应的误差值成比例的推向前一层现在 nr_1^1 接收了第 二层各个神经元推过来的误差,同时误差被 \sigma^{'}(\textbf{\textit{z}}_j^l) 进行了制约。如果 \sigma^{'}(\textbf{\textit{z}}_j^l)  大于 1,误差会放大,学习能力被放大,反之,学习能力开始缩水,慢慢的会死掉。如何制约学习能力,也就是激活函数的选择,这是一个超参数的选择问题。

     

    三、偏置和权重的导数

        通过链式求导能计算出 C 相对每个权重的导数

                                                                                                 \frac{\partial C}{\partial w_{jk}^l}

        以及 C 相对每个偏置的导数

                                                                                                   \frac{\partial C}{\partial b_{j}^l}

        但是,这样做的时间复杂度是相当高的,详见上文在线文档中的分析。实际上,通过借助误差的计算便可完成对权重和偏置的导数表达。关于偏置的导数,其表达如下

                                                                                              \frac{\partial C}{\partial b_{j}^l}=\delta _j^l

        很棒,我们得到 \delta _j^l 立马得到上式,链式推导如下

                                                                    {\color{Blue} }\frac{\partial C}{\partial b_{j}^l}= \sum_{k}^{N_{l+1}}\frac{\partial C}{\partial a_k^{l+1}}\frac{\partial a_k^{l+1}}{\partial z_k^{l+1}}\frac{\partial z_k^{l+1}}{\partial a_j^{l}}\frac{\partial a_j^{l}}{\partial z_j^{l}}\frac{\partial z_j^l}{\partial b_j^l}  =\frac{\partial z_j^l}{\partial b_j^l}\frac{\partial C}{\partial z_j^{l}}=\frac{\partial C}{\partial z_j^{l}}=\delta _j^l

         权重的导数也有类似的表示如下

                                                                                          \frac{\partial C}{\partial w_{jk}^l} = a_k^{l-1}\delta _j^l

         链式推导如下

                                                                                \frac{\partial C}{\partial w_{jk}^l} = \frac{\partial C}{\partial a_j^l}\frac{\partial a_j^l}{\partial z_j^l}\frac{\partial z_j^l}{\partial w_{jk}^l}  = \frac{\partial C}{\partial a_j^l}\frac{\partial a_j^l}{\partial z_j^l}a_k^{l-1}  = \frac{\partial C}{\partial z_j^l}a_k^{l-1}

     

    四、多样本误差计算

        前向和反向传播的计算一般是基于mini-batch进行的,在这种情况下,导数的计算可以充分利用矩阵计算上的效率优势。令 \delta_j^l (x_i) 表示 x_i 在 nr_j^l 上的误差,令 L(x_i) 表示 x_i 带来的损失,A^l_j(x_i) 表示 x_i 在 nr_j^l 上的激活输出。每个mini-batch里面含有 n 个样本,激活函数为Relu

        首先给出输出层误差 \delta ^L 的表示:

                                                                         \delta ^L=\begin{bmatrix} \delta _1^L\\ \delta _2^L\\ .\\ .\\ .\\ \delta _{n_L}^L \end{bmatrix} = \begin{bmatrix} \sum_{i=1}^{n}\delta _1^L(x_i)\\ \sum_{i=1}^{n}\delta _2^L(x_i)\\ .\\ .\\ .\\ \sum_{i=1}^{n}\delta _{n_L}^L(x_i)}) \end{bmatrix}

        任意中间层的误差 \delta ^l 表示为:

                                                                         \delta ^l=a=\begin{bmatrix} \delta _1^l\\ \delta _2^l\\ .\\ .\\ .\\ \delta _{n_l}^l \end{bmatrix} = \begin{bmatrix} \sum_{i=1}^{n}\begin{bmatrix} \delta ^{l+1}_1(x_i) & \delta ^{l+1}_2(x_i)& .& .& .& \delta^{l+1}_{n_{l+1}}(x_i) \end{bmatrix} \ast \begin{bmatrix} W_{11}^{l+1} & W_{21}}^{l+1}& .& .& .& W_{n_{l+1}1}}^{l+1} \end{bmatrix}^T\\ \sum_{i=1}^{n}\begin{bmatrix} \delta ^{l+1}_1(x_i) & \delta ^{l+1}_2(x_i)& .& .& .& \delta^{l+1}_{n_{l+1}}(x_i) \end{bmatrix} \ast \begin{bmatrix} W_{12}^{l+1} & W_{22}}^{l+1}& .& .& .& W_{n_{l+1}2}}^{l+1} \end{bmatrix}^T\\ .\\ .\\ .\\ \sum_{i=1}^{n}\begin{bmatrix} \delta ^{l+1}_1(x_i) & \delta ^{l+1}_2(x_i)& .& .& .& \delta^{l+1}_{n_{l+1}}(x_i) \end{bmatrix} \ast \begin{bmatrix} W_{1n_l}^{l+1} & W_{2n_l}}^{l+1}& .& .& .& W_{n_{l+1}n_l}}^{l+1} \end{bmatrix}^T \end{bmatrix}

        任意层权重的导数表示为:

                             \frac{\partial C}{\partial W^l}=\begin{bmatrix} \delta^{l}_1(x_1)& \delta^{l}_1(x_2)& .& .& .& \delta^{l}_1(x_n)\\ \delta^{l}_2(x_1)& \delta^{l}_2(x_2)& .& .& .& \delta^{l}_2(x_n)\\ .& & & & & .\\ .& .& & & & .\\ .& & .& & & .\\ \delta^{l}_{n_{l}}(x_1)& \delta^{l}_{n_{l}}(x_2)& .& .& .& \delta^{l}_{n_l}(x_n) \end{bmatrix} \ast \begin{bmatrix} A^{l-1}_1(x_1)& A^{l-1}_2(x_1)& .& .& .& A^{l-1}_{n_l}(x_1)\\ A^{l-1}_1(x_2)& A^{l-1}_2(x_2)& .& .& .& A^{l-1}_{n_l}(x_2)\\ .& & & & &. \\ .& & & & &. \\ .& & & & &. \\ A^{l-1}_1(x_n)& A^{l-1}_2(x_n)& .& .& .& A^{l-1}_{n_l}(x_n) \end{bmatrix}

    展开全文
  • pn结是p(加了三价元素),n(加了五价元素),当结合成pn结时,因为p,n之间的粒子浓度不同,下面一起来学习一下
  • 什么反向代理

    万次阅读 多人点赞 2018-07-05 11:16:34
    说到反向代理就先讲一下正向代理 正向代理:客户端想要访问一个服务器,但是它可能无法直接访问这台服务器,这时候这可找一台可以访问目标服务器的另外一台服务器,而这台服务器就被当做是代理人的角色 ,称之为...

    说到反向代理就先讲一下正向代理

    正向代理:客户端想要访问一个服务器,但是它可能无法直接访问这台服务器,这时候这可找一台可以访问目标服务器的另外一台服务器,而这台服务器就被当做是代理人的角色 ,称之为代理服务器,于是客户端把请求发给代理服务器,由代理服务器获得目标服务器的数据并返回给客户端。客户端是清楚目标服务器的地址的,而目标服务器是不清楚来自客户端,它只知道来自哪个代理服务器,所以正向代理可以屏蔽或隐藏客户端的信息。

     

    反向代理:从上面的正向代理,你会大概知道代理服务器是为客户端作代理人,它是站在客户端这边的。其实反向代理就是代理服务器为服务器作代理人,站在服务器这边,它就是对外屏蔽了服务器的信息,常用的场景就是多台服务器分布式部署,像一些大的网站,由于访问人数很多,就需要多台服务器来解决人数多的问题,这时这些服务器就由一个反向代理服务器来代理,客户端发来请求,先由反向代理服务器,然后按一定的规则分发到明确的服务器,而客户端不知道是哪台服务器。常常用nginx来作反向代理。

     

    Nginx的负载均衡:

    负载:就是Nginx接受请求

    均衡:Nginx将收到的请求按照一定的规则分发到不同的服务器进行处理

     

    Nginx支持的负载均衡调度算法方式如下:

    weight轮询(默认):接收到的请求按照顺序逐一分配到不同的后端服务器,即使在使用过程中,某一台后端服务器宕机,Nginx会自动将该服务器剔除出队列,请求受理情况不会受到任何影响。 这种方式下,可以给不同的后端服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率;权重数据越大,被分配到请求的几率越大;该权重值,主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的。

    ip_hash:每个请求按照发起客户端的ip的hash结果进行匹配,这样的算法下一个固定ip地址的客户端总会访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下session共享的问题。

    fair:智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均衡分配,响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少;结合了前两者的优点的一种调度算法。但是需要注意的是Nginx默认不支持fair算法,如果要使用这种调度算法,请安装upstream_fair模块。

    url_hash:按照访问的url的hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在nginx作为静态服务器的情况下提高缓存效率。同样要注意Nginx默认不支持这种调度算法,要使用的话需要安装nginx的hash软件包。

     

     

     

     

     

     

     

    展开全文
  • nginx 之 反向代理理解

    千次阅读 2017-04-14 15:57:40
    nginx反向代理配置 什么是代理 代理在普通生活中的意义就是本来应该你做的事情,你让别人代你做了,那么那个帮你做的人就是你的代理。而在计算机网络中代理的概念差不多,就是本来要客户端要做的网络访问,现在...
  • 什么反向传播只要一次前向传播和一次反向传播(直观理解方向传播): 来看看一个极简单的深度神经网络:每一层都只有一个单一的神经元。下图就是有四层隐藏层的神经网络: 我们现在来看看关于 bias 的反向传播,...
  • 反向传播算法的理解

    千次阅读 2018-04-13 18:40:55
    BP(Backpropagation Algorithm,反向传播算法)在神经网络学习中有着无可替代的作用,... 就反向传播的字面理解是将数据从后(输出)向前(输入)传递,数据的具体形式是代价函数对其超参数(权重(W)和偏置(b))的偏导数,...
  • LSTM 反向传播的理解

    2019-03-09 15:10:17
    参考文献: https://blog.csdn.net/wjc1182511338/article/details/79285503 [LSTM详解 反向传播公式推导]
  • 什么反向代理服务器

    千次阅读 2016-07-30 21:13:35
    我们常会看到‘反向代理服务器’这个...‘代理服务器’比较好理解,例如需要访问某网站,不想或不能直接访问,例如网络的原因、隐私的原因等,我们就连接一个代理服务器,这样对于这个网站来说,访问他的用户是这...
  • Nginx是有俄罗斯人伊戈尔·赛索耶夫(Igor Sysoev)为俄罗斯访问量第二的rambler.ru站点开发的轻量级Web服务器,同时也是一个非常高效的反向代理、负载平衡服务器。在性能上,Nginx占用很少的系统资源,能支持更多的...
  • 深度学习反向传播的理解

    千次阅读 2018-11-08 15:40:53
    我认为反向传播可以大致理解为用多个线性函数复合一个非线性函数去拟合一类问题的过程,根据这一类问题中一个样本的正向传播计算得到的结果,再根据预测的结果与实际结果的差异反向传播得到预测的结果对这个函数的...
  • 如何理解反向传播算法

    千次阅读 2018-08-25 10:07:23
    如何理解反向传播算法 如何理解反向传播算法 神经网络模型的数学表示 对代价函数的基本假设 反向传播算法 反向传播的直观理解 总结 参考文献 对于一个算法或者模型的理解可以分为直观理解,算法理解和数学...
  • 正向代理和反向代理有什么区别

    千次阅读 2020-01-02 13:04:23
    正向代理:在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问. 正向代理:当客户端无法...反向代理:客户端无法感知代理的存在,通过代理服务器来接受internet上的连接请求,然后将请求转发给内部网络...
  • 对神经网络反向传播的数值推导
  • 关于反向传播算法的理解

    千次阅读 2017-03-26 11:06:21
    关于反向传播算法,很早之前就了解,但是关于细节问题一直未能理解,看了这篇翻译的文章写的很好 原文:http://blog.csdn.net/shijing_0214/article/details/51923547 Backpropagation算法是目前绝大多数神经...
  • 什么反向传播

    千次阅读 2019-10-01 04:25:45
    什么反向传播 作者:韩小雨 类别:①反向传播算法 ②反向传播模型 反向传播算法(英:Backpropagation algorithm,简称:BP算法) 算法简介:是一种监督学习算法,常被用来训练多层感知机。 于1974年,Paul ...
  • 神经网络反向传播理解

    千次阅读 2019-07-25 15:04:09
    一 、反向传播的作用 训练神经网络的目标是 优化代价函数,使得代价函数找到一个 全局最小值或者局部最小值。不管使用何种梯度下降算法(BGD, SGD ,Adam),都需要先算出各个参数的梯度。 反向传播的作用: 就是...
  • 神经网络的训练算法,目前基本上是以Backpropagation (BP) 反向传播为主(加上一些变化),NN的训练是在1986年被提出,但实际上,BP 已经在不同领域中被重复发明了数十次了(参见 Griewank (2010)[1])。更加一般性...
  • [BP求导]BP反向传播理解

    千次阅读 2019-01-28 15:02:44
    BP反向传播其实就是通过链式法则,从后往前一次计算出损失函数对所有参数的偏导,而前向求导的话每次只能求出某一个特定参数关于损失函数的导数。 十分钟看懂神经网络反向传输算法 昨天面试被问...
  • 什么称nginx为反向代理

    千次阅读 热门讨论 2019-01-14 11:09:51
    久闻nginx的大名,却一直没有时间尝试,以前做完项目都是npm run build把打包生成... 因此在实际场景中,反向代理是一个单对多的模型,和正向代理多对单正好相反,因此我们也就不难理解什么nginx被称为反向代理了。
  • 反向代理入门理解

    千次阅读 2017-04-13 21:37:00
    1.反向代理是什么大家都有过这样的经历,拨打10086客服电话,可能一个地区的10086客服有几个或者几十个,你永远都不需要关心在电话那头的是哪一个,叫什么,男的,还是女的,漂亮的还是帅气的,你都不关心,你关心的...
  • 反向传播算法的直观理解

    万次阅读 多人点赞 2016-11-05 21:59:22
    一、反向传播的由来 在我们开始DL的研究之前,需要把ANN—人工神经元网络以及bp算法做一个简单解释。 关于ANN的结构,我不再多说,网上有大量的学习资料,主要就是搞清一些名词: 输入层/输入神经元,输出层/输出...
  • 最近在学习深度学习中的梯度下降与反向传播方面的知识。偶有心得,特此记录。若有不足之处,烦请指正赐教。  在训练阶段,深度神经网络经过前向传播之后,得到的预测值与先前给出真实值之间存在差距。我们可以使用...
  • 理解正向和反向代理

    千次阅读 热门讨论 2021-03-20 08:00:15
    正向代理 正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代里发送...反向代里(Reverse Proxy)实际运行方式是指以代里服务器来接受internet上的连接请求,然
  • 反向传播理解--从抽象到具体

    千次阅读 2018-09-12 10:18:46
    反向传播是深度学习的基础理论知识,在去年很早的时候,就把研究生期间学习推导BP的过程总结了一下,写了一篇文章,但是给同事分享的时候还是发现不能非常清晰的让大家理解什么反向传播,反思一下,可能是那篇文章...
  • 主表查询子表为反向查询 tom = Person.object.get(id=1) #查询此人有多少车 #方式一 Django 默认每个主表的对象都有一个外键的属性 #可以通过它查询所有属于主表的子表信息 # 查询方式:主表.子表_...
  • CNN卷积神经网络原理详解(上)

    万次阅读 多人点赞 2019-10-18 23:59:17
    CNN卷积神经网络原理详解(上)前言卷积神经网络的生物背景我们要让计算机做什么?卷积网络第一层全连接层训练 前言 卷积网络(convolutional network),也叫作卷积神经网络(convolutional neural network,CNN),是...
  • 在这篇博文中,作者通过一个简单的示例,给出了反向传播的过程的过程,非常的清晰,遂结合自己的理解翻译之,希望对反向传播方法有所理解的朋友有些许帮助。 背景反向传播在神经网络的训练过程中虽然用得如此之多,...
  • 前向传播与反向传播的理解

    千次阅读 2021-01-06 16:08:17
    前向传播:通过输入层输入,一路...反向传播:通过输出反向更新权重的过程。具体的说输出位置会产生一个模型的输出,通过这个输出以及原数据计算一个差值。将前向计算过程反过来计算。通过差值和学习率更新权重。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 169,623
精华内容 67,849
关键字:

反向理解什么意思