晋中市科技馆网站建设,wordpress超炫模板,上海网站建设公司指南,装修建材网站一、代价函数 首先引入一些便于稍后讨论的新标记方法#xff1a;假设神经网络的训练样本有m个#xff0c;每个包含一组输入x和一组输出y#xff0c;L表示神经网络层数#xff0c;表示该层的神经元个数#xff0c;将神经网络的分类定义为两种情况#xff1a;二类分类和多类…一、代价函数 首先引入一些便于稍后讨论的新标记方法假设神经网络的训练样本有m个每个包含一组输入x和一组输出yL表示神经网络层数表示该层的神经元个数将神经网络的分类定义为两种情况二类分类和多类分类
二类分类
K类分类表示分到第i类
回顾逻辑回归问题中我们的代价函数为 在逻辑回归中我们只有一个输出变量又称标量scalar即只有一个因变量。在神经网络中我们可以有很多输出变量我们的是一个维度为的向量并且我们训练集中的因变量也是同样维度的一个向量因此我们的代价函数会比逻辑回归更加复杂一些表示为 这个看起来复杂很多的代价函数背后的思想还是一样的我们希望通过代价函数来观察算法预测的结果与真实情况的误差有多大。唯一不同的是基本上我们可以利用循环对每一行特征都预测个不同结果然后再利用循环在个预测中选择可能性最高的一个将其与中的实际数据进行比较其中正则化的那一项排除了每一层的
二、反向传播算法BP 之前我们在利用神经网络预测结果的时候我们采用了一种正向传播算法我们从第一层开始正向一层一层进行计算直到最后一层的现在为了计算代价函数的偏导数我们需要采用一种反向传播算法也就是首先计算最后一层的误差然后再一层一层反向求出各层的误差直到倒数第二层。下面以一个例子来说明反向传播算法。
假设我们的训练集只有一个实例我们的神经网络是一个四层的神经网络其中K4L4前向传播算法如图所示 重要的是清楚地知道上面式子中上下标的含义
l 代表目前所计算的是第几层
j 代表目前计算层中的激活单元的下标也是下一层的第j个输入变量的下标
i 代表下一层中误差单元的下标是受到权重矩阵中第i行影响的下一层中的误差单元的下标
如果我们考虑正则化处理并且我们的训练集是一个特征矩阵而非向量。在上面的特殊情况中我们需要计算每一层的误差单元来计算代价函数的偏导数。在更为一般的情况中我们同样需要计算每一层的误差单元但是我们需要为整个训练集计算误差单元此时的误差单元也是一个矩阵我们用来表示这个误差矩阵第 l 层的第 i 个激活单元受到第 j 个参数影响而导致的误差我们的算法表示为 即首先用正向传播方法计算出每一层的激活单元利用训练集的结果与神经网络预测的结果求出最后一层的误差然后利用该误差运用反向传播法计算出直至第二层的所有误差。
在求出了之后我们便可以计算代价函数的偏导数了计算方法如下 三、梯度检验 当我们对一个较为复杂的模型例如神经网络使用梯度下降算法时可能会存在一些不容易察觉的错误这意味着虽然代价看上去在不断减小但最终的结果可能并不是最优解。为了避免这样的问题我们采取一种叫做梯度的数值检验Numerical Gradient Checking方法这种方法的思想是通过估计梯度值来检验我们计算的导数值是否符合我们的要求 对梯度的估计采用的方法是在代价函数上沿着切线的方向选择离两个非常近的点然后计算两个点的平均值用以估计梯度。即对于某个特定的 我们计算出在 处和 的代价值是一个非常小的值通常选取 0.001用以估计在 处的代价值 当是一个向量时我们则需要对偏导数进行检验。因为代价函数的偏导数检验只针对一个参数的改变进行检验下面是一个只针对进行检验的示例 最后我们还需要对通过反向传播算法计算出的偏导数进行检验根据上面的算法计算出的偏导数存储在矩阵 中。检验时我们要将该矩阵展开成为向量同时我们也将 矩阵展开为向量我们针对每一个 都计算一个近似的梯度值将这些值存储于一个近似梯度矩阵中最终将得出的这个矩阵同进行比较 四、随机初始化 任何优化算法都需要一些初始的参数到目前为止我们都是初始所有参数为0这样的初始方法对于逻辑回归来说是可行的但是对于神经网络来说是不可行的。如果我们令所有的初始参数都为0这将意味着我们第二层的所有激活单元都会有相同的值。同理如果我们初始所有的参数都为一个非0的数结果也是一样的。我们通常初始参数为正负ε之间的随机值假设我们要随机初始一个尺寸为10×11的参数矩阵代码如下 注意这里的 ε和前面说的梯度检验的ε没有任何关系
五、总结
小结一下使用神经网络时的步骤
网络结构第一件要做的事是选择网络结构即决定选择多少层以及决定每层分别有多少个单元第一层的单元数即我们训练集的特征数量最后一层的单元数是我们训练集的结果的类的数量如果隐藏层数大于1确保每个隐藏层的单元个数相同通常情况下隐藏层单元的个数越多越好因为我们真正要决定的是隐藏层的层数和每个中间层的单元数。
训练神经网络 ①参数的随机初始化 ②利用正向传播方法计算所有的 ③编写计算代价函数 J 的代码 ④利用反向传播方法计算所有偏导数 ⑤利用数值检验方法检验这些偏导数 ⑥使用优化算法来最小化代价函数