build dataset loader

概述 在训练机器学习模型中,一般会应用mini-batch的方法来遍历数据集,此外还需要对加载的数据集进行归一化等附加操作。如果能够构建可迭代的数据集模型,并且添加对数据集的附加操作处理接口,那么数据集的使用将非常方便。例如Pytorch提供的对数据集的非常优雅的处理方式:定义附加操作集合,加载数据集。这样即可非常优雅的遍历整个数据集。 transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5)) ]) train_loader =...

9 minute read

GAN

1. 初识GAN GAN模型中包含两个网络:生成器G和判别器D。G用来捕捉训练集数据的分布,D用来判别数据来自训练集还是生成器。 对该模型的优化需要同时训练G和D:训练D的目的是最大化判别器D的判别准确率,训练G的目的是最小化判别器D的判别准确率。这种问题理论上存在唯一最优解:生成器可以还原数据分布\(p_g=p_{data}\),判别器D=\(\frac 12\)。 定义先验噪声变量\(p_z(z)\),噪声映射数据空间函数\(G(z;\theta_g)\),G是由包括参数\(\theta_g\)的多层神经网络。我们又定义了多层神经网络\(D(x;\theta_d)\)输出单一的标量。\(D(x)\)代表了数据来自训练集而不是生成器的概率。训练判别器D来最大化分配正确标签给训练集和生成器的概率,公式见(1.1)。训练生成器G最小化\(log(1-D(G(z)))\)。综上所述,定义目标函数见公式(1.2)。 \[\operatorname*{max}_D\left.V(D,G)\right. = E _{x \sim p _{data}}[log(D(X))] + E...

9 minute read

优达学城深度学习课程总结

优达学城深度学习课程总结 断断续续两三个月的时间,将优达学城上谷歌团队的深度学习课程视频和练习大致完成(现在还留下大作业和seq2seq模型没有完成,这两个遗留问题,未来慢慢研究,待出结果后在写一篇博文详解),现在简单总结下完成了哪些内容并从中学到了什么。 按照练习的顺序,首先简单的学习了机器学习中一些常见的内容,比如逻辑回归、softmax、常用的onehot、正则化、验证集(不是很理解)和梯度下降等优化算法(需要看论文进一步学习),完成了对notmnist数据集的数据预处理工作(主要是看别人写完的代码,对着重新敲了一遍,有一定的收获,代码见code),该课程的主要问题就是因为课程时间短,介绍的非常基本,仍需要以后不断地去补充学习。 接下来开始介绍深度神经网络,简单的介绍了双层神经网络、激活函数ReLU、反向传播、Dropout正则化(需要看论文进一步学习)等,完成了简单神经网络的搭建和优化和应用正则化降低过拟合的任务。(代码也是抄袭的,学到的知识有限) 之后就介绍了卷积神经网络,课程简单的介绍了什么是卷积网络以及如何实现卷机网络,对于不了解卷积网络的同学会有一定的帮助,另外介绍了Inception结构(不理解);练习中完成了简单卷积网络的搭建,并从代码中学习到了learning_decay的trick。 最后就是文本和序列的深度模型,首先讲了经典的word2vec(断断续续的花了好长时间才弄明白),之后介绍了RNN和LSTM(需要进一步学习该模型),介绍的比较浅显,不是很明白;完成了word2vec的练习和lstm的大部分练习(最后一个seq2seq没有去接触,不久的将来,学习该模型的时候再来补充) 总的来说,还是学到了一些知识的。该课程最后的一个遗留问题就是实时摄像头应用的开发,这是对这么长时间学习的一个检验,这个还是必须要去做的,等做完后,我会写一个博客记录每一个过程,分享给大家,第一篇博客,写的有点任性,就这样吧。

1 minute read