当前位置: 首页 > news >正文

什么是神经网络的非线性

大家好啊,我是董董灿。

最近在写《计算机视觉入门与调优》(右键,在新窗口中打开链接)的小册,其中一部分说到激活函数的时候,谈到了神经网络的非线性问题。

今天就一起来看看,为什么神经网络需要非线性,或者说为什么它是一个非线性系统。

1、线性系统是什么样的

先看一个基础知识:线性函数,这是我们在初中就学过的知识点。

假设有一个线性函数:y = kx + b, 这个函数画出来是下面的样子,也就是说, y 和 x 是线性关系。

而这个时候如果又有一个线性函数 z = hy + d,那么,我们可以推断出,变量 z 和 x 同样也是线性关系。

为什么呢? 可以通过下面的变换得到。

z = hy + d

   = z(kx + b) + d

   = zk x + zb + d

   = zk(x) + (zb + d)

令 zk = K, zb + d = B,那么 z 和 x 的关系就可以写出 z = Kx + B

所以,z 和 x 同样是线性关系。

这里想说的一个原理是:多个线性系统的叠加,最终还会是线性系统。

2、神经网络是什么系统呢?

回到神经网络,我们知道卷积的算法公式是 y = x * w,,其中 x 是输入数据,w 是权值,中间的 * 代表卷积计算。关于卷积可以查看:5分钟搞懂卷积。

那么x * w 是线性关系还是非线性关系呢?不好意思,就是线性关系。

这是因为卷积的核心计算是乘累加运算,所以,卷积算法也是线性的。

假设神经网络是由大量的卷积算法一层接着一层组成。如果没有非线性因素的引入,那么在数学模型上,这个大的卷积堆砌的模型就会退化成一个简单的线性模型,这就使得多层卷积失去了意义。

层数再多也没用,因为数学上等价于一个卷积,看下图解释的更清楚一些。

这就是原因所在。

所以在很多神经网络模型中,都需要引入非线性因素,从而使得神经网络模型可以拟合成更加复杂多变的非线性系统。

这样模型就可以处理复杂的任务,而不用担心模型在数学上仅仅是一个简单的线性模型了。

怎么引入非线性因素呢?

最常见的方法就是在卷积层后面增加一层非线性的激活层,这也是为什么在很多卷积算法后面,都能看到 relu 函数的原因。

延伸阅读,请参考:神经网络的非线性思想,真的神了。

http://www.lryc.cn/news/257296.html

相关文章:

  • 前端知识(十四)——浅谈用户体验测试的主要功能
  • 解决前端跨域问题,后端解决方法
  • 【网络奇缘系列】计算机网络|数据通信方式|数据传输方式
  • 数组 注意事项
  • day11 滑动窗口中的最大值
  • viple模拟器使用(五):Web 2D模拟器中实现两距离局部最优迷宫算法
  • 每日一道算法题 3(2023-12-11)
  • 【Android】查看keystore的公钥和私钥
  • ChatGPT的常识
  • Spring Boot中的事务是如何实现的?懂吗?
  • 应用安全:JAVA反序列化漏洞之殇
  • 基于以太坊的智能合约开发Solidity(函数继承篇)
  • 【论文极速读】LVM,视觉大模型的GPT时刻?
  • TS基础语法
  • 【基于NLP的微博情感分析:从数据爬取到情感洞察】
  • Ubuntu 18.04使用Qemu和GDB搭建运行内核的环境
  • GEE——利用Landsat系列数据集进行1984-2023EVI指数趋势分析
  • JAVA安全之Spring参数绑定漏洞CVE-2022-22965
  • 辨析旅行商问题(TSP)与车辆路径问题(VRP)
  • 2024年JAVA招聘行情如何?
  • 【合集】SpringBoot——Spring,SpringBoot,SpringCloud相关的博客文章合集
  • yolov5 获取漏检图片脚本
  • Unity之OpenXR+XR Interaction Toolkit接入微软VR设备Windows Mixed Reality
  • 【小聆送书第二期】人工智能时代AIGC重塑教育
  • 中国移动公网IP申请过程
  • 动态获取绝对路径
  • pytorch中的归一化:BatchNorm、LayerNorm 和 GroupNorm
  • RocketMq源码分析(九)--顺序消息
  • Windows下nginx的启动,重启,关闭等功能bat脚本
  • Python 字典:dic = {} 和 dic = defaultdict(list)之间的区别