阅读(11.2k) 书签 (0)

TensorFlow Renyi方法的使用

2018-08-30 15:41 更新

tf.contrib.bayesflow.entropy.renyi_alpha

renyi_alpha (  
    step ,  
    decay_time ,  
    alpha_min ,  
    alpha_max = 0.99999 ,  
    name = 'renyi_alpha' 
)

定义在tensorflow/contrib/bayesflow/python/ops/entropy_impl.py

参见指南:贝叶斯熵(contrib)>操作

Renyi 比率适合以指数的方式缩减张量.

当在高维度中当最小化 Renyi 散度为 0≤α<1(或最大化 Renyi 等价 elbo) 时, 在 alpha 远离 1 的时候体验 NaN 和 inf 值的情况并不少见.

出于这个原因,通常需要开始与 alpha 非常接近1的优化,并根据某些时间表将其减少到最终的 alpha_min.在切换到基于 Renyi 的方法之前, 用户甚至可能希望使用 elbo_ratio 进行一些固定时间的优化.

这个操作返回一个逐步以指数方式衰减的 alpha:

s(step)=(exp{step/decay_time } - 1 )/(e -1)  
t(s)= max(0 ,min(s,1)),(smooth growth from 0 to 1 )  
alpha(t)=(1-t)alpha_min + t alpha_max

ARGS:

  • step:非负标量张量,通常是全局步骤或其偏移版本.
  • decay_time:正标量张量.
  • alpha_min:float 或 double 张量;当 step >= decay_time,达到最小的,最终的 alpha 值.
  • alpha_max:张量的 dtype 属性与 alpha_min 相同;当 step == 0,alpha 达到最大,最初的值
  • name:给该操作提供一个名字.

返回:

  • alpha:张量的 dtype 属性与 alpha_min 相同.