当前位置 博文首页 > xpj8888的博客:第二周 机器学习(ML)策略(2):2.4 在不同的

    xpj8888的博客:第二周 机器学习(ML)策略(2):2.4 在不同的

    作者:[db:作者] 时间:2021-09-17 15:12

    目录

    第一章、简介

    第二章、在不同的划分上进行训练并测试

    2.1、训练集和测试集的数据可能来自两组不同的数据分布

    2.2、 训练集和测试集的数据可能来自两组不同的数据分布举例

    2.3、方法一:两组数据合并方式,解决上述案例数据分布不一致问题,及其优点缺点

    2.4、两组数据合并方式优化的重心倾向并不是我们关心的数据(来自手机的图片)

    2.5、方法二:训练集图片主要来自网页图片,开发集和测试集图片完全来自手机图片

    2.6、方法二举例

    2.7、小结


    第一章、简介

    • 本文基于吴恩达人工智能课程做学习笔记、并融入自己的见解(若打不开请复制到浏览器中打开)https://study.163.com/courses-search?keyword=吴恩达。
    • 本文第二章将介绍 依据两种方法,将来自非同一分布数据,划分给训练集、开发集和测试集,依据对应方法的优缺点。

    ?

    第二章、在不同的划分上进行训练并测试

    ?

    2.1、训练集和测试集的数据可能来自两组不同的数据分布

    ?

    • 深度学习算法对训练数据的胃口很大,当你收集到足够多带标签的数据,构成训练集时,算法效果最好。
    • 这导致很多团队用尽一切办法收集数据,然后把它们堆到训练集里,让训练的数据量更大。即使有些数据,甚至是大部分数据的开发集和测试集都来自不同分布,在深度学习时代,越来越多的团队都用开发集和测试集来自分布不同的数据进行训练。
    • 这里有一些微妙的地方、一些最佳做法,来处理训练集和测试集存在差异的情况。

    ?

    2.2、 训练集和测试集的数据可能来自两组不同的数据分布举例

    ?

    • 我们来看看,假设你在开发一个手机应用,用户会上传他们用手机拍摄的照片,你想识别用户从应用中上传的图片是不是猫。
    • 现在,你有两个数据来源,如图2-1所示,一个是你真正关心的数据分布,来自手机应用上传的数据,比如右边的这些照片,这些照片一般更业余、取景不太好、有些甚至很模糊,因为它们都是业余用户拍的(A组图片);
    • 另一个数据来源就是你可以用爬虫程序挖掘网页直接下载,就这个例子而言可以下载很多,取景专业高分辨率拍摄专业的猫图片(B组图片)。
    • 如果你的应用用户数还不多,也许你只收集到 10,000 张用户上传的照片。
    • 但通过爬虫挖掘网页,你可以下载到海量猫图,也许你从互联网上下载了超过20 万张猫图,而你真正关心的算法表现是你的最终系统处理来自应用程序的这个图片分布时的效果好不好。
    • 因为最后,你的用户会上传类似右边这些图片(图2-1 A组图片),你的分类器必须在识别A图图片中表现良好。
    • 现在,你就陷入困境了,因为你有一个相对小的数据集,只有 10,000 个样本来自那个分布,而你还有一个大得多的数据集来自另一个分布。图片的外观和你真正想要处理的并不一样。
    • 但你又不想直接用这 10,000 张图片 因为这样,你的训练集就太小了,使用这 20 万张图片似乎有帮助,但是,困境在于这 20 万张图片并不完全来自你想要的分布。

    ?

    此图像的alt属性为空;文件名为1.png

    图2-1

    ?

    2.3、方法一:两组数据合并方式,解决上述案例数据分布不一致问题,及其优点缺点

    ?

    • 那么你可以怎么做呢? 这里有一种选择,你可以做的一件事是将两组数据合并在一起,这样你就有 21 万张照片,你可以把这 21 万张照片, 随机分配到训练、开发和测试集中。
    • 为了说明观点,我们假设,你的开发集和测试集各包含 2500 个样本,假设你的训练集有 205000 个样本,现在这样设立你的数据集有一些好处、也有坏处。
    • 好处在于,你的训练集、开发集和测试集,都来自同一分布,这样更好管理。
    • 但坏处在于这坏处还不小,就是如果你观察开发集、看看这 2500 个样本,其中很多图片都来自网页下载的图片,那并不是你真正关心的数据分布,你真正要处理的是来自手机的图片。

    ?

    2.4、两组数据合并方式优化的重心倾向并不是我们关心的数据(来自手机的图片)

    ?

    • 所以,结果你的数据总量中那些是来自网页下载的比例为200000/210000 = 20/21,所以对于这 2500 个样本中平均值大概有 2381张图来自网页下载。
    • 这平均值确切数目会变化,取决于具体的随机分配操作。
    • 但平均而言,只有 119 张图来自手机上传。要记住设立开发集的目的是告诉你的团队去瞄准的目标,而你瞄准目标的方式,你的大部分精力都用在优化来自网页下载的图片,这其实不是你想要的。
    • 所以我真的不建议使用第一个选项,因为这样设立开发集,就是告诉你的团队针对不同于你实际关心的数据分布去优化,即主要优化了网页的数据,而不是主要优化手机的数据。

    ?

    2.5、方法二:训练集图片主要来自网页图片,开发集和测试集图片完全来自手机图片

    ?

    • 所以不要这么做,我建议你走另外一条路。
    • 假如训练集还是 205,000 张图片,我们的训练集是来自网页下载的 200000 张图片、再加上5000 张来自手机上传的图片。
    • 然后对于开发集和测试集,这数据集的大小不是按比例画的,你的开发集和测试集都是手机图,而训练集包含了来自网页的 20 万张图片、还有 5000 张来自应用的图片。开发集就是 2500 张来自手机应用的图片、测试集也是 2500 张来自应用的图片。
    • 这样将数据分成训练集、开发集和测试集的好处在于,现在你瞄准的目标就是你想要处理的目标,你告诉你的团队我的开发集包含的数据全部来自手机上传,这是你真正关心的图片分布。
    • 我们试试搭建一个学习系统,让系统在处理手机上传图片分布时效果良好,缺点在于现在你的训练集分布和你的开发集和测试集分布并不一样,但事实证明,这样把数据分成训练、开发和测试集,能长期给你带来更好的系统性能,我们以后会讨论一些特殊的技巧,可以处理训练集、开发集和测试集分布不一样的情况。

    ?

    2.6、方法二举例

    ?

    • 我们来看另一个例子,假设你正在开发一个全新的产品——一个语音激活汽车后视镜(该后视镜可能附带了很多其他的功能),这在中国是个真实存在的产品,它正在进入其他国家。
    • 现在你就可以和后视镜对话了,然后只需要说,亲爱的后视镜,请帮我找找到最近的加油站的导航方向,然后后视镜就会处理这个请求,所以这实际上是一个真正的产品。
    • 假设现在你要为你自己的国家研制这个产品,那么你怎么收集数据去训练这个产品语言识别模块呢? 嗯,也许你已经在语音识别领域上工作了很久,所以你有很多来自其他语音识别应用的数据,它们并不是来自语音激活后视镜的数据,现在我讲讲如何分配训练集开发集和测试集。
    • 对于你的训练集,你可以将你拥有的所有语音数据,从其他语音识别问题收集来的数据,比如这些年你从各种语音识别数据供应商买来的数据,今天你可以直接买到成 x,y 对的数据,其中 x 是音频剪辑、 y 是听写记录。
    • 或者也许你研究过智能音箱、语音激活音箱,所以你有一些数据,也许你做过语音激活键盘的开发之类的,举例来说,也许你从这些来源收集了500000 段录音(500000段录音用来做训练集)。
    • 然而,对于你的开发集和测试集,也许数据集小得多(可能只有20000条数据),比如实际上来自语音激活后视镜的数据,因为用户要查询导航信息,或试图找到通往各个地方的路线,这个数据集可能会有很多街道地址,对吧?请帮我导航到这个街道地址,或者说请帮助我导航到这个加油站。
    • 所以,开发集、测试集数据的分布和训练集的数据很大不一样,但开发集、测试集数据,真的是你关心的数据,因为这些数据是你的产品必须处理好的,所以你就应该把它设成你的开发集和测试集。
    • 在这个例子中,你应该这样设立你的训练集,左边有 500,000 段语音。 然后你的开发集和测试集,我把它简写成 D 和 T,可能每个集包含 10,000 段语音,D 和 T是从实际的语音激活后视镜收集的。
    • 或者换种方式,如果你觉得不需要将20000 段来自语音激活后视镜的录音全部放进开发和测试集,也许你可以拿一半,把它放在训练集里,那么训练集可能是 51 万段语音,包括来自那里的 50 万段语音 + 还有来自后视镜的 1 万段语音.然后开发集和测试集也许各自有 5000 段语音。
    • 所以,有 2 万段语音也许 1 万段语音放入了训练集, 5000 段语音放入开发集、5000段语音放入测试集,所以这是另一种将你的数据分成训练开发和测试的方式,这样你的训练集大得多,大概有 50 万段语音,比只用语音激活后视镜数据作为训练集要大得多。

    ?

    2.7、小结

    ?

    • 所以在这个视频中,你们见到几组例子让你的训练集数据,来自和开发集测试集不同的分布,这样你就可以有更多的训练数据。
    • 在这些例子中,这将改善你的学习算法。
    • 现在你可能会问,是不是应该把收集到的数据都用掉? 答案很微妙 不一定都是肯定的答案,我们在下段视频看看一个反例
    • 本文的总结如下图所示:

    ?

    此图像的alt属性为空;文件名为1-1.png

    cs
    下一篇:没有了