cost = tf.reduce_mean(tf.square(error))
train_op = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
发生的运算为:error向量或多维向量(1)先求每个元素平方(2)然后求平均值,而后用梯度下降的方法最小化cost,命名op是算子,operator。好的命名习惯起初费劲后期轻松。
上述两行即是MSE sence optimization。Mean Square Error,平方是为了求导方便。
————————————————————
cost = tf.reduce_sum(tf.nn.softmax_cross_entropy_with_logits(logits,labels))
train_op = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
上述两行是交叉熵最小意义的优化,损失函数调用了tf.nn包的函数,参数logits为前向网络输出值,labels的格式类似[0,0,0,1,0,0,0,0,0,0]。具体发生的运算为
式中,y'为labels,x为logits。交叉熵H是一种信息量,而softmax算子实现(0,1)概率映射。一般训练采用交叉熵均值即,
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits,labels)),其中tf.nn.softmax_cross_entropy_with_logits()只是输出一组向量。
更多数学原理小文请关注公众号:未名方略