自编码器:去噪与变分的探索
1. 去噪自编码器
去噪自编码器的工作方式与标准自编码器类似,其隐藏层使用非线性激活函数。不同之处在于,它不是将原始输入 $x$ 输入网络,而是输入加噪后的 $x$,记为 $\tilde{x}$。在计算重构误差时,将输出层的重构图像与实际输入 $x$ 进行比较。其核心思想是,从含噪数据中学到的隐藏结构足够丰富,能够重构出原始数据。因此,这种自编码器可用于减少数据中的噪声,因为它能从隐藏层学习到数据的稳健表示。例如,若图像因某种失真而模糊,去噪自编码器可用于去除模糊。只需引入一个随机噪声添加单元,普通自编码器就能转换为去噪自编码器。
对于图像,去噪自编码器的隐藏层可以使用卷积层而非标准神经单元,这样能确保在定义自编码器网络时不破坏图像的拓扑结构。
1.1 TensorFlow 实现去噪自编码器
以下是使用 TensorFlow 实现去噪自编码器的详细代码:
from tensorflow.keras import layers, Model
from skimage import transform
import numpy as np
import matplotlib.pyplot as plt
class encoder(Model):
def __init__(self):
super(encoder,self).__init__()
self.conv1 = layers.Conv2D(filters=32,kernel_size=5,strides=(2,2), padding='SAME')
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



