当前位置:网站首页>结构化机器学习项目(二)- 机器学习策略(2)
结构化机器学习项目(二)- 机器学习策略(2)
2022-06-27 19:51:00 【997and】
本次学习笔记主要记录学习深度学习时的各种记录,包括吴恩达老师视频学习、花书。作者能力有限,如有错误等,望联系修改,非常感谢!
@[TOC](结构化机器学习项目(二)- 机器学习策略(2))
第一版 2022-06-01 初稿
一、进行误差分析(Carrying out error analysis)

调试猫分类器,90%准确率。
如图将两只狗误分析,可以针对狗,收集更多狗图或设计处理狗的算法
建议做的:
首先,收集一下,如100个错误样本,手动检查。机器学习中加人为数据不太好。
有时在做错误分析时,可以同时并行评估几个想法。标记错误,做到一半时可能发现滤镜干扰了分类器。
二、清除标注错误的数据(Cleaning up Incorrectly labeled data)

如图,倒数第二个被标记错误。
深度学习算法对于训练集中的随机错误是相当健壮的(robust),但对系统性的错误没那么健壮。
是否值得修正6%标记出错的样本。
首先,不管用什么修正手段,都要同时作用到开发集和测试集上,他两必须来自同一分布。
其次,考虑同时检验算法判断正确和判读错误的样本,
最后,可能决定只修正开发集和测试集,它们相较较小。
三、快速搭建你的第一个系统,并进行迭代(Build your first system quickly,then iterate)

语音识别在很多有噪声的例子。
四、使用来自不同分布的数据进行训练和测试(Training and testing on different distributions)

一个数据源来自手机,有不同模糊的;另一个数据来源于爬虫。
设立开发及的目的是告诉团队瞄准的目标。
第一选项大部分精力用在优化来自网页下载的图片,不建议;
第二选项训练集是网页下载200000张照片,再加上5000张来自手机上传的照片。开发集和测试集都是手机图。长期能带来更好性能。
可将拥有的所有语音数据等作为训练集。
五、数据分布不匹配时的偏差与方差的分析(Bias and Variance with mismatched data distributions)

首先算法只见过训练集数据,没见过开发集数据;第二,开发集数据来自不同的分布。
建立开发集和测试集来自同一分布,但训练集来自不同分布。要做的是随机打散训练集,分出一部分作为训练-开发集。
右侧下方为三个例子,第二个高偏差,欠拟合了。
开避免偏差、方差、数据不匹配、对开发集过拟合程度(差距大就过拟合了)。
右侧例子,在测试集和开发集表现反而好。
横轴:一般语音识别得到数据、收集和后视镜有关的语音数据等不同数据集
竖轴:处理数据不同的方式或算法-人类水平、神经网络训练或没训练过的数据集上达到的错误率。
如何处理数据不匹配呢?
特别是来自不同分布,可以用更多训练数据。2.6会讲到。
六、处理数据不匹配问题(Addressing data mismatch)

为了避免对测试集过拟合,要做错误分析,应看开发集而不是测试集。
1.弄清开发集和训练集有什么不同
2.让训练集更像开发集
训练集接近开发集,可以人工合成数据。
认为存在数据不匹配问题,可做数据分析。
七、迁移学习(Transfer learning)

有时,神经网络可以从一个任务中习得知识,并将这些只是应用到另一个独立的任务中。
(上蓝字)具体来说,在第一阶段训练过程中,当你进行图像识别任务训练时,你可以训练神经网络的所有常用参数,所有的权重,所有的层,然后你就得到了一个能够做图像识别预测的网络。在训练了这个神经网络后,要实现迁移学习,你现在要做的是,把数据集换成新的(x,y)对,现在这些变成放射科图像,而y是你想要预测的诊断,你要做的是初始化最后一层的权重,让我们称之为w[L]和b[L]随机初始化。
(上紫)在新的放射科数据集上训练数据:
数据集小,重新训练最后一层权重,并保持其它参数不变。
足够多数据,重新训练神经网络中剩下的所有层。训练初期为预训练(pre-training)、更新所有权重,然后在放射科数据上训练过程叫微调(fine tuning)
(下)这里是另一个例子,假设你已经训练出一个语音识别系统,现在x是音频或音频片段输,而y是听写文本,所以你已经训练了语音识别系统,让它输出听写文本。现在我们说你想搭建一个“唤醒词〞或“触发词”检测系统,所谓唤醒词或触发词就是我们说的一句话,可以唤醒家里的语音控制设备,比如你说"Alexa”可 以唤醒一个亚马逊Echo 设备,或用“OK Google〞唤醒 Google 设备,用"Hey siri"来唤醒苹果设备,用"你好百度"唤醒个百度设备。要做到这点,你可能需要去掉神经网络的最后一层,然后加入新的输出节点,但有时你可以不只加入一个新节点,或者甚至往你的神经网络加入几个新层,然后把唤醒词检测问题的标签y喂进去训练。再次,这取决于你有多少数据,你可能只需要重新训练网络的新层,也许你需要重新训练神经网络中更多的层。
(上红)第一次图像训练有100万样本,可以学习低层次特征。而放射科训练有100个样本,所以从图像识别训练中学到的很多知识可以迁移,即使放射科数据少。
什么时候迁移学习有意义?
1.想从任务A学习并迁移一些知识到任务B,当A和B有同样的输入x时有意义;
2.任务A数据比任务B多得多时,有意义;
3.A的低层次特征可以帮助任务B
八、多任务学习(Multi-task learning)

迁移学习中,步骤是串行的。
无人驾驶汽车同时检测行人、车辆、停车标志、交通灯
定义神经网络的损失函数,softmax回归将单个标签分配给单个样本,而此图可以有很多不同的标签,多个物体可能同时出现在同一张图中,而是遍历不同类型。
可以多任务学习,同样可以训练四个不同的神经网络。即使一些图像只有一小部分标签,
多任务学习什么时候有意义?
1.若训练的一组任务,可以共用低层次特征6
2.不是绝对的:每个任务中的数据量很接近。
3.当训练一个足够大的神经网络,同时做好所有工作。所以多任务学习的替代方法是为每个任务训练一个单独的神经网络。性能降低的唯一情况是神经网络不够大。
迁移学习使用频率高,数据集相对较小,迁移学习能帮助你。
九、什么事端到端的深度学习(What is end-to-end deep learning)

以前数据处理系统或者学习系统,需要多个阶段的处理,那么端到端深度学习就是忽略所有这些不同的阶段,用单个神经网络代替它。
语音识别为例,首先你会提取一些特征,一些手工设计的音频特征,也许你听过MFCC,这种算法是用来从音频中提取一组特定的人工设计的特征。在提取出一些低层次特征之后,你可以应用机器学习算法在音频片段中找到音位,所以音位是声音的基本单位,比如说”cat”这个词是三个音节构成的,Cu-、Ah-和下u-,算法就把这三个音位提取出来,然后你将音位串在一起构成独立的词,然后你将词串起来构成音频片段的听写文本。
和上述流水线相比,端到端深度学习如图下方线。其最大挑战之一是需要大量数据才能让系统表现良好。
人脸识别门禁系统。
迄今为止最好的方法似乎是一个多步方法,首先,你运行一个软件来检测人脸,所以第一个检测器找的是人脸位置,检测到人脸,然后放大图像的那部分,并裁剪图像,使人脸居中显示,然后就是这里红线框起来的照片,再喂到神经网络里,让网络去学习,或估
计那人的身份。
两步法更好原因:
1.解决的两个问题,每个都简单
2.两个子任务的训练数据都很多
机器翻译
观察孩子手部x光,估计年龄
十、是否要使用端到端的深度学习(Whether to use end-to-end learning)

优点:
1.让数据说话
2.所需手工设计的组件更少
缺点:
1.可能需要大量数据
2.排除了可能有用的手工设计组件
应用端到端深度学习时,考虑是否有足够多的数据能直接学到从x映射到y足够复杂的函数。
必要复杂度(complexity needed)
无人驾驶技术:检测车子周围,计划路线、方向盘精确度数、油门精确力度
边栏推荐
- Typescript learning
- VMware virtual machine PE startup
- 畅游动态规划之区间DP
- Macro task and micro task understanding
- MySQL greater than less than or equal to symbol representation
- 北京邮电大学|用于成本和延迟敏感的虚拟网络功能放置和路由的多智能体深度强化学习
- 单元测试界的高富帅,Pytest框架,手把手教学,以后测试报告就这么做~
- \w和[A-Za-z0-9_],\d和[0-9]等价吗?
- AQS SOS AQS with me
- [LeetCode]508. The most frequent subtree elements and
猜你喜欢

Codeforces Round #716 (Div. 2)

使用Fiddler模拟弱网测试(2G/3G)

Experience sharing of meituan 20K Software Test Engineers

Stm32f107+lan8720a use stm32subemx to configure network connection +tcp master-slave +udp app

Codeforces Round #717 (Div. 2)

清华大学教授:软件测试已经走入一个误区——“非代码不可”

Management system itclub (medium)

. Net learning notes (V) -- lambda, LINQ, anonymous class (VaR), extension method

Management system itclub (Part 2)

01 golang environment construction
随机推荐
Exclusive interview with millions of annual salary. What should developers do if they don't fix bugs?
[LeetCode]513. Find the value in the lower left corner of the tree
Do280openshift access control -- Security Policy and chapter experiment
Day8 - cloud information project introduction and creation
Analysis of stone merging
Management system itclub (Part 2)
CDH集群之YARN性能调优
Acwing weekly contest 57- digital operation - (thinking + decomposition of prime factor)
Macro task and micro task understanding
C language programming detailed version (learning note 1) I can't understand it after reading, and I can't help it.
关于davwa的SQL注入时报错:Illegal mix of collations for operation ‘UNION‘原因剖析与验证
二维数组中修改代价最小问题【转换题意+最短路径】(Dijkstra+01BFS)
[sword offer ii] sword finger offer II 029 Sorted circular linked list
读写分离-Mysql的主从复制
BAT测试专家对web测试和APP测试的总结
【MySQL】数据库函数通关教程下篇(窗口函数专题)
Typescript learning
Go from introduction to practice -- definition and implementation of behavior (notes)
Codeforces Round #716 (Div. 2)
Gbase 8A method for reducing the impact on the system by controlling resource usage through concurrency during node replacement of V8 version