这节课里面讲了下线性回归的例子,介绍了几种常见的优化算法
在对数据进行线性拟合后,发现error较大,因此提出了huber loss。
huber loss是在robust regress(稳健回归?)中用到的损失函数,相比平方误差而言,对离散值具有更低的敏感度。
在距离均值较远的地方,是线性的。下图是Huber loss (green, δ = 1) squared error loss (blue)
那么,在tensorflow中如何完成huber loss呢?
def huber_loss(labels, predictions, delta=1.0):
residual = tf.abs(predictions - labes)
condition = tf.less(residual, delta)
small_res = 0.5 * tf.square(residual)
large_res = delta * residual - 0.5 * tf.square(delta)
return tf.select(condition, small_res, large_res)
tensorflow会根据你所用的op,自动进行backpropagation操作。
另外在feed数据的时候,要一个batch一个batch地训练。