(一)编码器
自编码:一种神经网络的形式
自编码就是把信息压缩再把信息解压,完成这种形式的神经网络。
例如,图片经过压缩,再解压的这一道工序. 当压缩的时候, 原有的图片质量被缩减, 解压时用信息量小却包含了所有关键信息的文件恢复出原本的图片.
当神经网络要接受大量的输入信息,我们就可以使用这种神经网络形式。我们先进行压缩,提取最具代表性的信息,缩减输入信息量。这样再把压缩过的信息放进神经网络学习,这样学习就更加轻松了。所以, 自编码就能在这时发挥作用. 通过将原数据白色的X 压缩, 解压 成黑色的X, 然后通过对比黑白 X ,求出预测误差, 进行反向传递, 逐步提升自编码的准确性. 训练好的自编码中间这一部分就是能总结原数据的精髓. 也就是说,自编码的作用是压缩数据,提取原数据的精髓。
(1)编码器
到了真正使用自编码的时候. 通常只会用到自编码前半部分.这一部分也被称作encoder 编码器。编码器能得到原数据的精髓, 然后我们只需要再创建一个小的神经网络学习这个精髓的数据,不仅减少了神经网络的负担, 而且同样能达到很好的效果.
通过自编码整理出来的数据, 他能从原数据中总结出每种类型数据的特征,如果把这些特征类型都放在一张二维的图片上, 每种类型都已经被很好的用原数据的精髓区分开来, 自编码 可以像 PCA 一样 给特征属性降维.
(2)解码器
简单来说,解码器就是把精髓信息解压成原始信息。
(二)生成对抗网络(GAN)
GAN, 又称生成对抗网络, 也是 Generative Adversarial Nets 的简称.
卷积神经网络(CNN)和循环神经网络(RNN)都是需要提供数据的,然后得到自己想要的结果。像图片识别,语音识别。
而GAN是通过一些随机数字生成一些有意义的东西。
Generator 会根据随机数来生成有意义的数据 , Discriminator 会学习如何判断哪些是真实数据 , 哪些是生成数据, 然后将学习的经验反向传递给 Generator, 让 Generator 能根据随机数生成更像真实数据的数据。
也就是说,机器在创作有意义事物时,会把事物穿给鉴别部分进行鉴别,但是操作者要对鉴别机器进行管理,告诉鉴别机器哪个是有意义的事物。鉴别机器通过不断学习,终于会鉴别有意义的事物,并且会把学习经验反馈给创作机器,让创作机器生成更多的有意义的
(三)如何检测神经网络
(1)在检验神经网络误差时,我们把数据分成70%的训练数据和30%的测试数据,对神经网络的评价一般基于测试数据
(2)关于回归问题,, 我们可以引用 R2 分数在测量回归问题的精度 . R2给出的最大精度也是100%, 所以分类和回归就都有的统一的精度标准. 除了这些评分标准, 我们还有很多其他的标准, 比如 F1 分数 , 用于测量不均衡数据的精度.
(3)我们的神经网络在训练时表现非常好,但是测试时发现神经网络的误差又十分大,我们把这种成做为过拟合。在机器学习中, 解决过拟合也有很多方法 , 比如 l1, l2 正规化, dropout 方法.
(4)神经网络也有很多参数, 需要调参时, 交叉验证 就是最好的途径了. 交叉验证不仅仅可以用于神经网络的调参, 还能用于其他机器学习方法的调参. 同样是选择你想观看的误差值或者是精确度。
【参考文献】https://mofanpy.com/tutorials/machine-learning/ML-intro/Evaluate-NN/