4 Fronzy

尚未进行身份认证

清华大学在读研究生,虚心使人进步,心虚使人更进步。

等级
TA的排名 11w+

P-R曲线

Inst#是样本序号,图中有20个样本。Class是ground truth 标签,p是positive样本(正例),n当然就是negative(负例) score是我的分类器对于该样本属于正例的可能性的打分。因为一般模型输出的不是0,1的标注,而是小数,相当于置信度。然后设置一个从高到低的阈值y,大于等于阈值y的被我正式标注为正例,小于阈值y的被我正式标注为负例。显然,我设置n个阈值...

2019-11-22 16:41:31

ResNet和DenseNet

理论上来说,对神经网络添加新的层,充分训练之后应该更能够有效地降低误差。因为原模型解的空间只能是新模型解空间的子空间。也就是说,新模型可能会得出更优的解来拟合训练数据。但是在实践中却不是这样,添加过多的层后训练误差往往不降反升,即使利用批量归一化带来的数值稳定性训练能使训练深层模型更加容易,该问题依然存在。针对这个问题,何凯明等人提出了残差网络(ResNet)。其在2015年的Imag...

2019-11-05 19:23:23

批量归一化

批量归一化(batch normalization)能够让较深的神经网络训练变得更加容易。首先来复习一下标准化的定义:对数据减去均值之后再除以标准差。标准化处理后的任意一个特征在数据集中所有样本上的均值为0、标准差为1。标准化处理输入数据使得各个特征的分布相近,往往能够训练出更加有效的模型。对于浅层模型来说,对输入数据进行标准化就已经足够了。但是对于深度网络来说,即使对输入数据标准化,...

2019-10-23 11:32:57

k折(k-fold)交叉验证

k折交叉验证是用来选择模型设计并调节超参数的。首先,我们先来看一下k折交叉验证的使用背景:我在训练模型的时候,通过已有的数据训练得出一个模型,在这里用于训练的数据称为训练集。当我们把这个模型部署到真实环境去的时候,通过真实的数据得到结果,这个时候这些真实的数据就叫做测试集。那么问题来了,我们在训练模型的时候怎么样评估模型的好坏呢?怎么样调节模型的超参数呢?答:一般我们都是将训练用的...

2019-10-20 10:40:16

GoogLeNet

在2014年的ImageNet图像识别挑战赛中,GeogLeNet大放异彩。GeogLeNet在名字上向LeNet致敬,其吸收了NiN中网络串联网络的思想,并在此基础上进行了改进,变成了一个串联与并联都有的网络。Inception块Inception块是GeogLeNet中的基础卷积块,其名字来自于同名电影《盗梦空间》(Inception)。其包括4条并行的线路。用于抽取不同空间尺度下...

2019-10-15 19:27:56

NiN

NiN——Network in NetworkLeNet、AlexNet和VGG设计上的共同之处是:先由卷积层构成的模块充分抽取空间特征,再以由全连接层构成的模块来输出分类结果。而AlexNet和VGG对LeNet的改进在于如何对这两个模块进行加宽(增加通道数)和加深。而NiN提供了另外一个思路:串联多个卷积层和“全连接”层构成的小网络来构建一个深层网络。这里的全连接层是有引号的,因为...

2019-10-13 16:04:54

VGG网络

VGG这个名字来源于论文作者所在的实验室Visual Geometry Group。其提出了可以通过重复使用简单的基础块来构建深度模型的思路。VGG块(VGG-block)的结构:1.单层或者多层的卷积层2.单层池化层import d2lzh as d2lfrom mxnet import gluon, init, ndfrom mxnet.gluon import nn...

2019-10-12 14:14:28

AlexNet

传统的机器学习,自行设计特征提取函数,对图像的特征进行提取,再以特征作为输入,训练模型。这样导致了使用较干净的数据集和较有效的特征有时甚至比机器学习的模型的选择对分类结果的影响更大。而现在使用的深度学习,则省去了设计特征提取函数这一步骤,图像直接作为输入,训练模型。在训练模型的过程中,卷积层相当于是一个特征提取函数,多层卷积提取的是图像的高维特征,而卷积层的参数也是通过训练学习而来的。这一...

2019-10-12 11:13:19

LeNet

LeNet名字来源于该论文的第一作者Yann LeCun。该网络是一个简单的卷积神经网络,其通过梯度下降训练卷积神经网络,将手写数字识别的准确性达到了一个突破性的高度。虽然简单,但却是一个奠基性的成果,卷积神经网络此时第一次被推上舞台,为世人所知。从零到一的突破总是最困难的。LeNet模型分成两个部分:卷积层块和全连接层块。1.卷积层块:包含卷积层和最大池化层。卷积层用来识别图像里的空...

2019-10-11 14:29:52

卷积神经网络中的概念

卷积神经网络(convolutional neural network),顾名思义,就是含有卷积层(convolutional layer)的神经网络。但是卷积神经网络带来不仅仅只有卷积层,填充、步幅,以及池化层的操作,这些都是卷积神经网络基础中的基础。要好好掌握呀(╯▔皿▔)╯掀桌,感觉这些概念学了不止一次了,噗,菜是原罪一、二维卷积层卷积(convolution)运算其实就是将卷积核数...

2019-10-10 15:33:24

MXNet使用GPU计算

GPU上的存储在MXNet中,mx.cpu()代表所有的物理CPU和内存,而mx.gpu()只代表一块GPU和相应的显存。(cpu对应内存,gpu对应显存)可以通过NDArray的context属性来查看该NDArray所在的设备。x.context我们可以通过多种方法创建NDArray到GPU的显存上。a = nd.array([1,2,3], ctx=mx.gpu())...

2019-09-30 20:18:44

MXNet模型参数的存储与读取

1.读写NDArray通过 nd.save(’filename‘,ndType) 和nd.load(’filename‘,ndType) 存储和读取from mxnet import ndfrom mxnet.gluon import nnx = nd.ones(3)nd.save('x', x)x2 = nd.load('x')x2 # 得到的x2是一个二维数组,而x是一...

2019-09-28 23:28:08

MXNet自定义层

1.不含模型参数的自定义层from mxnet import gluon, ndfrom mxnet.gluon import nnclass CenteredLayer(nn.Block): # 自定义层 def __init__(self, **kwargs): super(CenteredLayer, self).__init__(**kwargs...

2019-09-28 21:48:32

MXNet模型参数的延后初始化

模型的延后初始化先看下面这段代码:from mxnet import init, ndfrom mxnet.gluon import nnclass MyInit(init.Initializer): def _init_weight(self, name, data): print('Init', name, data.shape) # 实...

2019-09-28 15:09:59

MXNet模型参数的访问、初始化和共享

模型参数的访问:# 通过net后面括号内的索引访问哪一层net[0].params, type(net[0].params)# 两种方法得到相应层的信息,一般使用后者,因为前者需要输入层的名称(权重和偏差)net[0].params['dense0_weight'], net[0].weight# 层包括了data和grad,即权重和梯度net[0].weight.data()n...

2019-09-28 08:56:12

MXNet模型构造

基于Block类的模型构造:回顾一下之前我们是怎么使用MXNet进行模型构造的?from mxnet import ndfrom mxnet.gluon import nnx = nd.random.uniform(shape=(10,10)net = nn.Sequential()net.add(nn.Dense(10, activation='relu')net.init...

2019-09-26 21:37:39

数值稳定性和模型初始化

数值稳定性:衰减(vanishing)和爆炸(explosion)假设一个网络的第 层的输出为。此时,如果层数 较大,则可能会出现数值衰减和爆炸。举例:假设输入和所有层的权重参数都是标量,如果权重参数为0.2和5,那么第30层的输出为(衰减)和(爆炸)。类似,当层数较多时,梯度的计算也更容易出现衰减或者爆炸。随机初始化模型参数:为什么神经网络在训练前要随机初始化参数?能...

2019-09-24 23:20:47

正向传播与反向传播(forward-propagation & back-propagation)

正向传播(forward-propagation):指对神经网络沿着输入层到输出层的顺序,依次计算并存储模型的中间变量。反向传播(back-propagation):沿着从输出层到输入层的顺序,依据链式法则,依次计算并存储目标函数有关神经网络各层的中间变量以及参数的梯度。反向传播是一种计算神经网络参数梯度的方法对于输入或输出X,Y,Z为任意形状张量的函数和通过链式法则,则有:...

2019-09-24 21:52:47

模型选择、欠拟合和过拟合

训练误差(training error):模型在训练数据集上表现出的误差。泛化误差(generalization error):模型在任意一个测试数据样本上表现出的误差的期望,常常通过测试数据集上的误差来近似。机器学习模型应该关注泛化误差。模型选择(model selection)1. 验证数据集(validation set):预留一部分在训练数据集和测试数据集以外的数据进行模型...

2019-09-21 22:25:41

softmax回归和多层感知机的简洁实现

softmax回归import d2lzh as d2lfrom mxnet import gluon, initfrom mxnet.gluon import loss as gloss, nn# 读取数据集batch_size = 256train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)# 定义和...

2019-09-21 15:25:29

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。