收藏 分销(赏)

AI建模师素养手册:AIGC的基础AE模型.pdf

上传人:宇*** 文档编号:3146560 上传时间:2024-06-20 格式:PDF 页数:16 大小:949.01KB
下载 相关 举报
AI建模师素养手册:AIGC的基础AE模型.pdf_第1页
第1页 / 共16页
AI建模师素养手册:AIGC的基础AE模型.pdf_第2页
第2页 / 共16页
AI建模师素养手册:AIGC的基础AE模型.pdf_第3页
第3页 / 共16页
AI建模师素养手册:AIGC的基础AE模型.pdf_第4页
第4页 / 共16页
AI建模师素养手册:AIGC的基础AE模型.pdf_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、AIGC 的基础:AE 模型 1 AI 建模师 素养手册AI 建模师 素养手册AIGC 的基础:的基础:AE(Autoencoder)模型模型 1.1 前言 1.2 AE:有 ML 瑞士刀(1.1 前言 1.2 AE:有 ML 瑞士刀(Swiss Army Knife)之称 1.3 使用 Keras 与 TensorFlow 1.4 介绍 Kears+TensorFlow 的语法 之称 1.3 使用 Keras 与 TensorFlow 1.4 介绍 Kears+TensorFlow 的语法 2 By高焕堂 *本文摘自本文摘自 高焕堂高焕堂 的下列的下列书籍书籍*以及北京【电子世界杂志】连载专

2、栏以及北京【电子世界杂志】连载专栏*1.1 前言 Al 建模技术(Modeling Techniques)是衔接行业大数据与算法编程的桥梁。它基于行业大数据的特性,而以高超的编程技能,将多个算法组件进行创新组合,并以大数据加以训练,来生成智能型系统提供精准的商业服务。例如,潜藏空间向量(Latent Space Vector)就如同原子,而AE(Autoencoder)就如同细胞,其创新组合成形形色色的 ML(Machine Learning)模型,组合过程必须符合自然生物的新陈代谢、生生不息、无尽繁荣的生命力美学。我们则培养高超的 TensorFlow&Python 编程枝能,来实践其形形色

3、色的创新组合,并呈现出白里透红的美感。AIGC 的基础:AE 模型 3 1.2 AE:有 ML 瑞士刀之称 自 编 码(AE:Autoencoder)是很简单又通用的 AI 模型。于2020/11/18 日,Pawe Sobel 发表了一篇文章:”Autoencoder:Deep Learning Swiss Army Knife”。在这文章里,他提到:由于其用途非常广泛,所以称之为:AI 建模瑞士刀。俗语说:。意思是从小小一朵花,就能看到宇宙的奥妙。同样地,我们就从小小的 AE 模型,也能掌握整个 AI 建模的奥秘。https:/fingerprints.digital/autoencode

4、r-deep-learning-swiss-army-knife/于是,我们就从 AE 出发,循序渐进,顺利登入的 AE 建模的天堂。4 By高焕堂 1.3 使用 Keras 与 TensorFlow 现在,就要来介绍及应用全球最著名的专业 AI 机器学习(训练)环境是:Google 公司的 TensorFlow。它是由 Google 开发的开源链接库,是当今很流行的机器学习库之一。Google 公司本身也大量使用 Tensorflow 来实现机器学习,并实际应用于 Google 照片或语音的搜索功能上。“TensorFlow”这个名字是源自”tensor”(张量)与”flow”(数据流)两个

5、字的结合。意味着利用数据流图(Data Flow Graphs)来表达 N 维数据数组的数学运算,这些流动(被运算)的 N 维数据数组,就是张量(Tensor)。其灵活的运算架构具有跨平台运算、多核(CPU 或 GPU)分散运算等特色,让它成为当今最流行的 AI 机器学习环境。TensorFlow 愈来愈流行了,它让 AI 机器学习的门坎变得越来越低。对于一般拥有程序开发经验的专业人士而言,只要具备 Python 和 AI 机器学习的基础,就能使用它来训练神经网络(NN)模型,并且大大简化了程序开发的工作。此外,在本节里则更进一步,介绍 Keras 来提供简洁的 API,让您在撰写 Pytho

6、n 程序时,能轻松地操作 TensorFlow,来进行 NN 模型的建立、训练和预测。1.4 介绍 Keras+TensorFlow 的语法 1.4.1 以 AE(Autoencoder)模型为例 于此就来介绍一个简单有趣的 AutoEncoder(自编码器)模型,其简称AE 模型。AE 模型的基本运算关系是:将输入X数据经由 Encoder可计算出 H;并能将 H数据经由 Decoder的计算而得到输出数据 Y。而且,这输出资料 Y 可以非常接近于输入AIGC 的基础:AE 模型 5 数据 X。其主要功能是:将高维度的 X 数据,转换(压缩)为低维度的 H。然后,可以再从低维度的 H 还原回

7、来高维度的 Y,并且 Y 与 X 极为类似。如下图所示:其中,Encoder 包含一组 W 值(即 weights)和 B 值(即 bias)。其计算公式为:X*Wh+Bh=H,如下图所示:6 By高焕堂 一样地,Decoder 则包含另一组 W 值(即 weights)和 B 值(即 bias)。其计算公式为:H*Wo+Bo=Y,如下图所示:当预测值 Y 愈接近于 X,就表示这模型的准确度愈高。1.4.2 展开训练:使用 TensorFlow 刚才是基于 Encoder 将 X 转换成为 H,再透过 Decoder 将 H 传换成为 Y。那么,如何获得 Encoder(里的 Wh 和 Bh

8、值)呢?又如何获得Encoder(里的 Wo 和 Bo 值)呢?答案是:拿一群 X 资料来让它(即这个AutoEncoder 模型)学习,或称为训练。在训练过程中,它会逐步探索而寻找出适合的 Wh、Bh、Wo 和 Bo值。首先设定:T(目标值)=X(输入值)。如下图:AIGC 的基础:AE 模型 7 接下来,就撰写 Python 程序代码,如下:#px01_01.py import keras import numpy as np from keras.models import Sequential from keras.layers import Dense from keras.opti

9、mizers import SGD#输入值 X=np.array(1,0,0,1,dtype=np.float32)8 By高焕堂#目标值 T=X T=X#Encoder 的 W&B 初期值 Encoder_init=np.array(0.1,-0.1,dtype=np.float32),np.array(0.0,dtype=np.float32)#Decoder 的 W&B 初期值 Decoder_init=np.array(0.1,-0.1,dtype=np.float32),np.array(0.0,0.0,dtype=np.float32)#定义 Hidden 层 dh=Dense(1

10、,activation=linear,input_dim=2)#定义 Ouput 层 d=Dense(2,activation=linear,input_dim=1)#定义 NN 模型 model=Sequential()model.add(dh)model.add(d)pile(loss=mse,optimizer=SGD(lr=0.025),metrics=accuracy)AIGC 的基础:AE 模型 9#把 Encoder 和 Decoder 的 W&B 初期值,设定给这 NN 模型 dh.set_weights(Encoder_init)d.set_weights(Decoder_i

11、nit)#展开训练 150 回合 model.fit(X,T,1,150,0,shuffle=False)print(n-使用 TensorFlow/Keras-)print(n=训练结果=)#从 NN 模型取出训练好 Encoder(即隐藏层的 W&B)Wh=dh.get_weights()0 Bh=dh.get_weights()1 print(Wh:,np.round(Wh,2)print(nBh:,np.round(Bh,2)#从 NN 模型取出训练好 Decoder(即输出层的 W&B)Wo=d.get_weights()0 Bo=d.get_weights()1 print(nWo

12、:,np.round(Wo,2)print(nBo:,np.round(Bo,2)print()#-Predict-yh=np.dot(X,Wh)+Bh yo=np.dot(yh,Wo)+Bo print(n-预测值-)10 By高焕堂 print(np.round(yo,1)#End 此程序输出如下:现在来说明这个程序的内容,首先看到指令:X=np.array(1,0,0,1,dtype=np.float32)设定输入值 X为二维的数组。接着,指令:T=X 其设定:T(目标值)=X(输入值)。然后,指令:Encoder_init=np.array(0.1,-0.1,dtype=np.floa

13、t32),np.array(0.0,dtype=np.float32)是定义 Encoder 里 Wh 和 Bh 的起始值。如下图:AIGC 的基础:AE 模型 11 以及,指令:Decoder_init=np.array(0.1,-0.1,dtype=np.float32),np.array(0.0,0.0,dtype=np.float32)是定义 Decoder 里 Wo 和 Bo 的起始值。如下图:12 By高焕堂 接着,就使用 Keras/TensorFlow 来定义这个 AE 模型,然后进行训练。指令如下:dh=Dense(1,activation=linear,input_dim=

14、2)这定义隐藏层,其参数说明了:2 维的输入层,1 维的隐藏层,采线性对应,不须激活函数。d=Dense(2,activation=linear,input_dim=1)这定义输出层,其参数说明了:1 维的隐藏层,2 维输出层,采线性对应,不须激活函数。接着,就将这些层(Layer)串接起来,成为一个多层级的神经网络(Neural Network,简称 NN)模型。如下述指令:model=Sequential()AIGC 的基础:AE 模型 13 model.add(dh)model.add(d)pile(loss=mse,optimizer=SGD(lr=0.025),metrics=acc

15、uracy)这个 NN 模型的各层串接好了之后,还需要设定一些参数,以便对网络的学习过程进行配置,这个动作称为:编译(Compile)。例如,设定损失函数为:均方误差(Mean Square Error,简称:MSE)。也就是预测值和目标值之间误差平方的平均值。还需要选择优化器(Optimizer),在 Keras 里有许多种优化器。在本文里选取 SGD 优化器,也就是准确率梯度下降法(Stochastic Gradient Decent),是一种最常见的梯度下降(Gradient Decent)方法,它在训练过程中会利用微分方法来找出调整误差的梯度,往梯度相反的方向去更新W 和 B,让预测值

16、与目标值之间的误差逐渐缩小。同时也设定学习率(Learning Rate)为:0.025。学习率用来调整模型的学习进度,它会影响循着梯度下降方向移动的幅度,如果学习率小,表示对神经网络进行较小的权重更新幅度,训练变得缓慢;然而学习率大,可能导致无法迅速收敛。最后,选择准确度的评估模式,在本文里选择最常用的评估模式:metrics=accuracy。模型参数设定好了,亦即经过编译(Compile)了。表示模型已经设计完成了,就可以准备来训练它了。这个准备动作里,首先来设定 Encoder 和 Decoder 里的 W&B 的初期值。在训练过程中,将会从这初期值开始,逐步优化(修正),而寻找出满意

17、的 W&B 值。请看指令:dh.set_weights(Encoder_init)d.set_weights(Decoder_init)14 By高焕堂 就设定好了初期值。接下来,就展开模型训练(学习)的流程了,如下述指令:model.fit(X,T,1,150,0,shuffle=False)兹说明其中的参数,如下图所示:执行这个指令时,就会让这模型学习 150 回合(Epoch),按照输入数据 X 的原来排列顺序,每一回合依序处理 1 笔数据,亦即批量(Batch-size)为 1。训练完成了,就得到了最新的 Encoder 和Decoder 内涵(即 W&B 值),如下图所示:AIGC 的基础:AE 模型 15 也可以输出训练的结果-最新的 Encoder 内涵(即 Wh 和 Bh值)。此时使用如下指令:Wh=dh.get_weights()0 Bh=dh.get_weights()1 print(np.round(Wh,2)print(np.round(Bh,2)于是,就在屏幕画面上显示出 Wh 和 Bh 值了。而且,可以输出训练的另一项结果-最新的 Decoder 内涵(即 Wo 和 Bo 值)。此时使用如下指令:Wo=d.get_weights()0 Bo=d.get_weights()1

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服