免费网站建设支持ftp,wordpress chess,上海网页制作公司,如何建网站平台卖东西上一周的课程中讲了神经网络的结构以及正向传播(feed forward)过程#xff0c;了解了神经网络是如何进行预测的#xff0c;但是预测的结果怎么和真是结果进行比较以及发现了错误如何修改还没有提及。这一周的课程中#xff0c;介绍了cost function作为结果比较的标准以及bac… 上一周的课程中讲了神经网络的结构以及正向传播(feed forward)过程了解了神经网络是如何进行预测的但是预测的结果怎么和真是结果进行比较以及发现了错误如何修改还没有提及。这一周的课程中介绍了cost function作为结果比较的标准以及backpropagation方法作为错误修改的方式。1 Cost FunctionLinear regression使用平方差来表示结果之间的差距Logistic regression使用negative log来表示结果之间的差距Neural network实际上就是k个Logistic regression的一个集合所以其cost function也是negative log的一个集合。整个网络产生的error其实就是每一个Logistic regression产生的error的和。2 Backpropagation在Logistic regression中模型是向着error的负梯度方向更新的所以需要计算cost function的梯度这在Neural Networks中也是如此只不过这次的权值θ多了一些需要一层一层慢慢求解了。假设神经网络有4层先来回顾一下一条训练数据的正向传播的情况这次我们不把bias直接加到矩阵中去了把它拿出来令为b(i)是一个列向量至此所有的偏导都求完了总结一下3Gradient Checking如果梯度计算不正确那整个模型都错了。最惨的是在训练了几个小时之后发现梯度算错了。所以梯度计算完之后需要验算一下对不对。梯度可以如下约等于验算过程如下4Random Initialization模型中权重和偏置的初始值可以随便设成任何数字但是设置成什么样直接决定了模型收敛的快慢和程度进而影响模型的performance。把权重和偏置初始化为0非常不好。因为在前向传播过程中全部初始化成0则结果就是0在得到残差之后反向传播过程中残差根据权重进行分配因为权重全部为0所以隐藏层的残差为0即权重不更新所以不能全部初始化成0权重为0的神经元是死掉的是不会更新的。另外全部初始化成同样的数字也是不好的模型将一直以同样的方式更新这些神经元。反向传播过程中残差根据权重进行分配因为权重都相同所以权重的更新也是相同的所以网络中的每一个神经元都是一样的。一般从均匀分布中随机初始化权重和偏置比如