学习笔记9--深度前馈网络
本系列博客包括6个专栏,分别为:《自动驾驶技术概览》、《自动驾驶汽车平台技术基础》、《自动驾驶汽车定位技术》、《自动驾驶汽车环境感知》、《自动驾驶汽车决策与控制》、《自动驾驶系统设计及应用》,笔者不是自动驾驶领域的专家,只是一个在探索自动驾驶路上的小白,此系列丛书尚未阅读完,也是边阅读边总结边思考,欢迎各位小伙伴,各位大牛们在评论区给出建议,帮笔者这个小白挑出错误,谢谢!
此专栏是关于《自动驾驶汽车环境感知》书籍的笔记
2.深度前馈网络
2.1 神经元
人工神经元(artificial neuron)简称神经元(neuron),是构成神经网络的基本单元,主要是模拟生物神经元的结构和特性,接收一组输入信号并产出输出;
神经元模型:
f(∑iωixi+b)f(\sum_i\omega_ix_i+b)f(i∑ωixi+b)
其中:fff为激活函数;为了增强网络的表达能力及学习能力,一般使用连续非线性激活函数(activation function);- sigmoid激活函数
sigmoid激活函数的两种形式:logistic函数和tanh函数;
logistic函数定义为:σ(x)\sigma(x)σ(x):
σ(x)=11+e−x\sigma(x)=\frac{1}{1+e^{-x}}σ(x)=1+e−x1
logistic函数图像如上,可以看成一个"挤压"函数,把一个实数域的输入"挤压"到(0,1);当输入值在0附近时,sigmoid函数近似线性函数;当输入值靠近两端时,对输入进行抑制;输入越小,其值越接近0;输入越大,其值越接近1;
tanh函数定义为tanh(x):
tanh(x)=ex−e−xex+e−x=2σ(2x)−1tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}=2\sigma(2x)-1tanh(x)=ex+e−xex−e−x=2σ(2x)−1
- Hard-Logistic和Hard-tanh函数
logistic函数的导数为:σ′(x)=σ(x)(1−σ(x))\sigma'(x)=\sigma(x)(1-\sigma(x))σ′(x)=σ(x)(1−σ(x));logistic函数在0附近的一阶泰勒展开式为:
gl(x)≈σ(0)+x×σ′(0)=0.25x+0.5gl(x)≈\sigma(0)+x\times\sigma'(0)=0.25x+0.5gl(x)≈σ(0)+x×σ′(0)=0.25x+0.5
hard−logistic(x)={1gl(x)≥1gl(x)0<gl(x)<1=max(min(gl(x),1),0)0gl(x)≤0hard-logistic(x)= \left\{ \begin{array}{lr} 1& & gl(x) \ge 1\\ gl(x) && 0 < gl(x)<1=\max(\min(gl(x),1),0)\\ 0 & &gl(x)≤0 \end{array} \right. hard−logistic(x)=⎩⎨⎧1gl(x)0gl(x)≥10<gl(x)<1=max(min(gl(x),1),0)gl(x)≤0
tanh函数在0附近的一阶泰勒展开式为:
gt(x)≈tanh(0)+x×tanh′(0)xgt(x)≈\tanh(0)+x\times\tanh'(0)xgt(x)≈tanh(0)+x×tanh′(0)x
则
hard−tanh(x)=max(min(gt(x),1),−1)=max(min(x,1),−1)hard-tanh(x)=\max(\min(gt(x),1),-1)=\max(\min(x,1),-1) hard−tanh(x)=max(min(gt(x),1),−1)=max(min(x,1),−1)
3.修正线性单元
修正线性单元(Rectified Linear Unit,ReLU),ReLU函数实际是一个斜坡函数,定义:
rectifier(x)={xx≥00x<0=max(0,x)rectifier(x)= \left\{ \begin{array}{lr} x& & x \ge 0\\ 0 && x<0 \end{array} \right.=\max(0,x) rectifier(x)={x0x≥0x<0=max(0,x)
注:rectifier函数为左饱和函数,在x>0x>0x>0时导数为1,在x≤0x≤0x≤0时导数为0;在训练时,学习率设置过大,在一次更新参数后,一个采用ReLU的神经元在所有的训练数据上都不能被激活;- 带泄露的ReLU
带泄露的ReLU(Leaky ReLU)在输入x<0x<0x<0时,保持一个很小的梯度;这样当神经元非激活时也有一个非零的梯度可以更新参数,避免永远不能被激活,定义:
f(x)=max(0,x)+γmin(0,x)={xx≥0γxx<0;γ∈(0,1)是一个很小的常数,如0.01f(x)=\max(0,x)+\gamma\min(0,x)=\left\{ \begin{array}{lr} x& & x \ge 0\\ \gamma{x} && x<0 \end{array} \right.;\gamma\in(0,1)是一个很小的常数,如0.01 f(x)=max(0,x)+γmin(0,x)={xγxx≥0x<0;γ∈(0,1)是一个很小的常数,如0.01 - 带参数的ReLU
带参数的ReLU(Parametric ReLU,PReLU)引入一个可学习的参数,不同神经元可以有不同的参数;对于第iii个神经元,ReLU定义:
PReLUi(x)=max(0,x)+γimin(0,x)={xx>0γixx≤0;γi为x≤0时函数的斜率PReLU_i(x)=\max(0,x)+\gamma_i\min(0,x)=\left\{ \begin{array}{lr} x& & x > 0\\ \gamma_i{x} && x≤0 \end{array} \right.;\gamma_i为x≤0时函数的斜率 PReLUi(x)=max(0,x)+γimin(0,x)={xγixx>0x≤0;γi为x≤0时函数的斜率 - softplus函数
softplus函数定义:
softplus(x)=log(1+ex)softplus(x)=\log(1+e^x) softplus(x)=log(1+ex)
- sigmoid激活函数
2.2 网络结构
常用的神经网络结构:
- 前馈网络;
- 网络中各个神经元按接收信息的先后分为不同的组;每一个组可以看成一个神经层;
- 每一层的神经元接收前一层神经元的输出,并输出到下一层神经元;
- 整个网络中信息只朝一个方向传播,没有反向的信息传播;
- 前馈网络包括:全连接前馈网络和卷积神经网络;
- 反馈网络;
- 网络中神经元可以接收其他神经元的信号,也可以接收自己的反馈信号;
- 反馈网络在不同的时刻具有不同的状态,具有记忆功能;
- 记忆网络;
- 记忆网络在前馈网络或反馈网络基础上,引入一组记忆单元,用保存中间状态;
- 记忆网络具有比反馈网络更强的记忆功能;
2.3 深度前馈网络
前馈神经网络中,各神经元分别属于不同层;
每一层的神经元可以接收前一层神经元的信号,并产生信号输出到下一层;
第一层为输入层,最后一层为输出层,其他中间层为隐藏层;
整个网络无反馈,信号从输入层向输出层单向传播;
- LLL:表示神经网络的层数;
- nln^lnl:表示第lll层神经元的个数;
- fl(⋅)f_l(·)fl(⋅):表示lll层神经元的激活函数;
- W(l)∈Rnl×nl−1W^{(l)}\in{R^{n^l\times{n^{l-1}}}}W(l)∈Rnl×nl−1:表示l−1l-1l−1层到第lll层的权重矩阵;
- b(l)∈Rnlb^{(l)}\in{R^{n^l}}b(l)∈Rnl:表示l−1l-1l−1层到第lll层的偏置;
- z(l)∈Rnlz^{(l)}\in{R^{n^l}}z(l)∈Rnl:表示lll层神经元的净输入;
- a(l)∈Rnla^{(l)}\in{R^{n^l}}a(l)∈Rnl:表示lll层神经元的输出;
前馈神经网络信息传播的公式:
z(l)=W(l)a(l−1)+b(l);a(l)=fl(z(l))z^{(l)}=W^{(l)}a^{(l-1)}+b^{(l)};a^{(l)}=f_l(z^{(l)})z(l)=W(l)a(l−1)+b(l);a(l)=fl(z(l))
2.4 参数学习
深度前馈神经网络中,(W,b)(W,b)(W,b)是模型参数,给定输入和输出数据对(x,y)(x,y)(x,y),得到模型参数的过程称为训练或学习;
交叉熵损失函数实例:
- 函数表示
L(y,y^)=−yTlogy^,y^为对应的one−hot向量表示L(y,\hat{y})=-y^T\log{\hat{y}},\hat{y}为对应的one-hot向量表示L(y,y^)=−yTlogy^,y^为对应的one−hot向量表示 - 给定训练集:D={(x(i),y(i))},1≤i≤ND=\{{(x^{(i)},y^{(i)})}\},1≤i≤ND={(x(i),y(i))},1≤i≤N,将每个样本x(i)x^{(i)}x(i)输入给前馈网络,得到网络输出y^\hat{y}y^,其在数据集DDD上的风险函数为:R(W,b)=1N∑i=1NL(y(i),y^(i))+12λ∣∣W∣∣F2R(W,b)=\frac{1}{N}\sum^{N}_{i=1}L(y^{(i)},\hat{y}^{(i)})+\frac{1}{2}\lambda||W||^2_FR(W,b)=N1i=1∑NL(y(i),y^(i))+21λ∣∣W∣∣F2
- W和bW和bW和b包含了每一层的权重矩阵和偏置向量;
- ∣∣W∣∣F2||W||^2_F∣∣W∣∣F2是正则化项,用来防止过拟合;
- λ\lambdaλ是正数的超参数;λ\lambdaλ越大,WWW越接近0;
- 网络参数通过梯度下降法进行学习;在梯度下降每次迭代中,第lll层的参数W(l)W^{(l)}W(l)和b(l)b^{(l)}b(l)更新方式:
W(l)←W(l)−α∂R(W,b)∂W(l)=W(l)−α(1N∑i=1N∂L(y(i),y^(i))∂W(l)+λW(l))W^{(l)}\leftarrow{W^{(l)}}-\alpha\frac{\partial{R(W,b)}}{\partial{W^{(l)}}}=W^{(l)}-\alpha(\frac{1}{N}\sum^{N}_{i=1}\frac{\partial{L(y^{(i)},\hat{y}^{(i)}})}{\partial{W^{(l)}}}+\lambda{W^{(l)}}) W(l)←W(l)−α∂W(l)∂R(W,b)=W(l)−α(N1i=1∑N∂W(l)∂L(y(i),y^(i))+λW(l))
b(l)←b(l)−α∂R(W,b)∂b(l)=b(l)−α(1N∑i=1N∂L(y(i),y^(i))∂b(l))b^{(l)}\leftarrow{b^{(l)}}-\alpha\frac{\partial{R(W,b)}}{\partial{b^{(l)}}}=b^{(l)}-\alpha(\frac{1}{N}\sum^N_{i=1}\frac{\partial{L(y^{(i)},\hat{y}^{(i)})}}{\partial{b^{(l)}}}) b(l)←b(l)−α∂b(l)∂R(W,b)=b(l)−α(N1i=1∑N∂b(l)∂L(y(i),y^(i)))
α\alphaα为学习率;
学习笔记9--深度前馈网络相关推荐
- 【AI绘图学习笔记】深度前馈网络(二)
有关深度前馈网络的部分知识,我们已经在吴恩达的机器学习课程中有过了解了,本章主要是对<深度学习>花书中第六章:深度前馈网络的总结笔记.我希望你在看到这一章的时候,能回忆起机器学习课程中的一 ...
- 深度学习中的深度前馈网络简介
几乎所有的深度学习算法都可以被描述为一个相当简单的配方:特定的数据集.代价函数.优化过程和模型. 在大多数情况下,优化算法可以定义为求解代价函数梯度为零的正规方程.我们可以替换独立于其它组件的大多数 ...
- 2020-4-22 深度学习笔记20 - 深度生成模型 5 (有向生成网络--sigmoid信念网络/可微生成器网络/变分自编码器VAE/生产对抗网络GAN/生成矩匹配网络)
第二十章 深度生成模型 Deep Generative Models 中文 英文 2020-4-17 深度学习笔记20 - 深度生成模型 1 (玻尔兹曼机,受限玻尔兹曼机RBM) 2020-4-18 ...
- 无人驾驶汽车系统入门(十一)——深度前馈网络,深度学习的正则化,交通信号识别
无人驾驶汽车系统入门(十一)--深度前馈网络,深度学习的正则化,交通信号识别 在第九篇博客中我们介绍了神经网络,它是一种机器学习方法,基于经验风险最小化策略,凭借这神经网络的拟合任意函数的能力,我们可 ...
- 深度学习(一)深度前馈网络(deep feedforward network)
深度学习(一)深度前馈网络(deep feedforward network) 深度前馈网络(deep feedforward network),也叫作 前馈神经网络(feedforward neur ...
- 深度学习深度前馈网络_深度学习前馈网络中的讲义第1部分
深度学习深度前馈网络 FAU深度学习讲义 (FAU Lecture Notes in Deep Learning) These are the lecture notes for FAU's YouT ...
- 深度学习深度前馈网络_深度学习前馈网络中的讲义第4部分
深度学习深度前馈网络 FAU深度学习讲义 (FAU Lecture Notes in Deep Learning) These are the lecture notes for FAU's YouT ...
- 无人驾驶汽车系统入门:深度前馈网络,深度学习的正则化,交通信号识别
作者 | 申泽邦(Adam Shan) 兰州大学在读硕士研究生,主攻无人驾驶,深度学习:兰大未来计算研究院无人车团队骨干,在改自己的无人车,参加过很多无人车Hackathon,喜欢极限编程. 在前几十 ...
- 学习笔记:深度学习(3)——卷积神经网络(CNN)理论篇
学习时间:2022.04.10~2022.04.12 文章目录 3. 卷积神经网络CNN 3.1 卷积神经网络的概念 3.1.1 什么是CNN? 3.1.2 为什么要用CNN? 3.1.3 人类的视觉 ...
最新文章
- BI之SSAS完整实战教程3 -- 创建第一个多维数据集
- python从入门到实践_Python编程从入门到实践日记Day32
- 计算机教育日志,信息技术日志1
- nginx 反向proxy多个 tomcat,负载均衡
- 网络爬虫--25.【selenium实战】实现拉勾网爬虫之--selenium获取数据
- 【算法大赛直播周】如何让人人都可以使用AI技术?北大崔斌教授亲解自动化机器学习
- 如何针对数据进行分析
- 软件工程项目之Windows Phone Application的一个设想
- 设置cookie存活时间_js中如何设置cookie的保存时间呢?
- 生物医学基础--人体阻抗模型
- 车辆信息管理系统(C语言大作业)
- JavaScript获取地理位置
- 多元微积分_旋度1.正负0旋度
- 红条款信用证Red Clause L/C
- Linux基础知识详解
- php 怎么验证邮箱验证码,PHP实现邮箱验证码验证功能
- php 图片木马检测
- 计算机一级题库ps视频,2016年国家计算机一级Photoshop题库及答案
- 【LeetCode - 1229】安排会议日程
- Window下kafka 单机SASL_SCRAM加密及身份认证
热门文章
- STL之lower_bound,upper_bound二分查找函数 结构体
- React 高阶组件HOC使用总结
- python爬取起点vip小说章节_python 爬取起点小说vip章节(失败)
- 考研英语词汇文章4-Freshman Year
- “燕云十六将”之Jason郝钰(12)
- java path.resolve_Java Path.resolve方法代碼示例
- 无法安装64(32)office,已经安装32(64)office解决方法
- 【ubuntu16.04 LTS】ping百度通,但浏览器打不开百度网页
- 跨模态行人重识别:Cross-Modality Person Re-Identification viaModality-Aware CollaborativeEnsemble Learning学习笔记
- Thumbnailator实现图片压缩