吴恩达2022机器学习专项课程C2W2:2.17 TensorFlow实现 & 2.18 训练细节

这里写目录标题

本周任务

神经网络如何训练?上周的内容,我们没有关注每一层的最合适的w,b是如何计算出来的,只是直接拿了现成的合适的结果,这周要关注这些参数是如何计算出最优解的。

TensorFlow训练神经网络模型的简要过程

  • :如果给定一个训练集,包含图像 X 和其对应的真实标签 Y,你会如何训练这个神经网络的参数?
  • :第一步,使用Sequential构键一个前向传播的3层神经网络。第二步,指定BinaryCrossentropy(二元交叉熵)为编译模型需要的损失函数。第三步,调用fit函数训练模型。

训练模型的三个步骤

1.自行训练逻辑回归模型

(1)定义模型:定义将输入特征 x 通过参数w和b计算输出的公式,即sigmoid函数。

(2)指定损失函数和成本函数:为了训练逻辑回归模型,需要定义损失函数和成本函数,损失函数(loss)衡量单个训练样本的表现,成本函数则是所有训练样本的平均损失(损失函数求和,然后除以训练样本数m)。

(3)最小化成本函数:使用梯度下降算法来更新参数w和b,以最小化成本函数。

2.TensorFlow训练神经网络模型

(1)定义模型:使用Sequential定义模型。

(2)指定损失函数和成本函数:编译模型时指定二元交叉熵损失函数,该函数对每个训练样本计算损失,整个训练集的平均损失就是神经网络的成本函数。

(3)最小化成本函数:调用fit来最小化神经网络的成本。

TensorFlow训练神经网络模型的代码含义

1.定义模型

Tensorflow指定了神经网络的整体架构,在已经每层参数w,b的情况下,TensorFlow能够计算出最终输出。

2.指定损失函数和成本函数

(1)分类问题:如果解决二分类问题,可以指定TensorFlow内置的损失函数BinaryCrossentropy(二元交叉熵),TensorFlow会自动处理损失函数的构建和最小化过程。


(2)回归问题:解决回归问题可以指定损失函数MeanSquaredError(平方误差)损失函数。

(3)如果自己构建成本函数,需要用到神经网络里的所有参数。

3.最小化成本函数

如果我们自己使用梯度下降来训练神经网络的参数,那么你将重复地对每一层 l 和每个单元 j 更新 w_lj,根据 w_lj 减去学习率 alpha 乘以成本函数 j 的参数导数,以及对参数 b 也是类似的更新。而TensorFlow可以我们完成所有这些工作。它在这个名为 fit 的函数中实现了反向传播。你只需要调用 model.fit,使用x,y 作为你的训练集,并设置100次迭代或100个周期。

总结

首先,介绍了TensorFlow训练神经网络的基本思路,并与逻辑回归模型的训练步骤进行了简要对比,强调了在神经网络训练中需要关注的关键步骤。然后,详细描述了TensorFlow训练神经网络的每个步骤的含义,强调了TensorFlow在简化神经网络训练过程中的重要性。

Quiz

Quiz1

哪种类型的任务中使用二元交叉熵损失函数(BinaryCrossentropy)?

A:BinaryCrossentropy()不应用于任何任务。

B:具有3个或更多类别(类别)的分类任务

C:二元分类(正好有2个分类)

D:回归任务(预测数字的任务)

正确答案C:二元交叉熵,我们也称之为逻辑损失,用于分类两个类别(两个类别)之间。

Quiz2


哪行代码用于更新网络参数以减少成本?

A:model = Sequential([...)

B:以上都不是-这段代码不会更新参数

C:model.fit(X, y, epochs=100)

D:model.compile(loss=BinaryCrossentropy()

正确答案C:模型训练的第三步是在数据上训练模型以最小化损失(和成本)。

相关推荐
璞致电子几秒前
fpga开发板ZYNQ 璞致 PZ7010/7020 邮票孔核心板简介-ZYNQ7000系列小系统学习板
linux·嵌入式硬件·学习·fpga开发·fpga·fpga开发板·xilinx开发板
Felven16 分钟前
A. Be Positive
算法
小O的算法实验室20 分钟前
2026年COR SCI2区,自适应K-means和强化学习RL算法+有效疫苗分配问题,深度解析+性能实测,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
青岛少儿编程-王老师1 小时前
CCF编程能力等级认证GESP—C++7级—20250927
数据结构·c++·算法
Miki Makimura1 小时前
Reactor 模式实现:从 epoll 到高并发调试
运维·服务器·c++·学习
Q26433650231 小时前
【有源码】基于Hadoop生态的大数据共享单车数据分析与可视化平台-基于Python与大数据的共享单车多维度数据分析可视化系统
大数据·hadoop·python·机器学习·数据分析·spark·毕业设计
夏鹏今天学习了吗1 小时前
【LeetCode热题100(39/100)】对称二叉树
算法·leetcode·职场和发展
jiajixi2 小时前
go-swagger学习笔记
笔记·学习·golang
天选之女wow2 小时前
【代码随想录算法训练营——Day34】动态规划——416.分割等和子集
算法·leetcode·动态规划
Boop_wu3 小时前
[数据结构] 哈希表
算法·哈希算法·散列表