反向传播

「自然语言处理(NLP)」一文带你了解激活函数

你说的曾经没有我的故事 提交于 2020-11-23 05:40:58
喜欢我们,点击上方 AINLPer ,关注一下,极品干货即刻送达! 引言 在深度学习网络中,我们经常可以看到对于某一个隐藏层节点的激活值计算一般分为两步,如下图: 第一步,输入该节点的值为 , 时,在进入这个隐藏节点后,会先进行一个线性变换,计算出值 ,上标 1 表示第 1 层隐藏层。 第二步,再进行一个非线性变换,也就是经过非线性激活函数,计算出该节点的输出值(激活值) ,其中 g(z)为非线性函数。 那么问题来了,这个激活函数到底有什么用呢,可不可以不加激活函数呢? 本文概要 1 什么是激活函数? 2 如果没有激活函数会怎样? 3 常见的激活函数 4 参考文献 正文开始 1 什么是激活函数? 激活函数是神经网络中极其重要的概念。 它们决定了某个神经元是否被激活,这个神经元接受到的信息是否是有用的,是否该留下或者是该抛弃。 激活函数的形式如下: 激活函数是我们对输入做的一种非线性的转换。 转换的结果输出,并当作下一个隐藏层的输入。 2 如果没有激活函数会怎样? 1、首先对于y=ax+b 这样的函数,当x的输入很大时,y的输出也是无限大/小的,经过多层网络叠加后,值更加膨胀的没边了,这显然不符合我们的预期,很多情况下我们希望的输出是一个概率。 2、线性变换太简单(只是加权偏移),限制了对复杂任务的处理能力。 没有激活函数的神经网络就是一个线性回归模型。

SSE图像算法优化系列2-高斯滤波

南楼画角 提交于 2020-11-08 13:07:55
算法原理 或许大多数人对于高斯滤波的印象都停留在使用一个高斯在图像滑动然后计算结果。这的确没错,但从速度上考虑这种模式是难以优化的。也导致在极大分辨率图像上进行高斯滤波是压根不可行的。幸运的是,高斯滤波实际上还有另外一种表达方式,那就是递归表达。这最早见于《Recursive implementation of the Gaussian filter》论文中: 在forward的过程中,n是递增的,所以,我们在进行forward之前将in数据复制给w,然后上式即可变形为: 同理backward过程中n是递减的,因此在backward前将w的数据完整的拷贝到out中,则式9b则变为: 从编程实现来看,这个拷贝是没有必要的,所以1b可以写成: 从速度上看,最好是能够去掉1a和1b的除法,所以这里重新定义b1 = b1 / b0, b2 = b2 / b0, b3 = b3 / b0, 最终得到我们使用的递归公式: 这个递推公式的意义就是通过forward和backward来完成一维的高斯滤波。而二维的高斯滤波就是先行后列或者先列后行进行一维的高斯滤波。 算法具体过程 1、CalGaussCof 计算高斯模糊中使用到的系数 2、ConvertBGR8U2BGRAF 将字节数据转换为浮点数据 3、GaussBlurFromLeftToRight 水平方向的前向传播 4

【深度学习】卷积神经网络CNN——手写一个卷积神经网络

旧城冷巷雨未停 提交于 2020-11-02 16:04:51
卷积神经网络的前向传播 1.输入层---->卷积层   输入是一个4*4 的image,经过两个2*2的卷积核进行卷积运算后,变成两个3*3的feature_map 以卷积核filter1为例(stride = 1 ): 计算第一个卷积层神经元$ o_{11} $的输入: $$ \begin{align} net_{o11} \nonumber & = conv(input, filter)\nonumber\\ & = i_{11}\times h_{11}+i_{12}\times h_{12}+i_{21}\times h_{21}+i_{22}\times h_{22}\\ & = 1\times 1+0\times (-1)+1\times 1+1\times (-1) = 1\nonumber \end{align} $$ 神经元$ o_{11} $的输出:(此处使用Relu激活函数) $$ \begin{align} out_{o11} \nonumber & = activators(net_{o11})\\ & = max(0, net_{o11})=1 \end{align} $$ 其他神经元的计算方式相同 2.卷积层---->池化层 计算池化层$ m_{11} $的输入(取窗口为 2 * 2),池化层没有激活函数 $$ \begin{align} net_{m

Cs231n-assignment 2作业笔记

岁酱吖の 提交于 2020-10-31 03:18:05
assignment 2 assignment2讲解参见: https://blog.csdn.net/BigDataDigest/article/details/79286510 http://www.cnblogs.com/daihengchen/p/5765142.html 最后一个作业Q5基于Tensorflow和Pytorch,将会需要在GPU上运行。 1. softmax_loss: log_probs[range(N), y]:从log_probs中取出纵值为yi,即正确标签,横值图像数,即从log_probs中取出y所指向的正确类的概率值,得到是一个[N,]数组,加和后除以N,即为softmax_loss。 2.关于batch normalization: 参见:https://www.cnblogs.com/guoyaohua/p/8724433.html 参见:https://www.cnblogs.com/skyfsm/p/8453498.html 反向传播参见:https://zhuanlan.zhihu.com/p/26138673 https://blog.csdn.net/kevin_hee/article/details/80783698 基本流程:减去均值(mini-batch mean)、除以方差(normalize)、scale and

神经网络、BP算法、深度学习

老子叫甜甜 提交于 2020-10-29 00:48:51
众所周知,深度学习正逐渐获得越来越多的关注,并且毫无疑问成为机器学习领域最热门的话题。 深度学习可以被看作是一组算法的集合,这些算法能够高效地进行多层人工神经网络训练。 在本章,读者将学习人工神经网络的基本概念,并且接触到新近基于Python开发的深度学习库,从而更进一步去探索机器学习研究领域中这一最为有趣的内容。 使用人工神经网络对复杂函数建模: 我们在第2章中从人工神经元入手,开始了机器学习算法的探索。对于本章中将要讨论的多层人工神经网络来说,人工神经元是其构建的基石。 人工神经网络的基本概念是建立在对人脑如何应对复杂问题的假想和模型构建上的。 在过去的十年中,神经网络研究领域的许多重大突破成就了当前的深度学习算法,此算法可以通过无类标数据训练的深度神经网络(多层神经网络)进行特征检测。 神经网络不仅仅是学术领域的一个热门话题,连Facebook、微软及谷歌等大型科技公司都在人工神经网络和深度学习研究领域进行了大量的投入。 时至今日,由于能够解决图像和语音识别等复杂问题,由深度学习算法所驱动的复杂神经网络被认为是最前沿的研究成果。 我们日常生活中深度学习的常见例子有谷歌图片搜索和谷歌翻译,谷歌翻译作为一款智能手机应用,能够自动识别图片中的文字,并将其实时翻译为20多种语言。 当前一些主要的科技公司正在积极开发更多有趣的深度神经网络应用

干货 :深入浅出神经网络的改进方法!

老子叫甜甜 提交于 2020-10-24 18:41:05
高尔夫球员刚开始学习打高尔夫球时,通常会花很长时间练习挥杆。慢慢地,他们才会在此基础上练习其他击球方式,学习削球、左曲球和右曲球。本章仍着重介绍反向传播算法,这就是我们的“挥杆基本功”——神经网络中大部分工作、学习和研究的基础。 本文将着重讲解利用交叉熵代价函数改进神经网络的学习方法。 一、交叉熵代价函数 大多数人不喜欢被他人指出错误。我以前刚学习弹钢琴不久,就在听众前做了一次首秀。我很紧张,开始时错将八度音阶的曲段演奏得很低。我不知所措,因为演奏无法继续下去了,直到有人指出了其中的错误。我当时非常尴尬。不过,尽管不愉快,我们却能因为明显的错误而快速地学到正确的知识。下次我肯定能演奏正确!然而当错误不明确的时候,学习会变得非常缓慢。学习速度下降的原因实际上也是一般的神经网络学习缓慢的原因,并不仅仅是特有的。 引入交叉熵代价函数 如何解决这个问题呢?研究表明,可以使用交叉熵代价函数来替换二次代价函数。 将交叉熵看作代价函数有两点原因。第一,它是非负的,C > 0。可以看出(57)的求和中的所有单独项都是负数,因为对数函数的定义域是(0, 1)。求和前面有一个负号。 第二,如果对于所有的训练输入x,神经元实际的输出都接近目标值,那么交叉熵将接近0。假设在本例中,y = 0而a ≈ 0,这是我们想要的结果。方程(57)中的第一个项会消去,因为y = 0,而第二项实际上就是−ln(1 −

蒙特卡洛树搜索 MCTS 入门

大城市里の小女人 提交于 2020-10-15 18:39:25
引言   你如果是第一次听到蒙特卡洛,可能会认为这是一个人名。那么你就大错特错,蒙特卡洛不是一个人名,而是一个地方,还一个赌场名!!!但是这不是我们的重点。   我们今天的主题就是入门蒙特卡洛树搜索,这个算法我个人觉得非常神奇也非常有意思。因为前几年 AlphaGo 就是借助蒙塔卡洛树搜索以及基于深度学习的的策略价值网络击败了人类冠军,赢得了胜利。而今天我们的主角就是蒙特卡洛树搜索它究竟是怎么实现的?它的原理?以及会举出一个例子来告诉大家整个算法的工作流程。 一、什么是 MCTS?   蒙特卡洛树搜索是 一类树搜索算法的统称 ,简称 MCTS( Monte Carlo Tree Search)。它是一种用于某些决策过程的启发式搜索算法,且在搜索空间巨大的游戏中会比较有效。那什么叫做搜索空间巨大呢?比如说,在上世纪90年代,IBM公司推出深蓝这个 AI,击败了当时国际象棋的世界冠军,而这个 AI 也比较简单粗暴,把整个国际象棋的搜索空间全部穷举出来,把整个游戏树全部列举出来,那么不管对手下什么,它都知道下一步怎么下可以把他下赢。而对于围棋这种游戏,围棋棋盘是 19*19 的,也就是说有 361 个落子的位置,那么如果我们想把所有围棋的棋局的可能列举出来,一般来说就是 361!,这个数量是比宇宙的原子数量还要多的,就算是世界上最强的超级计算机也无法把所有的可能性穷举出来

GraphSAGE图神经网络算法详解

主宰稳场 提交于 2020-10-15 08:25:28
GraphSAGE 是 17 年的文章了,但是一直在工业界受到重视,最主要的就是它论文名字中的两个关键词:inductive 和 large graph。今天我们就梳理一下这篇文章的核心思路,和一些容易被忽视的细节。 为什么要用 GraphSAGE 大家先想想图为什么这么火,主要有这么几点原因,图的数据来源丰富,图包含的信息多。所以现在都在考虑如何更好的使用图的信息。 那么我们用图需要做到什么呢?最核心的就是利用图的结构信息,为每个 node 学到一个合适的 embedding vector。只要有了合适的 embedding 的结果,接下来无论做什么工作,我们就可以直接拿去套模型了。 在 GraphSAGE 之前,主要的方法有 DeepWalk,GCN 这些,但是不足在于需要对全图进行学习。而且是以 transductive learning 为主,也就是说需要在训练的时候,图就已经包含了要预测的节点。 考虑到实际应用中,图的结构会频繁变化,在最终的预测阶段,可能会往图中新添加一些节点。那么该怎么办呢?GraphSAGE 就是为此而提出的,它的核心思路其实就是它的名字 GraphSAGE = Graph Sample Aggregate。也就是说对图进行 sample 和 aggregate。 GraphSAGE 的思路 我们提到了 sample 和 aggregate

【神经网络基础】3.循环神经网络(笔记)

人盡茶涼 提交于 2020-10-09 11:26:40
目录 1.学习目标 2.序列数据 ​3.语言模型 3.1语言模型概念 3.2语言模型计算序列的概率 ​ 4.RNN-循环神经网络 4.1RNN概念 4.2通过时间反向传播 ​5.门控循环单元 5.1引入门的循环网络 5.2候选隐藏状态 ​6.长短期记忆网络(LSTM) 6.1记忆细胞 6.2候选记忆细胞 6.3记忆细胞与隐藏状态 ​7.总结 7.1本章总结 ​7.2神经网络总结 1.学习目标 2.序列数据 3.语言模型 3.1语言模型概念 举例 3.2语言模型计算序列的概率 4.RNN-循环神经网络 4.1RNN概念 4.2通过时间反向传播 5.门控循环单元 5.1引入门的循环网络 5.2候选隐藏状态 6.长短期记忆网络(LSTM) 6.1记忆细胞 6.2候选记忆细胞 6.3记忆细胞与隐藏状态 7.总结 7.1本章总结 7.2神经网络总结 千里之行,始于足下。这句话和循环神经网络契合嗷~感谢余老师! 来源: oschina 链接: https://my.oschina.net/u/4370628/blog/4664389

深度学习目标检测系列之YOLO9000

我只是一个虾纸丫 提交于 2020-10-07 05:10:14
1.闲言 在正式的学习之前,我喜欢先放飞一下自我。我觉得技术就是用来聊的,找个酒馆,找些大神,咱们听着音乐一起聊起来。所以我特别希望能把自己的文字口语化,就像玩一样。就像古代那些说书人一样,萧远山和慕容博相视一笑,王图霸业,血海深仇,尽归尘土。这是我向往的一种表达方式,但是我现在还达不到那个境界,只能尽力而为吧。 2.YOLOV2 1.十个改造点 yolov1提升了目标检测的速度,但是在MAP方面却掉了上去。所以说铁打的大神,流水的模型,他们自然会想尽各种办法来解决这个问题。在我看来这就好像程序员写bug一样,到头来总是要改的。所以yolov2可以分为两个部分,第一部分是对MAP提升所做的努力,第二部分是对原来模型的优化,当然是在保证检测速度的前提下。 下面的10个点,是V2的大神们做出的努力。这意味着什么,速度的提升?准确率的提升?模型的泛化能力提升?对,但是更重要的我觉得是工作量的体现,年终的结算。有时候看paper的时候,我们觉得这些大神们都跟圣人一样。他们做出的所有努力都是要造福社会,都是为了推动AI视觉的进一步发展。其实他们也是人,也会有来自各方面的限制,也会有自己的私心,一些小小的任性和种种生而为人而不能的无奈。所以读paper就是在和大神们对话,一边说着你真牛逼,一边在心里面想着我一定要超越你。 下来我们来解释一下,如果说模型预测出来的结果不是很令人满意