神经网络:
首先咱们先来回顾一下之前课程所讲前向传播和反向传播知识点,前往传播 就是从输入X到最终得到LOSS值的过程,反向传播 是从最终的LOSS值经过梯度的传播最终计算出权重矩阵W中所有参数对于最终的LOSS值影响大小,更新参数 就是通过不同权重参数对终LOSS值的影响来调节参数,使得咱们的参数矩阵W能够更拟合咱们的数据,也就是使得最终的LOSS值能够降低。这一系列的过程就是相当于完成了一次迭代
神经网络本质
下面咱们就来看看神经网络跟传统的线性分类到底有什么区别,从公式中我们可以看出,一个最明显的区别就是神经网络函数多了一个MAX()计算 也就是说我们咱们现在的函数公式变成了一个非线性的操作,也正是这种非线性的函数使得神经网络相比于传统的线性分类更强大,因为非线性可以使得咱们的函数去拟合更复杂的数据。
神经网络结构
接下来咱们就来看一下神经网络的结构,从途中可以看出,神经网络是一个层次的结构
输入层 也就是代表着数据源
隐层 这个大家理解起来可能有些费劲,咱们可以把隐层当成是中间层也就是在这里对输入数据进行了非线性的变换
激活函数 它是跟隐层在一起的,比如这个MAX()函数就是一个激活函数,正是因为激活函数的存在才使得整个神经网络呈现出一种非线性的模式。
输出层 这个就是最终得到的结果了,比如一个分类任务,最终的输出就是每个类别的概率值了
我们可以看到对应于多层的网络也就是有多个隐层,相当于咱们又加了一层非线性函数MAX() ,这个理解起来很简单了吧,对于深层网络来说,它具有更好的非线性也就是说网络的层数越深就更能够去拟合更复杂的数据。
生物学上的结构
看过很多讲解都提高了把神经网络和人类的脑结构相对比,我觉得这有些增加了游戏难度,因为很多同学本身对生物学结构就不是很清楚,又搞了这多名词出来,理解起来好像更费劲了,这里咱们就不说生物学结构了,直接看右半部分,和之前的线性分类***的区别就是我们多了一个activation function 也就是咱们刚才所说的激活函数,可以说正是激活函数的存在使得整个神经网络变得强大起来。
神经元
那么神经网络能表达多复杂的数据信息是由什么决定的呢?这个例子给了咱们很好的解释,神经网络是表达能力是由神经元的个数,也就是每一个隐层所函数神经元的个数来决定的,神经元越多,层数越深表达的能力也就越强,理论上我们认为神经元越多越好!
防止过拟合
咱们刚才说了神经网络具有很强的表达能力,但是也很危险的,就是说神经网络很容易发成过拟合现象,因为咱们有大量的神经元也就是导致了我们需要的参数是极其多的,那么该怎么办呢?最直接的方法就是加上正则化项,它可以使得咱们的神经网络不至于过拟合很严重也是咱们训练神经网络必做的一项,图中显示了正则化的作用!
【本文是51CTO专栏作者唐宇迪的原创稿件,转载请注明出处】