一 概念定义:
二 编码器
三 GAN
一 概念定义:
1、Unsupervised Learning 无监督学习
2、自编码器
3、随机自编码器与GAN
4.Gan 对抗网络
1、Unsupervised Learning 无监督学习:
机器学习的三个类别: 监督学习,无监督学习,半监督学习
其中 监督学习 指是我们率先知道y,即我们有期望得到的值,无监督学习是没有y,让机器从海量数据中自己去寻找共性y,然后自己建立模型。
核心:监督机器学习很多时候我们是知道它是一个大体什么分布的然后我们定义一个高斯分布,让其不断的去逼近这个模型,而无监督的机器学习都是让机器从随机生成的噪声中自己去建立关系一点点去学习的。
2 自编码器:
自编码器(autoencoder, AE)是一类在半监督学习和非监督学习中使用的人工神经网络(Artificial Neural Networks, ANNs),其功能是通过将输入信息作为学习目标,对输入信息进行表征学习(representation learning)
人话:AE:简称自编码器,它利用你输入数据本身作为监督,然后让神经网络尝试学习到一个输入数据本身与内部参数的映射关系,然后通过这个关系在还原出一个Xr 。类似什么那,监督学习类似输入是选手,监督员是裁判,你每次出现问题导致交一个很烂的结果,裁判员都会给你指出来有多烂,而自编码器这种无监督的就是它即是裁判也是选手,自己总结学习自己。。类似国足联在国内,即是裁判又参加比赛。
4、Gan 对抗网络:
首先GAN可以用任何形式的generator和discriminator,并非一定要是神经网络,虽然它叫做对抗式神经网络。GAN可以看做一种思想:非合作博弈,通过两个模型,让这两个模型进行物竞天择的竞赛互相进行促进,以求出双方最优的模型。
神经网络被广泛使用的主要原因是它一种通用函数逼近算法(universal function approximator),即我们能够使用大量节点的神经网络来模拟任何非线性的Input与Output之间的函数,相对其他方法具有更高的自由度,不会因为算法本身的能力而受限。对于generator或discriminator没有任何形式的限制,两者的形式也不必要相同。
原文链接:https://blog.csdn.net/LEEANG121/article/details/104128116
二:自编码器
1: 模型
2:原理
3:代码实现
4:变体
1、 模型:
通过算法模型包含两个主要的部分:Encoder(编码器)和Decoder(解码器)。
编码器的作用是把高维输入 X编码成低维的隐变量 从而强迫神经网络学习最有信息量的特征;
解码器的作用是把隐藏层的隐变量h 还原到初始维度Xr,最好的状态就是解码器的输出能够完美地或者近似恢复出原来的输入
2、原理
从输入层 ->隐藏层的原始数据X的编码过程:
从隐藏层 -> 输出层的解码过程:
那么算法的优化目标函数就写为
其中dist为二者的距离度量函数,通常用MSE(均方方差)
这个时候就会有人问自编码有什么作用,训练一个神经网络模型,让它输入是x,然后输出也近似x,有毛用?其实自编码可以实现类似于PCA等数据降维、数据压缩的特性。从上面自编码的网络结构图,如果输入层神经元的个数n大于隐层神经元个数m,那么我们就相当于把数据从n维降到了m维;然后我们利用这m维的特征向量,进行重构原始的数据。这个跟PCA降维一模一样,只不过PCA是通过求解特征向量,进行降维,是一种线性的降维方式,而自编码是一种非线性降维。
- AE算法的优缺点
优点:泛化性强,无监督不需要数据标注
缺点:针对异常识别场景,训练数据需要为正常数据。
3.代码实现
h_dim = 20 # 降到的维度 脖子那
batchsz = 512
lr = 1e-3 # 学习率
class AE