神经网络的传递过程

https://zhuanlan.zhihu.com/p/65472471
https://blog.csdn.net/weixin_39445556/article/details/81416133
https://blog.csdn.net/weixin_39445556/article/details/83543945
https://blog.csdn.net/weixin_39445556/article/details/83661219
https://blog.csdn.net/weixin_39445556/article/details/83930186

引用了一下知乎上一位大佬的图
这是一个简单的神经网络,有两层网络组成

正向传播

就是我们的数据从神经网络的输入层通过神经网络传输到输出层的过程。下面将按照顺序进行解释

核心思路:传递的过程其实就是矩阵的乘法以及计算加权平均后经过激活函数就完成了一次传递,以此类推进行传递

1.数据输入网络

输入层:输入层中输入的是一些矩阵,比如可以输入 ( 1 , 2 ) (1,2) (1,2)这个点坐标作为一个数据,也可以输入一张256*256的图像作为数据。

2.传递到隐藏层

通过矩阵的乘法,输入的 X X X乘上一个权重矩阵 W W W。公式表示为
h ( X ) = W T ⋅ X + b h(X)=W^T\cdot X+b h(X)=WT⋅X+b
其中 b b b为偏置。
展开来写就是
h ( x 1 , x 2 , ⋯ , x n ) = w 1 x 1 + w 2 x 2 + ⋯ + w n x n + b h(x_1,x_2,\dotsm,x_n)=w_1x_1+w2x2+\dotsm+w_nx_n+b h(x1​,x2​,⋯,xn​)=w1​x1​+w2x2+⋯+wn​xn​+b
这也就是求一个加权平均,也是一个多元线性回归。

如果有多层神经网络,那么 h h h相当于就是第一次把数据输入隐藏层中的 X X X,继续代入公式就变成了 h ( h ( X ) ) h(h(X)) h(h(X))。
多少层神经网络就进行多少次迭代。

3.神经元激活

每一次完成一次传递之后,就要通过一个激活函数对其进行激活。不然刚才的线性运算就是没有意义的,只是单纯的计算。

可以理解为经过计算之后,要用激活函数把神经元给激活了,这个神经元才有用,跟人脑一样。

主要就是有三种激活函数 S i g n 、 S i g m o i d 、 R e L U Sign、Sigmoid、ReLU Sign、Sigmoid、ReLU
表达式分别为
S i g n ( x ) = { 1 x ≥ 0 0 x ≤ 0 Sign(x)=\begin{cases} 1 & x\geq 0\\ 0 & x\leq 0 \end{cases} Sign(x)={10​x≥0x≤0​
S i g m o i d ( x ) = tanh ⁡ ( x ) Sigmoid(x)=\tanh(x) Sigmoid(x)=tanh(x)
R e L U ( x ) = { x x ≥ 0 0 x ≤ 0 ReLU(x)=\begin{cases} x & x\geq 0\\ 0 & x\leq 0 \end{cases} ReLU(x)={x0​x≥0x≤0​

4.从隐藏层输出

经过若干个隐藏层之后,到最后进行输出时,也是乘另一个权重矩阵 W o u t p u t W_{output} Woutput​。公式表示为:
O u t p u t ( X ) = W o u t p u t ⋅ H + b 0 Output(X)=W_{output}\cdot H+b_0 Output(X)=Woutput​⋅H+b0​
其中 H H H表示经过多神经网络的多次传递之后得到最终的数据。

5.输出正规化

因为从神经网络出来的数值不一定是一个 0 − 1 0-1 0−1的数,可能是比1大的,所以我们需要进行规范数据,变成我们之后能用到的概率。
通常就是使用 s o f t m a x softmax softmax函数
s o f t m a x ( x ) = e i ∑ j e j softmax(x)=\frac{e^i}{\sum_je^j} softmax(x)=∑j​ejei​

计算的过程是:
(1)以 e e e为底对所有元素求指数幂;
(2)将所有指数幂求和;
(3)分别将这些指数幂与该和做商。

这样求出的结果中,所有元素的和一定为1,而每个元素可以代表概率值。

6.开始进行损失计算

通过损失函数,进行对结果进行损失的计算

  1. 均方误差函数(MSE)(类似于方差的计算
    M S E = 1 N ∑ i = 1 N ( y t r u e i − y p r e d i ) 2 MSE=\frac{1}{N}\sum^{N}_{i=1}(y_{true_i}-y_{pred_i})^2 MSE=N1​i=1∑N​(ytruei​​−ypredi​​)2

可以理解为反映了预测点在实际曲线周围的偏离程度。

  1. 均方根误差函数(RMSE)(类似于标准差的计算
    R M S E = 1 N ∑ i = 1 N ( y t r u e i − y p r e d i ) 2 RMSE=\sqrt{\frac{1}{N}\sum^{N}_{i=1}(y_{true_i}-y_{pred_i})^2} RMSE=N1​i=1∑N​(ytruei​​−ypredi​​)2 ​

可以理解为反映了预测点在实际曲线周围的偏离程度的开方

  1. 平均绝对误差函数(MAE)(类似于两点间的距离)
    M A E = 1 N ∑ i = 1 N ∣ ( y t r u e i − y p r e d i ) ∣ MAE=\frac{1}{N}\sum^{N}_{i=1}|(y_{true_i}-y_{pred_i})| MAE=N1​i=1∑N​∣(ytruei​​−ypredi​​)∣
    可以理解为反映了预测值与真实值的距离
    以上均是值越小越好。

还有交叉熵损失
损失越小,说明网络的效果越好

7.进行后向传播

后向传播就是一个参数优化的过程,也就是优化 W W W和 b b b,计算完损失之后进行后向传播,根据得到的损失值进行后向传播。而为了进行优化,就是通过梯度下降的方法对 W W W和 b b b进行参数调整。

8.迭代

通过不断多次迭代,不断地对网络参数进行优化调整,直到损失降低到比较低,且逐步收敛模型就训练完毕,之后还要通过对于测试的结果再进行部分微调。

深度学习之神经网络传递流程相关推荐

  1. 15个小时彻底搞懂NLP自然语言处理(2021最新版附赠课件笔记资料)【LP自然语言处理涉及到深度学习和神经网络的介绍、 Pytorch、 RNN自然语言处理】 笔记

    15个小时彻底搞懂NLP自然语言处理(2021最新版附赠课件笔记资料)[LP自然语言处理涉及到深度学习和神经网络的介绍. Pytorch. RNN自然语言处理] 笔记 教程与代码地址 P1 机器学习与 ...

  2. 一文搞定深度学习建模预测全流程(Python)

    作者 | 泳鱼 来源 | 算法进阶 本文详细地梳理及实现了深度学习模型构建及预测的全流程,代码示例基于python及神经网络库keras,通过设计一个深度神经网络模型做波士顿房价预测.主要依赖的Pyt ...

  3. 人工智能、机器学习、深度学习和神经网络的区别

    人工智能 背景:人工智能最初可以追溯至1956年,当时多名计算机科学家在达特茅斯会议上共同提出了人工智能的概念.在随后几十年中,人工智能一方面被认为是人类文明未来的发展方向,另一方面也被认为是难以企及 ...

  4. python神经网络教程16_Python深度学习之神经网络视频

    Python深度学习之神经网络视频 课程简介 该阶段是深度学习的入门课程,主要介绍经典的深度学习框架TensorFlow的使用,IO操作,以及神经网络基础.卷积神经网络的相关知识,并用卷积神经网络原理 ...

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

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

  6. 深度学习建模预测全流程(Python)!

    本文详细地梳理及实现了深度学习模型构建及预测的全流程,代码示例基于python及神经网络库keras,通过设计一个深度神经网络模型做波士顿房价预测.主要依赖的Python库有:keras.scikit ...

  7. 机器学习、深度学习、神经网络学习资料集合(开发必备)

    最近整理了下AI方面的学习资料,包含了学习社区.入门教程.汲取学习.深度学习.自然语言处理.计算机视觉.数据分析.面试和书籍等方面的知识.在这里分享给大家,欢迎大家点赞收藏. 学习社区 神力AI(MA ...

  8. 深度学习和神经网络的介绍(一)

    1.深度学习和神经网络 1.1 深度学习的介绍 目标: 知道什么是深度学习 知道深度学习和机器学习的区别 能够说出深度学习的主要应用场景 知道深度学习的常见框架 1.1.1 深度学习的概念 深度学习是 ...

  9. 人工智能:通俗易懂理解深度学习与神经网络

    前言 初入学习人工智能领域,为方便对该领域有一个快速清晰的认识,因此收集了相关资料并整理了各位前辈们在此领域的研究现状.由浅入深.循序渐进理解什么是深度学习和神经网络,二者的联系和区别是什么,以及什么 ...

最新文章

  1. Spring MVC常用注解说明
  2. elasticsearch,python包pyes进行的处理
  3. vc获取n卡编号_电脑入门知识:通过显卡型号中字母和数字判断显卡性能
  4. 嵌入式系统开发人员的知识结构
  5. 验证日期时间的正则表达式
  6. 水平集与图割算法浅析
  7. oracle 5表关联查询,Oracle学习笔记5 - 表查询
  8. 基于android记事本论文,基于android平台的记事本研究与开发 开题报告
  9. RTOS原理与实现08:存储块实现
  10. Eclipse主题设置
  11. PMP课程笔记:第12章 项目采购管理
  12. 信息学奥赛一本通答案-1006:A+B问题
  13. cluster-proportional-autoscaler源码分析及如何解决KubeDNS性能瓶颈
  14. LL(1)文法的判断
  15. 中国·乌镇互联网产业园项目总投资约100亿元
  16. 数据库设计之冗余字段
  17. java采集控制台日志
  18. 《系统》是南方周末2007年度最好的特稿
  19. docx转换为doc格式,公式变成图片问题,word2016
  20. java后台生成含有echarts图表的报告并发送邮件

热门文章

  1. app store评分机制_如何通过简单易行的方法提高App Store的评分
  2. Prometheus监控实战系列九:主机监控
  3. python如何读取字典的关键字_python提取字典元素
  4. 劲爆! 3月50本期刊被剔除,部分更名(附最新SSCIamp;SCI目录下载)
  5. windows下,解决docker2375端口连不上,telnet不通
  6. html页面不论如何缩放也不改变布局的相对位置
  7. 3ds max怎么自定义工具栏(某个工具图标)
  8. 米思奇(Mixly)连接OneNet物联网平台(一)
  9. 记录小白通过TCP/IP协议实现远程操作机械手臂
  10. 暴力破解移动硬盘密码