tensorflow-yolov3
tensorflow-yolov3 copied to clipboard
focal loss的问题
根据focalloss的原理 应该写成如下形式 focal_loss = tf.abs(target - alpha) * tf.pow(tf.abs(target - actual), gamma)
正样本时为 (1-alpha) * tf.pow(actual, gamma)
负样本时为 (alpha) * tf.pow((1-actual), gamma)
假如按照你的写法 focal_loss = alpha * tf.pow(tf.abs(target - actual), gamma) #正样本时为 (alpha) * tf.pow(actual, gamma) #负样本时为 (alpha) * tf.pow((1-actual), gamma) 起不到平衡正负样本作用
根据focalloss的原理 应该写成如下形式 focal_loss = tf.abs(target - alpha) * tf.pow(tf.abs(target - actual), gamma)
正样本时为 (1-alpha) * tf.pow(actual, gamma)
负样本时为 (alpha) * tf.pow((1-actual), gamma)
假如按照你的写法 focal_loss = alpha * tf.pow(tf.abs(target - actual), gamma) #正样本时为 (alpha) * tf.pow(actual, gamma) #负样本时为 (alpha) * tf.pow((1-actual), gamma) 起不到平衡正负样本作用
+1 我也发现这个问题了
根据focalloss的原理 应该写成如下形式 focal_loss = tf.abs(target - alpha) * tf.pow(tf.abs(target - actual), gamma)
正样本时为 (1-alpha) * tf.pow(actual, gamma)
负样本时为 (alpha) * tf.pow((1-actual), gamma)
假如按照你的写法 focal_loss = alpha * tf.pow(tf.abs(target - actual), gamma) #正样本时为 (alpha) * tf.pow(actual, gamma) #负样本时为 (alpha) * tf.pow((1-actual), gamma) 起不到平衡正负样本作用
+1 我也发现这个问题了
作者这里用的应该是
平衡比例的alpha没有用到(func focal()里面alpha=1)
如果是用下式的话
我认为conf_focal = tf.abs(1.0 - target - alpha) * tf.pow(tf.abs(target - pred), gamma)
这里α取多少比较好呢
0.25