感知机 类比 神经元:电信号进入树突,达到一定电位细胞核激活,通过轴突发出电信号,树突具有差异性。
基本感知机:
本质上,从数据集中选取一个样本,并将其展示给算法,然后让算法判断是或不是,即来做预测。
第一步确定样本的特征,所有特征的集合表示为X,每个特征的权重表示为wi,所有权重可统一表示为W;每个特征xi乘以对应的权重wi,然后将这些乘积求和。
设定激活神经元的阈值,一旦加权和超过某个阈值,感知机就输出1,否则输出0。
激活函数:带阈值简单的阶跃函数、sigmoid函数、RELU函数、tanh函数
偏置是神经元中的常用的输入项,和其他输入元素一样,神经元会给偏置一个权重,该权重与其他权重用同样的方式训练。偏置有两种形式:
一种形式是将其表示为输入向量,对于n维输入,在向量 的开头或结尾处增加一个元素,构成一个n+1维的向量。
另一种形式是,将其独立于输入之外,其对应一个独立的权重,将该权重乘以1,然后与样本输入值及其相关权重的点击进行加和。
设置偏置权重的原因是神经元需要对全0的输入具有弹性。如果神经元要学习输出为0,在这种情况下,神经元可以学会减小与偏置相关的权重,使点积保持在阈值以下即可。
感知机如何获得权重?
感知机将权重 的调整看成是给定输入下预测系统正确性的一个函数,从而学习这些权重。权重通常是从正态分布中选取趋近于0的随机值。
学习:通过向系统输入许多不同的样本,并根据神经元的输出是否是我们想要的结果来对权重进行微小的调整。当有足够的样本(且在正确的情况下),误差应该逐渐趋于0,系统就经过了学习。
(关键)每个权重都是根据它对结果误差的贡献程度来进行调整,权重越大,对结果影响越大。
收敛:当一个模型的误差函数达到了最小值,或者稳定在一个值上,该模型就被称为收敛。目标函数或损失函数如何影响神经网络对最优权重的选择。
感知机会用线性方程来描述数据集的特征和数据集中的目标变量之间的关系,这就是线性回归。但感知机无法描述非线性方程或者非线性关系。
当一个感知机收敛,不能说明找到的线性方程有多好,代价有多小;存在着多个可能的极小代价,他只会确定一个由权重初始值决定的、特定的极小值,局部极小值。
基本感知机有一个固有缺陷:如果数据不是线性可分的,模型不会收敛到具有有效预测能力的解。
多层感知机(MLP):
多层反向传播,可以为每个感知机适当地分配误差。
如何更新不同感知机的权重?造成误差的原因是什么?
将一个感知机作为第二个感知机的输入,权重w1i通过下一层的权重w1j和w2j来影响误差,因此我们需要一种方法来计算w1i对误差的贡献,这个方法就是反向传播。
权重是根据他们对整体误差的贡献来更新的。
神经元替代感知机的说法,它将更通用也更强大,包含了感知机。
所有类型的网络都是由一组神经元和神经元之间的连接组成的。常组织成层级结构;如果在神经网络结构中,将一个神经元的输出作为另一个神经元的输入,意味着出现了隐层神经元或者隐藏层,不只是单纯的输入层、输出层。
全连接网络:在全连接网络中,每个输入元素都与下一层的各个神经元相连,每个连接都有相应的权重。因此在一个四维向量为输入、有五个神经元的全连接神经网络中,一共有20个权重。
感知机的每个输入都有一个权重,第二层神经元的权重不是分配给原始输入的,而是分配给来自第一层的各个输出。从这里我们看到计算第一层权重对总体误差的影响的难度。第一层权重对误差的影响并不是只来自某个单独权重,而是通过下一层中每个神经元的权重来产生的。
反向传播是误差反向传播的缩写,其描述了如何根据输入、输出和期望值来更新权重。
反向传播需要一个非线性连续可微的激活函数。为什么:
因为需要让神经元能够模拟特征向量和目标变量之间的非线性关系。之前基本感知机使用的神经元阈值函数是一个非线性阶跃函数。
例如,用平方误差作为代价函数来计算网络的误差,MSE=(y-f(x))2
误差导数,前一层的导数
重要的是明确何时更新权重,在计算每一层中权重的更新时,需要依赖网络在前向传播中的当前状态。一旦计算出误差,我们就可以得到网络中各个权重的更新值,但仍然需要回到网络的起始节点才能去做更新。否则,如果在网络末端更新权重,前面计算的导数将不再是对于本输入的正确的梯度。
另外,也可以将权重在每个训练样本上的变化值记录下来,期间不做任何更新,等训练结束后再一起更新。具体如下:
多种梯度下降算法:
到目前为止,我们一直是把所有训练样本的误差聚合起来然后再做梯度下降,这种方法叫做批量学习。一批是训练数据的一个子集。但是在批量学习中误差曲面对于整个批是静态的,如果从一个随机的起始点开始,得到的很可能是某个局部极小值,从而无法看到其他的权重值的更优解。
第一种方法:随机梯度下降法,在随机梯度下降中,不用去查看所有的训练样本,而是在输入每个训练样本后就去更新网络权重。在这个过程中,每次都会重新排列训练样本的顺序,这样将为每个样本重新绘制误差曲面。不用像之前那样在每个训练周期结束后聚合所有误差再做调整,而是针对每个样本都会去更新一次权重。
第二种方法:更常见的方法,是小批量学习。在小批量学习中,会传入训练集的一个小的子集,并按照批量学习中的误差聚合方法对这个子集对应的误差进行聚合。然后对每个子集按批将其误差进行反向传播并更新权重。下一批重复此过程,重新构成了一个训练周期。
归一化:格式化输入
例,房屋分类,两个数据点:卧室数量和最终售价
当网络在这个数据中进行学习时,在第一层中,为了与取值较大的价格平等竞争,卧室对应的权重必须快速增大。因此,常见的作法是将数据归一化,使不同样本中的每个元素都能保留有效信息。
归一化方法:均值归一化、特征缩放、变异系数
小结
代价函数最小化是一种学习路劲。
反向传播算法是神经网络的学习手段。
权重对模型误差的贡献与其更新量直接相关。
神经网络的核心是优化器。
监控训练过程中误差的逐步降低过程,以避开局部极小值陷阱。