昨天那篇过了一天才审核通过,希望以后可以稍微快一点哈哈😂一直提心吊胆怕思否觉得我太小白了不给过。
今天把第二周的基础作业完成了,难度不大。明天写选做作业。不出意外的话这周可以把神经网络和深度学习这门课刷完。
3.1~3.5
这几节主要是解释计算和一些公式上的习惯标记,以及和向量相关的解释,因为太多数学公式懒得打,就不整理了。
3.6~3.8 激活函数
激活函数:
深度学习笔记:如何理解激活函数?(附常用激活函数)
查了几篇文章,都提到了一个地方“激活函数将非线性特性引入到我们的网络中”。
*问题是,为什么我们不能在不激活输入信号的情况下完成此操作呢?
如果我们不运用激活函数的话,则输出信号将仅仅是一个简单的线性函数。线性函数一个一级多项式。现如今,线性方程是很容易解决的,但是它们的复杂性有限,并且从数据中学习复杂函数映射的能力更小。一个没有激活函数的神经网络将只不过是一个线性回归模型(Linear regression Model)罢了,它功率有限,并且大多数情况下执行得并不好。我们希望我们的神经网络不仅仅可以学习和计算线性函数,而且还要比这复杂得多。同样是因为没有激活函数,我们的神经网络将无法学习和模拟其他复杂类型的数据,例如图像、视频、音频、语音等。这就是为什么我们要使用人工神经网络技术,诸如深度学习(Deep learning),来理解一些复杂的事情,一些相互之间具有很多隐藏层的非线性问题,而这也可以帮助我们了解复杂的数据。
那么为什么我们需要非线性函数?
非线性函数是那些一级以上的函数,而且当绘制非线性函数时它们具有曲率。现在我们需要一个可以学习和表示几乎任何东西的神经网络模型,以及可以将输入映射到输出的任意复杂函数。神经网络被认为是通用函数近似器(Universal Function Approximators)。这意味着他们可以计算和学习任何函数。几乎我们可以想到的任何过程都可以表示为神经网络中的函数计算。
而这一切都归结于这一点,我们需要应用激活函数f(x),以便使网络更加强大,增加它的能力,使它可以学习复杂的事物,复杂的表单数据,以及表示输入输出之间非线性的复杂的任意函数映射。因此,使用非线性激活函数,我们便能够从输入输出之间生成非线性映射。
激活函数的另一个重要特征是:它应该是可以区分的。我们需要这样做,以便在网络中向后推进以计算相对于权重的误差(丢失)梯度时执行反向优化策略,然后相应地使用梯度下降或任何其他优化技术优化权重以减少误差。*
摘自什么是激活函数?它有什么作用?
根据我个人的理解,激活函数位于两层之间,即上一层计算输出后,通过激活函数将output处理成别的形态,再作为input输入到下一层。为什么要用激活函数?如上文所摘,如果没有激活函数,我们所得到的最终结果y,不过是输入x的线性组合而已。不过单纯线性激活函数适合于回归模型,即输出结果不是0、1分类而是一个实数,例如对价格的预测。
目前常用的激活函数除了Chapter2中提到的sigmoid函数外,还有tanh、ReLU。
Tanh函数可以看作sigmoid函数的变形:先平移,再拉伸。目的是将平均值从0.5调整到0,主要使用在隐藏层中。
如上图所示,无论是tanh还是sigmoid函数,在到达一定值后,函数的斜率会接近于0,这会降低梯度下降算法的效率;因此引入了ReLU函数。
第三章拖得太久了,之前很多细节都忘记了……3.9及之后的小节主要是和数学有关,难度也不大,就不放上来了。这几天把反向传播和梯度下降再整一下,开始第四章。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net