点头出品,必属精品!!!嘿嘿嘿( ̄y▽, ̄)╭
神经网络
一、线性模型
多元线性模型:$$y = w_1x_1+w_2x_2+...+w_nx_n+b$$
其中\(w\)是权重,表示当前权重对应变量\(x\)关于\(y\)的影响程度,\(b\)表示当前线性模型所代表的偏差,其参数\(w\)和\(b\)的求解可以使用最小二乘法,详细过程就不写了,电脑上是真的麻烦!
他的扩展就是广义线性模型,也就是神经网络里在加权求和操作之后的激活函数,其作用是给线性模型引入非线性的关系,使其在神经网络里能够拟合非线性的函数。
二、BP神经网络
BP神经网络也叫做全连接神经网络,整个神经网络包含输入层,隐藏层以及输出层,其特点就是除了输出层和输入层以外的其他神经元的输入都与上一层所有神经元相连。
激活函数
常见的激活函数有\(sigmoid\)函数$$f(x) = \frac{1}{1+e^{-z}}$$,常被使用在二分类任务,缺点是没有分布在0的两侧且容易出现梯度消失现象。
\(tanh\)函数:$$tanh(x)=\frac{(ex-e)}{(ex+e)}$$,比sigmoid要好点,但还是容易发生梯度消失或梯度爆炸的问题。
最常用的是\(relu\)函数:$$f(x)=max(0,x)$$,优势在于该函数就像生物受刺激时的电位的变化一样,能够为神经网络引入非线性的因素,让其能够拟合任意复杂的非线性函数,并且在大于0的情况下导数不会消失,造成梯度消失或梯度爆炸的问题。
三、过拟合与欠拟合
过拟合的表现为往往为训练集上表现良好而验证集上表现较差,泛化能力弱,其本质是由于模型对于数据的拟合能力太强且数据量过少导致过度学习了数据中不重要的部分。
欠拟合表现为训练集和验证集表现都不好,往往是由于模型的拟合能力不够好且数据过大不足以挖掘数据更深的内在联系导致的。
过拟合与欠拟合主要与数据以及模型容量(模型的拟合能力)有关,模型容量即拟合函数的能力,高容量即拟合能力强,低容量即拟合能力弱。
上边是从模型容量以及数据的角度解释过拟合以及欠拟合现象。其实也可以用训练误差和泛化误差来解释,训练误差就像是偏差,泛化误差就像方差一样。
由上图可以看出,过拟合导致泛化误差较大但训练误差较小,也就是泛化能力弱,但在训练集上的误差小,欠拟合是两种误差都很大。
重点在于如何处理过拟合和欠拟合这两种现象。
过拟合的处理方法:
- 正则化
- 降维
- 数据增强
- 集成方法
欠拟合的处理方法:
- 添加新特征(特征工程)
- 增加模型容量,即加强模型的拟合能力,这里可以从模型的复杂度以及参数量进行优化
- 减小正则项系数,降低正则化带来的影响
四、迁移学习
迁移学习能够将适用于大数据模型迁移到小数据上,也就是说在数据量较少时可以考虑白嫖别人的模型。这里考虑的就是该白嫖什么样的模型,怎么样白嫖。
主要分为这几类:
- 按照特征分类的迁移学习-具有共同特征,交叉特征,任务目标类型相似。
- 基于实例的迁移学习-感觉就是白嫖数据
- 基于关系的迁移学习-这是靠脑洞吧,感觉由相似的关联就可以迁移
总结:以上无外乎就是白嫖数据,白嫖神经网络中的参数,网络结构,白嫖想法。