建模过程
1、定义模型结构:如激活函数的选取,神经网络的层数等。其中,输入层的节点数需要与特征的维度匹配,输出层的节点数要与目标的维度匹配。而中间层的节点数,可通过Grid Search(网格搜索)选取表现最好的节点个数。
2、初始化模型参数:以logistic regression为例,只需初始化W和b为0就可以了,并且不需要加入一些抖动;
3、进行num_iterations次循环:
- 前向传播:计算当前的代价,假设样本的预测目标为 ,真实目标为 。那么,我们定义一个损失函数为: 。目标:优化参数,使得损失函数最小。
- 反向传播:计算当前的梯度
- 梯度下降:更新权重
直到iteration结束,或者梯度近似为零、参数不再变化为止。
代码实现可参考:
Keras —— 基于Mnist数据集建立神经网络模型
神经元
这是一个最简单的神经元,模型的输入是x1,x2,x3通过参数(权重)θ1,θ2…,并使用逻辑函数激活(压缩),得到输出结果。
神经网络
下图为一个三层神经网络模型。第一层为输入层,第二层为隐藏层,第三层为输出层。 每条边上有一个权值 。偏置节点为+1(即 )
(j)表示第j层的,第i个神经元
(j):第j层到第j+1层单元的权值矩阵
:激活函数