深度学习序列——噪声自编码器(WAE)

本文介绍了噪声自编码器WAE的基本原理,通过在输入数据中引入高斯白噪声来提升自编码器的泛化能力和抗干扰性。模型的目标是学习去除噪声后的输出。内容包括模型简介、实现细节及其区别于传统自编码器的地方,并进行了模型测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 模型简介

为了提高自编码器的泛化性能和鲁棒性,在输入的数据中,我们加入高斯白噪声,通过深度网络进行学习,以获取“无噪声”情况下的输出数据——有一点向去除噪声,实际上,最开始通过堆叠的自动编码器实现噪声去除。

2. 模型实现

(注意:模型和AE的区别就是,输入网络的数据是加噪声的数据,代价函数却采用的是无噪声数据进行计算)

# whilt gaussian noise Auto-Encoder 
#
# Author: HSW
# Date: 2018-05-07
#

import tensorflow as tf
import numpy      as np

def axvier_init(fan_in, fan_out, constant = 1):
    ''' Initial weights '''
    low   = -constant + np.sqrt(6.0 / (fan_in + fan_out))
    high =  constant + np.sqrt(6.0 / (fan_in + fan_out))

    return tf.random_uniform((fan_in, fan_out), minval = low, maxval = high, dtype = tf.float32)


class NoiseAutoEncoder(object):

    def __init__(self, AutoEncoder_Shape = (128, 256, 128), transfer_function = tf.nn.softplus, optimizer = tf.train.AdamOptimizer(), sigma = 0.1):
        ''' Constructor Funcion '''
        self.sigma             = sigma 
        self.LayerCnt          = len(AutoEncoder_Shape)
        self.AutoEncoder_Shape = AutoEncoder_Shape
        self.transfer          = transfer_function        
        self.weights           = self.init_weights()
        self.layers            = self.init_layers()
        self.total_loss        = self.init_loss()
        self.optimizer      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值