举个例子 还是分类猫图片的例子 假设在dev上测试的时候,有100张图片被误分类了.现在要做的就是手动检查所有被误分类的图片,然后看一下这些图片都是因为什么原因被误分类了. 比如有些可能因为被误分类为狗或者其他的原因,然后列一张表格 通过这种人工检查误分类的方式,就可以得到误分类数据被误分类原因的占比 然后可以看到如果在被误分类为狗的工作上优化模型,其上限不过是8%而已.如果在猫科动物和模糊的问题上进行优化,可以让模型最终的表现得到更大的提升. 这就是误差分析法…
在传统的数据处理系统或学习系统中,有一些工作需要多个步骤进行,但是端到端的学习就是用一个神经网络来代替中间所有的过程. 举个例子,在语音识别中: X(Audio)----------MFCC---------->features----------ML---------->phonemes--------->words-------------->Y(transcript) 首先输入音频,使用MFCC提取低层次特征,使用机器学习的方法得到音位(声音最小划分),转化为单词,最后形成文…
在迁移学习transfer learning中,你的步骤是串行的sequential process 在多任务学习multi-task learning中,你试图让单个神经网络同时做几件事情,然后这里的每个任务都希望能够帮助到其他的任务. 这是一个汽车自动驾驶的问题,在这张图像中我们需要同时检测四个目标:行人.车辆.停车标志.交通灯 所以可以认为这是一个多任务学习问题,请看下图: 对于这个神经网络的输出层而言,很像softmax多分类输出. 但是对于softmax而言,是得到一个概率分布,最终对…
在深度学习领域中,最强力的理念之一就是可以将神经网络学习的一种知识应用到另一个独立的任务中. 看上面的例子,首先我们有一个已经完成训练的神经网络,其目标是图像识别,我们有了绿色的1000000张图片并训练了上面的网络. 在完成图像识别后,我们希望将我们的模型用于放射诊断任务,这就是一种迁移. 我们的做法是,把以及训练好的网络的输出层及其权重都删除掉,然后重新随机权重给最后一层,并且让它在放射诊断数据上进行训练. 在使用源数据进行训练的时候,我们把这一过程称为预训练pre-training,其目标…
1.人工检验train和dev/test之间的区别: 比如:汽车语音识别中的噪音.地名难以识别等等 2.使得你的训练集更靠近(相似于)dev/test,收集更多类似于dev的数据: 比如:dev中存在很多噪音,可以模拟噪音数据:或者地名难以识别,可以收集更多地名的语音数据. 注意:目前没有系统化解决数据不匹配的方案,通过以上方法也不能完全保证解决问题,但是通常情况下上述方法可以解决问题.——Andrew Ng 方案:人工合成数据 这只是一种简单的合成,也可以加入混响等各种技术手段,但是这种人工数…
在11.2中,我们提到了一种数据划分的方法,那么怎么衡量这种数据划分方法中的误差呢? 来看一个例子:有20w条各种领域的语音识别数据,2w条汽车语音定位数据 train+dev+test,其中train是20w原始数据+1w汽车数据,dev和test各自都是5k条汽车数据 显然地,train和dev/test此时是不同分布的,如果出现以下情况 基准情况: train error:1% dev error:10% 我们不知道如何评估这种误差,因为train和dev是不同分布的,存在可能模型本来很好…
快速搭建系统并进行迭代 1.建立dev/test set,并确定你的目标 2.快速建立初始化的系统 3.使用前面提到的bias/variance分析和错误分析来进行模型优化和迭代 针对以上的过程,Andrew Ng建议在搭建第一个系统的时候遵循quick and dirty的思路 不要过度复杂化初始系统,显然地无论如何都要进行多次迭代的情况下,如果过度复杂化了初始系统,也许会提前走向偏移正确道路的方向 在不同的划分上进行训练和测试 深度学习对于train数据有很大的胃口,因此越来越多的团队倾向于…
因为要上手深度学习的原因,购置了一台RTX2080TI+ubuntu18.04的机器 例行两条命令 sudo apt-get update sudo apt-get upgrade 开启巨坑第一天,以前只在虚拟机上用过ubuntu,今天开箱之后因为用户名和主机名的问题我重装了ubuntu,问题一,参考了网上各种创建用户和主机并删除以前用户组的方法,改了好多系统文件结果gg,卡黑屏,没办法只能重装. 重装后遇见的问题二,nvidia驱动问题,因为N卡厂商的闭源行为和linux闹得不是很愉快,因此以…
引子 到目前为止,我们已经学了网络并发编程的2个套路, 多进程,多线程,这哥俩的优势和劣势都非常的明显,我们一起来回顾下 协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈.因此: 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上一次离…
一.函数的参数:实参与形参 # 参数介绍: # 函数为什么要有参数:因为内部的函数体需要外部的数据 # 怎么定义函数的参数:在定义函数阶段,函数名后面()中来定义函数的参数 # 怎么使用函数的参数:在函数体中用定义的参数名直接使用 # 实参:有实际意义的参数 # -- 在函数调用的时候,()中传入的参数 # 形参:参数本身没有意义,有实参赋予形参值后,该形参就具备了意义 # 补充:有默认值的形参,在没有被实参赋值,具备的是自身意义,但一旦被实参赋值,意义同实参 - def add(n1, n2=…