前言
深度学习是一种基于神经网络的机器学习算法,其核心在于构建由多层神经元组成的人工神经网络,这些层次能够捕捉数据中的复杂结构和抽象特征。神经网络通过调整连接各层的权重,从大量数据中自动学习并提取特征,进而实现预测或分类等任务。
一、神经网络结构
- 神经网络的基本组成包括输入层、隐藏层和输出层。
- 输入层:接收外部数据输入,每个节点(神经元)代表数据的一个特征。
- 隐藏层:神经网络中的中间层,可能有一个或多个。每个隐藏层由若干神经元组成,每个神经元接收前一层所有神经元的输出,经过权重和偏置的线性组合后,通过激活函数处理产生输出。
- 输出层:产生神经网络的最终输出,输出节点的数量取决于问题的类型。例如,在分类问题中,输出层的节点数通常等于类别的数量。
- 如下图所示:
二、权重和激活函数
-
权重(Weights):权重是神经网络中连接神经元(节点)的参数的集合。在神经网络的前向传播过程中,权重与输入数据相乘(并可能加上一个偏置项bias),然后将结果传递给激活函数。权重在网络的学习过程中(即训练过程中)会被更新,以最小化网络的实际输出与期望输出之间的差异。
- 初始化:在开始训练之前,权重通常会被初始化为小的随机数,以避免网络陷入局部最优解或训练过程中的数值问题。
- 学习:在训练过程中,通过反向传播算法和某种优化算法(如梯度下降)来更新权重。权重更新的目的是最小化网络的损失函数。
-
激活函数(Activation Functions):激活函数是神经网络中神经元的一种非线性变换函数,用于将神经元的输入(即加权和)映射到输出。激活函数的作用是引入非线性因素,使得神经网络能够学习和表示复杂的数据模式。
-
所以神经网络的本质其实是:通过参数与激活函数来拟合特征与目标之间的真实函数关系
-
下面是加权求和的推到过程和神经网络实现的过程图:
- 这里的每个连接上的w值就是权重的值
- 每个特征值与各自连接上的权重值相乘再求和便是加权和
- 加权和的结果传输给每个神经元,再映射到神经元中的激活函数中,得到输出结果
- 实际上如果只有单个的神经元,那么这样的实现过程与线性回归的过程基本一致
- 当我们在输入层和输出层中加入隐藏层,引入多个神经元,则可以实现多维度的非线性回归和分类问题
三、注意
- 1、设计一个神经网络时,输入层与输出层的节点数往往是固定的;中间层(隐藏层)则可以自由指定,较好的方法就是预先设定几个可选值,通过切换这几个值来看整个模型的预测效果,选择效果最好的值作为最终选择。
- 输入层的节点数:与特征的维度匹配
- 输出层的节点数:与目标的维度匹配
- 2、神经网络结构图中的拓扑与箭头代表着预测过程时数据的流向,跟训练时的数据流有一定的区别;
- 3、结构图里的关键不是圆圈(代表“神经元”),而是连接线(代表“神经元”之间的连接)。每个连接线对应一个不同的权重(其值称为权值),这是需要训练得到的。