神经网络的基本知识之MXNet框架

Softmax回归

适用于分类问题,使用softmax运算输出类别的概率分布
单层神经网络,输出个数等于分类问题中的类别个数
交叉熵函数适合衡量两个概率分布的差异
通常使用准确率accuarcy来评价模型

交叉熵函数

交叉熵函数
最小化交叉熵函数等价于最大化训练数据集所有标签类别的联合预测概率。

独热编码

即一位有效编码, One-Hot 编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候,其中只有一位有效。
对于每一个特征,如果它有m个可能值,那么经过独热编码后,就变成了m个二元特征(如成绩这个特征有好,中,差变成one-hot就是100, 010, 001)。并且,这些特征互斥,每次只有一个激活。因此,数据会变成稀疏的。
链接: https://www.jianshu.com/p/42e93acacc52

如果将标签数字化,分类器往往默认数据数据是连续的,并且是有序的
One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1
性别特征:[“男”,“女”],按照N位状态寄存器来对N个状态进行编码的原理,处理后应该是这样的(这里只有两个特征,所以N=2):

男 => 10

女 => 01

Gluon

链接: https://blog.csdn.net/u012436149/article/details/78047278

MLP多层感知机

多层感知机就是至少一个隐藏层的由全连接层组成的神经网络,且每个隐藏层的输出通过激活函数进行变换。

如果没有非线性变换的话,全连接层也就相当于仿射变换(Affine Transformation)其实是另外两种简单变换的叠加:一个是线性变换,一个是平移变换
在这里插入图片描述
这个非线性变换称为激活函数。可对隐藏变量使用按元素运算的非线性函数进行变换,再作为下一个全连接层的输入。

ReLU激活函数

只保留正数,负数清零。即:
输入为负数时,ReLU函数的导数为0,输入为正数时,ReLu的导数为1

sigmoid激活函数

将元素的值变换到0-1之间
当输入接近0时,sigmoid函数接近线性变换,越偏移0,导数越接近0

tanh激活函数

将元素的值变换到-1 ~1之间
和sigmoid函数有点类似

神经网络搭建

大体流程:
搭建模型——初始化模型参数——训练模型参数(将mini_batch数据喂入网络,计算损失,反向传导得到模型参数的梯度信息,更新参数)

#搭建模型
net = nn.Sequential()   #Sequential是串联各个层的容器
net.add(nn.Dense(1))
#初始化参数
net.initialize(init.Normal(sigma=0.01))   #用mxnet中的init
#接下来定义损失函数与优化算法。可直接调用库
#训练模型
num_epochs = 3
for eopch in range(0,num_epochs):
	for X,y in data_iter:
	  with autograd.record():
		l = loss(net(X),y)
	  l.backward()  #损失回传,是为了优化模型参数
	  trainer.step(batch_size)  #优化函数
l = loss(net(features),labels)   #是为了计算每个epoch的损失

调节超参:
如批量大小、迭代周期和学习率

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值