ResNet
Residual Network深层的神经网络通常很难进行训练,本文使用了一个残差学习网络结构来训练比以往的神经网络要深得多的模型。残差网络容易训练,并且在深层神经网络中表现出来较好的准确率。
在未使用残差网络的模型中,当网络层数变多时,训练误差以及测试误差均会升高。
Is learning better networks as easy as stacking more layers ?
当网络变得特别深时,会出现梯度爆炸或梯度消失
传统的解决方法是:参数在初始化时要做的好一点,不要太大也不要太小;加入一些Batch Normalization Layers
传统的解决方法使得神经网络能够收敛,但是网络的精度却变得更差,而这并非是模型变得复杂后导致的过拟合问题,因为模型的训练误差也变高了
正常来说,如果在一个浅层的神经网络后直接加入更多的层,这些层只做identity mapping,那么这个深层神经网络的误差绝不会高于浅层的神经网络,但是传统的神经网络模型并未找到这样的解(或更好的解)
如果深层网络后面的层都是是恒等映射,那么模型就可以转化为一个浅层网络
Deep residua ...
GAN #1
Generative Adversarial NetsGan利用对抗的方法,提出了生成式模型的新框架。它需要同时训练两个模型(生成模型G和判别模型D),G用于捕获数据的分布,而D需要判别出一个样本是来自训练集还是生成模型。生成模型的目标是尽最大可能让判别模型犯错(无法成功判别数据的来源),G和D在本文中被定义为多层感知机,整个系统通过反向传播来进行训练。
AN analogy to GAN在生成对抗网络框架中,生成模型与判别互相对抗。可以把生成模型类比为造假币者,判别模型类比为警察。生成模型试图制造假币骗过判别模型,而判别模型努力区分假币。二者在这样的对抗中不断学习提升各自的水平,直到生成模型的造的假币和真的一模一样,判别器无法区分。另外,警察进步不能过大或过小。进步过大时,造假者直接被一锅端,无法继续造假钞;进步过小时,造假者不需进步也能骗过警察,则没有动力进步
Adversarial nets
对抗网络认为数据集代表着一个联合分布,每一个样本都可以由高维随机变量表示。假设数据集是许多张2*2大小的黑白图片,每张图片有四个像素点,于是将该分布看作四维随机变量的分布,每一维代表着一个像 ...
D2L: Basic Pytorch
Basic Pytorch
模型构造
12345678910111213141516171819202122232425import torch from torch import nnnet=nn.Sequential(nn.Linear(20,256),nn.ReLU(),nn.Linear(256,10))X=torch.normal(0,1,size=(1,20))print(net(X))class MLP(nn.Module): def __init__(self): super().__init__() self.rand_weight=torch.randn((20,64),requires_grad=False,dtype=torch.float32) self.hidden=nn.Sequential(nn.Linear(64,128),nn.ReLU(),nn.Linear(128,256)) self.out=nn.Linear(256,10) def forward(self,X): ...
Typography and tags
Installation
This post uses hexo-renderer-markdown-it plugin as markdown processor, so please install it to achieve the effect.
installation123456npm un hexo-renderer-marked --savenpm i hexo-renderer-markdown-it --savenpm i markdown-it-emoji --savenpm i markdown-it-mark --savenpm i markdown-it-deflist --savenpm i markdown-it-container --save
ConfigurationAdd following to _config.yml of your site.
_config.yml12345678910111213141516171819202122markdown: render: html: true xhtmlOut: false ...