小白的毕设学习

在机器学习算法中,在最小化损失函数时,可以通过梯度下降思想来求得最小化的损失函数和对应的参数值,反过来,如果要求最大化的损失函数,可以通过梯度上升思想来求取。
https://www.cnblogs.com/pinard/p/5970503.html


Epoch(时期):
当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一次>epoch。(也就是说,所有训练样本在神经网络中都 进行了一次正向传播 和一次反向传播 )
再通俗一点,一个Epoch就是将所有训练样本训练一次的过程。

Batch(批 / 一批样本):
将整个训练样本分成若干个Batch。

Batch_Size(批大小):
每批样本的大小。

Iteration(一次迭代):
训练一个Batch就是一次Iteration(这个概念跟程序语言中的迭代器相似)。

为什么要使用多于一个epoch?
在神经网络中传递完整的数据集一次是不够的,而且我们需要将完整的数据集在同样的神经网络中传递多次。但请记住,我们使用的是有限的数据集,并且我们使用一个迭代过程即梯度下降来优化学习过程。如下图所示。因此仅仅更新一次或者说使用一个epoch是不够的。
在这里插入图片描述
随着epoch数量增加,神经网络中的权重的更新次数也在增加,曲线从欠拟合变得过拟合
那么,问题来了,几个epoch才是合适的呢?
不幸的是,这个问题并没有正确的答案。对于不同的数据集,答案是不一样的。但是数据的多样性会影响合适的epoch的数量。比如,只有黑色的猫的数据集,以及有各种颜色的猫的数据集。
https://www.jianshu.com/p/22c50ded4cf7?from=groupmessage


对抗生成网络(GAN)为什么输入随机噪声?
GAN本来就是完成一个分布的配准变换,GAN的生成器就是把一个高斯分布(或者其他先验的随机分布)变换成目标数据分布。

随机噪声可以避免缓解模式坍塌问题。因为我们希望训练好的生成网络可以有多种多样的输出。那么如何控制呢?我们可以用不同输入得到不同输出。模型一旦训练好,便是确定性的了,里面的参数都是固定的。假如不给不同输入,则输出必然相同。因此,我们是想有不同输出,才用到不同输入。这是一个多对多过程。
噪声种类也可以有很多种,你可以去看BigGAN这篇论文中对噪声做的实验,我们可以用高斯分布,还可以用均匀分布,还可用伯努利二维分布(要么-1,要么1),还有其他多种分布。其中高斯分布是连续的,而我们图像时离散的。这中间可能都有关系。
https://www.zhihu.com/question/320465400/answer/1051141660


相对熵 (Relative entropy),也称KL散度 (Kullback–Leibler divergence)
在这里插入图片描述
在这里插入图片描述

交叉熵 (Cross entropy)
在这里插入图片描述
JS散度
在这里插入图片描述

https://zhuanlan.zhihu.com/p/74075915


utils.py包含可视化等函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值