1.maxout networks
研究maxout的动机是在研究用DehazeNet去雾时,发现其中有一层网络是它,因此想把它解释清楚。
以下是二郎的理解
maxout=隐含层+激活函数
隐含层
激活函数
好了,咱们可以分开讨论了——
隐含层,直观的感觉是有把很多直线方程写为矩阵形式,这只是一个表达的不同,实质还是很多直接方程。
1.一堆直线方程放在一起
2.同一个输入节点:x相同
3.同一个输出节点:几个z的运算
同一输出节点的结果,其最简单的形式为是多个神经元输出结果的加和
输出=z1+z2+z3+……zn
4.比直接加和复杂一点:激活函数
maxout 的激活函数为
找到最大的z作为输出,在图中会发现
随着x的变化,最大的z落在向下凸的折线上,如果我们的线再密一下(隐含层神经元再多一些),折线就可以近似为曲线。
maxout networks可以实现曲线的拟合,在特征提取中有较好的应用
类似激活函数,但不是激活函数
多个神经元的输入并未进行加和(蓝色圆形),再到激活函数,而是直接在蓝色圆形的位置做了取最大值的处理。
这里也可以看出,激活函数是在数据加和后才起的作用,下图能很好地说明这一点。
2.ReLU激活函数
既然讲到了激活函数,就捎带着讲一下ReLU,这个激活函数挺有意思
最初未改进的ReLU对于输入的值小于0的全为0,输入值大于0的正常输出
换句话说:它能干掉一部分神经元,不让他们参加到运算中。
这里可能会问了,训练的第一次被干掉了,第二次没被干掉,第三次又干掉了……这个有啥用?
二郎小课堂开课了(有异议可以留言):
深度学习是一个概率统计问题
对于所有输入的特征来说,总有那么一些输入对我们的目的没有任何贡献,他们也就很荣幸地贡献值小于了0,或者接近于0,这些有时候还不在少数,他们的存在大大增加了我们的计算成本。虽然训练时不会每次这些贡献小的都会被ReLU剔除,但是它们被剔除的概率较大,因此整体的网络也逐渐向着这些特征直接被剔除的情况靠拢(w和b不断变更),让这些特征更容易出现加和小于等于0的情况。