建设银行官方门户网站,小米官网首页,地方网站如何做竞价,播放视频网站怎么做的我们在创建一个优秀的神经网络需要一个漫长的循环过程。 先选择一个架构#xff0c;再对我们的架构进行训练#xff0c;最后诊断我们的误差#xff0c;再回到我们重新的循环#xff0c;直到我们的神经网络足够优秀。这就是机器学习迭代的过程。
误差分析#xff1a;
我…我们在创建一个优秀的神经网络需要一个漫长的循环过程。 先选择一个架构再对我们的架构进行训练最后诊断我们的误差再回到我们重新的循环直到我们的神经网络足够优秀。这就是机器学习迭代的过程。
误差分析
我们举一个例子 我们有500个交叉验证误差集但是我们的算法错误的分类了其中的100个我们经过寻找发现了下面几种错误的分法以及他们分别的个数。
在我们的算法做的并不是这么好的时候找到错误的案例也可以很高效的给我们提供很多的有用的数据尽管我们的数据就增加了一点点但是效果却非常的好。
这种方法我们可以很好的通过算法中出现的错误得到一些新的改进方法当然对于一些比较罕见的问题可能并没有这么好的效果。
添加数据 添加大量的数据是一个很好的训练算法模型的一个方法但是它同时也会消耗我们大量的时间也会非常的昂贵而我们提供更多不同特征的数据似乎是一个更好的方法正如我们在误差分析中知道的通过添加不同的特征以及他们的数据可以得到一个更好的模型。
1当然这里有一种更加好的方法可以增加我们的训练集的数量它的名字叫做数据增强。 如何做到数据增强呢我们的方法就是比如有一个数字A的图像识别我们可以旋转放大缩小对比度变化镜像这样子我们就可以得到了A但是他们的训练集却增加了。
我们也可以把他们放在网格中让网格子扭曲起来从而得到很多训练集的数据。
再做一个比方我们在语音识别中我们对我们的语音加入不同的噪音我们就可以得到不止一个的训练集了。
所以我们如何才能完成数据加强是最后的问题。 这是我们需要通过别的方式完成的。
2还有一个方法就是我们的数据合成(data Synthetic)它和我们的数据增强不同之处就是它需要我们从0开始创建我们的数据而不是数据增强通过改变原有数据集得到新的数据。
举个例子我们需要给我们的图片识别其中包含的文字我们可以先去获得我们的艺术字如右边图我们可以看到他们有各种字体我们通过换色或者旋转的方式就可以创造出新的文字。
我们可以比较一下左边和右边的字他们的样子也很相近这就完成了我们的数据合成的任务
这种方法一般常用于我们的图像识别的领域。
数据增强和数据合成就是我们使用的比较多的方法可以为我们的数据集增加更多的数据。
在过去 人们更加关注于搭建一个好的模型或算法而当我们把中心转移到数据时我们可能会得到更好的训练机会给我们的模型性能进行训练与提升。
迁移学习
迁移学习顾名思义就是使用其他任务中的数据作用于当下的项目。
我们会先得到一个比较大的训练集的数据去训练我们的上面一个比较新的模型而得到它每一个神经层的数据而我们需要做的只需要把他们的数据迁移到我们识别0到9的数字我们在隐藏层的W和B的值不需要任何的改变我们唯一要重新训练的只有我们的输出层的W和B。这就是我们的迁移学习。我们把这里的第一步叫做监督预训练(supervised pretraining)第二步就叫做微调(fine tuning)
在这里我们有两个方法来训练我们的模型。
第一种就是我们只训练我们输出层的W和B的参数当然这只用于我们训啦比较小的数据集。
第二种就是当我们遇到大的数据集时我们依旧是需要从头开始我们的训练。
这里给我们一个逻辑我们需要大量的数据先进行一个预训练我们再用小范围的数据进行我们的优化调节。它的优点就是我们在网上可以直接获得一个训练好的模型这就可以节省我们的时间而我们只需要改进我们的输出端的参数即可。 为什么我们可以通过识别不同的物体比如猫狗车什么的用来识别我们的数字呢这就要归功于我们的神经元他们从对猫狗等物体的识别渐渐学会了从物体的边缘到物体的角落到最后的形状的识别而这些就恰恰是识别数字中也十分需要的。
机器学习的完整周期
我们机器学习主要分为4个周期。第一先确定我们的模型使用的范围比如是语音识别还是图像识别等等第二我们需要收集数据用到我们的数据增强数据合成以及单纯的得到更多的数据第三我们要对他们进行数据的训练这里我们需要通过偏差与方差以及我们的误差分析重新在我们的数据收集和数据训练来上几个循环得到我们最佳的算法模型最后在部署给公共使用当然在部署的时候我们也还是需要对我们的模型进行维护等当然同时我们也会从我们的平时部署中我们得到了更多的数据而不断的改变我们的算法。
关于部署 我们在这里用到了Api调用算法而我们机器学习的算法主要运行在我们的推理服务器上我们通过手机的app发送我们的消息从而从我们的模型中获得我们所预测的值。 对于要在几百万人使用的情况下我们需要制造一个软件可以来收集和改进我们的模型性能的问题。
我们也把部署的部分称为我们的MLOps ,它们的职责就是构建部署维护机器学习系统来确保我们的模型性能一直处于一个比较好的状态。
伦理与公平道德
我们在创建一个机器学习时不应该有任何偏见的因素在里面。不要建立对社会有害的机器学习系统。
倾斜数据集的误差指标 我们在预测班级时会预测是与不是而实际也是是与不是看上图我们可以知道两个新的概念准确率(precision)与召回率(recall)
准确率就是真正阳性/预测阳性而召回率则是真正阳性/实际阳性。
当我们的预测一致为0时就说明我们的真正阳性为0那我们的准确率和召回率也都为0了。
高准确率意味着模型在分类时能够更准确地识别出正样本而高召回率意味着模型能够更全面地找到所有的正样本。
对于准确率和召回率的平衡也是非常重要的一个课题我们在逻辑回归中会普遍把我们的0.5作为1和0的分界线但是当我们把分界线上升到了0.7这时我们的准确率会上升而我们的召回率则会下降但当我们把分界线变为0.3时我们的召回率会上升而我们的准确率则会下降在这之间有一个可以让他们保持平衡的值也就是它们之间的分界线平衡点。
那我们如何权衡它们的大小关系呢
我们在这里用到了F1分数的方法(F1 score) 它的方法是F1 score 2*准确率*回归率/准确率回归率这样我们就能得到每个算法所得的F1分数了最大的就是最好的。它也可以被叫做调和平均值。