算法实习准备之三:GAN/Feature scaling

机器学习算法复习(七)

GAN

自编码器

在这里插入图片描述
先训练一个encoder,把input转换成code,然后训练一个decoder,把code转换成一个image,最后计算生成的image和input_image之间的MSE(mean square error,每一个像素上的均方差),训练完这个model之后,取出后半部分的Decoder,输入一个随机的code,就能generate一个image。

结构

Generator

G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。

Discriminator

D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。

原理

在训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量把G生成的图片和真实的图片分别开来。这样,G和D构成了一个动态的“博弈过程”。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

训练

在这里插入图片描述

cycleGAN

降采样部分采用stride(步幅)卷积,增采样部分采用反卷积

结构

在这里插入图片描述

损失函数

在这里插入图片描述

resblock

在这里插入图片描述

反卷积

在这里插入图片描述

PatchGAN

在这里插入图片描述

unsupervised image captioning

Feature scaling归一化

为什么对特征数据进行归一化

在这里插入图片描述
1.归一化后加快了梯度下降求最优解的速度:
在对特征进行归一化之后,在梯度下降进行求解时就更可能垂直下降,加快了收敛的速度。
2.归一化有可能提高精度:
分类任务中需要计算样本之间的距离(如欧氏距离),如果一个特征值域范围非常大,那么计算出的距离就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。

归一化的类型

Batch Normalization批归一化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

作用

在这里插入图片描述

batch normalization为什么可以防止过拟合?

在这里插入图片描述
Batch Normalization的主要作用是加快网络的训练速度。

GroupNorm组归一化

在这里插入图片描述
在这里插入图片描述
bn会将N张图片的同一个通道中所有数据整合起来(分通道整合);
gn是在单张图片的多个通道进行数据整和。

概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、RF。而像Adaboost、SVM、LR、KNN、K-Means之类的最优化问题就需要归一化。

一个完整机器学习项目的流程

1 抽象成数学问题
这里的抽象成数学问题,指的是明确我们可以获得什么样的数据,目标是一个分类还是回归或者是聚类的问题,如果都不是的话,划归为其中的某类问题。
2 获取数据
数据要有代表性,否则必然会过拟合。
而且还要对数据的量级有一个评估,多少个样本,多少个特征,可以估算出其对内存的消耗程度,判断训练过程中内存是否能够放得下。如果放不下就得考虑改进算法或者使用一些降维的技巧了。如果数据量实在太大,那就要考虑分布式了。
3 特征预处理与特征选择
良好的数据要能够提取出良好的特征才能真正发挥效力。
特征预处理、数据清洗是很关键的步骤,往往能够使得算法的效果和性能得到显著提高。归一化、离散化、因子化、缺失值处理、去除共线性等,这些工作简单可复制,收益稳定可预期,是机器学习的基础必备步骤。
筛选出显著特征、摒弃非显著特征,这需要运用特征有效性分析的相关技术,如相关系数、卡方检验、平均互信息、条件熵、后验概率、逻辑回归权重等方法。
4 模型构建与模型预训练
建立起模型的架构。
5 训练模型与调优
真正考验水平的是调整这些算法的(超)参数,使得结果变得更加优良。这需要我们对算法的原理有深入的理解。理解越深入,就越能发现问题的症结,提出良好的调优方案。
6 模型诊断
过拟合、欠拟合判断是模型诊断中至关重要的一步。常见的方法如交叉验证,绘制学习曲线等。过拟合的基本调优思路是增加数据量,降低模型复杂度。欠拟合的基本调优思路是提高特征数量和质量,增加模型复杂度。
诊断后的模型需要进行调优,调优后的新模型需要重新进行诊断,这是一个反复迭代不断逼近的过程,需要不断地尝试, 进而达到最优状态。
7 模型融合
一般来说,模型融合后都能使得效果有一定提升。而且效果很好。
工程上,主要提升算法准确度的方法是分别在模型的前端(特征清洗和预处理,不同的采样模式)与后端(模型融合)上下功夫。因为他们比较标准可复制,效果比较稳定。而直接调参的工作不会很多,毕竟大量数据训练起来太慢了,而且效果难以保证。
8 上线运行
这一部分内容主要跟工程实现的相关性比较大。工程上是结果导向,模型在线上运行的效果直接决定模型的成败。不单纯包括其准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性是否可接受。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值