高级人工智能之自编码器Auto-encoders

2023-10-14 01:50

本文主要是介绍高级人工智能之自编码器Auto-encoders,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • Traditional (Vanilla/Classical) Autoencoder
  • Variational Autoencoder
    • Kullback–Leibler divergence
    • Reparameterization

这章讲述模型框架和概念的时间较多,好像并没有涉及过多的运算,重在一些概念的理解。

Traditional (Vanilla/Classical) Autoencoder

传统的自编码器常用来进行图像去噪的任务,需要了解其模型架构和流程。

自编码器由两部分组成:从Noisy Input到Z称为编码器,从Z到De-noised Output称为解码器。Input和Output有着相同的维度。
请添加图片描述
自编码器针对输入数据X进行重建,其目的是让X的重建误差最小,这样子能保证输入和输出尽可能地相似。
请添加图片描述
Auto-encoder的训练是一个无监督学习的过程,因为并不需要标记的数据训练。流程如下所示,它将纯净的图像+噪声整体两组数据同时放入Encoder的Input,同时也将纯净的图像放入Decoder的Output,将前向传播训练得出的图像与之前被放在输出口的纯净图像计算误差,从而可以进行反向传播训练。
请添加图片描述

Variational Autoencoder

Variational Autoencoder会从输入的图像中学习概率分布的参数,然后通过这些参数来产生新的图像。从输入的图像X中学到概率分布的变量 μ \mu μ σ \sigma σ,这两组参数分别从hidden-mean-neurons和hidden-variance-neurons中得到, Z Z Z μ \mu μ σ \sigma σ组成的多元高斯分布中随机取样得到,接着放入Decoder进行重建。
请添加图片描述
其训练过程同Auto-encoder一致,在去噪任务中,将噪声图像放入input,纯净图像放入output,通过反向传播进行训练。

其中的关键在于反向传播过程中Loss损失的定义,损失的定义中有两项,先对相关参数进行定义,

q θ ( e n ) ( z ∣ x i ) q_{\theta(en)}(z|x_i) qθ(en)(zxi) 表示接受输入数据 x i x_i xi,返回潜在变量 Z Z Z的概率, Z Z Z是从 μ \mu μ σ \sigma σ组成的多元高斯分布随机产生的, θ ( e n ) \theta(en) θ(en)代表encoder的weights和bias。

P ϕ ( d e ) ( x ^ i ∣ z ) P_{\phi(de)}(\hat x_i |z) Pϕ(de)(x^iz)表示接受潜在变量 Z Z Z产生的Sample,得到输出为 X ^ \hat{X} X^的概率, ϕ ( d e ) \phi(de) ϕ(de)代表decoder的weights和bias。

重建的损失 l i ( θ , ϕ ) = − E x i ∈ X [ E z ∈ Q [ l o g P ϕ ( d e ) ( x ^ i ∣ z ) ] ] l_i(\theta,\phi)=-E_{x_i \in X} \big[E_{z \in Q}[log P_{\phi (de)}(\hat x_i | z)]\big] li(θ,ϕ)=ExiX[EzQ[logPϕ(de)(x^iz)]]需要尽可能地小。由于 P P P为高斯分布,因此可以对上式重写为= 1 N ∑ x i ∈ X ( 1 2 σ x i ^ ∣ z 2 ( x i − μ x i ^ ∣ z ) 2 ) \frac{1}{N}\sum\limits_{x_i \in X}\Big( \frac{1}{2 \sigma^2_{\hat {x_i}|z}}(x_i - \mu_{\hat{x_i}|z})^2\Big) N1xiX(2σxi^z21(xiμxi^z)2).

请添加图片描述

Kullback–Leibler divergence

但是会存在的问题是,虽然整体 l i ( θ , ϕ ) l_i(\theta,\phi) li(θ,ϕ)较小, q θ ( e n ) ( z ∣ x i ) q_{\theta(en)}(z|x_i) qθ(en)(zxi) P ϕ ( d e ) ( x ^ i ∣ z ) P_{\phi(de)}(\hat x_i |z) Pϕ(de)(x^iz)的差异却很大,原因显然是因为它们来自不同的概率分布。因此这里引入了Kullback–Leibler divergence 来衡量两个分布的差异程度,进而 D K L [ q θ ( e n ) ( z ∣ x i ) ∣ ∣ ( N ( 0 , I ) ] D_{KL}\big[ q_{\theta(en)(z|x_i)} || ( N(0,I)\big] DKL[qθ(en)(zxi)∣∣(N(0,I)]衡量了产生图像的分布与标准高斯分布的差异。

最终该模型的Loss定义为 L ( a l l ) = 1 N ∑ x i ∈ X ( 1 2 σ x i ^ ∣ z 2 ( x i − μ x i ^ ∣ z ) 2 ) + D K L [ q θ ( e n ) ( z ∣ x i ) ∣ ∣ ( N ( 0 , I ) ] L^{(all)}=\frac{1}{N}\sum\limits_{x_i \in X}\Big( \frac{1}{2 \sigma^2_{\hat {x_i}|z}}(x_i - \mu_{\hat{x_i}|z})^2\Big)+D_{KL}\big[ q_{\theta(en)(z|x_i)} || ( N(0,I)\big] L(all)=N1xiX(2σxi^z21(xiμxi^z)2)+DKL[qθ(en)(zxi)∣∣(N(0,I)],其物理意义为,在局部的概率分布中,输出与输入之间的误差要尽可能小。
请添加图片描述

Reparameterization

在模型构建的过程中,潜在变量 Z Z Z μ \mu μ σ \sigma σ固定的情况下涉及了随机选择样本点sample的过程,这种随机性导致了不能通过具体的公式来进行反向传播训练,因此引入了reparameterization trick,将随机化进行定量表示. 其将原先平均值为 μ \mu μ,标准差为 σ \sigma σ的高斯分布,表示为 Z = ϵ ⋅ σ x + μ x Z= \epsilon\cdot\sigma_x +\mu_x Z=ϵσx+μx,其中 ϵ ∈ N ( 0 , 1 ) \epsilon \in N(0,1) ϵN(0,1),这样子任意的 Z Z Z都可以通过对 N ( 0 , 1 ) N(0,1) N(0,1)的缩放表示出来。
请添加图片描述
该方法让原先随机化的过程确定化,从而能够进行backpropagation.

请添加图片描述

这篇关于高级人工智能之自编码器Auto-encoders的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/207315

相关文章

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

基于人工智能的智能家居语音控制系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 随着物联网(IoT)和人工智能技术的发展,智能家居语音控制系统已经成为现代家庭的一部分。通过语音控制设备,用户可以轻松实现对灯光、空调、门锁等家电的控制,提升生活的便捷性和舒适性。本文将介绍如何构建一个基于人工智能的智能家居语音控制系统,包括环境准备

Java基础回顾系列-第七天-高级编程之IO

Java基础回顾系列-第七天-高级编程之IO 文件操作字节流与字符流OutputStream字节输出流FileOutputStream InputStream字节输入流FileInputStream Writer字符输出流FileWriter Reader字符输入流字节流与字符流的区别转换流InputStreamReaderOutputStreamWriter 文件复制 字符编码内存操作流(

Java基础回顾系列-第五天-高级编程之API类库

Java基础回顾系列-第五天-高级编程之API类库 Java基础类库StringBufferStringBuilderStringCharSequence接口AutoCloseable接口RuntimeSystemCleaner对象克隆 数字操作类Math数学计算类Random随机数生成类BigInteger/BigDecimal大数字操作类 日期操作类DateSimpleDateForma

从希腊神话到好莱坞大片,人工智能的七大历史时期值得铭记

本文选自historyextra,机器之心编译出品,参与成员:Angulia、小樱、柒柒、孟婷 你可能听过「技术奇点」,即本世纪某个阶段将出现超级智能,那时,技术将会以人类难以想象的速度飞速发展。同样,黑洞也是一个奇点,在其上任何物理定律都不适用;因此,技术奇点也是超越未来理解范围的一点。 然而,在我们到达那个奇点之前(假设我们能到达),还存在另一个极大的不连续问题,我将它称之

Mysql高级篇(中)——索引介绍

Mysql高级篇(中)——索引介绍 一、索引本质二、索引优缺点三、索引分类(1)按数据结构分类(2)按功能分类(3) 按存储引擎分类(4) 按存储方式分类(5) 按使用方式分类 四、 索引基本语法(1)创建索引(2)查看索引(3)删除索引(4)ALTER 关键字创建/删除索引 五、适合创建索引的情况思考题 六、不适合创建索引的情况 一、索引本质 索引本质 是 一种数据结构,它用

[Day 73] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

AI在健康管理中的應用實例 1. 引言 隨著健康管理需求的提升,人工智能(AI)在該領域的應用越來越普遍。AI可以幫助醫療機構提升效率、精準診斷疾病、個性化治療方案,以及進行健康數據分析,從而改善病患的健康狀況。這篇文章將探討AI如何應用於健康管理,並通過具體代碼示例說明其技術實現。 2. AI在健康管理中的主要應用場景 個性化健康建議:通過分析用戶的健康數據,如飲食、運動、睡眠等,AI可

linux高级学习10

24.9.7学习目录 一.线程1.线程API 一.线程 线程与进程的关系: 线程是轻量级进程,也有PCB,只是各自不同,创建线程使用的底层函数和进程一样,都是clone进程可以蜕变成线程线程是最小的执行单位,进程是最小的分配资源单位 1.线程API (1)查看线程号 #include <pthread.h>pthread_t pthread_self(); (2)

Mysql高级教程

1.安装部署 安装依赖性: [root@mysql-node10 ~]# dnf install cmake gcc-c++ openssl-develncurses-devel.x86_64 libtirpc-devel-1.3.3-8.el7_4.x86_64.rpm rpcgen.x86_64 下载并解压源码包 [root@mysql-node10 ~]# tar zx