2022吴恩达机器学习(Deep learning)课程对应笔记24:训练神经网络

笔记介绍了神经网络训练的步骤,包括使用Sequential构建模型,选用二元交叉熵作为损失函数,通过梯度下降更新参数。讨论了逻辑回归模型,以及不同类型的激活函数,如ReLU、Sigmoid和线性激活函数,强调了ReLU在隐藏层的常见使用及其优势。
摘要由CSDN通过智能技术生成

2022吴恩达机器学习(Deep learning)课程对应笔记24

神经网络训练

更新时间:2023/03/21

在这里插入图片描述

继续以手写数字识别问题为例:

  1. 第一步是以Sequential的方式定义模型
  2. 第二步是指定loss function是什么,这里用的是二元交叉熵函数
  3. 第三步是开始开始训练模型,epoch是训练模型的轮数

在这里插入图片描述

模型训练细节

在这里插入图片描述

下面讲解一下逻辑回归模型的具体训练步骤:

  1. 确定模型的输入特征x和对应的参数 w w w b b b,计算模型的输出,也就是计算 f w ⃗ , b ( x ⃗ ) = ? f_{\vec{w},b}(\vec{x})=? fw ,b(x )=?
  2. 指定模型具体的loss和代价函数,loss指的是一个样本的估计值与真实值之差,代价函数指的整个数据集中所有样本各自的估计值与真实值之间的差。
    • l o s s = L ( f w ⃗ , b ( x ⃗ ) , y ) loss=L(f_{\vec{w},b}(\vec{x}), y) loss=L(fw ,b(x ),y)
    • J ( w ⃗ , b ) = 1 m ∑ i = 1 m L ( f w ⃗ , b ( x ⃗ ) , y ) J(\vec{w},b)=\frac{1}{m}\sum_{i=1}^{m}L(f_{\vec{w},b}(\vec{x}), y) J(w ,b)=m1i=1mL(fw ,b(x ),y)
  3. 训练数据更新参数,最小化 J ( w ⃗ , b ) J(\vec{w},b) J(w ,b)
    • w = w − α ∗ d j _ d w w=w-\alpha*dj\_dw w=wαdj_dw
    • b = b − α ∗ d j _ d b b=b-\alpha*dj\_db b=bαdj_db

对比神经网络的学习过程如下

  1. m o d e l = S e q u e n t i a l . . . model = Sequential{...} model=Sequential...
  2. m o d e l . c o m p i l e ( l o s s = C r o s s e n t r o p y ( ) ) model.compile(loss=Crossentropy()) model.compile(loss=Crossentropy())
  3. m o d e l . f i t ( X , y , e p o c h s = 100 ) model.fit(X,y,epochs=100) model.fit(X,y,epochs=100)
    在这里插入图片描述
    下面具体看每一步

第一步 创建模型

在这里插入图片描述

第二步 确定Loss和代价函数

分类用交叉熵loss,回归用平方误差loss
在这里插入图片描述

第三步 训练:梯度下降

在这里插入图片描述
不同的深度学习框架

在这里插入图片描述

激活函数的替代方案

在这里插入图片描述

一个常见的激活函数:
R e L U = m a x ( 0 , Z ) = m a x ( 0 , w ⃗ x ⃗ + b ) ReLU=max(0,Z)=max(0,\vec{w}\vec{x}+b) ReLU=max(0,Z)=max(0,w x +b)

在这里插入图片描述

下面不同的激活函数

  • 线性激活函数: g ( z ) = z g(z)=z g(z)=z
  • Sigmoid激活函数: g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1
  • ReLU激活函数: g ( z ) = m a x ( 0 , z ) = m a x ( 0 , w ⃗ x ⃗ + b ) g(z)=max(0,z)=max(0,\vec{w}\vec{x}+b) g(z)=max(0,z)=max(0,w x +b)

在这里插入图片描述

如何选择激活函数

在这里插入图片描述
对于输出层的激活函数选择:

  • 根据具体的任务而定:
    1. 对于分类任务一般会用sigmoid激活函数。
    2. 对于线性回归问题一般选择线性激活函数。
    3. 对于 y ^ \hat{y} y^只能取正值,毫无疑问选择ReLU激活函数。

在这里插入图片描述

对于隐藏层的激活函数选择:目前为止ReLU是最常用的选择()

  • 选择ReLU的原因:
    1. 因为计算速度快。
    2. sigmoid有两个梯度很平缓的区间,梯度下降会很慢,而ReLU则只有一个平缓的地方

在这里插入图片描述

小结一下激活函数的选择

在这里插入图片描述

为什么模型需要激活函数

在这里插入图片描述

对于线性回归来说有没有激活函数都可以
但是如果没有激活函数,神经网络模型就只能解决线性模型,无法处理其它类型的模型

在这里插入图片描述

在这里插入图片描述

不要在隐层用线性激活函数

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值