如何自建电影网站而不通过凡科付费服务?

摘要:凡科做网站要钱,自己怎么做电影网站吗,企业线上培训平台有哪些,有赞小程序官网目录 第三门课 结构化机器学习项目(Structuring Machine Learning Projects&#xf
凡科做网站要钱,自己怎么做电影网站吗,企业线上培训平台有哪些,有赞小程序官网目录 第三门课 结构化机器学习项目#xff08;Structuring Machine Learning Projects#xff09;第二周#xff1a;机器学习策略#xff08;2#xff09;(ML Strategy (2))2.3 快速搭建你的第一个系统#xff0c;并进行迭代#xff08;Build your first system quickly… 目录 第三门课 结构化机器学习项目Structuring Machine Learning Projects第二周机器学习策略2(ML Strategy (2))2.3 快速搭建你的第一个系统并进行迭代Build your first system quickly, then iterate2.4 使用来自不同分布的数据进行训练和测试Training and testing on different distributions 第三门课 结构化机器学习项目Structuring Machine Learning Projects 第二周机器学习策略2(ML Strategy (2)) 2.3 快速搭建你的第一个系统并进行迭代Build your first system quickly, then iterate 如果你正在开发全新的机器学习应用我通常会给你这样的建议你应该尽快建立你的第一个系统原型然后快速迭代。 让我告诉你我的意思我在语音识别领域研究了很多年如果你正在考虑建立一个新的语音识别系统其实你可以走很多方向可以优先考虑很多事情。 比如有一些特定的技术可以让语音识别系统对嘈杂的背景更加健壮嘈杂的背景可能是说咖啡店的噪音背景里有很多人在聊天或者车辆的噪音高速上汽车的噪音或者其他类型的噪音。有一些方法可以让语音识别系统在处理带口音时更健壮还有特定的问题和麦克风与说话人距离很远有关就是所谓的远场语音识别。儿童的语音识别带来特殊的挑战挑战来自单词发音方面还有他们选择的词汇他们倾向于使用的词汇。还有比如说说话人口吃或者说了很多无意义的短语比如“哦”“啊”之类的。你可以选择很多不同的技术让你听写下来的文本可读性更强所以你可以做很多事情来改进语音识别系统。 一般来说对于几乎所有的机器学习程序可能会有 50 个不同的方向可以前进并且每个方向都是相对合理的可以改善你的系统。但挑战在于你如何选择一个方向集中精力处理。即使我已经在语音识别领域工作多年了如果我要为一个新应用程序域构建新系统我还是觉得很难不花时间去思考这个问题就直接选择方向。所以我建议你们如果你想搭建全新的机器学习程序就是快速搭好你的第一个系统然后开始迭代。我的意思是我建议你快速设立开发集和测试集还有指标这样就决定了你的目标所在如果你的目标定错了之后改也是可以的。但一定要设立某个目标然后我建议你马上搭好一个机器学习系统原型然后找到训练集训练一下看看效果开始理解你的算法表现如何在开发集测试集你的评估指标上表现如何。当你建立第一个系统后你就可以马上用到之前说的偏差方差分析还有之前最后几个视频讨论的错误分析来确定下一步优先做什么。特别是如果错误分析让你了解到大部分的错误的来源是说话人远离麦克风这对语音识别构成特殊挑战那么你就有很好的理由去集中精力研究这些技术所谓远场语音识别的技术这基本上就是处理说话人离麦克风很远的情况。 建立这个初始系统的所有意义在于它可以是一个快速和粗糙的实现quick and dirty implementation你知道的别想太多。初始系统的全部意义在于有一个学习过的系统有一个训练过的系统让你确定偏差方差的范围就可以知道下一步应该优先做什么让你能够进行错误分析可以观察一些错误然后想出所有能走的方向哪些是实际上最有希望的方向。 所以回顾一下我建议你们快速建立你的第一个系统然后迭代。不过如果你在这个应用程序领域有很多经验这个建议适用程度要低一些。还有一种情况适应程度更低当这个领域有很多可以借鉴的学术文献处理的问题和你要解决的几乎完全相同所以比如说人脸识别就有很多学术文献如果你尝试搭建一个人脸识别设备那么可以从现有大量学术文献为基础出发一开始就搭建比较复杂的系统。但如果你第一次处理某个新问题那我真的不鼓励你想太多或者把第一个系统弄得太复杂。我建议你们构建一些快速而粗糙的实现然后用来帮你找到改善系统要优先处理的方向。我见过很多机器学习项目我觉得有些团队的解决方案想太多了他们造出了过于复杂的系统。我也见过有限团队想的不够然后造出过于简单的系统。平均来说我见到更多的团队想太多构建太复杂的系统。 所以我希望这些策略有帮助如果你将机器学习算法应用到新的应用程序里你的主要目标是弄出能用的系统你的主要目标并不是发明全新的机器学习算法这是完全不同的目标那时你的目标应该是想出某种效果非常好的算法。所以我鼓励你们搭建快速而粗糙的实现然后用它做偏差/方差分析用它做错误分析然后用分析结果确定下一步优先要做的方向。 2.4 使用来自不同分布的数据进行训练和测试Training and testing on different distributions 深度学习算法对训练数据的胃口很大当你收集到足够多带标签的数据构成训练集时算法效果最好这导致很多团队用尽一切办法收集数据然后把它们堆到训练集里让训练的数据量更大即使有些数据甚至是大部分数据都来自和开发集、测试集不同的分布。在深度学习时代越来越多的团队都用来自和开发集、测试集分布不同的数据来训练这里有一些微妙的地方一些最佳做法来处理训练集和测试集存在差异的情况我们来看看。 假设你在开发一个手机应用用户会上传他们用手机拍摄的照片你想识别用户从应用中上传的图片是不是猫。现在你有两个数据来源一个是你真正关心的数据分布来自应用上传的数据比如右边的应用这些照片一般更业余取景不太好有些甚至很模糊因为它们都是业余用户拍的。另一个数据来源就是你可以用爬虫程序挖掘网页直接下载就这个样本而言可以下载很多取景专业、高分辨率、拍摄专业的猫图片。如果你的应用用户数还不多也许你只收集到 10,000 张用户上传的照片但通过爬虫挖掘网页你可以下载到海量猫图也许你从互联网上下载了超过 20 万张猫图。而你真正关心的算法表现是你的最终系统处理来自应用程序的这个图片分布时效果好不好因为最后你的用户会上传类似右边这些图片你的分类器必须在这个任务中表现良好。现在你就陷入困境了因为你有一个相对小的数据集只有 10,000 个样本来自那个分布而你还有一个大得多的数据集来自另一个分布图片的外观和你真正想要处理的并不一样。但你又不想直接用这 10,000 张图片因为这样你的训练集就太小了使用这 20 万张图片似乎有帮助。但是困境在于这 20 万张图片并不完全来自你想要的分布那么你可以怎么做呢 这里有一种选择你可以做的一件事是将两组数据合并在一起这样你就有 21 万张照片你可以把这 21 万张照片随机分配到训练、开发和测试集中。为了说明观点我们假设你已经确定开发集和测试集各包含 2500 个样本所以你的训练集有 205000 个样本。现在这么设立你的数据集有一些好处也有坏处。好处在于你的训练集、开发集和测试集都来自同一分布这样更好管理。但坏处在于这坏处还不小就是如果你观察开发集看看这2500 个样本其中很多图片都来自网页下载的图片那并不是你真正关心的数据分布你真正要处理的是来自手机的图片。 所以结果你的数据总量这 200,000 个样本我就用200缩写表示我把那些是从网页下载的数据总量写成210所以对于这 2500 个样本数学期望值是 2500 × 200 k 210 k 2381 2500 ×\frac{200k}{210k} 2381 2500×210k200k​2381有 2381 张图来自网页下载这是期望值确切数目会变化取决于具体的随机分配操作。但平均而言只有 119 张图来自手机上传。要记住设立开发集的目的是告诉你的团队去瞄准的目标而你瞄准目标的方式你的大部分精力都用在优化来自网页下载的图片这其实不是你想要的。所以我真的不建议使用第一个选项因为这样设立开发集就是告诉你的团队针对不同于你实际关心的数据分布去优化所以不要这么做。 我建议你走另外一条路就是这样训练集比如说还是 205,000 张图片我们的训练集是来自网页下载的 200,000 张图片然后如果需要的话再加上 5000 张来自手机上传的图片。然后对于开发集和测试集这数据集的大小是按比例画的你的开发集和测试集都是手机图。而训练集包含了来自网页的 20 万张图片还有 5000 张来自应用的图片开发集就是 2500 张来自应用的图片测试集也是 2500 张来自应用的图片。这样将数据分成训练集、开发集和测试集的好处在于现在你瞄准的目标就是你想要处理的目标你告诉你的团队我的开发集包含的数据全部来自手机上传这是你真正关心的图片分布。我们试试搭建一个学习系统让系统在处理手机上传图片分布时效果良好。缺点在于当然了现在你的训练集分布和你的开发集、测试集分布并不一样。但事实证明这样把数据分成训练、开发和测试集在长期能给你带来更好的系统性能。我们以后会讨论一些特殊的技巧可以处理 训练集的分布和开发集和测试集分布不一样的情况。 我们来看另一个样本假设你正在开发一个全新的产品一个语音激活汽车后视镜这在中国是个真实存在的产品它正在进入其他国家。但这就是造一个后视镜把这个小东西换掉现在你就可以和后视镜对话了然后只需要说“亲爱的后视镜请帮我找找到最近的加油站的导航方向”然后后视镜就会处理这个请求。所以这实际上是一个真正的产品假设现在你要为你自己的国家研制这个产品那么你怎么收集数据去训练这个产品语言识别模块呢 嗯也许你已经在语音识别领域上工作了很久所以你有很多来自其他语音识别应用的数据它们并不是来自语音激活后视镜的数据。现在我讲讲如何分配训练集、开发集和测试集。对于你的训练集你可以将你拥有的所有语音数据从其他语音识别问题收集来的数据比如这些年你从各种语音识别数据供应商买来的数据今天你可以直接买到成,对的数据其中是音频剪辑是听写记录。或者也许你研究过智能音箱语音激活音箱所以你有一些数据也许你做过语音激活键盘的开发之类的。 举例来说也许你从这些来源收集了 500,000 段录音对于你的开发集和测试集也许数据集小得多比如实际上来自语音激活后视镜的数据。因为用户要查询导航信息或试图找到通往各个地方的路线这个数据集可能会有很多街道地址对吧“请帮我导航到这个街道地址”或者说“请帮助我导航到这个加油站”所以这个数据的分布和左边大不一样但这真的是你关心的数据因为这些数据是你的产品必须处理好的所以你就应该把它设成你的开发和测试集。 在这个样本中你应该这样设立你的训练集左边有 500,000 段语音然后你的开发集和测试集我把它简写成和可能每个集包含 10,000 段语音是从实际的语音激活后视镜收集的。或者换种方式如果你觉得不需要将 20,000 段来自语音激活后视镜的录音全部 放进开发和测试集也许你可以拿一半把它放在训练集里那么训练集可能是 51 万段语音包括来自那里的 50 万段语音还有来自后视镜的 1 万段语音然后开发集和测试集也许各自有 5000 段语音。所以有 2 万段语音也许 1 万段语音放入了训练集5000 放入开发集5000 放入测试集。所以这是另一种将你的数据分成训练、开发和测试的方式。这样你的训练集大得多大概有 50 万段语音比只用语音激活后视镜数据作为训练集要大得多。 所以在这个视频中你们见到几组样本让你的训练集数据来自和开发集、测试集不同的分布这样你就可以有更多的训练数据。在这些样本中这将改善你的学习算法。 现在你可能会问是不是应该把收集到的数据都用掉答案很微妙不一定都是肯定的答案我们在下段视频看看一个反例。