为了写一个ppt,重新开始学习机器学习,之前很多不太懂的概念重新学习一下。这里记录一下
学习率的调整
从梯度下降算法的角度来说,通过选择合适的学习率,可以使梯度下降法得到更好的性能。学习率,即参数到达最优值过程的速度快慢,如Andrew Ng的Stanford公开课程所说,假如你从山峰的最高点根据梯度下降法寻找最优值,当你学习率过大,即下降的快,步子大,那么你很可能会在某一步跨过最优值,当你学习率过小时,每次下降一厘米,这将走到何年何月呀,用术语来说就是,长时间无法收敛。因此,学习率直接决定着学习算法的性能表现。
-
可以根据数据集的大小来选择合适的学习率,当使用平方误差和作为成本函数时,随着数据量的增多,学习率应该被设置为相应更小的值(从梯度下降算法的原理可以分析得出)。另一种方法就是,选择不受数据集大小影响的成本函数-均值平方差函数。
-
在不同的迭代中选择不同的学习率,还是用前面下山的例子来解释,当你大概知道最优值离你还挺远时,你肯定不会一步一厘米的去走,你肯定会大跨步走到离最优值不远的地方,然后再用小碎步来慢慢找到最优值。即,在最初的迭代中,学习率可以大一些,快接近时,学习率小一些。问题就出在这里,有人会说,我要是知道了最优值,还有梯度下降算法什么事,说的也对,那么我们是怎么解决的呢,我们在每次迭代后,使用估计的模型的参数来查看误差函数的值,如果相对于上一次迭代,错误率减少了,就可以增大学习率如果相对于上一次迭代,错误率增大了,那么应该重新设置上一轮迭代的值,并且减少学习率到之前的50%。因此,这是一种学习率自适应调节的方法。
-
一般常用的学习率有0.00001,0.0001,0.001,0.003,0.01,0.03,0.1,0.3,1,3,10
激活函数:
总而言之,激活函数可以引入非线性因素,解决线性模型所不能解决的问题。
https://www.zhihu.com/question/22334626
一个线性神经元就像一个小毛团,每当有东西戳它一下的时候,它就会戳跟着它的毛团一下,就像多米诺骨牌。
但是有时候其实你不需要知道具体被戳了多少下。我们来考虑一个防烫手的机制,假如现在在手指上有一个小神经元A(输入层)可以感知手指附近的温度,它连接到了另一个神经元B(隐藏层),在连接一个用来控制缩回手的神经元C(输出层)。
这个小神经元A感受到环境的温度是x度,然后飞快地戳了身后的神经元Bx下。神经元B接着也戳了Cx下。这时C也不知道要不要收回手,因为只收到了环境的温度。
这时候在神经元B旁边加入一个神经元D(bias),D在每次B要戳C之前会告诉B冷静一下,然后挡住B戳的前n下,表明温度在n度以下时不需要缩手。于是最终C被戳到的次数就是(x-n),如果C被戳到了,说明温度比n度要高,此时就应该要缩手了。
但是被戳了一下和两下也没有区别呀,于是我们用阶跃函数作为激励函数,这样当(x-n)大于零的时候,B就戳C一下就好了,否则就不要戳。C被戳到了就可以缩手了。
所以其实激励函数的作用就是处理输入产生输出~
作者:谭正豪
链接:https://www.zhihu.com/question/22334626/answer/145391853
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。