可以做羞羞的游戏视频网站/百度账号快速注册入口
有关深度前馈网络的部分知识,我们已经在吴恩达的机器学习课程中有过了解了,本章主要是对《深度学习》花书中第六章:深度前馈网络的总结笔记。我希望你在看到这一章的时候,能回忆起机器学习课程中的一些环节或者细节,这对理解本文很有帮助。
参考笔记:
前馈神经网络初探——深度学习花书第六章(一)
神经网络损失函数、输出层、隐藏层详解——深度学习第六章(二)
反向传播算法——深度学习第六章(三)
(逮住大佬的文章使劲薅)
文章目录
- 认识深度前馈网络
- 偏爱线性模型
- 实例:学习XOR
认识深度前馈网络
深度前馈网络,也叫前馈神经网络或者多层感知机,这是一种典型的深度学习模型,其目的是为了近似某个函数f∗f^*f∗,函数f∗f^*f∗被我们称为近似原函数fff的一个拟合函数。我们想要得到这个函数f∗(x)f^*(x)f∗(x),使得我们输入xxx能够得到近似结果y=f∗(x)≈f(x)y=f^*(x)\approx f(x)y=f∗(x)≈f(x)。整个神经网络相当于一个映射y=f(x;θ)y=f(x;\theta)y=f(x;θ)
像这样,信息流为xxx,过定义fff的中间计算过程,最后达到输出yyy,在模型的输出和模型本身没有反馈连接(即输出结果作为下次输入),存在反馈连接的被我们称为循环神经网络。
假设一个神经网络函数被描述为f(x)=f(3)(f(2)(f1(x)))f(x)=f^{(3)}(f^{(2)}(f^{1}(x)))f(x)=f(3)(f(2)(f1(x))),其中f(1)f^{(1)}f(1)被称为第一层,f(2)f^{(2)}f(2)被称为第二层,以此类推。链的全长称为模型的深度,前馈网络的最后一层被称为输出层,第一层被称为输入层。整个神经网络的目的是想要使yyy能够匹配f∗(x)f^*(x)f∗(x)的值,但是训练数据并不能告诉我们其他层该怎么做,而应该让学习算法来决定如何使用中间层来很好地近似f∗(X)f^*(X)f∗(X),由于训练数据并未给出中间层所需的输出,因此我们把中间的那些层称为隐藏层。
神经网络中的每个隐藏层通常都是向量值,这些隐藏层的维度决定了模型的宽度。我们最好把每层隐藏层想象成许多并行处理的单元,每个单元表示一个处理x个向量成为一个标量的函数。每个单元类似于神经元,它接受来自其他多个单元的输入并计算它自己的激活值,每个神经元进行了矢量到标量的映射操作(这一操作又被称作激活函数,activation function),而每一层是不同的神经元并行运算的综合。
偏爱线性模型
建立深度前馈网络的一个考虑是从线性模型开始,并设法克服它的局限性,例如线性回归和逻辑回归,它们无论是通过闭解形式还是使用凸优化,都能高效且可靠地拟合。但是线性模型也有明显的缺陷,那就是模型的能力被局限于线性函数,它无法理解任何两个输入变量间的相互作用。
- 为了拓展线性模型来表示x的非线性函数,我们可以不把线性模型应用于x本身,而是用于一个变换后的输入ϕ(x)\phi(x)ϕ(x)上,ϕ\phiϕ指的是一个非线性的变换,这种方法将线性模型拓展为非线性模型,并利用线性模型的性质来解决。
- 如果你还记得我们讲过的核函数,我们也可以隐含地使用ϕ\phiϕ映射的非线性学习算法,将一个非线性问题转化为一个线性问题再解决。
ϕ\phiϕ可以简单地理解为对原函数f(x)f(x)f(x)或者对x内所隐含特征的映射。
- 对于如何选取映射 ϕ\phiϕ有如下几种思路:选取一个比较通用的 ϕ\phiϕ,例如核技巧中的RBF kernel(也称作Gaussian kernel),如果ϕ(x)\phi(x)ϕ(x)的维度足够高,我们总能够使其匹配训练集,但很难推广到测试集。因为这种模型只是假设了局域变化不大的前提,而并没有包含任何有价值的先验信息。
- 人工选取合适的 ϕ\phiϕ,实际上这是在深度学习流行之前的主流方法,但是这需要大量的相关经验与人力资源,而且不同领域间的知识很难迁移。
- 深度学习的策略是利用神经网络学习合适的用隐藏层代表的映射ϕ\phiϕ,即模拟y=f(x;θ,w)=ϕ(x;θ)Twy=f(x;\theta,w)=\phi(x;\theta)^Twy=f(x;θ,w)=ϕ(x;θ)Tw,其中θ\thetaθ是ϕ\phiϕ的模拟参数,我们需要从一大类函数中进行学习得到,以及用于将ϕ\phiϕ映射到所需的输出的参数www。这种方法可以兼具方法一二的优点,如果我们想要得到高度通用的ϕ\phiϕ,只需使用一个非常广泛的函数族(函数集合)ϕ(x;θ)\phi(x;\theta)ϕ(x;θ)来训练参数θ\thetaθ
我们也可以人为的设置表现优异的函数族ϕ(x;θ)\phi(x;\theta)ϕ(x;θ)重新训练,与第二种方法相比,优点在于我们只需找到一个比较合适的函数族而不需要知道确切的函数。
第三种方法可以对应我们之前学到的:预训练可以在不同功能的同一模型内迁移参数并微调。并且这个方法不仅适用于深度前馈网络,甚至可适用所有种类的深度学习模型(指的是同一种模型内迁移参数都适用)。
实例:学习XOR
XOR指的是异或函数,对于两个二进制输入x1,x2x_1,x_2x1,x2(即输入结果只有0和1),若有且仅有一个输入为1则输出1,反之其余情况都输出0,如下图所示:
由于它的输出只有这四个,因此我们要用这四个样本来训练我们的网络。
很明显,我们无法对当前的向量空间进行线性分割,使得两种的输出结果被分别分割到线性函数的两侧。
当然书上给出了一个证明过程:假设线性回归模型f(x;w,b)=xTw+bf(x;w,b)=x^Tw+bf(x;w,b)=xTw+b
其MSE(均方误差)代价函数为:J(θ)=14∑x∈X(f∗(x)−f(x;θ))2J(\theta)=\frac{1}{4}\displaystyle\sum_{x \in \Bbb X}(f^*(x)-f(x;\theta))^2J(θ)=41x∈X∑(f∗(x)−f(x;θ))2(线性回归的代价函数基本都是均方误差)
运用梯度下降或者正规方程,我们找到使得min(MSE)min(MSE)min(MSE)的参数θ或者说(w,b)\theta或者说(w,b)θ或者说(w,b),我们得到w=0w=0w=0,b=12b=\frac{1}{2}b=21,意味着f(x;w,b)=0.5f(x;w,b)=0.5f(x;w,b)=0.5在任意点都是这个输出,和我们的结果不能说没有关系,只能说八竿子打不到一块。也就证明了一个我们一眼就看出来的结论:线性回归不适合拟合这个模型。
这种时候想想核技巧会怎么做,其中一个方法就是:使用一个模型将其映射到一个新的特征空间,在这个特征空间内,我们可以用线性模型来解决。
我们引入一个如下图所示的简单的具有一层隐藏层的前馈网络模型:
注意图中两种方式表示是等价的,左图是具体画出每个节点,而右图是简化为层。并且用W&wW \& wW&w来表示了不同层次间的映射关系。
这个简单的神经网络甚至简单到只有两层,xxx层不在神经网络内,它代表的是输入特征,hhh层是神经网络的第一层隐藏层,也是输入层,yyy层是第二层,但不是隐藏层,是输出层。
在上述模型中包含了两个函数h=f(1)(x;W,c)h=f^{(1)}(x;W,c)h=f(1)(x;W,c)和y=f(2)(h;w,b),y=f^{(2)}(h;w,b),y=f(2)(h;w,b),完整的模型是f(x:W,c,w,b)=f(2)(f(1)(x))f(x:W,c,w,b)=f^{(2)}(f^{(1)}(x))f(x:W,c,w,b)=f(2)(f(1)(x)),如果详细地展开整个映射:
h1=W11∗x1+W21∗x2+b11;h1 = W_{11}*x1+W_{21}*x2+b_{11} ;h1=W11∗x1+W21∗x2+b11;
h2=W12∗x1+W22∗x2+b12;h2= W_{12}*x1+W_{22}*x2+b_{12} ;h2=W12∗x1+W22∗x2+b12;
y=w11∗x1+w21∗x2+b21y=w_{11}*x1+w_{21}*x2+b_{21}y=w11∗x1+w21∗x2+b21,
其中W11W_{11}W11代表第1层从x1,x2→h1x_1,x_2 \to h_1x1,x2→h1的参数WWW,b21b_{21}b21代表第2层第1个神经元的常数参数,以此类推。
好处之一就是我们现在构建这个模型不用知道具体函数,只需要写出函数族即可,所以我们可以简单地把神经网络的层次先建立起来。现在让我们思考应该选择哪个函数来表示f(1)f^{(1)}f(1)?似乎线性函数可以,遗憾的是线性函数的线性函数,也就是F(x)=f(f(x))F(x)=f(f(x))F(x)=f(f(x)),若f(x)f(x)f(x)是线性函数,则F(x)F(x)F(x)也是线性函数,证明略,自己代入可证。因此我们肯定不能选择线性函数了。
当然,我们学习过神经网络了,知道现在我们应该采用一些非线性的激活函数来实现这个目的,现在我们需要一个偏置参数WTW^TWT来描述从x⃗→h⃗\vec x\to \vec hx→h的仿射变换,我们需要一整个向量的偏置参数,因此激活函数ggg通常需要选择对每个元素xix_ixi分别起作用的函数,从而有hi=g(xTW;i+ci)h_i=g(x^TW;i+c_i)hi=g(xTW;i+ci)。在现代神经网络中,我们默认的推荐是ReLu函数g(z)=max{0,z}g(z)=max\{{0,z}\}g(z)=max{0,z}
(整流线性激活函数ReLu非常接近线性,本质上它是具有两个线性部分的分段线性函数,ReLu几乎是线性的,因此保留了线性模型能够泛化良好的属性。就像计算机一样,我们可以从0和1构建一个复杂的系统,因此我们也可以通过整流线性函数构建一个万能函数近似器)
因此我们带入f(1)=g(z)f^{(1)}=g(z)f(1)=g(z),得到完整模型f(x;W,c,w,b)=wTmax{0,WTx+c}+bf(x;W,c,w,b)=w^T\space max\{{0,W^Tx+c}\}+bf(x;W,c,w,b)=wT max{0,WTx+c}+b
那么我们开始训练数据了,按照真值表的输出,我们需要使得模型拟合下面的训练样本:
那么我们可以找到一个解:
此时b=0,将训练集带入验证,
在第一层中,我们用输入矩阵 XXX*权重矩阵WWW,得到XW=[00111122]XW=\begin{bmatrix} 0 &0 \\ 1 &1 \\ 1 &1 \\ 2 &2 \\ \end{bmatrix}XW=01120112,再加上偏置向量ccc得到XW+cT=[0−1101021]XW+c^T=\begin{bmatrix} 0 &-1 \\ 1 &0 \\ 1 &0 \\ 2 &1 \\ \end{bmatrix}XW+cT=0112−1001,这是由输入层到ReLu的映射,接下来我们用ReLu对每个样本进行处理,得到隐藏层的输出值:
我们说这是非线性模型到线性模型的拓展,这个输出值从原空间通过映射ϕ\phiϕ到隐藏层的特征空间hhh,在特征空间上我们可以用线性模型来解决。
(左图是原空间,右图就是特征空间hhh,与原空间相比,hhh将x=[1,0]T和x=[0,1]Tx=[1,0]^T和x=[0,1]^Tx=[1,0]T和x=[0,1]T这两个点映射到了h=[1,0]Th=[1,0]^Th=[1,0]T,使得原来无法用线性模型拓展的原空间为了可以可以使用线性模型的特征空间)
最后乘以权重向量w=[1−2]w=\begin{bmatrix} 1 \\ -2 \\ \end{bmatrix}w=[1−2],(XW+cT)w+b=[0110](XW+c^T)w+b=\begin{bmatrix} 0 \\ 1 \\ 1 \\ 0 \\ \end{bmatrix}(XW+cT)w+b=0110
这个例子中,我们用简单的神经网络并找到合适的解来模拟XOR操作,实际中问题要复杂得多,而我们不能这么容易的猜到合适的解,这时候我们就需要利用梯度下降算法来逼近合适的解。下一篇继续总结利用梯度下降算法的前馈神经网络模型的基本组成包含模型的损失函数,输出层函数,隐藏层函数以及整体架构的选择。
相关文章:

【AI绘图学习笔记】深度前馈网络(一)
有关深度前馈网络的部分知识,我们已经在吴恩达的机器学习课程中有过了解了,本章主要是对《深度学习》花书中第六章:深度前馈网络的总结笔记。我希望你在看到这一章的时候,能回忆起机器学习课程中的一些环节或者细节,这…...

目标检测笔记合集
目标检测笔记合集1. 必看的两篇目标检测论文2. 必速看的深度学习目标检测的论文集及概述2.1 一份Slide(PPT)两张表格带你快速了解目标检测2.2 最新目标检测算法回顾2022笔记合集3.目标检测的应用与需求4.目标检测的定义与挑战5.目标检测损失函数的进展6.目标检测IOU…...

《计算机网络》期末复习笔记
文章目录一、一些英文名词的标签(方便记忆)二、OSI七层协议三、综合题3.0 知识点储备3.1 在Internet 网中,某计算机的IP 地址是11001010.01100000.00101100.01011000 ,请回答下列问题3.2 假定发送方要发送的数据为10000101。采用C…...

linux下安装SonarQube
目录1. 准备安装环境2. 安装postgres数据库3. 安装SonarQube4. 使用SonarQube1. 准备安装环境 这里安装SonarQube的系统环境是Red Hat Enterprise Linux release 8.7 ,然后将jdk的压缩包(jdk-17.0.2_linux-x64_bin.tar.gz)和sonarQube的压缩…...

MyBatis-Plus(狂神)
一.特点 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Serv…...

Python3实现写作
导语T_T没有科研梦想的人半夜过来水篇文章~~~让Python学会写写歌,创创作~~~纯属娱乐~~~改编自PyTorch官网的一个教程,不过我用TF写的,然后生成英文变成了生成中文~~~Lets Go~~~相关文件百度网盘下载链接: https://pan.baidu.com/s/1VUEFR82Cq…...

UEFI实战--------HII之uni文件
uni文件 HII的实现涉及到多种不同类型的文件,uni文件是其中最简单的一种,它用来存放各种语言的字符串以实现本地化。本节主要参考自《edk-ii-uni-specification.pdf》,后面简称为参考文档。 关于uni文件的作用,在参考文档中做了如…...

基于Spring Boot集成MyBatis-3.5.9操作数据库
记录:382场景:在Spring Boot 2.6.3中集成MyBatis 3.5.9操作数据库。实现MyBatis的查、增、改、删操作数据库示例。MyBatis官网:http://www.mybatis.org/MyBatis源码:https://github.com/mybatis/1.初始化准备1.1创建Maven工程使用…...

了解国外SEO负面压制的现状与应对策略!
随着全球化的发展,越来越多的企业和品牌开始将目光转向海外市场,而谷歌作为全球最大的搜索引擎之一,也成为了外贸企业最主要的搜索引擎之一。 然而,随着谷歌的不断发展,国外SEO负面压制的现状也愈发严峻,外…...

Yolov5-交通标志检测与识别
项目介绍 上一篇文章介绍了基于卷积神经网络的交通标志分类识别Python交通标志识别基于卷积神经网络的保姆级教程(Tensorflow),并且最后实现了一个pyqt5的GUI界面,并且还制作了一个简单的Falsk前端网页实现了前后端的一个简单交互…...

Linux内核Thermal框架详解五、Thermal Core(4)
本文部分内容参考Linux Thermal 学习笔记 - 爱码网。特此致谢! 接前一篇文章Linux内核Thermal框架详解四、Thermal Core(3) 三、相关源码及分析 2. thermal_register_governors 上一回说到这一段代码: for (__governor __gove…...

gcc 编译的过程
#include <stdio.h> #define PI 3.14 int main(int argc, char const *argv[]) { //打印IP的值printf("PI %lf\n", PI);return 0; }编译的过程:预处理、编译、汇编、链接1.预处理:宏替换、删除注释、头文件包含、条件编译 -E …...

Hadoop入个门
文章目录1️⃣、Hadoop概述1.1、Hadoop是什么1.2、三大发行版本1.3、优势1.4、组成HDFSYARNMapReduceHDFS、YARN、MapReduce三者关系1.6、大数据技术生态体系image-202303111027195802️⃣、Hadoop运行环境搭建2.1、虚拟机环境准备2.2、克隆虚拟机2.3、在hadoop2上安装JDK2.4、…...

python 从0到批量下载某站视频
简介:真实从0到1,童叟无欺~ 目标:用python批量下载某站搜索视频,以“CG 服装”为例 本章主要介绍如何用python把搜索到的视频直接下载到自己的本地文件夹中~ 介绍一下工作流1. 下载并安装python2. 测试pyt…...

【深度学习】神经网络和深度学习--卷积和池化的作用
深度学习通常指训练大型深度的神经网络的过程。 与传统的神经网络模型相比,深度学习模型在结构上与之非常相似;不同的是,深度学习模型的“深度”更大,“深度”的体现就是神经网络层数多,神经网络每一层的结点数多。 本…...

锦正茂风冷系列电源JCP-10-80的技术参数
JCP-10-80为高稳定度的双极性恒流电源,广泛应用于电磁铁、亥姆霍兹线圈等感性负载的励磁。电源采用线性电源结构,输出电流稳定度高,纹波和噪声低。电源输出电流可在正负额定电流*值之间连续变化,电流平滑连续过零,可使…...

Idea+maven+spring-cloud项目搭建系列--11-1 dubbo(zookeeper,nacos)注册中心
前言:dubbo rpc 服务需要将服务提供者和消费者信息进行注册,以便于消费端可以完成远程接口调用;注册中心是 Dubbo 服务治理的核心组件,Dubbo 依赖注册中心的协调实现服务(地址)发现,自动化的服务…...

Python3入门教程||Python3 迭代器与生成器||Python3 函数
Python3 迭代器与生成器 迭代器 迭代是 Python 最强大的功能之一,是访问集合元素的一种方式。。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器有两…...

快速幂算法
快速幂算法 文章目录快速幂算法一、简单介绍二、计算7107^{10}710三、一般化1、计算ana^nan的快速方法:2、时间复杂度分析:四、代码五、参考资料一、简单介绍 快速幂(Exponentiation by squaring,平方求幂)是一种简…...

Hudi:问题总结(2)Flink-1.13.1消费kafka并插入hudi
问题一:java.lang.ClassNotFoundException: com.google.protobuf.MessageOrBuilder) 解决:字面意思,没找到类,将protobuf-java-3.2.0-jar包放到fink/lib/下 如果报commons-cli相关的错,就将commons-cli-1.4.jar放到f…...

Application工具方法
//注册这个接口registerActivityLifecycleCallbacks(activityLifecycleCallbacks);}Overridepublic void onTerminate() {//注销这个接口。unregisterActivityLifecycleCallbacks(activityLifecycleCallbacks);super.onTerminate();}public static List<Activity> activi…...

电脑游戏怎么录屏?其实很简单,只需要简单3步
电脑游戏一直是游戏爱好者最热衷的游戏之一。但是,有时候我们想分享我们在游戏中的精彩时刻,或者记录我们的游戏过程以便后续观看和学习。在这种情况下,录屏就成了必不可少的工具。但是,许多人可能不知道电脑游戏怎么录屏。在本文…...

【设计模式】go语言中的 [函数选项,单例,工厂,责任链] 常用的设计模式
文章目录前言一、函数选项模式二、单例模式三、工厂模式四、责任链模式前言 宿舍每人 温度38℃+ 大寄 设计模式很重要,设计模式其实就是为了解决某一类问题而形成的代码写法,设计模式很多,但是并不是每个都很常用,我们…...

2017系统分析师案例分析真题背记内容
前言 以下内容仅为个人根据当年系分案例真题问题整理的偏需要记背的考点答案,方便个人背诵和记忆使用。方便文字转语音,所以内容全为纯文字内容,以下内容仅供参考。 背记内容 微服务 微服务中应该包含的内容有:资源、对资源的…...

C++和C的区别
答:从宏观角度和微观角度分析微观角度:函数原型有区别,在c中,函数原型有参数和没有参数是不同的,并且允许申明多个同名的函数,只要他们的参数列表不同或者返回值不同即可,但是在c语言中不能。C引…...

【React教程】一、React简介
一、React简介 React是一个用于构建用户界面的JavaScript库,它是Facebook的内部项目,用来架设Instagram的网站,并于2013年5月开源。React主要用于构建Ul,很多人认为React 是 MVC 中的 V(视图)。由于拥有较高的性能&…...

运动蓝牙耳机什么牌子好,比较好的运动蓝牙耳机推荐
现在市面上的运动蓝牙耳机越来越多,在选择耳机的时候应该如何入手呢?最重要的是需要按照自己的需求来选择,但在耳机的配置上不能忽视的是耳机的防水等级,运动耳机对防水等级的要求更高,这样能够更好地防御汗水浸湿耳机…...

[深入理解SSD系列 闪存实战2.1] NAND FLASH特性串烧 | 不了解闪存特性,你能用好闪存产品吗?
前言 为了利用好闪存, 发挥闪存的优势, 以达到更好的性能和使用寿命, 那自然要求了解闪存特性。 闪存作为一种相对较新的存储介质, 有很多特别的特性。 一.闪存的特性 凡是采用Flash Memory的存储设备,可以统称为闪存存储。我们经常谈的固态硬盘(SSD),可以由volatile/…...

DJI ROS dji_sdk 源码分析|整体框架
DJI ROS dji_sdk 源码分析|整体框架launch文件CMakeLists.txtcpp文件main.cppOSDK 是一个用于开发无人机应用程序的开发工具包,基于OSDK 开发的应用程序能够运行在机载计算机上(如Manifold 2),开发者通过调用OSDK 中指定的接口能够…...

HT32合泰单片机开发环境搭建和配置教程
HT32合泰(Holtek)单片机开发环境搭建安装教程 前言 最近在准备合泰杯的比赛,在看合泰官方的PPT和数据手册学习,顺便做个合泰单片机的开发环境搭建教程。 合泰杯比赛发放的开发板是ESK32-30501,用的单片机是HT32F52352。 合泰杯官网地址&a…...