Keras深度学习--多层感知器

推荐书籍:魏贞原《深度学习,基于Keras的Python实践》

人工神经网络也被称为多层感知器(MLP, Multilayer Perceptron), 是一种前馈人工神经网络,将输入的多个数据维度映射到单一的输出数据维度上,它模仿生物大脑模型来解决困难的计算任务,具有良好的鲁棒性,其中,感知器是单个神经元模型,是大型网络的基石。

神经网络的一个重要特性是能够从样本数据中学习,这个学习过程实质是在不断优化各个节点权值,当这些权值收敛到一定程度时,学习过程结束,之后将网络模型对真实数据进行预测,预测结果作为判断网络模型的标准。神经网络的预测能力取决于网络的深度(层数)和多层结构(形状)

神经元(Neuron)

神经元是网络中的基本模块,具有加权输入,使用激活函数来产生输出信号的基础计算单元。输入可以类比为生物神经元的树突,输出可对比为生物神经元的轴突,而处理计算过程可类比为细胞核

权重(Weights)与偏差(Bias)

在数据输入神经元时,它会乘以一个权重。初始化时随机分配权重,在模型训练过程中利用反向传播来更新这些权重,直至权重值收敛,在完成网络的学习后,对于权重值较大的节点,会认为是较为重要的特征信息,而为0的权重则意味着对应特征信息微不足道
除权重外,另一个被应用于输入的线性分量被称为偏差,它被加到权重×输入值中,目的是改变权重与输入相乘所得结果的范围。

激活函数(Activation Function)

激活函数是加权输入与神经元输出的简单映射
最常用的激活函数为sigmoid, ReLU和softmax函数

神经网络

当神经元被布置为神经元网络时,一排或一列神经元称为一层网络,一个网络可以有多层,其架构通常被称为网络拓扑。
按照功能可分为三种类型:输入层,隐藏层,输出层。
输入层:从数据中获取输入,将输入值传递到下一层
隐藏层:不直接暴露在网络外部,完成对数据的转换,多层神经网络即指隐藏层存在2层以上的网络,其本质是复杂函数拟合
输出层:最后的隐藏层,负责输出与项目问题所需格式相应的值或向量

训练神经网络

准备数据
准备网络学习的数据过程是将应用场景问题中的特征信息进行数字化的过程,将现实场景中的各种信息转换成数值,输入网络。

梯度下降
是一个找到局部最优解的优化算法

损失函数
也被称为成本函数,用来衡量网络的准确性,在输出结果与真实信息差别大的时候用来惩罚网络,运行网络的最终目的是提高预测精度,使得输出误差小,最优化的输出是损失函数值最小的输出。

更新权重值
针对训练中的错误结果输出,我们需要更新网络节点的加权,为了提高更新的效率,使用少量样本对权重进行更新,即设置一个相对较小的批处理大小(batch_size),如数十或几百个样本。权重的更新受控于步长(学习率),此外更新参数还可设置其他配置参数。

预测新数据
网络训练完成后,就要开始对新数据进行预测以检验模型的优劣。

你可能感兴趣的:(Keras深度学习--多层感知器)