这一课其实就是21年课程中的问题那一课。所以内容有一些重复,下面只记录不一样的地方。
一、之前就是很被动的接受了一个概念,叫做从输入端到输出端的过程中,移动的幅度是越来越小的,之前解释是说因为开始的地方梯度线密集,所以梯度变化大,后来的地方梯度本身就很小,所以移动的步伐也变小了。
现在的话,有了更合适的说法,那就是利用sigmoid来解释,因为每一次的ΔW都会从sigmoid的x值映射到y值上,而且是缩小的那种映射,所以ΔW会越来越小。
二、maxout,说是可以用它来模拟出各种激活函数,它可以根据数据的情况来选择出特定的参数,从而达到不同激活函数的效果。比如下面,就模仿出了relu的效果。所以他是训练出来的。
三、relu和maxout实际上都是很瘦长的网络,如下图,在做完选择之后,比如为0的就不需要连接了,max之后不是最大值的也不需要连接了。
四、下面讲在training data取得好结果,之后如何在testing data上取得好结果
第一种,early stopping。就是说在验证集取得比较好的结果的时候就停下来。如下图,这个是kaggle支持的。
第二种,regularization正则化。就是新定义loss函数,定义成下面的样子。其实这个改变是落脚在微分上的,也就是梯度的改变受控制了。
五、dropout丢掉。意思是在每一次参数更新前,都对每一个neuron做评估,然后丢掉不重要的连接,这样的话,网络就会变得细长,而且由于每一次更新前都会丢掉一些,所以训练的时候其实网络结构是在变化的,每一次都不一样。在train上用dropout,效果是会变差的,因为有些结构被丢了,所以train效果不好的话,用dropout只会更差。并且test的时候是不使用dropout的。
那么他好在哪里呢,这里的比喻是:
练轻功的时候带沙袋,战斗的时候不带。另一种可靠的说法是,由于
每次的结构都不一样,所以最后和一起的时候就会很多样性。
并且很神奇,在test的时候简单的乘以下就可以有合起来的效果(这里没太理解和写清楚)
over fitting的时候可以用dopout,防止起飞
9-2的视频有很多示范,可以看看学。