深度神经网络(Deep Neural Network)是人工智能领域中,机器学习这一大类下,使用多层(深层)感知机来构建的一种人工智能模型
也叫全连接神经网络(Full Connect Neural Network)
从三部分来理解
①深度:指构成模型的 层数 很深(规模很大)
②神经:指构成模型的基本单元为感知机——一种对生物神经元进行仿生得出的线性函数
③网络:指连接各个单元的方式是,每个感知机都与所有感知机连接,即“全连接”
深度神经网络有以下特征:
———————————————————————————————
对神经元进行仿生得到的一种线性函数,基本形态为
其中X为自变量,w、b为权重
在实际使用时,会将上一层输出的结果∑求和,作为自变量X进行计算,是一种"多入单出"结构
由其表达式可得,每个感知机为线性函数
———————————————————————————————
由网络中一层层感知机线性计算的结果,最终得到同样 线性 的多个输出值
但线性的值无法解决非线性的实际问题,所以需要激活函数来将输出转化为非线性值
激活函数本质是复合函数之间的一种连接方式
在神经网络中,激活函数会在多层感知机计算完毕后,将 线性结果 转化为非线性结果的一种函数
非线性结果才能被用户、损失函数使用
而根据实际问题不同(分类/回归问题)对激活函数的选择也会不同
如值域为0~1,适合解决概率问题(分类问题)的Sigmoid、softMax激活函数
和值域为0~+∞,适合解决求值问题(回归问题)的Re_lu激活函数
———————————————————————————————
过程介绍:
感知机 通过全连接,计算之后,得到一个输出值,即为前向传播
这个输出值一开始可能完全是错的,也和输入没有直接关系
和提供的 样本值 对比后,发现确实错的离谱(损失很大)
于是模型会通过反向传播(BP算法),修改自己的每个w、b值
可能修改之后还是错的(有损失),但“错的比上次少一些”(即梯度下降,损失与权重的导数在下降),这就代表现在更改权重的方向是对的
重复上述流程
直到“不怎么出大错了”(即梯度变化很小,损失也要很小)
就可以正式输出了
注意:前向传播与反向转播是密不可分的,这两种传播必须同时存在,模型才能正常运行
特点:不是真正的概率输出,只是置信度,总和不为"1",适合单分类问题
图像:
优点:
输出结果为0-1,与概率的区间一致,适合解决单分类问题
单入-多出的构造,接近生物神经元
——————
缺点:
梯度消失:即训练中会出现长久训练后,再怎么训练,都不再出现“无限接近正确值”(梯度下降)
最大缺点:
由于sigmoid曲线的特性——最大变化率的区间很小——在模型训练中,会很快发生梯度消失
softmax函数是一个非线性的无界函数,它将实值输入映射到0到1之间的输出,每个输入向量的总和为1
特点:归一化指数函数,输出概率总和为一,适合多分类问题
公式为:
当前输入的指数
————————
所有∑输入的指数
softMax效果展示(注意输出的概率值为1):
sigmoid与softMax对比:
优点:
①输出值为真实概率,总和为一,相比于sigmoid,更适合多分类问题
②由于加入了指数部分,Softmax函数能够将差距小的数值距离拉的更大,易于模型自我对比
缺点:
①但在传入值特别大时,由于指数放大效应,会比较容易数值溢出
——————————————————————————————————————————————————
在分类问题中,意为用0、1来表示唯一的正确标准答案
如三种动物识别,猫、狗、猪
在任意一张图片的正确结果中,只有一个作为正确答案
如
[1,0,0]代表此图片正确答案为“猫”
在分类问题中的使用如下图:
本质是矩阵相乘!因为其过程可简化为:
[输入:6]、……、[6:输出] == [输入、输出]
和矩阵相乘的形式类似
FCNN:全连接神经网络
MLP:多层感知机
DNN:深度神经网络
tensorflow:语法晦涩
pytorch:语法与numpy类似,上手简单,源自Facebook
mindspore:源自华为
统一量纲,把数值压缩为0-1之间的值的过程
具体操作:值 / 可能的最大值
还原:归一化值 * 可能的最大值
还原过程可能有一定的损失
用于向模型传输视频的一种张量格式,各个维度为[帧位置(批次)、宽、高、通道]
1次都是“线性”
2次以上(2,3,4,5)都是“非线性”
机器学习:挖掘数据中规律的学科、靠人工提取特征
深度学习:神经网络提取特征
强化学习(最新的一门学科):在无标签的基础上,用于决策的,更新数据、更新模型的机器学习算法
人工智能 包含 机器学习、
____________机器学习 包含 深度学习
________________________深度学习 包含 强化学习