欢迎大家来到IT世界,在知识的湖畔探索吧!
应用于计算机视觉和综合金融交易数据
深度学习的目的是使用一系列可微函数(即几何变换)来学习高维和有噪数据的表示,这些函数可能用于其他任务中的监督学习任务。由于显式极大似然估计(MLE)的局限性,它在判别模型中取得了巨大的成功,而生成模型的表现可能还不尽如人意。生成对抗网络(GAN)中提出的对抗学习旨在通过使用隐式MLE来克服这些问题。
我们将使用MNIST计算机视觉数据集和一个综合金融交易数据集作为使用GAN进行这些实验的保险任务。与明确的MLE相比,GAN是一种非常不同的学习方法。我们的目的是证明GAN学习的表示可以用于监督学习任务,如图像识别和保险损失风险预测。以这种方式,我们通过自动学习一组特征来避免手工特征工程过程,即表示学习。
生成对抗网络
GAN有两个主要组成部分,发生器和鉴别器,它们相互发生对抗。在此过程中,发生器学习如何从噪声(即,潜在空间z)创建逼真的合成样本,而鉴别器学习如何区分实际样本和合成样本。
鉴别器学习到的表示可以用于其他监督学习任务,即自动特征工程或表示学习。这也可以通过转移学习来看待。GAN也可以用于半监督式学习,我们将在另一篇论文中讨论半监督式学习,我们将利用变分自动编码器,阶梯网络和对抗自动编码器来研究此目的。
计算机视觉
为了这个目的,我们将使用MNIST数据集,其中原始数据是每个图像的二维张量像素强度。图像是我们的分析单位:我们将预测每个图像的每个类别的概率。这是一个多类分类任务,我们将使用准确性分数来评估测试折叠模型的性能。
每个图像的2维张量像素强度。
用于计算机视觉任务的手工特征工程的一些示例可能可能是使用Gabor滤波器。
保险
我们将使用一个合成数据集,其中原始数据是每个决策周期组合的历史决策级别信息的二维张量:每个单位将是一个4乘3维张量,即4个历史时间段和3个事务类型。决策期间的组合是我们的分析单位:我们将预测未来5期的损失概率 – 将其视为潜在的更新决策,我们需要预测它是否会对我们造成损失或者不影响我们是否决定续签保单和/或调整续约保费以考虑额外风险。这是一个二元类分类任务,我们将使用AUROC评分来评估模型性能。
每个决策期间组合的交易价值的二维张量。
一些用于保险任务的手工特征工程的例子可能可能是使用列或行平均值。合成保险金融交易数据集用R编码。所有其余的工作都是用Python完成的。
请注意计算机视觉任务的原始数据与保险任务的原始数据之间的相似性。我们的主要目标是通过GAN使用自动特征工程学习这种原始数据的良好表示。
Scikit-learn,Keras和TensorFlow
我们将使用Python机器学习库scikit-learn进行数据转换和分类任务。我们会将GAN编码为scikit-learn转化器,以便scikit-learn管道可以轻松使用它们。GANs将使用带有TensorFlow后端的Keras编码。我们还在MacBook Pro上使用外部GPU,即GTX 1070。
发生器
假设我们对潜在空间z位于何处有先验信念:p(z)。从这个潜在空间得出一个深度学习者生成器G输出一个合成样本。
鉴别器
鉴别器D是另一个深度学习者,它旨在区分样本是真实的还是合成的,即如果样本来自真实的数据分布,
或合成数据分布。
让我们表示鉴别器D如下。
这里我们假设正面的例子来自真实的数据分布,而负面的例子来自合成数据分布。
游戏
GAN同时训练鉴别器以正确区分真实和合成示例,同时训练生成器以创建合成示例,使得鉴别器错误地将真实和合成示例分类。这个2人迷你游戏有以下目标功能。
请注意,上述表达式基本上是鉴别器的目标函数。
从游戏设置的方式可以清楚地看出,我们试图获得D的解决方案,使其最大化V(D,G),同时我们试图获得G的解决方案,使其最小化V(D, G)。
我们不同时训练D和G,我们交替训练他们:训练D,然后训练G而冻结D。我们重复这一步固定数量的步骤。
如果从发生器G获取的合成样本是现实的,那么我们已经学习了合成数据分布。换句话说,合成数据分布可以看作是实际数据分布的一个很好的估计。最佳解决方案如下。
为了说明这一点,让我们找到给定一个生成器G和样本x的最佳鉴别器。
让我们仔细看一下样本x的鉴别器的目标函数。
我们已经找到了给定一个发生器的最佳鉴别器。现在让我们来关注发生器的目标函数,该函数本质上是为了最小化鉴别器的目标函数。
我们将注意到上述发生器目标函数中的Kullback-Leibler(KL)散度。
回想一下lambda发散的定义。
如果lambda取值0.5,则称为Jensen-Shannon(JS)分歧。这种分歧是对称的和非负的。
牢记这一点让我们再次看看发生器的目标函数。
从上面的发生器的目标函数可以清楚地看出,达到的全局最小值是- log (4),条件是以下情况成立。
当真实数据分布和合成数据分布之间的Jensen-Shannon分歧将为零时。我们已经找到最佳解决方案。
结果
在这些实验中,我们展示了发生器为MNIST数据集和保险数据集创建逼真合成示例的能力。我们使用一个2维的潜在流形。
最后,我们展示了如何使用鉴别器学习的表示,我们可以获得有竞争力的结果,为MNIST数据集和保险数据集使用其他表示学习方法,如本文所示的各种自动编码器。
生成新的数据
通过图像数据,我们可以定性判断生成的数据是否合理。对于金融交易数据,这是不可能的。不过,让我们看看生成的事务点的例子。请注意,所有金融交易数据已被转换为0和1之间。
如果我们使用与应用于图像数据相同的matplotlib代码来绘制上面生成的事务点阵,我们可以得到以下图像。我们可以看到,对于一笔交易而言,我们有最大可能的价值,即1表示为黑色,而交易的最小价值为0,即为白色。它们之间的交易值具有一些灰色。
最后让我们比较实际生成的交易格的分布,以查看生成的值是否与实际值相似。这是一个简单的完整性检查,看起来分布非常相似。
另一种方法可能是检查鉴别器学习的特征是否对监督学习任务有用。这在我们的保险数据示例中似乎就是这种情况,特别是如果我们将它们的性能与自动编码器的性能相比较,则可以在此处执行相同的任务。
GAN代表性学习
DCGAN的MNIST分类任务的准确性分数:98.350000%。
使用Deeper CGAN的MNIST分类任务的准确性分数:99.090000%。
DCGAN保险分类任务的AUROC得分:92.795883%。
将这些结果与使用自动编码器进行比较,以便在相同的计算机视觉和保险任务中进行表示学习。
GitHub上的代码
这篇文章的代码可以在GitHub上找到:
https://github.com/hamaadshah/gan_public
结论
我们已经展示了如何使用GAN来学习原始数据的良好表示,即每个分析单元的二维张量,然后可能用于计算机视觉和保险领域的监督学习任务。这使我们从手工特征工程转向自动特征工程,即表示学习。GAN也可以用于半监督学习,这又是另一个主题了。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/37856.html