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 相同.