网站首页 > 文章精选 正文
背景
深度学习属于机器学习,机器学习的三个步骤就是:模型,策略和计算方法。比如LR,模型使用的LR模型(LR是基于伯努利假设,伯努利属于指数分布族,指数分布族属于广义线性模型),策略使用的是联合概率分布最大,计算方法是梯度下降法或拟牛顿法等。
深度学习的模型是神经网络,如下图:
策略就是我们说的损失函数,cost function,反映了模型的预测误差,如交叉熵、均方误差等。给定N个训练数据集:
基于训练集找到一组最佳的参数
使得C(θ)最小;
具体表示方法是什么?这就需要明白神经网络模型如何表示的,如下图所示,对于l层来说:
第l层的第i个神经元的输入Zi,它是上一层所有神经元的输入之和:
第l层的第i个神经元的输出ai,是zi经过非线性变化(我们称为激活函数,如ReLu,sigmoid等):
因此,我们说的θ就是所有的
,则损失函数的偏导
就是求出所有的
和
。
一般地,我们求出
和
,会更新参数,即
。但神经网络的参数非常多,比如很简单的alexnet的参数个数在千万级别,一个一个地求是不切实际的,所以,这里需要用到反向传播:back propagation!
反向传播优化模型参数
求解之前,需要了解一下链式法则,就是g(f(x))对x的求导,会等于 g对f的求导 乘 f对x的求导。由于z是w的函数,所以:
可以通过前向传播求出(即,是已知的不用求)
接下来求解
。令
表示
,(不表示也可以,它有对应的实际的意义,不知道实际的意义也没关系,因为这是我们一步一步推导下来的)。求解
会比较困难,因为
-->
-->...-->
。这是层层传递下去的。
如果,我们能够知道如何层层传递,即l层第i个神经元
和l+1层
(会影响所有神经元)的关系,然后又能算出最后一层L的
,是不是就可以了?所以,我们需要解决2个问题:
(1)最后一层L的
如何计算?
(2)
和
的关系?
对于问题(1),
是一个向量,我们看看如何求其中一个值n,
, 而
就是最后的输出值
(对于多分类问题,比如分10类,最后一层的节点数是10个,激活函数是softmax)
,
为最后一层采用的激活函数(多分类一般是softmax),
是激活函数的一级导数。
取决于采用的损失函数,如果采用的是均方误差,则
(能够直接得到)
综上:
可以求得。
对于问题(2),第l层的第i个神经元是如何影响到l+1层所有的神经元呢?
,
为激活函数(一般是ReLu),
是激活函数的一级导数,可以直接求得。
如何求?可以这么理解,
会影响[
],而[
]影响C(θ)。
综上:
总结
额?辛苦码的那么多,不知道怎么没了,好吧,再打一遍吧~
神经网络的训练说白了就是给你N个训练集,然后让你选择一组参数θ使得在这N个训练集上的损失C(θ)最小。如果找到这组参数呢?用梯度下降法找到这些参数。
梯度下降法就是随机取一组参数,然后每次迭代都朝下降最快的方向更新,即:
有因为θ其实是由很多的参数组成,这些参数分别是权重w和偏差b,权重
表示第l-1层的第j个神经元的输出,对第l层的第i个神经元的输入的贡献。
根据推导,前者等于
,可通过反向传递求得,后者等于
后者通过前向传播求得,如下图所示:
- 上一篇: 改善图像处理效果的五大生成对抗网络
- 下一篇: 「五分钟机器学习」 神经网络的基本介绍
猜你喜欢
- 2025-01-15 从0开始实现目标检测——基于YOLOv5
- 2025-01-15 【人工智能】简单理解CNN卷积神经网络并python实现(带源码)
- 2025-01-15 Richard Sutton 直言卷积反向传播已经落后,AI 突破要有新思路:持续反向传播
- 2025-01-15 深入理解机器学习中的最大熵原理与Softmax函数
- 2025-01-15 技术干货!LLM工程师必读量化指南,可视化揭秘大模型如何压缩
- 2025-01-15 神经网络中的全连接层是什么?
- 2025-01-15 揭秘PyTorch神器:巧妙使用torch.nn.Linear提升深度学习模型
- 2025-01-15 深度学习:正向传播、反向传播
- 2025-01-15 Attention之SENet
- 2025-01-15 神经网络背后的数学原理:反向传播过程及公式推导
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)