当前位置:网站首页>深度学习之 7 深度前馈网络
深度学习之 7 深度前馈网络
2022-07-17 06:49:00 【水w】
本文是接着上一篇深度学习之 6 线性回归实现2_水w的博客-CSDN博客
目录
深度前馈网络
人工神经网络
1、人脑神经网络
人类大脑由神经元、神经胶质细胞、神经干细胞和血管组成神经元(neuron) 也叫神经细胞(nerve cell),是人脑神经系统中最基本的单元人脑神经系统包含近860亿个神经元每个神经元有上千个突触与其他神经元相连人脑神经元连接成巨大的复杂网络,总长度可达数千公里
(1)神经元结构:
(2)神经元之间的信息传递:
(3)人工神经元:
(4)人工神经网络:
2、一个解决异或问题的简单网络
(1)感知器求解异、或、非及异或问题:
输入为[𝑥1; 𝑥2]的单层单个神经元(输入层不计入层数),采用阶跃激活函数。
(2)双层感知器 —— 一个简单的神经网络
输入仍为[𝑥1; 𝑥2],让网络包含两层:
给出异或问题的一个解:
解释:非线性空间变换
3、神经网络结构
(1)万能近似定理:
(2)万能近似定理应用到神经网络:
根据万能近似定理,对于具有线性输出层和至少一个使用“挤压”性质的激活函数的隐藏层组成的神经网络,只要其隐藏层神经元的数量足够多,它就可以以任意精度来近似任何一个定义在实数空间中的有界闭集函数。神经网络可以作为一个“万能”函数来使用,可以用来进行复杂的特征转换,或逼近一个复杂的条件分布。
(3)为什么要深度:
单隐层网络可以近似任何函数,但其规模可能巨大* 在最坏的情况下,需要指数级的隐藏单元才能近似某个函数[Barron, 1993]随着深度的增加,网络的表示能力呈指数增加* 具有𝑑个输入、深度为𝑙 、每个隐藏层具有𝑛个单元的深度整流网络可以描述 的线性区域的数量为,意味着,描述能力为深度的指数级
更深层的网络具有更好的泛化能力:模型的性能随着随着深度的增加而不断提升
参数数量的增加未必一定会带来模型效果的提升:更深的模型往往表现更好,并不仅仅是因为模型更大。 想要学得的函数应该由许多更简单的函数复合在一起而得到。
(4)常见的神经网络结构:

其他结构设计方面的考虑:除了深度和宽度之外,神经网络的结构还具有其他方面的多样性。
- 改变层与层之间的连接方式
* 前一层的每个单元仅与后一层的一个小单元子集相连* 可以极大地减少参数的数量* 具体的连接方式高度依赖于具体的问题
- 增加跳跃连接
* 从第𝑖层与第𝑖 + 2层甚至更高层之间建立连接* 使得梯度更容易从输出层流向更接近输入的层,利于模型优化
前馈神经网络
1、前馈神经网络的结构和表示:
前馈神经网络(Feedforward Neural Network, FNN)是最早发明的简单人工神经网络前馈神经网络也经常被称为多层感知器(Multi-Layer Perceptron, MLP),但这个叫法并不十分合理(激活函数通常并不是感知器所采用的不连续阶跃函数);第0层为输入层,最后一层为输出层,其他中间层称为隐藏层;信号从输入层向输出层单向传播,整个网络中无反馈,可用一个有向无环图表示;
前馈神经网络的符号表示 :

2、隐藏单元——激活函数:
隐藏单元的设计是一个非常活跃的研究领域,但是目前还没有很明确的指导原则激活函数的性质要求:* 连续并可导(允许少数点上不可导)的非线性函数。可导的激活函数可以直接利用数值优化的方法来学习网络参数。* 激活函数及其导函数要尽可能的简单,有利于提高网络计算效率。* 激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太小,否则会影响训练的效率和稳定性。
(1)Sigmoid型函数:
整流线性单元(ReLU)函数及其扩展 :
其他激活函数 :
3、输出单元
线性输出单元
* 线性输出单元经常用于产生条件高斯分布的均值* 适合连续值预测(回归)问题* 基于高斯分布,最大化似然(最小化负对数似然)等价于最小化均方误差, 因此线性输出单元可采用均方误差损失函数:其中𝑦(𝑛) 为真实值, 𝑛 为预测值, 𝑁为样本数。


* Sigmoid输出单元常用于输出Bernoulli分布* 适合二分类问题* Sigmoid输出单元可采用交叉熵损失函数:
Softmax单元:
* Softmax输出单元常用于输出Multinoulli分布* 适合多分类问题* Softmax输出单元可采用交叉熵损失函数:
4、前馈神经网络参数学习
学习准则* 假设神经网络采用交叉熵损失函数,对于一个样本(𝒙, 𝑦),其损失函数为
梯度下降* 基于学习准则和训练样本,网络参数可以通过梯度下降法进行学习,* 通过链式法则可以逐一对每个参数求偏导,但是效率低下;* 在神经网络的训练中经常使用反向传播算法来高效地计算梯度;
反向传播算法
1、微分链式法则
2、反向传播算法
给定一个样本(𝒙, 𝒚),假设神经网络输出为y^,损失函数为𝐿(𝒚, 𝒚^),采用梯度下降法需要计算 损失函数关于每个参数的偏导数。
如何计算前馈神经网络中参数的偏导数 —— 反向传播(Back Propagation,BP)算法
考虑求第𝑙层中参数𝑾(𝑙)和𝒃(𝑙)的偏导数,由于𝒛(𝑙) = 𝑾(𝑙)𝒂(𝑙−1) + 𝒃(𝑙),根据链式法则:
代码过程:
边栏推荐
- [MySQL] transaction: basic knowledge of transaction, implementation principle of MySQL transaction, detailed explanation of transaction log redolog & undo
- 从赌场逻辑,分析平台币的投资价值 2020-03-03
- What if the user information in the website app database is leaked and tampered with
- Jira --- workflow call external api
- High performance integrated video image processing board based on ultrascale FPGA + Huawei Hisilicon arm / fpga+arm
- Flowable query, complete, void, delete tasks
- Machine learning interview questions (Reprinted)
- 网站APP数据库里的用户信息被泄露篡改怎么办
- 《痞子衡嵌入式半月刊》 第 58 期
- Paddleserving服务化部署 tensorrt报错, shape of trt subgraph is [-1,-1,768],
猜你喜欢
随机推荐
Go language Bible
Jd.com's purchase intention forecast (IV)
FMC sub card: 4-way sfp+ 10 Gigabit optical fiber network FMC sub card
How to check whether the app has user information and data leakage vulnerabilities
Convolutional neural network CNN
[C# 类和对象]-C# 中的方法以及类和对象编程
【特征工程】
Go语言圣经
Code learning (deamnet) CVPR | adaptive consistency prior based deep network for image learning
半导体材料技术
Redis data persistence
@How can conditionalonmissingbean cover beans in third-party components
Standard Version (release and changelog Automation)
Download, installation and use of mongodb
redis事务
Visual studio production environment configuration scheme: slowcheetah
KingbaseES 中可以通过构造一个聚集函数来实现mysql的any_value功能。
Shenzhen Prudential written examination record
If a number in C language is exactly equal to the sum of its factors, this number is called "perfect". For example, 6=1 + 2 + 3 programming
Paddleserving服务化部署 tensorrt报错, shape of trt subgraph is [-1,-1,768],