July深度学习笔记之神经网络与反向传播算法

一、神经网络

神经网络的大致结构如下;

大致可以分为输入层、隐藏层与输出层。

而我们可以单独拿出来一个结点,可以发现,其实它就是类似一个逻辑回归(LR),这样的单独一个节点我们把它称之为“感知机”,而这样单独的一个节点与逻辑回归的区别就在于,当它做完线性函数之后,还要在本结点上经历“激活函数”(也叫做激励函数)。那么为什么我们需要这个激活函数呢?

  • 首先,每一个神经元对输入进行的操作如果就仅仅是Wx+b,那么到了下一个神经元其实就是W1(Wx+b)+ b1,这样下去,叠加更多的层不能完成非线性变换,而仍然是线性变换,只是改变系数而已。
  • 其次,激活函数的作用你可以把它理解成对信号的一种过滤和筛选,以及以多大程度地让这种信号向下层传递。

如果神经网络的层数比较少,只添加了少量的隐层,这样的神经网络是浅层神经网络(SNN)。如果增加很多的隐层,这样的神经网络叫做深层神经网络(DNN)。

实际上,神经网络在分类问题上表现效果较好,尤其是在逻辑回归和SVM很难解决的非线性可分问题上。

下图是利用简单的单个神经元完成“逻辑与”操作的实例:
实际上,单个的神经元就对应二维空间上的一条直线,类似地,单个神经元也可以完成“逻辑或”的操作,只需要调整参数分别为-10,20,20即可。

So,仅仅通过线性分类器的“与”和“或”的组合,我们就可以实现对平面样本点的分布进行完全分类。

神经网络表达力与过拟合问题

  • 理论上说单隐层神经网络可以逼近任何连续函数(只要隐层的神经元个数足够多)。
  • 虽然从数学上看表达能力一致,但是多隐藏层的神经网络比单隐藏层的神经网络工程效果好很多。
  • 对于一些分类数据(比如CTR预估里),3层神经网络效果优于2层神经网络,但是如果把层数再不断增加(4,5,6层),对最后结果的帮助就没有那么大的跳变了。
  • 图像数据比较特殊,是一种深层(多层次)的结构化数据,深层次的卷积神经网络,能够更充分和准确地把这些层级信息表达出来。
  • 提升隐层层数或者隐层神经元个数,神经网络“容量”会变大,空间表达力会变强。
  • 过多的隐层和神经元节点,会带来过拟合问题。
  • 不要试图通过降低神经网络参数量来减缓过拟合,用正则化或者dropout。

二、反向传播算法

我们刚刚提到的激励函数,常用的有sigmoid函数等等,sigmoid函数图像如下:

而反向传播算法如何理解呢?实际上反向传播算法的目的在于优化参数W和偏置b,首先初始化参数W和b,然后正向传播求得“损失”-即此时和正确值的差值,然后“反向传播”回传误差,根据误差信号来修正每层的权重。

实际上,反向传播算法做的事情就是为了求偏导。而参数更新还是用到了梯度下降算法。

下面举一个例子来说明反向传播算法的过程和参数更新的过程:

首先进行前向运算:

然后求得偏导:

然后根据梯度下降更新参数权值:

可以看出,反向传播算法就是这样的一个求导、导数连乘过程,求得导数,再根据梯度下降法优化,更新权重。这就是神经网络的训练过程。

July深度学习笔记之神经网络与反向传播算法相关推荐

  1. 入门深度学习,理解神经网络、反向传播算法是第一关

    向AI转型的程序员都关注了这个号

  2. 独家思维导图!让你秒懂李宏毅2020深度学习(三)——深度学习基础(神经网络和反向传播部分)

    独家思维导图!让你秒懂李宏毅2020深度学习(三)--深度学习基础(神经网络和反向传播部分) 长文预警!!!前面两篇文章主要介绍了李宏毅视频中的机器学习部分,从这篇文章开始,我将介绍李宏毅视频中的深度 ...

  3. 深度学习笔记(三)—— 反向传播[Back Propagation] 计算图[Computational Graph]

      这是深度学习笔记第三篇,完整的笔记目录可以点击这里查看.      反向传播就是求梯度值,然后通过梯度下降的方式对损失函数进行迭代优化的过程.在通常情况下,直接对一个复杂的函数一步到位写出其解析导 ...

  4. 《TensorFlow 2.0深度学习算法实战教材》学习笔记(六、反向传播算法)

    反向传播算法和梯度下降算法是神经网络的核心算法. 导数与梯度 导数本身是标量,没有方向,但是导数表征了函数值在某个方向Δ

  5. 深度学习笔记:04依赖反向传播改进神经网络数据处理的精确度

    04依赖反向传播改进神经网络数据处理的精确度 1.反向传播简介 前面说过,神经网络模型中,需要修正的参数是神经元链路之间的权重值,问题在于如何修改,如下图,假定最后神经元输出结果跟正确结果对比后得到一 ...

  6. 学习笔记,神经网络和反向传播

    简单的二分类情形: 1.前向传播 有m个样本,每个样本有n个特征, , 每个特征的权重是, 权重向量为,偏置为b, 激活函数为sigmoid函数,  则激活后的值为 , 大写表示向量,小写表示标量 2 ...

  7. 零基础入门深度学习(3) - 神经网络和反向传播算法

    无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...

  8. nndl学习笔记(二)反向传播公式推导与详解

    写在前面 反向传播回顾 为什么需要反向传播? 基本思想 算法流程 算法局限性 详细推导(核心:多元微积分的*链式法则*) 一些定义 1. 输出层的误差δL\delta^{L}δL 2. 利用下一层误差 ...

  9. 机器学习笔记丨神经网络的反向传播原理及过程(图文并茂+浅显易懂)

    文章目录 一.前言 二.神经网络的前向传播原理 1. 单个神经元的计算 2. 神经元在神经网络中的计算 三.反向传播算法内容(请静下心,一步一步的看) Step1 计算误差 Step2 更新权重 四. ...

最新文章

  1. jQuery选择器全集详解
  2. qt无法找到动态链接库文件怎么办?
  3. 数学之美 系列九 -- 如何确定网页和查询的相关性
  4. busybox arm-linux-gcc 4.4.4库的路径,BUSYBOX编译错误及解决方法总结
  5. 怎么看电脑配置高不高_辣椒产量高不高?关键看播种前的种子处理,你知道怎么做吗?...
  6. '用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联,做JSP项目连接数据库 ....
  7. 【windows实用工具一】tftpd32+Xshell
  8. 特殊回文数 C++解法
  9. ttl低电平接大电阻_谈谈上拉、下拉电阻
  10. 【笑话】程序员和青蛙公主
  11. Android程序反破解技术
  12. 5G端到端时延要求1ms是个什么概念?
  13. postman测试Excel文件导入导出功能
  14. 问题记录 -- 未定义的引用 ||| not found
  15. 2019年Q1美国手游市场总收入24.3亿美元,中国手游贡献2.8亿美元
  16. matlab二元不等式,大神们,求个解多元一次不等式的代码,要所有整数解
  17. C# Excel文件操作
  18. 深度解析商业智能 BI 企业服务市场的快与慢
  19. 成功解决sklearn.exceptions.NotFittedError: This StandardScaler instance is not fitted yet. Call ‘fit‘ wi
  20. Taro 兼容 h5 踩坑指南

热门文章

  1. android studio 课程表,基于课程表的安卓Android手机控制APP设计(AndroidStudio,SQLite)(含录像)...
  2. 物联网终端设备软件可靠性分析
  3. 如何区分阀门定位器的单作用与双作用
  4. 【IDEA】IDEA中出现下划标红问题应该怎样解决(一种简单方法)
  5. UNiSONSHIFT・ACCENT经典作品推荐 Chu×Chuアイドる和Chu×Chuぱらだいす~Encore Live~介绍(含下载和攻略)...
  6. hadoop hbase hive 常见问题解决
  7. screw 一颗螺丝钉的使命
  8. ssh 和 fail2ban 的安全设置
  9. Centos 7 使用fail2ban防止暴力破解,启动fail2ban服务后重试多次后IP没被禁用
  10. 余世维成功经理人视频