IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 神经网络原理及反向传播公式推导 -> 正文阅读

[人工智能]神经网络原理及反向传播公式推导

神经网络简单原理

逻辑回归只能解决线性可分问题,对于异或问题,无法找到一条直线分割两个类,则引入了神经网络,加入更多的神经元以及激活函数来拟合非线性问题。
逻辑回归介绍在我另一篇博客:逻辑回归介绍与代码实现

神经网络结构

神经网络包含一层输入层,输入数据的特征,至少一层的隐藏层,和输出层。
该例子输入数据x有三个特征,隐藏层包含三个神经元,输出层输出一个神经元。该例子可用于解决回归问题与二分类问题,若解决回归问题,不需要经过激活函数,若解决二分类问题,输出层经过sigmoid激活函数将输出值映射到0-1之间,与0.5比较大小判断输出类别。
请添加图片描述

前向传播计算

该图中最下边多出的神经元,用于表示偏置值,该神经元的值永远是1,与对应的权重相乘,可以表示偏置值
对于隐藏层
a i ( 2 ) = g ( [ ∑ j = 1 3 ( x j θ i j + b i ( 2 ) ) ] ) a_{i}^{(2)}=g([\sum_{j=1}^{3}(x_{j} \theta_{ij}+b_{i}^{(2)} )]) ai(2)?=g([j=13?(xj?θij?+bi(2)?)])
θ i j ( 2 ) \theta_{ij}^{(2)} θij(2)?表示第2层第i个神经元与第1层第j个神经元的连接权重
g表示激活函数

对于输出层
h = g ( [ ∑ j = 1 3 ( a j ( 2 ) θ i j ( 3 ) + b i ( 3 ) ) ] ) h=g([\sum_{j=1}^{3}(a_{j}^{(2)} \theta_{ij}^{(3)}+b_{i}^{(3)} )]) h=g([j=13?(aj(2)?θij(3)?+bi(3)?)])

θ i j ( 3 ) \theta_{ij}^{(3)} θij(3)?表示第3层第i个神经元与第1层第j个神经元的连接权重

公式全部展开写:
请添加图片描述

该式子与矩阵相乘的运算规则类似,可以将前向运算过程转化为矩阵运算
请添加图片描述
θ ( 1 ) \theta ^{(1)} θ(1)代表第一层的全部参数的矩阵 θ 10 ( 1 ) , θ 11 ( 1 ) , θ 12 ( 1 ) , θ 13 ( 1 ) \theta_{10}^{(1)},\theta_{11}^{(1)},\theta_{12}^{(1)},\theta_{13}^{(1)} θ10(1)?θ11(1)?θ12(1)?θ13(1)?…,该例子中 θ ( 1 ) \theta ^{(1)} θ(1)是一个3*4的矩阵

代价函数

当用与C(C>2)分类任务时,输出层是C个神经元,可以看成是C个二分类问题,例如一个三分类任务,判断一个动物是猫、狗还是猪,输出层是三个神经元,第一个神经元判断是猫还是非猫,第二个神经元判断是狗还是非狗,第三个神经元判断是猪还是非猪,哪个神经元输出值最大判定为哪一类。

y的标签值也不是1 2 3 ,而是one-hot编码后的值,一共三类第一类表示为[1,0,0],第二类表示为[0,1,0],第三类表示为[0,0,1]
代价函数:
J ( θ ) = ? 1 m [ ∑ i = 1 m ∑ k = 1 K y k ( i ) l n ( h ( x ( i ) ) ) k + ( 1 ? y k ( i ) ) l n ( 1 ? h ( x ( i ) ) ) k ] J( \theta )=-\frac{1}{m} [\sum_{i=1}^{m} \sum_{k=1}^{K} y_{k}^{(i)} ln(h(x^{(i)}))_{k}^{}+(1-y_{k}^{(i)})ln(1-h(x^{(i)}))_{k}^{}] J(θ)=?m1?[i=1m?k=1K?yk(i)?ln(h(x(i)))k?+(1?yk(i)?)ln(1?h(x(i)))k?]
y k ( i ) y_{k}^{(i)} yk(i)?代表第i个样本标签值的第k个分量, h ( x ( i ) ) k h(x^{(i)})_{k} h(x(i))k?代表输出值的第k个分量

反向传播公式推导

定义变量

l表示层索引,L表示最后一层的索引,jk均表示某一层神经元的索引
N表示每一层神经元数量。 θ \theta θ代表连接权重,b代表偏置
θ i j ( l ) \theta_{ij}^{(l)} θij(l)?表示第l层第j个神经元与第l-1层第k个神经元的连接权重
b j ( l ) b_{j}^{(l)} bj(l)?代表第l层第j个神经元的偏置值

z j ( l ) = ∑ k = 1 N ( l ? 1 ) [ θ j k ( l ) a k ( l ? 1 ) + b j ( l ) ] z_{j}^{(l)}=\sum_{k=1}^{N^{(l-1)}}[ \theta_{jk}^{(l)}a_{k}^{(l-1)}+b_{j}^{(l)}] zj(l)?=k=1N(l?1)?[θjk(l)?ak(l?1)?+bj(l)?]表示第l层第j个神经元的输入

a j ( l ) = g ( z j ( l ) ) a_{j}^{(l)}=g(z_{j}^{(l)}) aj(l)?=g(zj(l)?)表示第l层第j个神经元的输出 g表示激活函数

第第l层第j个神经元残剩的残差为 ξ j ( l ) = ? J ? z j ( l ) \xi_{j}^{(l)}=\frac{\partial J}{\partial z_{j}^{(l)}} ξj(l)?=?zj(l)??J?

反向传播公式推导

对于输出层:
该推导过程是按照激活层是sigmoid激活函数的,一般多分类输出层激活函数是softmax,由于本人刚刚在逻辑回归中推到过该式子,所以还是以sigmoid为激活函数推导,以softmax为激活函数的推导过程请读者自行推导,如果没记错的话也是h-y
请添加图片描述
对于隐藏层:
请添加图片描述

对于连接权重和偏置值
请添加图片描述

然后根据代价J对每个参数的偏导数值,使用梯度下降法方可求解最优解。
梯度下降原理可以参考这一篇文章:梯度下降原理

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 07:56:48  更:2021-11-24 07:58:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 4:38:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码