[机智的机器在学习] 卷积神经网络入门教程(2)

今天继续回归卷积神经网络的入门教程,主要是介绍全连接网络的训练过程,通俗的讲就是我们入门教程(1)里面讲的是全连接网络长什么样,神经元之间的关系是什么样的,里面的参数代表什么意思,这些都是说了的,对吧!然后全连接网络的训练就是怎么计算参数的值是多少,比如说我们有一直线方程y=kx + b,里面的k和b就是两个未知的参数,然后计算这两个参数就是通过两个点的坐标,利用二元一次方程组来计算。这个计算的过程,在NN里面叫做训练!也就是说网络(也可以理解为模型或者方程)建好了以后是不知道里面的参数值是多少的,需要根据计算得到。然后我们把计算的方法叫做算法,而今天要讲的是反向传播算法,他是训练NN的一个经典算法,而且是很多网络的基础,所以要清楚的掌握!!!

这里先澄清一下概念,我们题目里面的卷积神经网络这个鬼,他不是一个定理或者定义,什么意思呢,就是它是可变的,你可以让他是什么样,他就是什么样,别犯糊涂。一般的卷积神经网络包含卷积层和下采样层,最后是全连接的NN。什么是下采样的?还记得入门教程(1)里面最后那张gif图吗,一个5x5的原始图像,经过一个大小为3x3的卷积核得到了一个3x3大小的图片(最后得到图片大小的计算公式:5-3+1=3,这里默认strides=1,padding=0,先埋个坑,后面再讲什么是strides和padding)。这里是得到了3x3的图片,如果我们的输入图像很大呢,比如是256x256的,那么用3x3的卷积核卷积一下得到的图片大小就是(256-3+1)x(256-3+1)=254x254大小的一张图,如果给这张图再做一次下采样,那么这张图就变为了原来图片的1/4。看一下下面这个图,先简单有个认识,后面我会把卷积神经网络的常用的层(Conv,BN,Pooling,Sampling,Activation,etc)都单独讲一次。

划重点:1. BP反向传播算法是对全连接神经网络的一种训练过程,他其实就是梯度下降+链式求导法则组成。2.一般的CNN也包括全连接层,全连接层前面的卷积层,下采样层都是直接对像素进行操作(有没有很熟悉?看前面的图像滤波的文章)。所以BP也可以训练CNN。

还是那句话,讲这个的教程网上一大堆一大堆的,但是我就是比较无聊,在重复一遍吧!No,我要和别人讲的不一样,而且让你看了以后一定可以学会,就是这么自信!今天我将会通过我见过的最直观的讲解方式,加上我自己幽默风趣(dou bi)的语言讲给大家。停!

开始正题

Step 0: 今天的图1是一个包含1个Inputs,3个Hidden Layer,1个Outputs的全连接神经网络。圈圈代表?神经元。神经元里面写的f1,f2, f3, f4, f5 这些是激活函数,也就是输入和权重相乘相加(相爱相杀)之后得到的值在作为函数f的输入,其他同理。

图1(如果显示不完全,请点开看大图)

Step 1:由输入x1,x2组成的输入向量和权重w1,w2相乘得到的值作为f1的输入,计算结果y1作为Hidden 2 的第一个输入向量。同理可得y2, y3, y4, y5, y,看图2-6 ,今天图有点过,费点流量能彻底学会BP算法不过也值了,下次再有人问你的时候,就不会有任何问题。

图2-6

Step 2: 图7是根据y的值计算损失,z是真实值,真实值和预测值之差就得到我们的损失。

Step 3:重点来了,Step 2计算得到的是Hidden 3和Outputs之间的损失,现在要计算Hidden 2和Hidden 3之间的损失,就是Hidden 3和Outputs之间的损失和权重的积deta4。

同理可以计算deta5,deta6,deta1,deta2,deta3。如图8-12.

图8-12

Step 4:Step 4开始利用梯度下降法计算新的权重参数,计算新的参数的过程就是神经网络的训练过程,神经网络的学习过程就是计算参数的过程,当全部参数都更新完的时候,神经网络就完成了一次训练。接下来计算新的参数的方法就是我们上一篇讲的梯度下降法的内容。其中w1是权重初始值,aita是学习率(以前说过哦~),注意看清新的权重加号后面一部分,是由4项组成的哦,应该清楚每一项代表的意思。同理可以得到图13-18的.

看完这么图,不知道有没有看懂,有没有哪里还不明白的地方?下面我把需要注意的地方说下。

划重点:

  1. 每个神经元中的函数f,在不同的网络中其形式是不同的,这意味这求导的时候计算过程的不同。
  2. 在简单的方程中,我们一般把未知数叫做参数,想想高中数学,里面不是有很多求参数的问题么。然后在deep learning里面我们把这些参数一般叫做超参数,这个知道名字即可,没必要纠结什么是超参数,记住了哈。
  3. 卷积神经网络中超参数的设定是一个实验性的东西,就是说面对不同的问题的时候,我们需要根据具体问题来挑选合适的超参数的值,而那个值可以得到好的效果,这些都是要去试的。

今天就写到这里了,下一次我会把常用的网络层做一个总结介绍,希望大家关注哦!

[参考文献]

  1. http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
  2. https://www.zhihu.com/question/27239198

原文发布于微信公众号 - 机器学习和数学(ML_And_Maths)

原文发表时间:2017-04-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习自然语言处理

【精华】Batch Normalization理论与实践

batch norm也可以当做调参的一部分,对于有些实验是有效果的,有些实验是几乎没啥效果,但是它的收敛速度还是很客观的,所以我们还是有必要要了解下哒!

1062
来自专栏ATYUN订阅号

序列预测问题的简单介绍

序列预测与其他类型的监督学习问题不同。这个序列在观察结果上被强加了一个命令:当训练模型和做预测时序列必须保存。通常,包含序列数据的预测问题被称为序列预测问题,尽...

3405
来自专栏人工智能

机器学习算法:选择您问题的答案

当我开始涉足数据科学时,我经常面临为如何我的问题选择最合适的算法的问题。如果你像我一样,当你看到一些关于机器学习算法的文章时,你会看到许多详细的描述。但是,即使...

4137
来自专栏大数据挖掘DT机器学习

神经网络中的激活函数具体是什么?为什么ReLu要好过于tanh和sigmoid function?

为什么引入激活函数? 如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层输出都是上层输入的线性函数,很容易验证,无论你神经网络有多少...

60210
来自专栏应用案例

入门必看!一文读懂神经网络中的激活函数(二)

看看深度学习之激活函数 本篇接着上一篇推文入门《必看!从零开始了解到训练神经网络(一)》,在介绍完神经网络的基本原理和结构之后,继续介绍神经网络中的关键之一 —...

55910
来自专栏计算机视觉战队

每日一学——最优化(下)

梯度计算 计算梯度有两种方法:一个是缓慢的近似方法(数值梯度法),但实现相对简单。另一个方法(分析梯度法)计算迅速,结果精确,但是实现时容易出错,且需要使用微分...

39110
来自专栏大数据挖掘DT机器学习

算法工程师的面试难不难,如何准备?-图像处理/CV/ML/DL到HR面总结

把一些相关的知识点总结一下。这个比长,感兴趣的挑自己相关的那部分看。 都是一些基础知识,面相关岗位问到的比较多。 (回答时对算法要有一定的见解,最好不要照书上的...

7585
来自专栏WD学习记录

机器学习深度学习 笔试面试题目整理(2)

(1) 思想    改变全连接为局部连接,这是由于图片的特殊性造成的(图像的一部分的统计特性与其他部分是一样的),通过局部连接和参数共享大范围的减少参数值。可...

3082
来自专栏数据派THU

开发者必看:超全机器学习术语词汇表!

来源:机器之心 本文长度为12243字,建议阅读8分钟 本文编译自谷歌开发者机器学习术语表项目,介绍了该项目所有的术语与基本解释。 A 准确率(accuracy...

4936
来自专栏AI科技大本营的专栏

笔记 | 吴恩达Coursera Deep Learning学习笔记

向AI转型的程序员都关注了这个号☝☝☝ ? 作者:Lisa Song 微软总部云智能高级数据科学家,现居西雅图。具有多年机器学习和深度学习的应用经验,熟悉各种业...

45215

扫码关注云+社区

领取腾讯云代金券