提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
本文主要阐述神经网络,希望对大家对于神经网络的理解有帮助。
提示:以下是本篇文章正文内容,下面案例可供参考
一、线性模型
想要了解神经网络,就先要从线性模型说起。
在之前的文章中,线性模型是用于回归分析的学习器,核心就是计算y=wx+b中的w,b把这两个参数学习出来整个学习器就学习好了。但是我们的学习模型是怎么去调整这个w和b这两个参数的,之前提到过损失函数,也就是均方误差,只要让均方误差达到尽可能的小,那么这个学习器的参数是比较合理的,这里就引入梯度下降的概念,对均方误差求偏导,我们知道导数反应的是函数的变化速率,只要按照变化速率最大的方向走,那么学习器很快就能达到低点。这就是梯度下降法,你只需要再加一个合适的学习率就行,这个学习率就是帮你确定往变化最大的方向走多少。
这个方法听起来很完美,但也仅仅是对于线性模型而言,因为梯度下降只能确定一个局部最小值,那如果遇到的是有多个极值的模型,就不好确定了。
当然对于梯度下降这个方法有累计梯度下降,随机梯度下降,批梯度下降三种方法,主要逻辑是由于样本数量的多少。
累计梯度下降是计算所有样本的均方误差,在优化参数。
随机梯度下降是计算一个样本的均方误差,优化参数。
批梯度下降是计算若干个样本的均方误差,去优化参数。
二、逻辑回归
之前在分类任务时介绍了逻辑回归,逻辑回归本质上来说就是线性模型的变种,具体可以去看逻辑回归和线性模型的公式。
对于分类问题,可以用交叉熵作为损失函数,去度量学习器的能力,交叉熵公式如下
当使用过多特征,会导致参数权重过大,模型会出现过拟合的问题。
为了综合损失函数和权重,提出正则化处理,这样能够调和,一方面让损失函数小,另一方面也可以控制参数的权重
三、神经网络
前面的线性模型和逻辑回归都是为了给神经网络做铺垫,神经网络示意图
输入层就是原始的特征,经过特征组合再用逻辑回归器进行分析,这就是神经网络,在图中可以看到有一个隐藏层,这里的节点就是一个个不同的逻辑回归器,输出的结果又会作为下一层的输入,这便是神经网络。
每个神经元都是逻辑回归,由两部分组成第一部分是线性变换,然后是s变换,s变换在神经网络叫激活函数。
激活函数常用ReLU,sigmod
反向传播:根据损失函数修正神经元的权重,不同的问题可以用不同的损失函数,方向传播本质都一样,求偏导数,对于多个神经元,用链式法则即可。
当然之前就提到过梯度下降是有缺陷的,这里可以进行改进,第一个改进就是学习率的改进
adam实现梯度下降,当损失函数出现摇摆时降低学习率,因为这个时候损失函数在最低点左右反复横跳。
第二个改进就是解决过拟合问题,第一个方法就是和逻辑回归一样在损失函数加正则化,去控制参数的权重。第二个方法就是dropout,即在驯练的过程中遮盖一部分神经元让其不参加训练,在测试的时候才动用全部神经元,能够达到更好的效果。
总结
提示:这里对文章进行总结:
简述线性模型,逻辑回归,神经网络。