Why Machine Learning Strategy (Maching Learing Yearning 翻译笔记)

Why Machine Learning Strategy

为什么要是用机器学习策略?

Machine learning is the foundation of countless important applications, including web search,email anti-spam,speech recognition,product recommendations,and more. I assume that you or your team is working on a machine learning application,and that you want to make rapid progress.This book will help you do so.
机器学习是许多重要应用的基础,包括网页搜索、反垃圾邮件工具、语音识别、产品推广等等。假定你和你的团队正研究一款基于机器学习的应用,并且希望快速取得进展。那么这本书可能会帮助你。

Example: Building a cat picture startup
Say you’re building a startup that will provide an endless stream of cat pictures to cat lovers.
You use a neural network to build a computer vision system for detecting cats in pictures.
But tragically, your learning algorithm’s accuracy is not yet good enough. You are under tremendous pressure to improve your cat detector. What do you do?
假设你正在准备研发一个可以为爱猫人士提供大量猫咪照片的程序。你运用了神经网络建立了一个计算机视觉系统来检测图片中是否有猫咪存在。但不幸的是,你的学习算法的准确性还不够好。基于巨大压力之下,你需要改进猫咪检测算法。你会怎样做?

Your team has a lot of ideas, such as:
Get more data: Collect more pictures of cats.
获得更多的数据:收集更多关于猫咪的照片。

思考:是否训练数据集越多越好?
1.训练数据集越多,训练出来的算法性能越好,这句话应当建立在训练数据集可以比较全面的,正确的反映我们针对的问题的前提下,否则并不一定能提高算法性能。
2.在实际应用中,一般会人为地选定针对所研究问题的训练数据集。在这个前提下,训练数据集越多可能会提高算法模型的性能。
3.训练数据集多到一定程度后,对算法性能的影响就微乎其微了,这时可以考虑改变其他因素来继续提高算法性能,例如网络结构等。

Collect a more diverse training set. For example, pictures of cats in unusual positions; cats with unusual coloration; pictures shot with a variety of camera settings; …
收集更加多样化的训练集。例如,不同姿态下猫咪的照片、不同颜色下猫咪的照片、使用各种相机参数拍摄的猫咪照片等等。

思考:收集多样化的训练集是否有助于算法模型的训练?
训练数据集越多样化,则更能全面的反映目标的整体特性,从而提高算法的泛化能力。

Train the algorithm longer, by running more gradient descent iterations.
通过运行更多次的梯度下降迭代法,使得算法的训练过程更长。

知识点1:梯度下降法
梯度下降法是一种迭代算法,其思想是:选取适当的初值之后,沿着负梯度方向(最快下降方向)不断地迭代,更新,进行目标函数最小化,从而对训练模型进行优化。
其迭代公式为:
Repeat until convergence{
在这里插入图片描述
}
由公式可看出,随着越来越接近代价函数的局部最小值,它的梯度会越来越小。所以梯度下降法,越接近目标值,步长越小,前进越慢。
梯度下降法也称作批量梯度下降法(MGD),其经过改良后的随机梯度下降法(SGD),小批量梯度下降法(MBGD)都有较好特性,往往应用更为广泛。

思考:为什么要用梯度下降法,能否采用其他算法?
1.运用梯度下降法的目的是对目标函数(损失函数)进行优化,从而训练出最好的模型。同时梯度下降法的迭代方向为负梯度方向,保证了函数在当前点会沿着下降最快的方向进行迭代。
2.机器学习中常用的优化方法有梯度下降法、牛顿法、共轭梯度法等。这些都可以实现都目标函数的优化。

思考:牛顿法采用二阶收敛,速度较快。为什么不用牛顿法代替梯度下降法?
1.牛顿法使用的是对目标函数的二阶收敛,在高维情况下这个矩阵非常大,不利于计算和存储。
2.在小批量的情况下,牛顿法对于二阶导数的估计噪声较大。

思考:为什么要迭代多次梯度下降算法?
对于梯度下降法的迭代,通常是在迭代一定次数n后,或预测误差小于某一定值时停止迭代。但如果我们的算法性能不够好,有可能是因为迭代次数不够,或停止阈值过大。这样我们可以通过增加迭代次数继续优化模型,调整参数。

Try a bigger neural network, with more layers/hidden units/parameters.
尝试通过使用更多的网络层数,隐藏单元以及参数来扩大神经网络。
Try a smaller neural network.
尝试缩小神经网络。

思考:何种情况下会考虑扩大或缩小网络?
1.训练误差大,或训练结果不理想,可考虑扩大神经网络结构。
2.测试误差大或泛化能力差。可以优先考虑适当扩大神经网络结构。
3.扩大神经网络之后,发现模型的测试误差并没有提升反而有些下降时,可考虑缩小神经网络。
4.当模型在训练集上表现已经足够好,但泛化能力依然比较差,这时可考虑缩小神经网络。这种情况是由于参数过多,网络结构过于复杂导致的过拟合现象。

Try adding regularization (such as L2 regularization).
尝试加入正则化方法(例如L2正则化)。

知识点2:正则化的含义
正则化是典型的模型选择方法之一,用于解决过拟合问题。它的思想是:在所有可能选择的模型中,能够很好的解释已知数据并且十分简单才是最好的模型,也是应该选择的模型。
在不改变模型结构的情况下,即保留所有的变量,将一些不重要的特征的权值置为0或权值变小使得特征的参数矩阵变得稀疏,使每一个变量都对预测产生一点影响。

知识点3:过拟合现象
指在训练模型时,一味的追求提高训练数据的预测能力,使得所选模型的复杂度过高。这样导致在训练数据集上表现优异的模型运用到测试集时,往往性能并不理想,这种现象称为过拟合。
一般在训练数据集较小时,容易发生过拟合现象。

思考:为什么要引入正则化?
引入正则化方法,可以自动提取重要的特征向量,削弱不重要特征向量的影响因素,从而一定程度防止过拟合现象的发生,提高算法准确性。

Change the neural network architecture(activation function, number of hidden units,etc.)
改变神经网络结构(激活函数,隐藏单元数目等)。
知识点4:常用的激活函数
1.双曲函数
在这里插入图片描述
2.逻辑函数
在这里插入图片描述
3.线性整流函数(RELU)
在这里插入图片描述
4.带参数的线性整流函数(PReLU)
在这里插入图片描述

思考:何种情况下,考虑改变激活函数?

1.Sigmod型函数
因为sigmod型函数(双曲函数、逻辑函数)的导数值域都小于1。在进行反向传播时,当网络层数很深,梯度会不停地衰减,甚至消失。称为梯度消失问题。
所以当网络层数很深时,应当考虑选取线性激活函数,即保证激活函数的导数为1,这样即可防止梯度消失问题出现。
2.RELU函数
当x大于0时导数为1,可以防止梯度消失问题,且收敛快,无饱和区域。
但当x小于0时,会导致梯度直接为0,无法更新。

If you choose well among these possible direction, you’ll build the leading cat picture platform, and lead your company to success. If you choose poorly, you might waste months. How do you proceed?
如果你能在以上可能的方向中做出好的选择,你将会建立一个领先的关于猫咪图片的平台,并且带领你的公司走向成功。如果你的选择不当,那么你可能会浪费数月时间。你将怎样抉择?
This book will tell you how. Most machine learning problems leave clues that tell you what’s useful to try, and what’s not useful to try. Learning to read those clues will save you months or years of development time.
这本书将告诉你该怎样做。大多数机器学习问题都会留下一些线索,来提示什么是有用的,什么是无用的。学会读懂这些线索将会节省几个月甚至几年的开发时间。

猜你喜欢

转载自blog.csdn.net/qq_43232373/article/details/84560232
今日推荐