神经网络① 您所在的位置:网站首页 bp神经网络算法基本原理是什么意思啊 神经网络①

神经网络①

2023-09-05 12:36| 来源: 网络整理| 查看: 265

神经网络系列目录: 神经网络②——python实现神经网络 神经网络③——sklearn参数介绍及应用 神经网络实战④——主播综合评分回归预测实战 最小二乘法&梯度下降法区别及python实现

一、神经网络是啥?

大脑神经网络就是通过轴突和树突连接在一起的多个神经元集合,单个神经元通过树突从成千上万的神经元接受信息,再通过轴突将信息传递给成千上万个神经元。

人工神经网络就是一种旨在模仿人脑结构及其功能的信息处理系统,有输入层,隐藏层和输出层,输入层就是输入样本值,隐藏层和输出层通过激活函数计算,层与层之间通过权值矩阵相连。隐藏层是看不见的,可以有多个,像个黑盒子一样的东西,输出层就是我们要的分类或回归结果。 在这里插入图片描述 神经网络就是建立了一个从输入特征到输出预测值的映射函数,只是这个函数没有确定的参数,你对这个模型唯一知道的就是权重矩阵。

激活函数一般采用sigmoid或者tanh函数,两者的曲线如下: 在这里插入图片描述 两人函数的差别在于输出范围,前者是(0,1),后者是(-1,1),鉴于sigmoid函数导数就是自己,便于后面计算误差导数,且通常习惯(0,1)区间,因此sigmoid用得更多一些。 思考一下:为什么要用激活函数? 如果不用激活函数,神经网络就相当于多个线性函数的组合,那结果还是个线性函数,对于非线性问题就无解了。因此必须要有一个函数将线性变成非线性。

二、神经网络如何求权重矩阵?

神经网络其实就是通过样本训练出来的一组权重矩阵,当有新样本时,直接从输入层输入,与权重矩阵进行加权求和得到一个值,再将这个值用激活函数计算,得到隐藏层每个节点的值,再通过权重矩阵加权求和+激活函数,直到输出层就得到结果

那怎么确定权重矩阵呢?通过BP算法(其实就是梯度下降法)

BP算法:通过输出层的值来计算误差的偏导数(残差),再用这个偏导数和前面的隐藏层进行加权求和,如此一层一层的向后传下去,直到输入层(不计算输入层),最后利用每个节点求出的偏导数来更新权重,然后用更新后的权重再计算输出值,重复上述步骤不断更新每一层之间的权重,直到误差达到接受水平即可 在这里插入图片描述 计算过程: 输出层→隐藏层:残差 = -(输出值-样本值) × 激活函数的导数 隐藏层→隐藏层:残差 = (右层每个节点的残差加权求和)×激活函数的导数

如果用sigmoid作为激活函数,则 输出层→隐藏层:残差 = -(Sigmoid输出值-样本值) * Sigmoid*(1-Sigmoid) = -(输出值-样本值)输出值(1-输出值) 隐藏层→隐藏层:残差 = (右层每个节点的残差加权求和)* 当前节点的Sigmoid*(1-当前节点的Sigmoid)

残差全部计算好后,就可以更新权重了: 输入层:权重增加 = 当前节点的Sigmoid * 右层对应节点的残差 * 学习率 隐藏层:权重增加 = 输入值 * 右层对应节点的残差 * 学习率 偏移值的权重增加 = 右层对应节点的残差 * 学习率

三、神经网络有哪些优缺点?

神经网络的主要优点,在于它们能够胜过几乎所有其他机器学习算法。例如在癌症检测中,对于性能的要求是非常高的,因为性能越好,可以治疗的人越多。

神经网络最著名的缺点,可能就是“黑匣子”性质。这意味着你不知道你的神经网络将会如何产出结果,更不知道为什么会产生这种结果。

例如,你把一张猫的图像放入神经网络,结果告诉你这是个汽车 ?。而且你也没办法找出问题的症结所在。

相反,像决策树这样的算法,是遵循一定的逻辑性,是可被解释的,你就很容易找出问题所在,并进行调整。在某些领域,这种可解释性非常重要!

比如银行。银行不会使用神经网络来预测一个人的信誉。银行需要向客户解释为什么没有获得贷款,而神经网络恰恰无法做出解释。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有