自学网络结构(二):Learning Transferable Architectures for Scalable Image Recognition

本文介绍了Google Brain团队的研究成果,通过神经网络自动学习获得图像识别的可转移架构NASNet。NASNet在CIFAR-10和ImageNet数据集上达到了或超过人类设计架构的性能,同时训练需求更低。它借鉴了NAS的思想,但通过Proximal Policy Optimization (PPO)改进了控制器更新,并使用卷积单元进行网络堆叠,减少了搜索空间的复杂性。

论文:Learning Transferable Architectures for Scalable Image Recognition
链接:https://arxiv.org/abs/1707.07012

Google Brain的作品,关于用神经网络学习另一个神经网络的结构。我们知道现在图像分类、检测算法的优劣很大一部分取决于网络结构的设计,最近今年比较优秀的分类网络结构比如VGG,ResNet,DenseNet等在网络结构的设计上下了不少功夫。Google的这支团队认为人为设计的结构不一定是最佳的,因此希望能通过一个神经网络来按照一定策略学习得到最佳的网络结构。在这里要先提到另一篇论文,也就是ICLR2017的Neural architecture search with reinforcement learning(暂时称为NAS),一作是同一个人,那篇文章通过用强化学习在一个search space中搜索最优的网络结构,可以简单看下面的Figure1,或者参看博客:
自学网络结构(一):Neural Architecture Search With Reinforcement Learning。那篇文章中实验都是在CIFAR-10上做的,所以那种搜索方式可以在能接受的时间范围内达到目的,但是如果想要在ImageNet数据集应用就不大行,因此就有了这篇文章,也就是设计一个合适的search space,使得在CIFAR-10上得到的最好的网络结构可以方便地迁移到ImageNet这样的图像尺寸大且数量也多的数据集上,因此这篇文章可以看做的ICLR2017那篇文章的升级版(搜索速度比之前快了7倍左右)。

总的来看这篇文章不仅借鉴了NAS(Neural Architecture Search)的训练结构思路(Figure1),只不过在更新controller参数的时候采用 Proximal Policy Optimization (PPO),而不是原先的policy geadient method;同时借鉴了目前优秀网络结构(ResNet,GoogleNet)的重复堆叠思想,后面会提到堆叠的基本单元是convolutional cell,这是和原来的NAS很不一样的地方。

那么这个自动学习得到的模型效果怎么样呢?总结起来就是一句话:The resulting architectures approach or exceed state-of-the-art performance in both CIFAR-10 and ImageNet datasets with less computational demand than humandesigned architectures. 同时普遍看来,通过

近年来,随着机器人感知和交互技术的发展,触觉表示学习成为提升机器人在复杂环境中适应能力的重要研究方向。传统的触觉数据处理方法通常依赖于特定任务或传感器的设计,缺乏泛化能力和可迁移性。为了解决这一问题,研究人员开始探索基于深度学习的跨任务、跨传感器的可迁移触觉表示学习方法。 其中,**Transferable Tactile Transformers (T3)** 是一种新兴的方法,它借鉴了自然语言处理中Transformer架构的优势,通过自注意力机制建模触觉数据中的时空关系,从而提取具有语义意义的高层表示。这种方法不仅能够处理来自不同传感器的数据(如压力、温度、滑动等),还能在不同任务之间共享这些表示,例如从物体识别迁移到抓取控制或材质分类。 ### 模型结构原理 T3模型的核心组件包括: - **嵌入层**:将原始触觉信号(可能是时间序列)映射到高维空间中的向量表示。 - **多头自注意力机制**:捕捉触觉输入内部以及不同传感器之间的长程依赖关系。 - **位置编码**:为了保留时间信息,引入位置编码以区分不同时刻的触觉事件。 - **前馈网络**:用于非线性变换和特征增强。 - **任务适配器模块**:允许模型根据目标任务微调表示,而不需要重新训练整个模型。 该架构的一个关键优势在于其模块化设计,使得预训练的表示可以被灵活地应用于各种下游任务[^1]。 ### 数据集训练策略 T3通常在大规模多模态触觉数据集上进行预训练,例如包含多种物体接触场景的触觉序列数据。训练过程中采用对比学习(Contrastive Learning)或掩码重建(Masked Modeling)等自监督学习策略,以减少对标注数据的依赖。通过这种方式,模型能够学习到更具鲁棒性和通用性的触觉特征表示。 ### 应用场景 - **机器人抓取**:利用学到的触觉表示判断物体是否滑动或是否被抓稳。 - **材质识别**:从触觉反馈中识别物体表面的物理属性。 - **人机交互**:理解用户通过触觉设备传达的意图。 - **异常检测**:监测机器人操作过程中的异常接触状态。 ### 实现示例(简化版) 以下是一个简化的Transformer-based触觉表示学习模型实现示例,使用PyTorch框架: ```python import torch import torch.nn as nn class TactileTransformer(nn.Module): def __init__(self, input_dim=64, model_dim=128, num_heads=8, num_layers=3, output_dim=32): super(TactileTransformer, self).__init__() self.embedding = nn.Linear(input_dim, model_dim) self.positional_encoding = nn.Parameter(torch.randn(1, 100, model_dim)) # 假设最大序列长度为100 encoder_layer = nn.TransformerEncoderLayer(d_model=model_dim, nhead=num_heads) self.transformer_encoder = nn.TransformerEncoder(encoder_layer, num_layers=num_layers) self.fc_out = nn.Linear(model_dim, output_dim) def forward(self, x): # x shape: (batch_size, seq_len, input_dim) x = self.embedding(x) # (batch_size, seq_len, model_dim) x = x + self.positional_encoding[:, :x.size(1)] x = x.transpose(0, 1) # Transformer expects (seq_len, batch_size, model_dim) x = self.transformer_encoder(x) x = x.transpose(0, 1) # Back to (batch_size, seq_len, model_dim) x = self.fc_out(x) # Output representations return x ``` 上述代码定义了一个基本的Transformer编码器结构,可用于从触觉时间序列中提取高层次表示。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值