【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.2)

简介: 【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.2)

【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.2)

1.2 偏差/方差

1ecd1b2606ed46e9956a89f231c9802c.png

假设图中的ooxx代表数据集,现用一条直线去拟合左图的数据,可能会得到一个逻辑回归拟合,但是可以看到这条直线并不能很好的拟合数据,这种就属于高偏差情况,通常称为欠拟合。

而对于一个非常复杂的分类器,比如深度神经网络或者含有隐藏单元的神经网络,就适用于右边的数据集,但也不是一个合适的拟合方式,这种属于分类器高方差情况,称为过拟合。

中间的图就是分类器复杂程度适中,数据拟合适度,称为适度拟合。

上图例子是只有两个特征的二维数据集,可以直观的看到方差和偏差是怎么一回事,对于高维空间,可以用一些指标来判断。

1ecd1b2606ed46e9956a89f231c9802c.png

用猫狗识别这个例子来说明。首先理解方差和偏差的两个关键数据是训练集误差和验证集误差,为了论证方差和偏差与训练集误差和验证集误差相关,假定我们的肉眼可以很准确的识别出图中对象是猫咪。现假定训练集的错误率是1%,而验证集错误率设置成11%,这种情况就是把训练集错误率设置的很好,而验证集设置的相对较差,我们就可能过度拟合了训练集,因此,在某种程度上,验证集就没有发挥它交叉验证的作用。这就可以称之为高方差。进而论证了,通过看训练集和验证集的误差来判断某个算法是否存在高偏差。

于是,我们可以通过衡量这个指标然后得到不同的结论。假设训练集误差是15%,验证集误差是16%(在这个例子中假定识别图片的错误率是0)。可以看到算法在训练集没有得到很好的训练,故数据拟合度不高,这就是前面提到的欠拟合,就可以说这种算法偏差较高。16%的验证集误差的结果在这是合理的,它与训练集误差相差只有1%,故属于高偏差情况,这与上面左图一样。

再假设,把训练集误差设为15%,验证集误差设为30%,可以看到验证评估没有达到很好的效果,这种情况属于高偏差,高方差。

最后一种情况就是把它两分别设置成0.5%和1%,这种就是低偏差,低方差,这会是人们想看到的结果。但是在此例中,因为假定了人眼识别的错误率是0%,所以这个要被考虑的因素暂时丢弃了。通常情况下,最优误差称之为贝叶斯误差,而最优误差理应要达到0%。但如果最优误差或者贝叶斯误差达到15%,那么第二个例子15%的训练集误差和16%的验证集误差,它们就属于低偏差低方差了。


假如猫狗图片不适用于所有的分类器,即图片很模糊,就是说人眼或者任何系统都无法很好的识别出猫咪,这就属于最优误差很高的情况了。

再来看下高偏差和高方差在刚才图中是什么样子的:

1ecd1b2606ed46e9956a89f231c9802c.png

可以看到,线性分类器数据拟合度低,属于高偏差情况;紫色线画出来的过度拟合了部分数据,这就属于高偏差高方差的分类器。

故线性分类器偏差很高,而采用曲线函数或二次元函数,会产生高方差,因为曲线灵活性太高,会拟合错误的样本。


相关文章
|
2月前
|
Linux 开发工具 Android开发
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
ijkplayer是由Bilibili基于FFmpeg3.4研发并开源的播放器,适用于Android和iOS,支持本地视频及网络流媒体播放。本文详细介绍如何在新版Android Studio中导入并使用ijkplayer库,包括Gradle版本及配置更新、导入编译好的so文件以及添加直播链接播放代码等步骤,帮助开发者顺利进行App调试与开发。更多FFmpeg开发知识可参考《FFmpeg开发实战:从零基础到短视频上线》。
208 2
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
|
2月前
|
机器学习/深度学习 数据可视化 计算机视觉
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
68 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
|
2月前
|
机器学习/深度学习 数据可视化 Windows
深度学习笔记(七):如何用Mxnet来将神经网络可视化
这篇文章介绍了如何使用Mxnet框架来实现神经网络的可视化,包括环境依赖的安装、具体的代码实现以及运行结果的展示。
60 0
|
2月前
|
机器学习/深度学习 编解码 算法
轻量级网络论文精度笔记(三):《Searching for MobileNetV3》
MobileNetV3是谷歌为移动设备优化的神经网络模型,通过神经架构搜索和新设计计算块提升效率和精度。它引入了h-swish激活函数和高效的分割解码器LR-ASPP,实现了移动端分类、检测和分割的最新SOTA成果。大模型在ImageNet分类上比MobileNetV2更准确,延迟降低20%;小模型准确度提升,延迟相当。
83 1
轻量级网络论文精度笔记(三):《Searching for MobileNetV3》
|
2月前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
107 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
2月前
|
XML 开发工具 Android开发
FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频
ExoPlayer最初是为了解决Android早期MediaPlayer控件对网络视频兼容性差的问题而推出的。现在,Android官方已将其升级并纳入Jetpack的Media3库,使其成为音视频操作的统一引擎。新版ExoPlayer支持多种协议,解决了设备和系统碎片化问题,可在整个Android生态中一致运行。通过修改`build.gradle`文件、布局文件及Activity代码,并添加必要的权限,即可集成并使用ExoPlayer进行网络视频播放。具体步骤包括引入依赖库、配置播放界面、编写播放逻辑以及添加互联网访问权限。
185 1
FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频
|
2月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
69 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
编解码 人工智能 文件存储
轻量级网络论文精度笔记(二):《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object ..》
YOLOv7是一种新的实时目标检测器,通过引入可训练的免费技术包和优化的网络架构,显著提高了检测精度,同时减少了参数和计算量。该研究还提出了新的模型重参数化和标签分配策略,有效提升了模型性能。实验结果显示,YOLOv7在速度和准确性上超越了其他目标检测器。
58 0
轻量级网络论文精度笔记(二):《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object ..》
|
2月前
|
机器学习/深度学习 Python
深度学习笔记(九):神经网络剪枝(Neural Network Pruning)详细介绍
神经网络剪枝是一种通过移除不重要的权重来减小模型大小并提高效率的技术,同时尽量保持模型性能。
74 0
深度学习笔记(九):神经网络剪枝(Neural Network Pruning)详细介绍
|
2月前
|
机器学习/深度学习 算法 TensorFlow
深度学习笔记(五):学习率过大过小对于网络训练有何影响以及如何解决
学习率是深度学习中的关键超参数,它影响模型的训练进度和收敛性,过大或过小的学习率都会对网络训练产生负面影响,需要通过适当的设置和调整策略来优化。
533 0
深度学习笔记(五):学习率过大过小对于网络训练有何影响以及如何解决