AI建模师-素养手册(11)-AIGC的基础-AE模型-cnn_第1页
AI建模师-素养手册(11)-AIGC的基础-AE模型-cnn_第2页
AI建模师-素养手册(11)-AIGC的基础-AE模型-cnn_第3页
AI建模师-素养手册(11)-AIGC的基础-AE模型-cnn_第4页
AI建模师-素养手册(11)-AIGC的基础-AE模型-cnn_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AIGC的基础:AE模型1AE(Autoencoder)模型By高焕堂/AI建模师俱乐部会长1.1前言1.2AE:有ML瑞士刀(SwissArmyKnife)之称1.3使用Keras与TensorFlow1.4介绍Kears+TensorFlow的语法2By高焕堂***本文摘自高焕堂的下列书籍******以及北京【电子世界杂志】连载专栏***1.1前言Al模技术(ModelingTechniques)是衔接〈行业大数据〉与〈算于行业大数据的特性,而以高超的编程技能,将多合,并以大数据加以训练,来生成智能型系统提供AE(Autoencoder)就如同细胞,其创新组合成形形色色的ML(MachinegAIGC的基础:AE模型31.2AE:有ML瑞士刀之称自编码(AE:Autoencoder)是很简单又通用的AI模型。于e非常流行,可说是归功于无监督学习方法的快速发展,在其中找到了AE度学习领域里,许多最新的科学出版物都常介绍各以称https://fingerprints.digital/autoencoder-deep-learning-swiss-army-knife/4By高焕堂1.3使用Keras与TensorFlowwNN1.4介绍Keras+TensorFlow的语法1.4.1以AE(Autoencoder)模型为例AIGC的基础:AE模型56By高焕堂1.4.2展开训练:使用TensorFlow成为Y。那么,如何获得Encoder(里的Wh和Bh值)呢?又如何获得AIGC的基础:AE模型7npalfromkeras.optimizersimportSGD#输入值X=np.array(1]],dtype=np.float32)88By高焕堂#目标值T=XTXdtype=np.float32)]dtype=np.float32),np.array([0.0,0.0],dtype=np.float32)]pile(loss='mse',optimizer=SGD(lr=0.025),yAIGCAIGC的基础:AE模型9model.fit(X,T,1,150,0,shuffle=False)print("\n=======训练结果======")hgetweightsWodgetweights()[0]#-----Predict------------------------yh=np.dot(X,Wh)+Bhyo=np.dot(yh,Wo)+Boprint("\n-----预测值-----")10By高焕堂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.float32),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的起始值。如下图:12By高焕堂接着,就使用Keras/TensorFlow来定义这个AE模型,然后进行训练。指令如下:dh=Dense(1,activation='linear',input_dim=2)这定义隐藏层,其参数说明了:2维的输入层,1维的隐藏层,采线性对应,不须激活函数。d=Dense(2,activation='linear',input_dim=1)这定义输出层,其参数说明了:1维的隐藏层,2维输出层,采线性对应,不须激活函数。接着,就将这些层(Layer)串接起来,成为一个多层级的神经网络(NeuralNetwork,简称NN)模型。如下述model=Sequential()AIGC的基础:AE模型13model.add(dh)model.add(d)pile(loss='mse',optimizer=SGD(lr=0.025),metrics=['accuracy'])这个NN模型的各层串接好了之后,还需要设定一些参数,以便对网络的学习过程进行配置,这个动作称为:编译(Compile)。例如,设定损失函数为:均方误差(MeanSquareError,简称:MSE)。也就是预测值和目标值之间误差平方的平均值。还需要选择优化器(Optimizer),在Keras里有许多种优化器。在本文里选取SGD优化器,也就是准确率梯度下降法(StochasticGradientDecent),是一种最常见的梯度下降(GradientDecent)方法,它在训练过程中会利用微分方法来找出调整误差的梯度,往梯度相反的方向去更新W和B,让预测值与目标值之间的误差逐渐缩小。同时也设定学习率(LearningRate)为:0.025。学习率用来调整模型的学习进度,它会影响循着梯度下降方向移动的幅度,如果学习率小,表示对神经网络进行较小的权重更新幅度,训练变得缓慢;然而学习率大,可能导致无法迅速收敛。最后,选择准确度的评估模式,在本文里选择最常用的评估模式:metrics=['accuracy']。模型参数设定好了,亦即经过编译(Compile)了。表示模型已经设计完成了,就可以准备来训练它了。这个准备动作里,首先来设定Encoder和Decoder里的W&B的初期值。在训练过程中,将会从这初期值开始,逐步优化(修正),而寻找出满意的W&B值。请看dh.set_weights(Encoder_init)d.set_weights(Decoder_init)14By高焕堂就设定好了初期值。接下来,就展开模型训练(学习)的流程了,如下述指令: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值)。此时使用如下指令:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论