机器学习之神经网络及python实现

神经网络在机器学习中有很大的应用,甚至涉及到方方面面。本文主要是简单介绍一下神经网络的基本理论概念和推算。同时也会介绍一下神经网络在数据分类方面的应用。首先,当我们建立一个回归和分类模型的时候,无论是用最小二乘法(OLS)还是最大似然值(MLE)都用来使得残差达到最小。因此我们在建立模型的时候,都会有一个lossfunction。而在神经网络里也不例外,也有个类似的lossfunction。

第一层是输入层,第二层是隐藏层,第三层是输出层。在X1,X2经过W1的加权后,达到隐藏层,然后经过W2的加权,到达输出层其中,

机器学习之神经网络及python实现

至此,我们建立了一个初级的三层神经网络。当我们要求其的lossfunction最小时,我们需要逆向来求,也就是所谓的backpropagation。我们要分别对W1和W2进行求导,然后求出其极值。从右手边开始逆推,首先对W2进行求导。代入损失函数公式:然后,我们进行化简:

化简到这里,我们同理再对W1进行求导。

我们可以发现当我们在做bp网络时候,有一个逆推回去的误差项,其决定了lossfunction的最终大小。在实际的运算当中,我们会用到梯度求解,来求出极值点。

总结一下来说,我们使用向前推进来理顺神经网络做到回归分类等模型。而向后推进来计算他的损失函数,使得参数W有一个最优解。当然,和线性回归等模型相类似的是,我们也可以加上正则化的项来对W参数进行约束,以免使得模型的偏差太小,而导致在测试集的表现不佳。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181025A1V1P000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券