2020-5-14 吴恩达-NN&DL-w4 深层NN(4.7 参数 VS 超参数-依据经验/反复尝试/经常调整,4.8 这和大脑有什么关系?-关系不大)

1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c
2.详细笔记网站(中文):http://www.ai-start.com/dl2017/
3.github课件+作业+答案:https://github.com/stormstone/deeplearning.ai

4.7 参数 VS 超参数 Parameters vs Hyperparameters

想要你的深度神经网络起很好的效果,你需要规划好你的参数以及超参数。

什么是超参数?

还记得一次梯度下降,参数W和b更新公式中用到的学习率learning rateα\alpha嘛,这个就是一个超参数。

W[l]=W[l]αdW[l]W^{[l]}=W^{[l]}−αdW^{[l]}
b[l]=b[l]αdb[l]b^{[l]}=b^{[l]}−αdb^{[l]}

除此之外,还有

  • 梯度下降法循环的数量iterations
  • 隐层数量L
  • 隐层的单元数n[l]
  • 激活函数类型choice of activation function,例如,Relu,tanh,sigmoid

以上这些参数都要靠用户自己来设置。而这些参数实际上决定了或者说控制了参数W和b的最终值。它们都被称为超参数–控制参数的参数。

DL中有很多超参数。除了上面的之外还有一些其他的超参数,如momentum、mini batch size、正则化参数regularization parameters等等。

当你在训练深度NN时候,会发现超参有很多选择的可能性,你需要去尝试不同值。

今天的深度学习应用领域,还是很经验性的过程。
在这里插入图片描述

以上图为例。
通常你有个想法,比如可能大致知道一个好的学习率值是0.01,然后你可以实际试一下(Idea),训练一下看看效果如何(Code)。基于结果你会发现,学习率再提高到0.05会比较好(Experiment)。

如果你不确定什么值是最好的学习率,可以先尝试一个,然后看看损失函数J的值有没有下降。接着尝试不同的学习率并观察,看结果是否下降的很快,或者收敛到更高的位置。最终选择一个学习率,可以加快学习过程,并且收敛在更低的损失函数值上(下图中箭头所指)。
在这里插入图片描述

当你开始开发新应用时,通常预先很难确切知道,超参数的最优值应该是什么。
所以通常会和上面学习率选择方法一样,你必须尝试很多不同的值,对比效果。
例如,试试看5个隐藏层,一定数目的隐藏单元,实现模型并观察是否成功,然后再迭代。

应用深度学习领域,是一个很大程度基于经验的过程empirical process,通俗来说,就是不停尝试直到你找到合适的数值。

DL可以用于解决很多问题,从计算机视觉到语音识别,到自然语言处理NPL,到很多结构化的数据应用(比如:网络广告或是网页搜索或产品推荐)等等。

在这些领域中,有些超参数的设置有时可以推广,而有时又不能够。建议大家,特别是刚开始应用于新问题的人,去尝试一定范围的值看看结果如何。

另外,有些已经用了很久的模型,例如你在做网络广告应用,在开发过程中,很有可能学习率的最优数值或是其他超参数的最优值是会变的。即使你每天都在用当前最优的参数调试你的系统,你还是会发现,最优值过一年就会变化。因为电脑的基础设施,CPU或是GPU可能会变化很大。所以有一条经验规律可能每几个月就会变。

如果你所解决的问题需要很多年时间,只要经常试试不同的超参数,勤于检验结果,看看有没有更好的超参数数值,相信你慢慢会得到设定超参数的直觉,知道你的问题最好用什么数值。

这可能是DL比较让人不满的一部分,也就是你必须尝试很多次不同可能性。但参数设定这个领域,DL研究还在进步中,所以可能过段时间就会有更好的方法决定超参数的值,也很有可能由于CPU、GPU、网络和数据都在变化,这样的指南可能只会在一段时间内起作用,只要你不断尝试,并且尝试保留交叉检验或类似的检验方法,然后挑一个对你的问题效果比较好的数值。

总结

有一条经验规律:经常试试不同的超参数,勤于检查结果,看看有没有更好的超参数取值,你将会得到设定超参数的直觉。

4.8 这和大脑有什么关系?What does this have to do with the brain?

答案是关联不大。

那么人们为什么会说深度学习和大脑相关呢?
在这里插入图片描述

观察上图,这是实现NN要做的工作-前向传播和反向传播,其实很难表述这些公式具体做了什么。

DL像大脑这样的类比其实是过度简化了我们的大脑具体在做什么,但因为这种形式很简洁,能让普通人更愿意公开讨论,也方便新闻报道并且吸引大众眼球,但这个DL和大脑类比是非常不准确的。

把一个NN的单元可以看成是对一个生物神经元,这是一个过度简化的对比。迄今为止连神经科学家都很难解释究竟一个神经元能做什么,神经元其实是极其复杂的。它的一些功能可能真的类似逻辑回归的运算,但单个神经元到底在做什么,目前还没有人真正能够可以解释。

没人知道到底大脑是用类似于后向传播,或是梯度下降的算法,或者人类大脑的学习过程用的是完全不同的原理。

所以虽然DL的确是个很好的工具,能学习到各种很灵活很复杂的函数来学到从x到y的映射;在监督学习中,学到输入到输出的映射。但这种和人类大脑的类比,在这个领域的早期也许值得一提,但现在这种类比已经逐渐过时了。

总结

这就是NN和大脑的关系:在计算机视觉,或其他的学科都曾受人类大脑启发,还有其他DL的领域也曾受人类大脑启发。但是不适合在两者之间进行类比。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章