【周末AI课堂】理解变分自编码器 | 机器学习你会遇到的“坑”( 九 )

 

的项 , 则可以被理解为均值的正则化项 , 使得模型偏好于均值为零的参数 。

到目前为止 , 我们就可以粗略地实践一个非常简单的VAE , 首先我们面临

的采样问题 , 我们可以从利用keras的后端 , 生成服从标准正态分布的变量 , 并将其写作一个函数 , 模型每向前传播一次 , 就调用一次:

from keras import backend as K

defsampling(args):
    z_mean z_log_sigma = args
    epsilon = K.random_normal(shape=(dim)mean=0 std=1)
return(z_mean + (z_sigma) * epsilon)

接下来 , 我们需要定义好Loss , 需要利用在隐层的变量 , 所以我们仍然将其写作一个函数 , 在模型内部去调用它:

from keras import binary_crossentropy

defvae_loss(x y):

推荐阅读