从初级到深度的三种神经网络

第二章、神经网络从初级到深度入门讲解

2.1 神经网络从输入到输出

神经网络概念

人工神经网络:仿照大脑,接受刺激,神经元进行处理,输出结果

人工神经网络三个部分:

  • 输入
  • 内部处理
  • 输出

神经网络分类:

  • 初级神经网络/单神经元神经网络

  • 浅层神经网络/两层神经网络

  • 深度神经网络/多层神经网络

(这里的深度特指层数,层数越大深度越大)

数据输入和处理

输入数据处理

  • 特征向量(以图像为例):x,即将三通道像素点按独列排布

  • 权值:w,代表每个特征重要程度

  • 偏置(阈值):b,影响预测结果

  • 逻辑回归公式:z(w,b;x) = (x1w1+x2w2+x3w3)+ b

  • 激活函数:y’ = σ(z),经常用于修饰逻辑回归函数,将模型输出结果转化为预测结果,这样处理的预测结果不会波动太大,便于神经网络后续计算

(这里可以理解为,将逻辑回归的波动较大的值,激活到一个区间内,比如常用的sigmoid激活函数,激活到[0,1],用于表示概率)

数据评价

处理后数据的判断:

  • 损失函数:L(y’,y)用于评价激活函数的输出结果(y‘ = σ(z) = σ(wx+b))和人为设置的实际结果(y)之间的差异。例如平方误差损失函数,交叉熵损失函数

  • 成本函数:J(w,b)损失函数是针对单个样本的,多个样本的损失均值通常称为成本函数。成本函数的值直接关系到模型的预测效果。

监督学习

监督学习:训练数据存在标签

无监督学习:训练数据没有标签,例如聚类(即将拥有共同特征的样本归类)

2.2 初级神经网络入门指南

神经网络本质

训练的本质:逐步改变w和b的值,最终使得输出的损失函数越来越小,网络预测更加精确

训练的手段:前向传播预测,反向更新调整

训练核心:梯度下降

成本函数:J(w,b)

这个函数是关于w和b的函数,那么计算出w和b的偏导,这里表示为微分dw和db,再分别乘以学习率a,对原有的w和b进行修正,就完成了一次更新

w = w-adw

b = b-bdb

此外更新过程中,dw和db会变得越来越小,因此训练的速度会越来越慢

学习率的设置非常关键,过小训练速度太慢,过大训练会发生振荡,训练结果不佳

单样本训练参数更新流程

即多样本的m=1的情况

多样本训练参数更新流程

第一步:变量初始化

第二步:m个样本前向传播(for i=1 in m循环每个样本i,计算zi,再用zi计算yi‘,再用yi’和yi计算损失函数Li‘,将每个Li’累加,for循环结束获得成本函数 J)

第三步:反向传播:

  • 依然是在第一步的for循环内,利用交叉熵损失函数的偏导公式(dw = x(y’-y), db = y’-y),对w和b求偏导,并且累加起来
  • 到这里for循环结束。因为成本函数是一个累加值,因此偏导需要除以样本总数m,即求均值;这里也体现了一个反向传播的重要思想,即每次成本函数获取代表一次参数更新,而且是利用样本总体进行总体最优的均值更新,而不是百分百满足每个样本的需求。
  • 利用 参数更新公式 更新参数。返回第二步

x1VXuR.png

2.3 浅层神经网络入门指南

浅层神经网络

浅层神经网络是由多个初级神经网络组成的

通常网络结构越深,学到的特征信息也越多

增加每层神经元数量、增加层数都是加深网络结构的方式

层数过大会导致过拟合

单个样本的前向反向传播

即多样本的m=1的情况

多个样本的前向反向传播

和2.2类似,不同的是链式法则较复杂一些,会牵扯到多层

x1VvHx.png

这里需要深刻理解x,z,a/y’之间的函数关系

简记:

  • x是第一层的输入,a是每一层的输出,也可是第i层(i>=2)的输入
  • z是逻辑回归结果,wx+b(wa+b),需要激活函数处理
  • x和a都是激活函数处理后的模样,特殊的是x默认已经处理好
  • a都是由z激活而来
  • 最后一层的a就是y’

2.3 浅层神经网络入门指南

深度神经网络的意义

深度特指层数而不是每层的神经元数量

深度神经网络,即高层神经网络的意义在于模型学习效果更好,原因在于(以人脸为例):

  • 第一层会学习最基本的边缘方向特征
  • 第二层学习鼻子眼睛等不同器官特征
  • 第三层学习由不同局部特征组合的特征,比如左边脸,右边脸
  • 后面的层数学习会更加清晰,站在前人的肩膀上学习,站得高看得远

快速构建网络-迁移学习

在数据集不足以支撑模型训练时,是否可以利用其他已经训练好的模型进行训练?

这里需要介绍非常牛逼的方法:迁移学习

迁移学习的原理(以猫狗脸识别为例):

如果现在需要一个狗脸识别的训练模型,但是数据集非常有限,但此时有一个非常好的识别猫脸的模型,那么就可以利用这个猫脸模型。猫脸模型学习的特征是随层数增加而愈发复杂的,因此可以直接在猫脸检测网络的基础上进行修改。

迁移学习的具体操作:

  • 删除猫脸模型最后一层的神经元以及相关的w和b
  • 连接新一层的的神经元,给神经元设置随机的参数值(这两步加起来就等于替换掉了最后一层)
  • 这时再采用狗脸数据进行训练
    • 微调(fine-tuning):狗脸图片很少时,将前几层参数固定,只训练新层。
    • 预训练(pre-training):在猫的参数基础上,整体训练更新所有参数。

这里是采用替换最后一层的方式,当然也可以选择砍掉一层后添加两层,扩充整个结构的层数

迁移学习的具体场景:

  • 训练数据很少时:比如图片类(CT片),语音类(专有词汇)
  • 训练数据类型相同:即图像迁移图像,语音迁移语音,不能语音和图像模型相互迁移。
  • 迁移与被迁移的系统需要具有共同基本特征:比如识别猫和狗都要识别出线条、形状,但是如果将猫狗的模型迁移到飞机识别上,效果可能就不是很好。

深度神经网络的前向反向传播

就是链式法则更加复杂了,略

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

introversi0n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值