2023.11.19 机器学习周报

目录

引言

Abstract

一、文献阅读

1、题目

2、引言

3、方法

4、实验过程

5、实验结果

6、结论

二、单向单层RNN

代码

输出结果

总结

引言

本周阅读了一篇关于MobileNets的论文,主要介绍了一种设计用于移动端设备的高效卷积神经网络,该网络旨在在计算资源有限的移动设备上实现高效的图像识别任务,并且对RNN的单向单层进行了学习和代码运行。

Abstract

This week, I read a paper on MobileNets, which mainly introduces an efficient convolutional neural network designed for mobile devices. The network aims to achieve efficient image recognition tasks on mobile devices with limited computing resources, and has learned and run code on the unidirectional monolayer of RNN.

一、文献阅读

1、题目

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

2、引言

我们提出一类称为 MobileNets 的高效模型适用于移动和嵌入式视觉应用。 移动网络基于流线型架构,该架构使用深度可分离卷积来构建轻量级深度神经网络。 我们引入了两个简单的全局超参数,可以有效地在延迟和延迟之间进行权衡准确性。 这些超参数允许模型构建者根据其应用选择合适尺寸的型号关于问题的约束。 我们呈现广泛的关于资源和准确性权衡的实验并表明与其他流行型号相比性能强劲ImageNet 分类。 然后,我们展示了 MobileNets 在各种应用程序中的有效性,用例包括对象检测、细粒度分类、面部属性和大规模地理定位。

3、方法

MobileNets是一种为移动和嵌入式视觉应用设计的高效模型。这些模型基于一种简化的架构,采用深度可分离卷积来构建轻量级的深度神经网络。MobileNets使用两个全局超参数来平衡延迟和准确性,使模型构建者能够根据问题约束选择适合其应用的模型大小。本文回顾了构建较小模型的先前工作,包括压缩预训练模型和直接训练小模型。MobileNets专注于优化延迟,同时提供小型网络。引入了深度可分离卷积的概念,作为一种打破标准卷积操作的输出通道数和核大小之间相互作用的方式,这种方式在计算上是昂贵的。深度可分离卷积在保持高准确性的同时,显著降低了计算成本。本文通过各种用例展示了MobileNets的有效性,如目标检测、细粒度分类、人脸属性和大规模地理定位。进行了大量实验,以展示资源和准确性之间的权衡,并将MobileNets与ImageNet分类的流行模型进行比较。

MobileNets使用深度可分离卷积来构建轻量级的深度神经网络

  • 深度卷积

        对于输入张量X,深度卷积的操作为:

        Y=D(X)=W*X

        其中,W是深度卷积的卷积核(3×3大小),Y 是深度卷积输出

  • 逐点卷积

        对深度卷积的输出 Y 进行逐点卷积:

        Z=P(Y)=W_{p}*Y

        其中,W_{p} 是逐点卷积的卷积核(1×1大小),Z 是最终输出。

整个深度可分离卷积过程可以表示为 Z=P(D(X))

MobileNets超参数设置的宽度乘数 \alpha 可以设置为 1.0、0.75、0.5 或 0.25,用于调整通道数,并且引入了两个超参数:扩展因子 \rho 和残差连接的系数 \beta

4、实验过程

MobileNet的网络结构定义在表1中,包含28个层次,使用RMSprop和异步梯度下降进行训练,引入了宽度乘法器和分辨率乘法器两个超参数,以进一步减少计算和参数。

5、实验结果

实验中使用了两个常用的图像分类数据集:ImageNet和CIFAR-10。通过在这些数据集上训练和评估MobileNets,作者展示了MobileNets在图像分类任务上的高效性能。

在ImageNet数据集上,MobileNets相比于其他常用的卷积神经网络,如VGG和GoogLeNet,展示了更高的处理速度和更低的计算资源需求。具体来说,与VGG相比,MobileNets可以在相同的精度下将计算时间降低了30倍。与GoogLeNet相比,MobileNets可以在相同的精度下将计算时间降低了25倍。

在CIFAR-10数据集上,MobileNets同样展示了较高的分类精度并且具有较低的计算资源需求。MobileNets可以在相同的分类精度下将计算时间降低了10倍。

MobileNet在多个应用中优于其他流行模型,包括图像分类、细粒度识别、地理定位、人脸属性分类和目标检测,在准确性和效率方面都表现出色,同时模型更小、计算量更少。

6、结论

MobileNets在保持较高分类精度的同时,可以显著减少计算资源需求,使其成为适用于移动设备的有效卷积神经网络模型。总结来说,MobileNets是一种在移动设备上应用的高效卷积神经网络模型,具有较低的计算资源需求和较高的分类精度。这使得它成为在移动视觉应用中广泛使用的模型之一。

二、单向单层RNN

如上图所示,假设隐藏层的激活函数是tanh,则 h_{t} 如下:

代码

from torch import nn
import torch

# # 单向单层 # #

'''
输入参数定义
batchsize: 批处理大小
seq_len  : 序列长度  X=[x1, x2, ..., xt, ...] 维度为seq_len
xt_size  : 输入每一个xt特征的向量维度, xt = [v1, v2, ...] 维度为xt_size,在自然语言处理中每一个xt其实代表一个词或者一个字对应的词向量

'''
batchsize = 3
seq_len = 4
xt_size = 10
input_x = torch.randn(batchsize, seq_len, xt_size)
'''
rnn 重要参数说明
inputsize    : 要和input_x 中每一个输入xt 的维度一致,这里 
hidden_size  : 隐藏层神经元个数
num_layers   : rnn 的层数
nonlinearity : 激活函数 'relu' , 'tanh'
batch_first  : 按照一般思维,batchsize一般第一维度,这里用True
bidirectional:  单向就False
'''
hidden_size = 5
num_layers = 1
rnn = nn.RNN(input_size=xt_size, hidden_size=5, num_layers=1, nonlinearity='relu',
             bias=True, batch_first=True, dropout=0, bidirectional=False)

# 单层单向h_0维度为(1, batchsize, hidden_size)
h_0 = torch.randn(1, batchsize, hidden_size)

# 输出 output.shape = (batchsize, seq_len, hiddzen)
#     h_n.shape    = (1, batchsize, hiddzen)
output, h_n = rnn(input_x, h_0)

print("output.shape, h_n.shape: ", '\n', output.shape, h_n.shape, '\n')

# 这两个应该相等
print("output[1, -1, :], h_n[:, 1, :] : ", '\n', output[1, -1, :], '\n', h_n[:, 1, :], '\n')

for name, p in rnn.named_parameters():
    print(name, p.shape)

输出结果

output.shape, h_n.shape:  
 torch.Size([3, 4, 5]) 
 torch.Size([1, 3, 5]) 

output[1, -1, :], h_n[:, 1, :] :  
 tensor([0.0401, 0.0000, 1.1217, 0.0000, 0.3944], grad_fn=<SliceBackward0>) 
 tensor([0.0401, 0.0000, 1.1217, 0.0000, 0.3944], grad_fn=<SliceBackward0>) 

weight_ih_l0 torch.Size([5, 10])
weight_hh_l0 torch.Size([5, 5])
bias_ih_l0 torch.Size([5])
bias_hh_l0 torch.Size([5])

总结

本周对MobileNets进行了学习,是一种用于移动设备的高效卷积神经网络(CNN)架构,并且对单向单层RNN的理论和代码进行了学习,之后会在这基础上更加深入的学习。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值