-
作者: Vijay Badrinarayanan,Alex Kendall,Roberto Cipolla发布信息:2015,IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE论文:https://arxiv.org/pdf/1511.00561.pdf代码:https://github.com/aizawan/segnetSegNet是用于进行像素级别图像分割的全卷积网络。SegNet与FCN的思路较为相似,区别则在于Encoder中Pooling和Decoder的Upsampling使用的技术。Decoder进行上采样的方式是Segnet的亮点之一,SegNet主要用于场景理解应用,需要在进行inference时考虑内存的占用及分割的准确率。同时,Segnet的训练参数较少,可以用SGD进行end-to-end训练
-
1. 介绍 焊接缺陷可以定义为焊接零件中出现的焊接表面不规则、不连续、缺陷或不一致。焊接接头的缺陷可能导致零件和组件的报废、昂贵的维修费用、工作条件下的性能显著降低,以及在极端情况下,还会导致财产和生命损失的灾难性故障。此外,由于焊接技术的固有缺陷和金属的特性,在焊接过程中总会存在一定的缺陷。由于固有的冶金几何缺陷、机械性能的不均匀性和残余应力的存在,焊接接头通常是裂纹萌生的位置,因此评估焊接质量非常重要。在实践中,几乎不可能获得完美的焊接,并且在大多数情况下,没有必要提供所需的足够的维修功能。然而,早发现和隔离措施总是比事故更可取的。使用我们的算法,我们可以通过图像轻松检测焊接故障,并精确测量每个故障的严重程度,这将进一步有助于加快图像识别速度并避免出现不利情况。研究发现,使用卷积神经网络算法和 U-Net 架构使该过程更加高效,工作结束时准确率为 98.3%。2. 先决条件 对机器学习的基本理解卷积神经网络的基本思想了解卷积、最大池化和上采样操作U-Net架构思路对残差块中的跳过连接的基本理解(可选)使用 Python、TensorFlow 和 Keras 库的 ConvNets 的工作知识(可选)3. 图像分割 分割将图像划分为包含具有相似属性的像素的不同区域。为了对图像分析和解释有意义且有用,区域应与所描绘的对象或感兴趣的特征密切相关。图像分析的成功取决于分割的可靠性,但图像的准确分割通常是一个非常具有挑战性的问题。心脏(红色)、肺(绿色)和锁骨(蓝色)的胸部 X 光片被分割。4. 图像矩 图像矩是图像像素强度的某个特定加权平均值,图像矩对于描述分割后的对象很有用。通过图像矩发现的图像的简单属性包括:面积(或总强度)质心有关其方向的信息。5. 了解数据 该数据集包含两个目录,原始图像存储在“images”目录中,分割图像存储在“labels”目录中。让我们将数据可视化:来自“images”的原始图像上面的这些原始图像是 RGB 图像,必须用于训练模型和测试模型。这些图片的尺寸各不相同。直观地说,较暗的部分是焊接缺陷,模型需要对这些图像进行图像分割。来自“labels”的二进制图像'labels' 目录中的这些图像是二进制图像或地面真实标签。这是我们的模型必须为给定的原始图像预测的内容。在二值图像中,像素具有“高”值或“低”值,白色区域或“高”值表示缺陷区域,黑色区域或“低”值表示无缺陷。6. 使用的方法和算法 我们将 U-Net 架构解决这个问题。我们将通过三个主要步骤检测故障并测量这些焊接图像的严重程度:图像分割使用颜色表示严重性使用图像矩测量严重性训练模型以下是我们用于模型的 U-Net 架构:使用的 U-Net 架构注意事项:每个蓝色框对应一个多通道特征图通道的数量显示在框的顶部。(x,y) 尺寸位于框的左下边缘。箭头表示不同的操作。图层的名称在图层下方提供。C1、C2、…… C7是卷积运算后的输出层P1、P2、P3是最大池化操作的输出层U1、U2、U3是上采样操作的输出层A1、A2、A3 是跳跃式连接。左侧是收缩路径,其中应用了常规卷积和最大池化操作图像的大小逐渐减小,而深度逐渐增加。右侧是扩展路径,其中应用了 (上采样) 转置卷积和常规卷积操作在扩展路径中,图像尺寸逐渐增大,深度逐渐减小为了获得更精确的位置,在扩展的每个步骤中,我们通过将转置卷积层的输出与来自编码器的特征图在同一级别连接来使用跳过连接:A1 = U1 + C3A2 = U2 + C2A3 = U3 + C1每次连接后,我们再次应用常规卷积,以便模型可以学习组装更精确的输出。import numpy as np import cv2 import os import random import tensorflow as tf h,w = 512,512 def create_model(): inputs = tf.keras.layers.Input(shape=(h,w,3)) conv1 = tf.keras.layers.Conv2D(16,(3,3),activation='relu',padding='same')(inputs) pool1 = tf.keras.layers.MaxPool2D()(conv1) conv2 = tf.keras.layers.Conv2D(32,(3,3),activation='relu',padding='same')(pool1) pool2 = tf.keras.layers.MaxPool2D()(conv2) conv3 = tf.keras.layers.Conv2D(64,(3,3),activation='relu',padding='same')(pool2) pool3 = tf.keras.layers.MaxPool2D()(conv3) conv4 = tf.keras.layers.Conv2D(64,(3,3),activation='relu',padding='same')(pool3) upsm5 = tf.keras.layers.UpSampling2D()(conv4) upad5 = tf.keras.layers.Add()([conv3,upsm5]) conv5 = tf.keras.layers.Conv2D(32,(3,3),activation='relu',padding='same')(upad5) upsm6 = tf.keras.layers.UpSampling2D()(conv5) upad6 = tf.keras.layers.Add()([conv2,upsm6]) conv6 = tf.keras.layers.Conv2D(16,(3,3),activation='relu',padding='same')(upad6) upsm7 = tf.keras.layers.UpSampling2D()(conv6) upad7 = tf.keras.layers.Add()([conv1,upsm7]) conv7 = tf.keras.layers.Conv2D(1,(3,3),activation='relu',padding='same')(upad7) model = tf.keras.models.Model(inputs=inputs, outputs=conv7) return model images = [] labels = [] files = os.listdir('./dataset/images/') random.shuffle(files) for f in files: img = cv2.imread('./dataset/images/' + f) parts = f.split('_') label_name = './dataset/labels/' + 'W0002_' + parts[1] label = cv2.imread(label_name,2) img = cv2.resize(img,(w,h)) label = cv2.resize(label,(w,h)) images.append(img) labels.append(label) images = np.array(images) labels = np.array(labels) labels = np.reshape(labels, (labels.shape[0],labels.shape[1],labels.shape[2],1)) print(images.shape) print(labels.shape) images = images/255 labels = labels/255 model = tf.keras.models.load_model('my_model') #model = create_model() # uncomment this to create a new model print(model.summary()) model.compile(optimizer='adam', loss='binary_crossentropy',metrics=['accuracy']) model.fit(images,labels,epochs=100,batch_size=10) model.evaluate(images,labels) model.save('my_model')模型是用 Adam 优化器编译的,我们使用二进制交叉熵损失函数,因为只有两个类(缺陷和无缺陷)。我们使用批量处理大小为 10 的 100 个 epoch(模型在所有输入上运行的次数)。测试模型由于模型的输入尺寸为 512x512x3 ,因此我们已将输入大小调整为该尺寸。接下来,我们通过将图像除以 255 来规范化图像以加快计算速度。图像已被输入模型,用于预测二进制输出。为了放大像素的强度,二进制输出乘以 1000。然后将图像转换为 16 位整数以便于图像处理。之后,算法会检测缺陷并通过颜色分级以及根据缺陷的严重程度为具有缺陷的像素分配权重,来直观地标记缺陷的严重程度。然后,考虑加权像素在该图像上计算图像矩。图像最终转换回 8 位整数,输出图像显示颜色分级及其严重性值。import numpy as np import cv2 from google.colab.patches import cv2_imshow import os import random import tensorflow as tf h,w = 512,512 num_cases = 10 images = [] labels = [] files = os.listdir('./dataset/images/') random.shuffle(files) model = tf.keras.models.load_model('my_model') lowSevere = 1 midSevere = 2 highSevere = 4 for f in files[0:num_cases]: test_img = cv2.imread('./dataset/images/' + f) resized_img = cv2.resize(test_img,(w,h)) resized_img = resized_img/255 cropped_img = np.reshape(resized_img, (1,resized_img.shape[0],resized_img.shape[1],resized_img.shape[2])) test_out = model.predict(cropped_img) test_out = test_out[0,:,:,0]*1000 test_out = np.clip(test_out,0,255) resized_test_out = cv2.resize(test_out,(test_img.shape[1],test_img.shape[0])) resized_test_out = resized_test_out.astype(np.uint16) test_img = test_img.astype(np.uint16) grey = cv2.cvtColor(test_img, cv2.COLOR_BGR2GRAY) for i in range(test_img.shape[0]): for j in range(test_img.shape[1]): if(grey[i,j]>150 & resized_test_out[i,j]>40): test_img[i,j,1]=test_img[i,j,1] + resized_test_out[i,j] resized_test_out[i,j] = lowSevere elif(grey[i,j]<100 & resized_test_out[i,j]>40): test_img[i,j,2]=test_img[i,j,2] + resized_test_out[i,j] resized_test_out[i,j] = highSevere elif(resized_test_out[i,j]>40): test_img[i,j,0]=test_img[i,j,0] + resized_test_out[i,j] resized_test_out[i,j] = midSevere else: resized_test_out[i,j] = 0 M = cv2.moments(resized_test_out) maxMomentArea = resized_test_out.shape[1]*resized_test_out.shape[0]*highSevere print("0th Moment = " , (M["m00"]*100/maxMomentArea), "%") test_img = np.clip(test_img,0,255) test_img = test_img.astype(np.uint8) cv2_imshow(test_img) cv2.waitKey(0)7. 结果 我们用于严重性检测的视觉指标是颜色,在图像中,颜色为:绿色表示存在严重缺陷的区域。蓝色表示缺陷更严重的区域。红色表示最严重的缺陷区域。第0个时刻以百分比的形式显示在输出图像旁边,作为严重性的经验度量。以下是三个随机样本,显示了原始输入、真实情况和模型生成的输出。文章转载自 小白学视觉 2022-01-27
-
常规符号函数的梯度几乎处处为零,不能用于反向传播。为此,来自华为诺亚方舟实验室等机构的研究者提出一种在频域中估计原始符号函数梯度的新方法。二值神经网络(BNN)将原始全精度权重和激活用符号函数表征成 1-bit。但是由于常规符号函数的梯度几乎处处为零,不能用于反向传播,因此一些研究已经提出尝试使用近似梯度来减轻优化难度。然而,这些近似破坏了实际梯度的主要方向。 基于此,在一篇 NeurIPS 2021 论文中,来自华为诺亚方舟实验室等机构的研究者提出使用傅里叶级数的组合来估计频域中符号函数的梯度以训练 BNN,即频域逼近 (FDA)。所提方法不影响占整体能量大部分的原始符号函数的低频信息,并且将高频系数使用噪声拟合模块 (noise adaptation module) 进行估计以避免大量的计算开销。 论文地址:https://arxiv.org/pdf/2103.00841.pdf 在几个基准数据集和神经架构上的实验表明,使用该方法学习的二值网络实现了 SOTA 准确率。 数日前,在机器之心 2021 NeurIPS MeetUp China 上,论文一作许奕星为参会者解读了该论文。 方法 该研究提出的 FDA 方法,通过利用傅里叶级数 (FS) 来估计频域中的原始符号函数,FS 估计是使用无穷项时符号函数的无损表征。在实际应用中,能量相对较低的高频系数会被忽略,以避免巨大的计算开销,并将符号函数表征为固定数量的不同周期正弦函数的组合。与现有的逼近方法相比,该研究所提出的频域逼近方法不影响原始符号函数的低频域信息,即占用符号函数能量最多的部分。因此,原始符号函数相应梯度的主要方向能够被更准确地保持。 在论文中,该研究对所提方法做了详细的理论表述。 论文中用 f(·)和 f’(·)来表示原始函数及其对应的梯度函数。由于符号函数的梯度是一个无法反向传播的脉冲函数,需要应用进化算法(evolutionary algorithm)等零阶算法来达到最优解,但这是非常低效的。因此该研究提出找到一个代理函数,通过一阶优化算法(如 SGD)依靠实验求解,而理论上具有与符号函数相同的最优解。 已有研究证明,任何周期为 T 的周期信号都可以分解为傅里叶级数的组合: 然后该研究进一步证明了随着 n 的增加,估计值和 s(t)之间的均方误差会逐渐减小,并在 n → ∞ 时收敛到 0。 为了进一步补偿细微的逼近误差,该研究在训练阶段添加了一个噪声适应模块来细化梯度。 实验及结果 为了展示 FDA-BNN 优越的性能,该研究在 CIFAR-10 数据集上进行了评估实验,实验结果如下表所示。 消融实验 为了验证所提方法中每个组件的有效性、噪声适应模块和超参数的影响,该研究进行了一系列的消融实验。 首先,该研究使用 ResNet-20 架构在 CIFAR-10 上实验验证正弦模块和噪声适应模块的效果,结果如下表所示。 从上表的结果看,使用正弦模块可使训练过程受益,将准确率从 84.44% 提高到 85.83%。将正弦模块和噪声自适应模块组合在一起时得到了最佳性能,即 86.20% 的准确率。 为了进一步验证噪声适应模块的用途,研究者将该模块添加到其他梯度逼近方法中,例如 DSQ 和 BNN+,结果如下表所示。 然后该研究评估了不同 η(·) 对噪声适应模块的影响。结果如下表所示,使用 shortcut 时性能更好,并且 shortcut function η(x) = α sin(x) 在实验过程中表现最好。 在 ImageNet 上的实验 该研究进一步在大规模数据集 ImageNet ILSVRC 2012 上进行了实验,使用 ResNet-18 和 AlexNet 进行实验,结果如下表所示。 对于 ResNet-18,FDA-BNN 实现了 60.2% 的 top-1 准确率和 82.3% 的 top-5 的准确率,比基线方法(Bireal-Net + PReLU)高出 1.2% 和 1.0%,并超过所有其他方法。 当以 ReActNet 作为基线方法,并使用该研究所提方法计算符号函数的梯度, FDA-BNN 达到了 66.0% 的 top-1 准确率,86.4% 的 top-5 准确率,比基线方法分别高出 0.5% 和 0.3%。 对于 AlexNet,该研究使用 Dorefa-Net 中的量化方法作为基线方法,FDA-BNN 实现了 46.2% 的 top-1 准确率和 69.7% 的 top-5 准确率,并优于其他 SOTA 方法。
-
Fast-SCNN由4部分构成,Learning to Down-sample(学习下采样),Global Feature Extractor(全局特征提取), Feature Fusion(特征融合), Classifier(分类器)。Learning to Down-sample,一个普通的卷积层Conv2D,两个depthwise separable卷积层(DSConv)。Global Feature Extractor,用于抓取图像分割的全局特征。与普通multi-branch方法不同,该模块对于低分辨率图像进行处理。Feature Fusion,融合特征,并且是以相对简单方式融合两个分支的特征,确保效率。Classifier,两个depthwise separable卷积层(DSConv),一个pointwise卷积层(Conv2D),包含一个softmax操作。此外,在梯度下降计算中,用argmax将softmax替代,以提高计算效率。Fast-SCNN的创新点主要在以下两个方面:“学习下采样”(Learning to Down-sample)和encoder-decoder中的 skip connection类似,确保了低层次特征能被有效地共享和使用,共三层。Fast-SCNN还借鉴了MobileNet的depthwise separable convolution和 residual bottleneck block,来降低计算成本和内存消耗。
-
2021年10月21日晚上19:00,举行华为云AI论文精读会2021第二十期:轻量化神经网络MobileNet系列论文精读。本期邀请到的嘉宾是:张子豪,同济大学交通运输工程硕士研究生,研究方向为计算机视觉、深度学习、目标检测、计算教育学。华为云ModelArts、华为云DevCloud、网络人工智能引擎NAIE、华为昇腾AI开发者博主。B站UP主“同济子豪兄”。本次论文精读的领域是CV领域,感兴趣的小伙伴点击下方的链接一起观看学习吧~讲解内容:谷歌移动端轻量化卷积神经网络MobileNet V1、V2、V3的设计哲学、技术演进和前沿发展趋势。Notebook中使用Keras深度学习框架的MobileNet预训练模型,对图像和视频进行图像分类,并调用摄像头实时预测。华为云AI论文精读会致力于让更多人低门槛使用经典算法,助力AI开发者基于ModelArts,实现高效率论文复现和挑战!本期视频:https://bbs.huaweicloud.com/live/cloud_live/202110211900.html华为云AI论文精读会2021·论文算法实战赛报名地址:https://competition.huaweicloud.com/information/1000041393/introduction
-
前言大家好,我们团队名称是我要拿十万,很高兴跟大家交流“华为云杯”2020人工智能创新应用大赛的比赛心得,我们团队的三个成员都来自西安交通大学。本文将从解题思路、数据处理、模型结构三个方面进行介绍。解题思路充分使用所给数据使用模型提取图像高分辨率表示数据处理训练前,数据准备减小切割图片大小和步长,将baseline中图片切割步长由992变为256,切割大小由1024x1024变为512x512,剔除无效数据,去除只含有背景的训练数据对;最终有效数据增加至24000张,之后按照7:3的比例划分为训练集和验证集;训练过程中,数据增强随机对训练数据进行gamma变换、随机角度旋转、随机水平翻转、均值滤波、增加噪声,亮度、对比度、饱和度、颜色等随机变化;通过数据增强,提高了训练数据的丰富性,一定程度上抑制了过拟合现象;推理过程中,膨胀预测因为推理图像比较大,在推理过程中需要对图像进行切割和拼接,为了避免因为对切割图像边缘处特征提取出现问题,使用膨胀预测;首先对推理图像进行填充,每次推理步长为512,推理图片大小为1024,只保留中心512大小的部分,最终拼接得到推理结果。网络模型使用HRNetv2_w48作为分割网络,对于每张图片,使用一个主干网络对其提取特征,得到不同层级的特征之后,通过上采样,将这些不同层级不同大小的特征拼接到一起,之后经过一个卷积层,batchnorm层,relu激活层,得到最终用于分割的特征,最后将得到的特征经过卷积层,softmax,上采样等操作,得到最终的分割结果;因为我们的思路是使用模型提取图片的高分辨率表示,因此使用hrnet作为特征提取网络,hrnet在整个特征提取过程中并行链接高分辨率卷积到低分辨率卷积,从而在整个过程中保持高分辨率表示;同时通过在平行卷积上重复进行融合,产生强的高分辨率表示;通过使用hrnet,得到图片的强分辨率表示,我们最终得到良好的分割结果。参考资料:[1] Sun K, Zhao Y, Jiang B, et al. High-resolution representations for labeling pixels and regions[J]. arXiv preprint arXiv:1904.04514, 2019.[2] Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 3431-3440.[3] 王梦灵,姚宝敬.新基建浪潮下应用AI遥感技术实现城市管理创新[J].张江科技评论,2020(03):64-65.[4] 邢逸帆.AI养猪、遥感杀虫和卫星种粮 智慧农业中国新希望[J].农业工程技术,2019,39(27):63-66.[5] open-mmlab/mmsegmentation https://github.com/open-mmlab/mmsegmentation[6] wangye707/ICNet-paddlepaddle https://github.com/wangye707/ICNet-paddlepaddle[7] 深度学习入门之Pytorch——数据增强 https://blog.csdn.net/weixin_40793406/article/details/84867143[8] 【Keras】基于SegNet和U-Net的遥感图像语义分割 https://www.cnblogs.com/skyfsm/p/8330882.html[9]使用神经网络(ICNet)对航拍图片(遥感图像)进行图像语义分割(数据集+代码+最终训练模型)https://blog.csdn.net/qq_28626909/article/details/106489285本文首发 AI Gallery: https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=d2717986-bceb-4b83-a3ae-7305503b81d3本赛事赛题:https://competition.huaweicloud.com/information/1000041322/circumstance决赛获奖选手分享集锦:https://competition.huaweicloud.com/information/1000041322/share
-
团队介绍我们来自广西友迪咨询科技有限公司,队长陆宇升,队员林景锋、赖沛成。下面介绍我们团队的解决方案。路线选择本赛题的任务是基于显微镜成像的金相图片评估定级,可以使用比较法、截线法和面积法。比较法将赛题视为图像分类问题,比较容易实现。我们同时在比较法和面积法两条路线上进行探索。在比较法的尝试汇中我们发现,数据增强中使用RandomResizedCrop(官方baseline中使用了这个方法),会比使用固定缩放比的Resize/CenterCrop方案获得更高的分数。按照晶粒度等级的定义,晶粒度等级是由晶粒度大小决定的,因此,尺度相关特征应该是卷积网络用来分类的主要特征。RandomResizedCrop会把图像进行随机缩放,会让神经网络在分类决策的时候,排除尺度相关特征,实现尺度无关性,这对普通的分类问题会有用,但理论上会降低金相评级的准确性。但事实正好相反,我们猜测,卷积神经网络主要根据尺度无关的特征进行分类,这样真实的泛化能力应该不强。因此,大赛中我们把大部分时间和精力放在面积法探索上,由于图像噪音和模糊晶粒边界难以区分等问题难以在短时间内解决,在面积法上我们没有取得理想结果,下面只介绍我们在比较法上的具体方案。网络选择和超参数我们尝试了ResNeXt101、EfficientNet b0/b4等网络,最高分是基于EfficientNet b4的方案。数据增强我们使用了随机缩放裁剪,垂直翻转,水平翻转,仿射变换,cutout,其中仿射变换和cutout效果明显,提升大约1%。优化器使用AdamW,提升大约0.5%。gradcam热力图我们使用gradcam热力图分析神经网络分类效果不理想的原因,以下分析基于ResNeXt101网络。可以看出,单模型神经网络resnext101-32*8d很多情况下仅依据图片局部区域特征进行分类决策,容易发生过拟合。关注区域平均化改进算法ResNeXt、EfficientNet等网络只是根据局部区域特征进行分类,大部分区域属于无用背景被忽略。这适用于通常的分类问题,但对于晶粒度定级,整个图没有无用背景,如果仅根据局部特征进行分类,容易发生过拟合。我们提出一种新的改进方法,强制神经网络分类时均衡考虑图片的所有区域的特征,而不是某个局部的特征。 ResNeXt、EfficientNet等网络的最顶层输出的feature map,会被avgpool池化为1*1*c的张量,然后送入全连接层fc分类。我们改造avgpool的output size为(d,d),然后拆分为d*d个1*1*c的张量,分别送入全连接层fc,分别计算softmax和交叉熵损失函数并求和,作为损失函数。这样,改进后的网络根据d*d个区域特征进行分类,使得网络不会根据范围很小的局部特征分类,另一个角度上看,相当于样本数量增加d*d倍,抑制过拟合问题。本地测试有很大提升,相同参数下,分数提高2~4个百分点。我们使用gradcam热力图分析比较原网络和改进后的网络的模型:可以看到,改进后的网络关注的区域分散到图片的四个角,而不是集中在某个小区域,我们认为这应该可以提高网络的泛化能力。
-
最近,图注意力网络一作 Petar Veličković 在母校剑桥大学做了一场讲座,介绍图神经网络的理论基础。图神经网络(GNN)是机器学习中最热门的研究方向之一,在提出后的十几年里被不断扩展,先后发展出了图卷积网络、 图注意力网络、图自编码器、图生成网络和图时空网络等多个子领域。 最近,图注意力网络的第一作者 Petar Veličković 回到母校剑桥大学计算机实验室做了一场主题为《图神经网络理论基础》的讲座。在演讲中,Petar 尝试从基本原理推导 GNN,介绍其在多个学科中的应用,并解释 GNN 如何在多个研究路线中并行出现。讲座幻灯片地址:https://petar-v.com/talks/GNN-Wednesday.pdf Petar 表示,这个演讲「浓缩」了他 4 年 GNN 研究的精华,「这些年我用多种方式讲授 GNN,现在我终于找到了最『自然』的讲解方式。」他表示,这个 70 分钟的讲座既可以帮助初学者,也可以为 GNN 实践者提供新的角度。 接下来,我们就来看 Petar 讲了什么。 Petar Veličković:我找到了最「自然」的 GNN 讲解方式 分子是图,交通地图是图,社交网络也是图。 Petar 首先介绍了现实世界中的图、图神经网络的实际应用,以及 GNN 的相关库和数据集等。紧接着他展示了该讲座的主要内容: 基于基本原理推导 GNN;介绍 GNN 的多个独立研究变体;回顾:类 GNN 模型在 ML 研究历史中的出现;当下:目前的一些研究方向;展望:GNN 如何泛化至图结构输入以外。Petar 表示,该讲座的内容基于其关于几何深度学习的研究、麦吉尔大学助理教授 William Hamilton 的著作《图表示学习》,以及 Yoshua Bengio、Marco Gori、Jürgen Schmidhuber 等多位研究者的工作。 基于基本原理推导 GNNPetar 首先从基本原理定义 GNN,然后介绍了对 GNN 处理图数据有用的特性,并列举了一些示例。 GNN 的过去、现在与未来Petar 介绍了 GNN 的发展过程与研究蓝图,及其在多个研究领域中的并行出现。例如,自然语言处理与 GNN。「Transformer 是图神经网络。」 完整视频参见:Petar Veličković简介 Petar Veličković现为 DeepMind 高级研究科学家。他于 2019 年从剑桥大学获得计算机科学博士学位,导师为 Pietro Liò。他的研究方向包括:设计在复杂结构数据上运行的神经网络架构(如图网络),及其在算法推理和计算生物学方面的应用。 Petar Veličković是图注意力网络的一作,他和 Guillem Cucurull、Yoshua Bengio 等人一起完成了图注意力网络的开山之作——《Graph Attention Networks》,这篇论文被 ICLR 2018 接收,目前被引量超过 3000。除了图注意力网络,他还是《Deep Graph Infomax》的一作。在这篇论文中,他和 William Fedus、Yoshua Bengio 等人提出了以无监督方式学习图结构数据中节点表示的通用方法,该论文被 ICLR 2019 接收。 去年,机器之心曾报道过他的博士论文,Petar 用 147 页篇幅详述了「结构在神经网络中的复兴」,涵盖他之前的研究工作和其他关于 GNN 的内容。而今天介绍的这个讲座更是融合了他「近 4 年 GNN 研究的精华」,对图神经网络领域感兴趣的读者可以一看。 个人主页地址:https://petar-v.com/
-
一年一度的计算机视觉顶会IEEE计算机视觉及模式识别大会CVPR录用结果最近公布。据悉,今年CVPR投稿量与论文接收量相对往年继续上升,有效投搞量达7015篇,接收论文1663篇,接收率23.7%,与往年相比略有上升。华为诺亚方舟实验室此次有30篇论文被接收,包括两篇Oral,其中主要由正式或者实习员工完成的工作有24篇,主要由高校合作方完成的工作有6篇。研究方向涵盖模型压缩和能耗高效、神经网络搜索、语义理解、底层视觉、自动驾驶、无损数据压缩、可解释AI等多个方面。诺亚方舟实验室的这些文章,体现出工业界需求与学术前沿的紧密结合,围绕业务中的迫切需求,结合最新学术进展提出创新性解决方案,也让学术研究能够有具体落地。如这些文章中包含了去年AdderNet算法的继续演进AdderSR,以及最近广为流传的IPT网络等。下面挑选一些本次CVPR接收的代表性论文进行介绍。CVPR 2021代表性工作介绍AdderSR: Towards Energy Efficient Image Super-Resolution本论文研究使用加法网络解决图像超分的问题,降低超分网络的能耗。由于任务的属性不同,直接将加法网络应用到超分任务上损失严重,本文对该问题进行了深入分析。首先,加法算子难以学到恒等映射;除此之外,加法算子难以学到有效的高通滤波器,但是这两个特性对于图像处理任务非常重要。在此基础上,本文继而提出自连接加法单元和可学习的幂激活函数来调整特征分布、增强细节,有效解决该问题。实验表明,本文提出的加法超分网络可以有效减少2.5x能耗,并达到与原模型非常接近的效果。ReNAS: Relativistic Evaluation of Neural Architecture Search (Oral)一个有效的神经网络结构性能评估方案是神经网络结构搜索(NAS)成功的关键。现有NAS算法通常在训练时间有限的小型数据集上训练和评估神经结构。但这样一种粗糙的评估方式很难对神经网络结构进行准确评估。本文提出一种新的神经网络结构评价方案,旨在确定哪个神经网络结构的性能更好,而不是精确地预测性能绝对值。因此,我们提出了一个结构相对性能预测NAS (ReNAS)。我们将神经结构编码为特征张量,并利用预测器进一步细化表示。本方法可用于离散搜索,无需额外评估。在NASBench101数据集上抽样424个(搜索空间的0.1%)神经架构及其标签已经足够学习一个准确的架构性能预测器。在NAS-Bench-101和NAS-Bench-201数据集上,我们搜索的神经结构的准确性高于最新的方法,显示了本方法的优先性。Transformation Invariant Few-Shot Object Detection不同于以往基于元学习的小样本物体检测框架,本文从样本扩增的角度解决这一问题。本文提出了一种简单而有效的变换不变原则,它可以灵活地应用于各种元学习模型,以提高新类物体的检测性能。该方法通过对变换后图像的预测结果引入一致性正则,增强小样本物体检测模型的泛化能力。重要的是,这一方法可以处理未标记数据,从而解决半监督小样本物体检测问题。实验表明,本文提出的方法在标准小样本物体检测和半监督小样本物体检测上均有效。Joint-DetNAS: Upgrade Your Detector with NAS,Pruning and Dynamic DistillationJoint-DetNAS是一个融合了NAS、剪枝以及蒸馏的目标检测模型优化算法,由两个主要部分组成:a) 构建弹性教师模型池:通过一次渐进式收缩训练获得大量高质量模型,用于支撑教师模型搜索b)学生-教师网络联合优化:通过交迭搜索,动态寻找最优蒸馏组合。学生网络采用Network Morphism策略, 有效融合模型结构演化和剪枝技术。算法直接输出学生模型作为结果,无需额外训练。Joint-DetNAS搜索高效且优化效果显著:如对于R101-FPN模型,在FPS及FLOPS优化 50%的情况下,仍能有2.5%的AP提升。TransNAS-Bench-101: Improving Transferrability and Generalizability of Cross-Task Neural Architecture Search神经网络架构搜索(NAS)的最新突破将该领域的研究范围扩展到了更广泛的视觉任务和更多样化的搜索空间。现有的NAS方法大多是在单个任务上进行搜索,而跨任务搜索的算法正在涌现。为了降低计算成本和实验复杂性对跨任务算法研究的阻碍,本论文提出了TransNAS-Bench-101基准测试数据集。该数据集涵盖了图像分类、语义分割、自编码器等七个不同的视觉任务,并探索了两类不同的搜索空间:Cell-based搜索空间和Macro-based搜索空间。通过7,352个backbone在七个任务上的训练,我们提供了51,464个模型的详细训练数据。我们希望借助TransNAS-Bench-101来鼓励跨任务的NAS算法的出现,从而将跨任务搜索的效率和通用性提高到新的水平。Pre-Trained Image Processing Transformer随着现代硬件计算能力的快速增强,在大规模数据集上预训练的Transformer模型(例如BERT,GPT-3)表现出了巨大的潜力和超越传统模型的效果。我们提出了一种可用于底层视觉任务(例如,去噪,超分辨率和去雨)的预训练Transformer模型(IPT)。为了最大程度地挖掘Transformer的能力,我们利用具有大量自然图像的ImageNet数据集生成大量降质图像对,并在这些图像上使用多头和多尾机制对IPT模型进行预训练。另外,我们还引入了对比学习以来提升模型的泛化性能。我们提出的IPT模型可以在迅速微调后有效地用于不同的底层视觉任务中,并在多项任务上取得了SOTA的结果。Efficient Multi-Stage Video Denoising with Recurrent Spatio-Temporal Fusion论文提出了极简的视频去噪网络EMVD,旨在通过结合传统图像处理和深度学习构造高能效的像素级视频处理框架。基于时序融合、空间去噪和时空精细化等多阶段设计,结合可逆可学习变换,既递归地利用视频中自然固有的时空相关性渐进改善视频质量,又大大降低模型的复杂度。通过业界公开数据集和真实数据集评测,计算量仅5.38GFLOPS的EMVD精度和视觉效果超过300多倍计算量的SOTA网络模型,在硬件资源有限的终端设备上处理1080P视频可达50FPS,业界首次在终端设备上实现实时的高分辨率视频AI降噪算法。深度学习领域的图像降噪方法往往需要噪声图像和相应的干净图像配对来训练,然而在真实场景中构造训练配对是十分困难的。我们提出Neighbor2Neighbor:通过近邻采样,从含噪图像采样出两张“相似但不相同”的子图以构成配对数据来训练降噪网络,其中两张子图每个位置对应的像素在原噪声图像中都是近邻像素;同时,在损失函数中引入正则项来修正两张近邻子图“相似但不相同”导致的过度平滑问题。本方法仅需噪声图像数据集即可训练任意降噪网络,在RGB域合成数据和RAW域真实含噪图像数据集上均表现出优秀的降噪效果,性能接近基于“噪声-干净”图像配对进行训练的模型。相比于现有的自监督图像降噪方法,本方法既不需要构造配对数据的采集过程,也不需要改造网络结构,同时无需额外的噪声模型信息,在暗光人脸拍照、夜间户外拍照、医学图像降噪等场景具有较高的应用潜力。Focus on Local: Detecting Lane Marker from Bottom Up via Key Point当前车道线检测的主流方向分为基于分割和基于检测的方法两大类。前者生成像素级的语义类别并通过聚类生成不同实例的曲线,后者由每个锚点预测整根曲线,这两种方法都直接建模全局信息,存在聚类容易产生误差以及远端预测不准的问题。受到人体位姿估计方法的启发,我们首次将车道线检测转化为局部关键点估计及其关联问题,用距离信息建模局部关联关系。车道线局部建模相对于全局建模更加简单,复杂度更低,泛化性能更好。我们采用两个轻量化的模型,在车道线检测公开数据集CULane和TuSimple上取得了新的SOTA结果,另外在跨数据集的泛化性能上也展现出了相当大的优越性。综上,我们的方法证明了位姿估计方法在车道线检测中的应用潜力,为解决这一问题开辟了新的方向。AF2-S3Net: Attentive Feature Fusion with Adaptive Feature Selection for Sparse Semantic Segmentation Network激光雷达点云的语义分割可视为自动驾驶的基石功能之一,精确的分割结果可以辅助物体检测、定位等核心感知任务。针对LiDAR语义分割问题,AF2S3Net以3D稀疏神经网络为框架,通过多分支、多层级主动特征融合实现了全局空间语义与局部细节的动态叠加,在单个网络中实现了单点网络与3D卷积网络的有机统一。同时为了降低特征融合后产生的梯度噪声,各分支原始特征被投票后送入特征选择模块,该模块通过压缩赋权过滤了部分噪声特征列向量,从而进一步提升了网络稳定性和泛化能力。在SemanticKITTI和nuScenes两大重量级LiDAR数据集语义分割竞赛排行榜上,AF2S3Net斩获双料冠军。QPP: Real-Time Quantization Parameter Prediction for Deep Neural Networks深度神经网络的权重和特征的量化可以降低能耗,提升计算效率,有助于促进其在手机等设备上的应用。量化感知训练的方法通常可以达到较好的效果,但是需要完整的数据集,但是这一点很多情况下难以满足。非训练量化的方法通常需要一个比较耗时的量化参数计算过程,否则量化精度损失比较严重。本文提出一种量化参数预测的算法,称为QPP。通过部分训练数据或者无标签数据的学习,QPP预测器在给定网络输入的情况下可以准确预测激活值的量化参数。预测器在避免复杂计算的同时有效保持了原始模型的精度。因此,本文的方法结合了动态量化和静态量化的优点。本文将QPP算法用在两个标准的动态量化算法上,并在分类、分割、超分等视觉任务上进行了广泛的验证。iVPF: Numerical Invertible Volume Preserving Flows for Lossless Compression在存储领域,高效无损压缩由于可以有效降低存储介质成本,故被广泛研究。AI算法通过学习数据分布规律并根据数据规律进行压缩,具有压缩率高等有点,具备良好的研究和应用前景。可逆流模型(Flow model)能准确拟合概率分布,理论压缩比高,但由于浮点误差问题,不能直接用于无损压缩任务。本方案第一次提出基于保体积流模型(volume preserving flow)的无损压缩方法吗,具有压缩率高,压缩吞吐率大的优点。首先,设计保体积流算子的数值计算方法,消除数据和待压缩隐变量的误差,保证无损压缩正确性;其次,设计基于保体积流模型的压缩和解压算法,它能达到最优的理论压缩率上界,压缩比高,压缩吞吐率高。本方法在图像数据集取得了最优的压缩率性能。CausalVAE: Disentangled Representation Learning via Neural Structural Causal Models解耦表征学习旨在寻找低维的、由多个可解释因子组成的观测数据的隐表征。常用的变分自动编码器(VAE)的框架假设因子是独立的。然而,在实际场景中,具有语义的因素并不是必然独立的。相反,可能有一个潜在的描述这些因素相互依赖的因果结构。因此,我们提出了一个新的基于VAE的框架,名为因果VAE,其中包括带有因果结构的神经层,以此找到数据中的因果相关概念。在华为解耦数据集和真实数据集CelebA的实验表明,因果VAE学习的是语义上可解释的隐表征。我们可以控制某些语义因子,他们之间的信息可以通过表征之间的因果关系正确传递,生成反事实图片。本文来源:https://mp.weixin.qq.com/s/HeQbRdb4N7UJbKqD70qIyw
-
一年一度的计算机视觉顶会IEEE计算机视觉及模式识别大会CVPR录用结果最近公布。据悉,今年CVPR投稿量与论文接收量相对往年继续上升,有效投搞量达7015篇,接收论文1663篇,接收率23.7%,与往年相比略有上升。华为诺亚方舟实验室此次有30篇论文被接收,包括两篇Oral,其中主要由正式或者实习员工完成的工作有24篇,主要由高校合作方完成的工作有6篇。研究方向涵盖模型压缩和能耗高效、神经网络搜索、语义理解、底层视觉、自动驾驶、无损数据压缩、可解释AI等多个方面。诺亚方舟实验室的这些文章,体现出工业界需求与学术前沿的紧密结合,围绕业务中的迫切需求,结合最新学术进展提出创新性解决方案,也让学术研究能够有具体落地。如这些文章中包含了去年AdderNet算法的继续演进AdderSR,以及最近广为流传的IPT网络等。下面挑选一些本次CVPR接收的代表性论文进行介绍。CVPR 2021代表性工作介绍AdderSR: Towards Energy Efficient Image Super-Resolution本论文研究使用加法网络解决图像超分的问题,降低超分网络的能耗。由于任务的属性不同,直接将加法网络应用到超分任务上损失严重,本文对该问题进行了深入分析。首先,加法算子难以学到恒等映射;除此之外,加法算子难以学到有效的高通滤波器,但是这两个特性对于图像处理任务非常重要。在此基础上,本文继而提出自连接加法单元和可学习的幂激活函数来调整特征分布、增强细节,有效解决该问题。实验表明,本文提出的加法超分网络可以有效减少2.5x能耗,并达到与原模型非常接近的效果。ReNAS: Relativistic Evaluation of Neural Architecture Search (Oral)一个有效的神经网络结构性能评估方案是神经网络结构搜索(NAS)成功的关键。现有NAS算法通常在训练时间有限的小型数据集上训练和评估神经结构。但这样一种粗糙的评估方式很难对神经网络结构进行准确评估。本文提出一种新的神经网络结构评价方案,旨在确定哪个神经网络结构的性能更好,而不是精确地预测性能绝对值。因此,我们提出了一个结构相对性能预测NAS (ReNAS)。我们将神经结构编码为特征张量,并利用预测器进一步细化表示。本方法可用于离散搜索,无需额外评估。在NASBench101数据集上抽样424个(搜索空间的0.1%)神经架构及其标签已经足够学习一个准确的架构性能预测器。在NAS-Bench-101和NAS-Bench-201数据集上,我们搜索的神经结构的准确性高于最新的方法,显示了本方法的优先性。Transformation Invariant Few-Shot Object Detection不同于以往基于元学习的小样本物体检测框架,本文从样本扩增的角度解决这一问题。本文提出了一种简单而有效的变换不变原则,它可以灵活地应用于各种元学习模型,以提高新类物体的检测性能。该方法通过对变换后图像的预测结果引入一致性正则,增强小样本物体检测模型的泛化能力。重要的是,这一方法可以处理未标记数据,从而解决半监督小样本物体检测问题。实验表明,本文提出的方法在标准小样本物体检测和半监督小样本物体检测上均有效。Joint-DetNAS: Upgrade Your Detector with NAS,Pruning and Dynamic DistillationJoint-DetNAS是一个融合了NAS、剪枝以及蒸馏的目标检测模型优化算法,由两个主要部分组成:a) 构建弹性教师模型池:通过一次渐进式收缩训练获得大量高质量模型,用于支撑教师模型搜索b)学生-教师网络联合优化:通过交迭搜索,动态寻找最优蒸馏组合。学生网络采用Network Morphism策略, 有效融合模型结构演化和剪枝技术。算法直接输出学生模型作为结果,无需额外训练。Joint-DetNAS搜索高效且优化效果显著:如对于R101-FPN模型,在FPS及FLOPS优化 50%的情况下,仍能有2.5%的AP提升。TransNAS-Bench-101: Improving Transferrability and Generalizability of Cross-Task Neural Architecture Search神经网络架构搜索(NAS)的最新突破将该领域的研究范围扩展到了更广泛的视觉任务和更多样化的搜索空间。现有的NAS方法大多是在单个任务上进行搜索,而跨任务搜索的算法正在涌现。为了降低计算成本和实验复杂性对跨任务算法研究的阻碍,本论文提出了TransNAS-Bench-101基准测试数据集。该数据集涵盖了图像分类、语义分割、自编码器等七个不同的视觉任务,并探索了两类不同的搜索空间:Cell-based搜索空间和Macro-based搜索空间。通过7,352个backbone在七个任务上的训练,我们提供了51,464个模型的详细训练数据。我们希望借助TransNAS-Bench-101来鼓励跨任务的NAS算法的出现,从而将跨任务搜索的效率和通用性提高到新的水平。Pre-Trained Image Processing Transformer随着现代硬件计算能力的快速增强,在大规模数据集上预训练的Transformer模型(例如BERT,GPT-3)表现出了巨大的潜力和超越传统模型的效果。我们提出了一种可用于底层视觉任务(例如,去噪,超分辨率和去雨)的预训练Transformer模型(IPT)。为了最大程度地挖掘Transformer的能力,我们利用具有大量自然图像的ImageNet数据集生成大量降质图像对,并在这些图像上使用多头和多尾机制对IPT模型进行预训练。另外,我们还引入了对比学习以来提升模型的泛化性能。我们提出的IPT模型可以在迅速微调后有效地用于不同的底层视觉任务中,并在多项任务上取得了SOTA的结果。Efficient Multi-Stage Video Denoising with Recurrent Spatio-Temporal Fusion论文提出了极简的视频去噪网络EMVD,旨在通过结合传统图像处理和深度学习构造高能效的像素级视频处理框架。基于时序融合、空间去噪和时空精细化等多阶段设计,结合可逆可学习变换,既递归地利用视频中自然固有的时空相关性渐进改善视频质量,又大大降低模型的复杂度。通过业界公开数据集和真实数据集评测,计算量仅5.38GFLOPS的EMVD精度和视觉效果超过300多倍计算量的SOTA网络模型,在硬件资源有限的终端设备上处理1080P视频可达50FPS,业界首次在终端设备上实现实时的高分辨率视频AI降噪算法。深度学习领域的图像降噪方法往往需要噪声图像和相应的干净图像配对来训练,然而在真实场景中构造训练配对是十分困难的。我们提出Neighbor2Neighbor:通过近邻采样,从含噪图像采样出两张“相似但不相同”的子图以构成配对数据来训练降噪网络,其中两张子图每个位置对应的像素在原噪声图像中都是近邻像素;同时,在损失函数中引入正则项来修正两张近邻子图“相似但不相同”导致的过度平滑问题。本方法仅需噪声图像数据集即可训练任意降噪网络,在RGB域合成数据和RAW域真实含噪图像数据集上均表现出优秀的降噪效果,性能接近基于“噪声-干净”图像配对进行训练的模型。相比于现有的自监督图像降噪方法,本方法既不需要构造配对数据的采集过程,也不需要改造网络结构,同时无需额外的噪声模型信息,在暗光人脸拍照、夜间户外拍照、医学图像降噪等场景具有较高的应用潜力。Focus on Local: Detecting Lane Marker from Bottom Up via Key Point当前车道线检测的主流方向分为基于分割和基于检测的方法两大类。前者生成像素级的语义类别并通过聚类生成不同实例的曲线,后者由每个锚点预测整根曲线,这两种方法都直接建模全局信息,存在聚类容易产生误差以及远端预测不准的问题。受到人体位姿估计方法的启发,我们首次将车道线检测转化为局部关键点估计及其关联问题,用距离信息建模局部关联关系。车道线局部建模相对于全局建模更加简单,复杂度更低,泛化性能更好。我们采用两个轻量化的模型,在车道线检测公开数据集CULane和TuSimple上取得了新的SOTA结果,另外在跨数据集的泛化性能上也展现出了相当大的优越性。综上,我们的方法证明了位姿估计方法在车道线检测中的应用潜力,为解决这一问题开辟了新的方向。AF2-S3Net: Attentive Feature Fusion with Adaptive Feature Selection for Sparse Semantic Segmentation Network激光雷达点云的语义分割可视为自动驾驶的基石功能之一,精确的分割结果可以辅助物体检测、定位等核心感知任务。针对LiDAR语义分割问题,AF2S3Net以3D稀疏神经网络为框架,通过多分支、多层级主动特征融合实现了全局空间语义与局部细节的动态叠加,在单个网络中实现了单点网络与3D卷积网络的有机统一。同时为了降低特征融合后产生的梯度噪声,各分支原始特征被投票后送入特征选择模块,该模块通过压缩赋权过滤了部分噪声特征列向量,从而进一步提升了网络稳定性和泛化能力。在SemanticKITTI和nuScenes两大重量级LiDAR数据集语义分割竞赛排行榜上,AF2S3Net斩获双料冠军。QPP: Real-Time Quantization Parameter Prediction for Deep Neural Networks深度神经网络的权重和特征的量化可以降低能耗,提升计算效率,有助于促进其在手机等设备上的应用。量化感知训练的方法通常可以达到较好的效果,但是需要完整的数据集,但是这一点很多情况下难以满足。非训练量化的方法通常需要一个比较耗时的量化参数计算过程,否则量化精度损失比较严重。本文提出一种量化参数预测的算法,称为QPP。通过部分训练数据或者无标签数据的学习,QPP预测器在给定网络输入的情况下可以准确预测激活值的量化参数。预测器在避免复杂计算的同时有效保持了原始模型的精度。因此,本文的方法结合了动态量化和静态量化的优点。本文将QPP算法用在两个标准的动态量化算法上,并在分类、分割、超分等视觉任务上进行了广泛的验证。iVPF: Numerical Invertible Volume Preserving Flows for Lossless Compression在存储领域,高效无损压缩由于可以有效降低存储介质成本,故被广泛研究。AI算法通过学习数据分布规律并根据数据规律进行压缩,具有压缩率高等有点,具备良好的研究和应用前景。可逆流模型(Flow model)能准确拟合概率分布,理论压缩比高,但由于浮点误差问题,不能直接用于无损压缩任务。本方案第一次提出基于保体积流模型(volume preserving flow)的无损压缩方法吗,具有压缩率高,压缩吞吐率大的优点。首先,设计保体积流算子的数值计算方法,消除数据和待压缩隐变量的误差,保证无损压缩正确性;其次,设计基于保体积流模型的压缩和解压算法,它能达到最优的理论压缩率上界,压缩比高,压缩吞吐率高。本方法在图像数据集取得了最优的压缩率性能。CausalVAE: Disentangled Representation Learning via Neural Structural Causal Models解耦表征学习旨在寻找低维的、由多个可解释因子组成的观测数据的隐表征。常用的变分自动编码器(VAE)的框架假设因子是独立的。然而,在实际场景中,具有语义的因素并不是必然独立的。相反,可能有一个潜在的描述这些因素相互依赖的因果结构。因此,我们提出了一个新的基于VAE的框架,名为因果VAE,其中包括带有因果结构的神经层,以此找到数据中的因果相关概念。在华为解耦数据集和真实数据集CelebA的实验表明,因果VAE学习的是语义上可解释的隐表征。我们可以控制某些语义因子,他们之间的信息可以通过表征之间的因果关系正确传递,生成反事实图片。本文来源:https://mp.weixin.qq.com/s/HeQbRdb4N7UJbKqD70qIyw
-
描述RetinaFace(人脸检测/Pytorch)注:本算法支持多卡训练、单卡混合精度训练,但在多卡情况下不支持混合精度1. 概述此模型基于RetinaFace: Single-stage Dense Face Localisation in the Wild中提出的模型结构实现,该算法会载入在WiderFace 上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。训练后生成的模型可直接在ModelArts平台部署成在线服务。人脸检测的评估手段一般使用mAP指标,详细说明请参考:https://github.com/Cartucho/mAP本算法的其他信息如下表所示:项目说明参考论文RetinaFace: Single-stage Dense Face Localisation in the Wild使用框架Pytorch-1.4.0训练集WIDERFACE 中的 WIDER_train训练总epoch数100训练batch_size使用混合精度单卡训练,batch_size=16训练硬件及耗时单卡v100,O1混合精度,训练大约31小时测试集WIDERFACE 中的WIDER_val推理硬件及速度CPU 10.3s/pic ,GPU2080ti 0.5s/pic–1.5s/pic ,modelarts平台V100 GPU:3226张图片总共耗时24分钟(target_size = 1600,max_size = 2150)输入图像尺寸训练:1024*1024 推理:target_size = 1600,max_size = 2150(保证图片等比例缩放,使用最小一条边缩放到target_size的缩放比例;如果此时最大边超过了max_size,则使用最大边缩放到max_size的缩放比例)原论文准确率RetinaFace-R50 Easy 96.5, Medium 95.6, Hard 90.4本算法准确率RetinaFace-R50 Easy 95.52, Medium 94.43, Hard 90.062、训练2.1. 算法基本信息任务类型:人脸检测支持的框架引擎:PyTorch-1.4.0-python3.6算法输入:存储在OBS上的数据集,必须按照WIDERFACE 数据集的格式进行存储,详情请查看下文第4节案例指导WIDERFACE 预训练模型,在WIDERFACE 上的mAP是 Easy 95.52, Medium 94.43, Hard 90.06算法输出:用于Pytorch推理的pth模型,CPU推理速度:10.3s/pic GPU2080ti推理速度:0.5s/pic–1.5s/pic ,modelarts平台V100 GPU:3226张图片总共耗时24分钟(target_size = 1600,max_size = 2150)2.2. 训练参数说明名称默认值类型是否必填是否可修改描述data_urldata/WIDERFACE/WIDER_trainstring是是训练或者评估输入的数据集 (如果使用文件夹形式的数据,则填写该文件夹在OBS上的访问路径;如果使用zip压缩包形式的数据,则填写该压缩包的父目录在OBS上的访问路径)train_urloutput/string是是训练或者评估结果输出路径data_formatzipstring否是可选值zip(上传数据为zip压缩包)或者dir(上传数据为目录形式),压缩包和目录的具体格式请查看下面《ModelArts AI市场算法RetinaFace使用指导》所附连接networkresnet50string否是模型的backbone网络,可选值 mobile0.25 、resnet50 或者resnet152num_workers1int否是数据加载的worker数量lr0.001string否是训练的初始学习率momentum0.9string否是优化器的动量系数load_weightweight/best_model.pthstring否是可加载的预训练模型,当eval=True时,该参数为必填项 ;默认值是以resnet50为backbone在WiderFace数据集上的预训练模型,该预训练模型已经包含在本算法中weight_decay0.0005string否是优化器中的正则化权重衰减量gamma0.1string否是分段衰减学习率中每次学习率衰减的比例(new_lr=lr*gamma),仅当use_cosine_decay=False该参数有效img_size1024int否是训练数据的分辨率confidence_threshold0.02string否是nms时的置信度阈值nms_threshold0.4string否是nms时的IOU阈值num_gpu1int否是当num_gpu=1时,使用单个GPU训练;当num_gpu>1时,使用机器上所有的GPU进行训练batch_size16int否是训练时的batch_size,可根据GPU的显存进行调整epoch100int否是训练的epoch数量use_backboneTruestring否是训练时是否使用backbone网络在ImageNet数据集上的预训练参数use_mixedTruestring否是是否使用混合精度进行训练,使用混合精度一定程度上可以降低显存消耗,也可能提高训练速度amp_levelO1string否是混合精度的设置,可选值:O0,O1,O2,O3warmup_epoch10int否是训练开始时,使用warmup学习率的epoch数量,warmup_epoch=-1表示不使用warmupdecay150int否是分段衰减学习率的第一次学习率降低的epoch数,仅当use_cosine_decay=False时有效decay280int否是分段衰减学习率的第二次学习率降低的epoch数,仅当use_cosine_decay=False时有效use_cosine_decayTruestring否是是否使用余弦衰减学习率,设置为False则使用分段衰减学习率optimizersgdstring否是sgd 或者 adam优化器evalFalsestring否是eval=True,则进行评估;eval=False进行训练2.3. 训练输出文件训练完成后的输出文件如下:|- RetinaFace_Resnet50_Final.pth |- deploy_scripts |- model |- data |- layers |- models |- retinaface_utils |- config.json |- customize_service.py |- save_model.pth3. GPU/CPU推理元模型来源 选择 保存在OBS上的对应路径下的deploy_scripts文件夹。注意:推理配置文件model/config.json中的runtime字段为pytorch1.4-python3.6,表示该模型可同时在CPU或GPU运行。4. 案例指导本算法的详细使用方法,请查看《ModelArts AI Gallery算法RetinaFace使用指导》。交付交付方式华为云ModelArts交付区域华北-北京一、华北-北京四、华东-上海一、华南-广州、亚太-**
-
最近,CV 研究者对 transformer 产生了极大的兴趣并取得了不少突破。这表明,transformer 有可能成为计算机视觉任务(如分类、检测和分割)的强大通用模型。我们都很好奇:在计算机视觉领域,transformer 还能走多远?对于更加困难的视觉任务,比如生成对抗网络 (GAN),transformer 表现又如何?在这种好奇心的驱使下,德州大学奥斯汀分校的 Yifan Jiang、Zhangyang Wang,IBM Research 的 Shiyu Chang 等研究者进行了第一次试验性研究,构建了一个只使用纯 transformer 架构、完全没有卷积的 GAN,并将其命名为 TransGAN。与其它基于 transformer 的视觉模型相比,仅使用 transformer 构建 GAN 似乎更具挑战性,这是因为与分类等任务相比,真实图像生成的门槛更高,而且 GAN 训练本身具有较高的不稳定性。论文链接:https://arxiv.org/pdf/2102.07074.pdf代码链接:https://github.com/VITA-Group/TransGAN从结构上来看,TransGAN 包括两个部分:一个是内存友好的基于 transformer 的生成器,该生成器可以逐步提高特征分辨率,同时降低嵌入维数;另一个是基于 transformer 的 patch 级判别器。研究者还发现,TransGAN 显著受益于数据增强(超过标准的 GAN)、生成器的多任务协同训练策略和强调自然图像邻域平滑的局部初始化自注意力。这些发现表明,TransGAN 可以有效地扩展至更大的模型和具有更高分辨率的图像数据集。 实验结果表明,与当前基于卷积骨干的 SOTA GAN 相比,表现最佳的 TransGAN 实现了极具竞争力的性能。具体来说,TransGAN 在 STL-10 上的 IS 评分为 10.10,FID 为 25.32,实现了新的 SOTA。 该研究表明,对于卷积骨干以及许多专用模块的依赖可能不是 GAN 所必需的,纯 transformer 有足够的能力生成图像。 在该论文的相关讨论中,有读者调侃道,「attention is really becoming『all you need』.」不过,也有部分研究者表达了自己的担忧:在 transformer 席卷整个社区的大背景下,势单力薄的小实验室要怎么活下去?如果 transformer 真的成为社区「刚需」,如何提升这类架构的计算效率将成为一个棘手的研究问题。基于纯 Transformer 的 GAN作为基础块的 Transformer 编码器 研究者选择将 Transformer 编码器(Vaswani 等人,2017)作为基础块,并尽量进行最小程度的改变。编码器由两个部件组成,第一个部件由一个多头自注意力模块构造而成,第二个部件是具有 GELU 非线性的前馈 MLP(multiple-layer perceptron,多层感知器)。此外,研究者在两个部件之前均应用了层归一化(Ba 等人,2016)。两个部件也都使用了残差连接。内存友好的生成器NLP 中的 Transformer 将每个词作为输入(Devlin 等人,2018)。但是,如果以类似的方法通过堆叠 Transformer 编码器来逐像素地生成图像,则低分辨率图像(如 32×32)也可能导致长序列(1024)以及更高昂的自注意力开销。 所以,为了避免过高的开销,研究者受到了基于 CNN 的 GAN 中常见设计理念的启发,在多个阶段迭代地提升分辨率(Denton 等人,2015;Karras 等人,2017)。他们的策略是逐步增加输入序列,并降低嵌入维数。 如下图 1 左所示,研究者提出了包含多个阶段的内存友好、基于 Transformer 的生成器: 每个阶段堆叠了数个编码器块(默认为 5、2 和 2)。通过分段式设计,研究者逐步增加特征图分辨率,直到其达到目标分辨率 H_T×W_T。具体来说,该生成器以随机噪声作为其输入,并通过一个 MLP 将随机噪声传递给长度为 H×W×C 的向量。该向量又变形为分辨率为 H×W 的特征图(默认 H=W=8),每个点都是 C 维嵌入。然后,该特征图被视为长度为 64 的 C 维 token 序列,并与可学得的位置编码相结合。 与 BERT(Devlin 等人,2018)类似,该研究提出的 Transformer 编码器以嵌入 token 作为输入,并递归地计算每个 token 之间的匹配。为了合成分辨率更高的图像,研究者在每个阶段之后插入了一个由 reshaping 和 pixelshuffle 模块组成的上采样模块。 具体操作上,上采样模块首先将 1D 序列的 token 嵌入变形为 2D 特征图,然后采用 pixelshuffle 模块对 2D 特征图的分辨率进行上采样处理,并下采样嵌入维数,最终得到输出。然后,2D 特征图 X’_0 再次变形为嵌入 token 的 1D 序列,其中 token 数为 4HW,嵌入维数为 C/4。所以,在每个阶段,分辨率(H, W)提升到两倍,同时嵌入维数 C 减少至输入的四分之一。这一权衡(trade-off)策略缓和了内存和计算量需求的激增。研究者在多个阶段重复上述流程,直到分辨率达到(H_T , W_T )。然后,他们将嵌入维数投影到 3,并得到 RGB 图像。用于判别器的 tokenized 输入与那些需要准确合成每个像素的生成器不同,该研究提出的判别器只需要分辨真假图像即可。这使得研究者可以在语义上将输入图像 tokenize 为更粗糙的 patch level(Dosovitskiy 等人,2020)。 如上图 1 右所示,判别器以图像的 patch 作为输入。研究者将输入图像分解为 8 × 8 个 patch,其中每个 patch 可被视为一个「词」。然后,8 × 8 个 patch 通过一个线性 flatten 层转化为 token 嵌入的 1D 序列,其中 token 数 N = 8 × 8 = 64,嵌入维数为 C。再之后,研究者在 1D 序列的开头添加了可学得位置编码和一个 [cls] token。在通过 Transformer 编码器后,分类 head 只使用 [cls] token 来输出真假预测。 实验 CIFAR-10 上的结果 研究者在 CIFAR-10 数据集上对比了 TransGAN 和近来基于卷积的 GAN 的研究,结果如下表 5 所示: 如上表 5 所示,TransGAN 优于 AutoGAN (Gong 等人,2019) ,在 IS 评分方面也优于许多竞争者,如 SN-GAN (Miyato 等人, 2018)、improving MMDGAN (Wang 等人,2018a)、MGAN (Hoang 等人,2018)。TransGAN 仅次于 Progressive GAN 和 StyleGAN v2。对比 FID 结果,研究发现,TransGAN 甚至优于 Progressive GAN,而略低于 StyleGANv2 (Karras 等人,2020b)。在 CIFAR-10 上生成的可视化示例如下图 4 所示:STL-10 上的结果研究者将 TransGAN 应用于另一个流行的 48×48 分辨率的基准 STL-10。为了适应目标分辨率,该研究将第一阶段的输入特征图从(8×8)=64 增加到(12×12)=144,然后将提出的 TransGAN-XL 与自动搜索的 ConvNets 和手工制作的 ConvNets 进行了比较,结果下表 6 所示:与 CIFAR-10 上的结果不同,该研究发现,TransGAN 优于所有当前的模型,并在 IS 和 FID 得分方面达到新的 SOTA 性能。高分辨率生成由于 TransGAN 在标准基准 CIFAR-10 和 STL-10 上取得不错的性能,研究者将 TransGAN 用于更具挑战性的数据集 CelebA 64 × 64。 TransGAN-XL 的 FID 评分为 12.23,这表明 TransGAN-XL 可适用于高分辨率任务。可视化结果如图 4 所示。局限性虽然 TransGAN 已经取得了不错的成绩,但与最好的手工设计的 GAN 相比,它还有很大的改进空间。在论文的最后,作者指出了以下几个具体的改进方向:对 G 和 D 进行更加复杂的 tokenize 操作,如利用一些语义分组 (Wu et al., 2020)。使用代理任务(pretext task)预训练 Transformer,这样可能会改进该研究中现有的 MT-CT。更加强大的注意力形式,如 (Zhu 等人,2020)。更有效的自注意力形式 (Wang 等人,2020;Choromanski 等人,2020),这不仅有助于提升模型效率,还能节省内存开销,从而有助于生成分辨率更高的图像。作者简介本文一作 Yifan Jiang 是德州大学奥斯汀分校电子与计算机工程系的一年级博士生(此前在德克萨斯 A&M 大学学习过一年),本科毕业于华中科技大学,研究兴趣集中在计算机视觉、深度学习等方向。目前,Yifan Jiang 主要从事神经架构搜索、视频理解和高级表征学习领域的研究,师从德州大学奥斯汀分校电子与计算机工程系助理教授 Zhangyang Wang。 在本科期间,Yifan Jiang 曾在字节跳动 AI Lab 实习。今年夏天,他将进入 Google Research 实习。 一作主页:https://yifanjiang.net/ 参考链接:https://www.reddit.com/r/MachineLearning/comments/ll30kf/r_transgan_two_transformers_can_make_one_strong/ 本文转自: https://www.jiqizhixin.com/articles/2021-02-17
-
涵盖 2D 和 3D 特征点、语义分割、3D 眼球注释以及注视向量和眼动类型等因素,德国图宾根大学的研究者创建了全球最大的人眼图像公开数据集——TEyeD。在当今世界,基于图像的眼动追踪(eye tracking)变得越来越重要,这是因为人眼运动有可能变革我们与周围计算机系统交互的方式。此外,眼动的方式可以识别甚至在某种程度上预测我们的行动和意图,所以眼动分析可以赋能新的应用,特别是与 VR 或 AR 等现代显示技术结合时。例如,人眼注视(gaze)信号连同人机交互的可能性,使得残疾人能够借助专门为其疾症设计的特殊设备来与环境进行交互。在手术显微镜的应用场景中,外科医生必须进行多种控制行为,这时视觉信号可以用于自动对焦。人眼注视行为还可用于诊断精神分裂症、自闭症、阿尔茨海默症、青光眼等多种疾病。在 VR 或 AR 游戏中,人眼注视信号可用于减少渲染资源的计算。除了人眼注视信息以外,对人眼的观察还可以带来更多信息源。例如人眼闭合的频率可用于衡量人的疲劳程度,这是汽车驾驶和航空飞行场景中的一种有效安全特征。另一个重要的信息源是瞳孔大小,它可以作为估计指定任务中人们认知负荷的基础,然后调整内容(如基于媒介的学习)以更好地适应人的精神状态。最后,借助虹膜特征以及个人的人眼注视行为,人眼相关的信息可以在生物识别过程中得到应用。近日,来自德国图宾根大学的研究者创建了世界上最大的、统一人眼图像公开数据集 TEyeD,这些图像均通过头戴式设备拍摄获取。具体而言,TEyeD 的创建过程中使用了七种不同的头戴式眼动追踪器,其中两个还结合了 VR 或 AR 设备。TEyeD 中的图像在不同的任务场景中获得,包括乘车、模拟飞行、户外体育运动以及日常室内活动。此外,数据集中的人眼图像包括 2D 和 3D 特征点、语义分割、3D 眼球注释以及注视向量(gaze vector, GV)和眼动类型。对瞳孔、虹膜和眼睑均提供了特征点和语义分割,视频长度从几分钟到几小时不等。TEyeD 数据集拥有 2000 多万张精心注释的人眼图像,为推动现代 VR 和 AR 应用中计算机视觉、眼动追踪和注视估计领域的研究提供了独特且一致的资源和良好的基础。论文地址:https://arxiv.org/pdf/2102.02115.pdf与现有数据集的对比下表 1 列出了包含人眼特写图像的现有数据集。每个数据集处理特定的问题,例如 Casia 和 Ubiris 数据集借助虹膜识别个人。在 NNVEC 中,对光学向量和眼球位置的直接估计可以补偿头戴式眼动追踪器的位移。TEyeD 通过使用 7 种分辨率不同的眼动追踪器结合并扩展了以前发布的数据集,合并了现有数据集提供的所有可用注释,并通过 3D 分割和特征点扩展了这些数据集。更具体地说,TEyeD 集成的数据集包括 NNGaze、LPW、GIW、ElSe、ExCuSe 和 PNET。此外,来自研究 [69] 的完整数据也得到了精心注释。TEyeD 一共包含 2000 多万张图像,是全球最大、利用头戴式眼动追踪器拍摄的图像数据集。数据集详情下图 1 展示了 TEyeD 数据集中的示例图像。具体而言,第 1 和第 5 列包含输入图像;第 2 和第 6 列的人眼图像展示了巩膜、虹膜和瞳孔的叠加分割(overlaid segmentation);第 3 和第 7 列展示了输入图像的特征点,其中红色表示眼睑、绿色表示虹膜、白色表示瞳孔;第 4 和第 8 列展示了计算出的眼球以及眼球中心和注视向量。下图 2 展示了瞳孔(左)、虹膜(中)和眼睑(右)特征点的对数分布:下图 3 展示了瞳孔、虹膜和巩膜的区域分布箱形图(左),以及注视向量的对数分布(右):下图 4 展示了眼球位置 (x,y) 的分布,以及映射到固定分辨率 192×144 的眼球半径(以像素为单位)箱形图:注释过程对于 TEyeD 数据集中的特征点注释和语义分割,研究者同时使用了半监督方法和多注释 maturation (MAM) 算法。与原始算法不同,他们没有用 SVM,而是将卷积神经网络(CNN)与 HOG 特征相结合。此外,研究者还将迭代次数限制在了 5 次,并使用两个竞争模型。其中一个模型包含 ResNet50,并使用 [36] 中的验证损失函数进行特征点回归训练;对于另一个模型,他们将语义分割与 U-Net 和残差块一起训练。最初,研究者对 2 万张具有特征点的图像进行了注释,并将它们转化成语义分割。然后,他们训练 CNN 并利用 MAM 算法不断进行改进。在 5 次迭代后,ResNet50 特征点转化成了语义分割并与 U-Net 结果进行对比。具体而言,研究者基于 [30] 中的方法对 3D 眼球和光学向量进行了注释。但是,他们没有使用椭圆形瞳孔,而是使用了椭圆形虹膜,这是因为后者仅受角膜曲率(corneal refraction)的部分影响。通过结合 2D 特征点、分割和 3D 眼球模型,研究者对 3D 特征点和分割进行了几何计算。由于瞳孔总是位于虹膜的中心,他们考虑了两种不同的 3D 分割和 3D 特征点。眼动注释则分为了注视(眼球静止不动)、扫视(两次注视之间的快速眼动)、平滑跟随(缓慢眼动)和眨眼。基准评估在实验中,研究者将数据分成训练集和验证集。为了避免训练和验证集中出现相同的实验对象,他们将整个记录分配给训练集和验证集的其中一个。对于评估环境,研究者将基于 C ++ 的 CuDNN 框架用于神经网络模型。测试环境硬件包括一个 4 核心、16GB DDR4 内存的 Intel i5-4570 CPU 和一个 4 GB 内存的 NVIDIA 1050ti。下表 3 显示了特征点回归的结果。结果表明,如预期一样,较大模型在回归任务上更加有效。下表 4 得出了同样的结论,其中显示了眼球参数估计的结果:如上表 3 和 4 所示,与现有规模较小的数据集相比,我们可以看到 TEyeD 数据集具有明显优势。这些结果还表明,如预期的那样,对现实世界场景中拍摄的图像进行跨眼球追踪(cross-eye-tracker)泛化是一项具有挑战性的任务,但通过结合使用 TEyeD 与更复杂的架构可以处理这项任务。因此,无论何时使用一种新的眼动追踪设备都可以轻松解决跨眼球追踪泛化任务,并且无需创建和注释新数据。下图 5 显示了语义分割的结果:下表 6 显示了眼动识别的结果。可以看到,注视向量在眼动分类中更加有效,因为它对眼动追踪器的位移做出了补偿。
-
华为诺亚方舟实验室联合北京大学、悉尼大学发布论文《SCOP: Scientific Control for Reliable Neural Network Pruning》提出基于科学控制法的神经网络剪枝方法。在精度几乎无损情况下,网络计算量减小60%以上,论文已经发表在NeurIPS 2020。开源链接:https://github.com/huawei-noah/Pruning/tree/master/SCOP_NeurIPS2020论文链接:https://proceedings.neurips.cc/paper/2020/file/7bcdf75ad237b8e02e301f4091fb6bc8-Paper.pdf研究背景卷积神经网络(CNN)已在大规模计算机视觉应用中得到了广泛的使用并取得了巨大的成功,但是由于对计算能力和内存要求很高,很难将这些CNN部署在移动电话、可穿戴设备等边缘设备上。卷积核修剪方法会删除整个卷积核,无需特定的软件和硬件设计即可实现实际的加速。传统的卷积核修剪方法可以主要分为两类。第一类方法不需要训练数据,通过定义一些卷积核重要性的假设,来判定不同卷积核的重要性。比如,一个典型的假设是范数小的卷积核不重要,砍掉一些范数小的卷积核不会太多地影响网络的表现。还有一类方法是数据驱动的方法,引入训练数据来学习不同卷积核的重要性。比如通过给每个卷积核引入额外的控制系数,通过学习这些控制系数来度量不同卷积核的重要性,小的控制系数对应的卷积核被认为不重要。但是,在基于特定假设以衡量过滤器重要性时,不可避免地会引入大量潜在因素,这可能会干扰剪枝过程。例如,不同通道之间的依赖性可能会误导那些基于范数的方法,因为某些特征或者过滤器不包含有用的信息,但具有较大的范数。对于一些数据驱动的方法,卷积核的重要性可能对输入数据的细微变化非常敏感,从而导致不稳定的结果结果。实际上,更多的潜在因素伴随着特定的修剪方法,并且还取决于不同的场景,在设计修剪方法时单独枚举和分析它们是不太现实的。因此,本文提出了一个基于科学控制法(Scientific Control)的神经网络剪枝方法,通过设置对照实验,同时减少各种无关因素的对剪枝过程的干扰,提高剪枝结果的可靠性。高仿特征高仿特征是一些生成的特征,它们和真实特征在分布上相似,但几乎不包含与目标相关的信息,定义如下:定义1 给定真实特征, 它们的高仿版本是和有相同形状的随机特征,它们满足以下(1)可交换性和(2)独立性两个条件:对于所有的,都成立。(1)式表明高仿特征和真实特征十分相似,(2)式表明高仿特征独立于样本标签的预测过程。直观地,高仿特征和真实特征的唯一不同在于是否和样本标签有关,因此可以把高仿特征作为真实特征的对照,通过比较这两种特征,挖掘卷积核的冗余性。基于科学控制法的网络剪枝在生成高仿数据之后,将真实数据和高仿数据同时输入到一个预训练的网络中,分别生成真实特征和高仿特征。我们将高仿特征和真实特征放到一起,作为第(l+1)层的输入,然后设计一个选择策略来从他们之中选择和目标相关的特征。这里E表示损失函数,Y是真实数据的标签。真实特征和其高仿副本分别是网络对真实数据和高仿数据的响应,但高仿副本不包含有关标签的信息。在这里,真实特征被视为实验组,它与网络输出的关系需要被挖掘;而高仿特征则作为控制组,用来最大程度地减少潜在无关因素的影响。为了在一个预训练的深度神经网络有效的卷积核,我们在网络中的每个卷积层之后插入一个选择层,这里是真实特征和高仿特征的控制系数,他们满足约束条件是激活函数,表示卷积操作,是按元素的乘法。除了真实特征之外,高仿特征也有机会参与到之后特征图的计算,它参与的程度取决于取决于控制系数。在实际应用中,我们可以通过同时将真实数据同时输入到网络来获得真实特征因此,可以通过将真实数据及其仿射实验和SOTA方法的比较我们在基准数据集CIFAR-10和大规模ImageNet(ILSVRC-2012)数据集进行大量实验,验证提出方法的有效性。CIFAR-10数据集包含来自10类的60kRGB图像,用于训练的50k图像和用于测试的10k。Imagenet(ILSVRC-2012)是一个大型数据集,包含128万个训练图像和来自1000个类别的50k验证图像。表1和表2的结果显示,我们的方法均取得了超越传统方法的性能。高仿数据可视化下图直观地显示了真实数据和它们相应的高仿数据。真实数据包含和真实标签有关(比如鱼类)的信息,这些信息可以被神经网络充分利用来识别目标。生成的高仿数据与真实图像十分相似,但是不包含目标信息,因此它们几乎不能提供有效的信息。真实特征和高仿特征的频率分布直方图如(c)所示,可以看出真实特征和高仿特征在分布上十分相似。本文来源:https://mp.weixin.qq.com/s/j2GHtGHr3aDBHV4riJ-yyw
-
作者:Sukanya Bag激活函数是神经网络模型重要的组成部分,本文作者Sukanya Bag从激活函数的数学原理出发,详解了十种激活函数的优缺点。激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。标准的计算机芯片电路可以看作是根据输入得到开(1)或关(0)输出的数字电路激活函数。因此,激活函数是确定神经网络输出的数学方程式,本文概述了深度学习中常见的十种激活函数及其优缺点。 首先我们来了解一下人工神经元的工作原理,大致如下:上述过程的数学可视化过程如下图所示:1. Sigmoid 激活函数 Sigmoid 函数的图像看起来像一个 S 形曲线。 函数表达式如下:在什么情况下适合使用 Sigmoid 激活函数呢?Sigmoid 函数的输出范围是 0 到 1。由于输出值限定在 0 到 1,因此它对每个神经元的输出进行了归一化;用于将预测概率作为输出的模型。由于概率的取值范围是 0 到 1,因此 Sigmoid 函数非常合适;梯度平滑,避免「跳跃」的输出值;函数是可微的。这意味着可以找到任意两个点的 sigmoid 曲线的斜率;明确的预测,即非常接近 1 或 0。Sigmoid 激活函数有哪些缺点?倾向于梯度消失;函数输出不是以 0 为中心的,这会降低权重更新的效率;Sigmoid 函数执行指数运算,计算机运行得较慢。2. Tanh / 双曲正切激活函数tanh 激活函数的图像也是 S 形,表达式如下:tanh 是一个双曲正切函数。tanh 函数和 sigmoid 函数的曲线相对相似。但是它比 sigmoid 函数更有一些优势。首先,当输入较大或较小时,输出几乎是平滑的并且梯度较小,这不利于权重更新。二者的区别在于输出间隔,tanh 的输出间隔为 1,并且整个函数以 0 为中心,比 sigmoid 函数更好;在 tanh 图中,负输入将被强映射为负,而零输入被映射为接近零。注意:在一般的二元分类问题中,tanh 函数用于隐藏层,而 sigmoid 函数用于输出层,但这并不是固定的,需要根据特定问题进行调整。3. ReLU 激活函数ReLU 激活函数图像如上图所示,函数表达式如下:ReLU 函数是深度学习中较为流行的一种激活函数,相比于 sigmoid 函数和 tanh 函数,它具有如下优点:当输入为正时,不存在梯度饱和问题。计算速度快得多。ReLU 函数中只存在线性关系,因此它的计算速度比 sigmoid 和 tanh 更快。当然,它也有缺点:Dead ReLU 问题。当输入为负时,ReLU 完全失效,在正向传播过程中,这不是问题。有些区域很敏感,有些则不敏感。但是在反向传播过程中,如果输入负数,则梯度将完全为零,sigmoid 函数和 tanh 函数也具有相同的问题;我们发现 ReLU 函数的输出为 0 或正数,这意味着 ReLU 函数不是以 0 为中心的函数。4. Leaky ReLU它是一种专门设计用于解决 Dead ReLU 问题的激活函数:ReLU vs Leaky ReLU为什么 Leaky ReLU 比 ReLU 更好?Leaky ReLU 通过把 x 的非常小的线性分量给予负输入(0.01x)来调整负值的零梯度(zero gradients)问题;leak 有助于扩大 ReLU 函数的范围,通常 a 的值为 0.01 左右;Leaky ReLU 的函数范围是(负无穷到正无穷)。注意:从理论上讲,Leaky ReLU 具有 ReLU 的所有优点,而且 Dead ReLU 不会有任何问题,但在实际操作中,尚未完全证明 Leaky ReLU 总是比 ReLU 更好。5. ELU ELU vs Leaky ReLU vs ReLUELU 的提出也解决了 ReLU 的问题。与 ReLU 相比,ELU 有负值,这会使激活的平均值接近零。均值激活接近于零可以使学习更快,因为它们使梯度更接近自然梯度。显然,ELU 具有 ReLU 的所有优点,并且:没有 Dead ReLU 问题,输出的平均值接近 0,以 0 为中心;ELU 通过减少偏置偏移的影响,使正常梯度更接近于单位自然梯度,从而使均值向零加速学习;ELU 在较小的输入下会饱和至负值,从而减少前向传播的变异和信息。一个小问题是它的计算强度更高。与 Leaky ReLU 类似,尽管理论上比 ReLU 要好,但目前在实践中没有充分的证据表明 ELU 总是比 ReLU 好。 6. PReLU(Parametric ReLU)PReLU 也是 ReLU 的改进版本:看一下 PReLU 的公式:参数α通常为 0 到 1 之间的数字,并且通常相对较小。如果 a_i= 0,则 f 变为 ReLU如果 a_i> 0,则 f 变为 leaky ReLU如果 a_i 是可学习的参数,则 f 变为 PReLUPReLU 的优点如下:在负值域,PReLU 的斜率较小,这也可以避免 Dead ReLU 问题。与 ELU 相比,PReLU 在负值域是线性运算。尽管斜率很小,但不会趋于 0。7. SoftmaxSoftmax 是用于多类分类问题的激活函数,在多类分类问题中,超过两个类标签则需要类成员关系。对于长度为 K 的任意实向量,Softmax 可以将其压缩为长度为 K,值在(0,1)范围内,并且向量中元素的总和为 1 的实向量。Softmax 与正常的 max 函数不同:max 函数仅输出最大值,但 Softmax 确保较小的值具有较小的概率,并且不会直接丢弃。我们可以认为它是 argmax 函数的概率版本或「soft」版本。Softmax 函数的分母结合了原始输出值的所有因子,这意味着 Softmax 函数获得的各种概率彼此相关。 Softmax 激活函数的主要缺点是: 在零点不可微;负输入的梯度为零,这意味着对于该区域的激活,权重不会在反向传播期间更新,因此会产生永不激活的死亡神经元。8. Swish 函数表达式:y = x * sigmoid (x)Swish 的设计受到了 LSTM 和高速网络中 gating 的 sigmoid 函数使用的启发。我们使用相同的 gating 值来简化 gating 机制,这称为 self-gating。self-gating 的优点在于它只需要简单的标量输入,而普通的 gating 则需要多个标量输入。这使得诸如 Swish 之类的 self-gated 激活函数能够轻松替换以单个标量为输入的激活函数(例如 ReLU),而无需更改隐藏容量或参数数量。 Swish 激活函数的主要优点如下:「无界性」有助于防止慢速训练期间,梯度逐渐接近 0 并导致饱和;(同时,有界性也是有优势的,因为有界激活函数可以具有很强的正则化,并且较大的负输入问题也能解决);导数恒 > 0;平滑度在优化和泛化中起了重要作用。9. Maxout在 Maxout 层,激活函数是输入的最大值,因此只有 2 个 maxout 节点的多层感知机就可以拟合任意的凸函数。单个 Maxout 节点可以解释为对一个实值函数进行分段线性近似 (PWL) ,其中函数图上任意两点之间的线段位于图(凸函数)的上方。Maxout 也可以对 d 维向量(V)实现:假设两个凸函数 h_1(x) 和 h_2(x),由两个 Maxout 节点近似化,函数 g(x) 是连续的 PWL 函数。因此,由两个 Maxout 节点组成的 Maxout 层可以很好地近似任何连续函数。10. SoftplusSoftplus 函数:f(x)= ln(1 + exp x)Softplus 的导数为 f ′(x)=exp(x) / ( 1+exp x ) = 1/ (1 +exp(−x )) ,也称为 logistic / sigmoid 函数。 Softplus 函数类似于 ReLU 函数,但是相对较平滑,像 ReLU 一样是单侧抑制。它的接受范围很广:(0, + inf)。 原文链接:https://sukanyabag.medium.com/activation-functions-all-you-need-to-know-355a850d025e本文来源:https://www.jiqizhixin.com/articles/2021-02-24-7
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中 -
一个AI团队帮你写代码:华为云码道Agent Space实战2026/06/25 周四 19:00-21:00
张翰文-华为云码道工程师/郭英旭-青软创新科技集团股份有限公司 软件架构师
本场直播聚焦华为云码道Agent Space两大模式:研发办公、代码开发,亲身体验从需求到代码的AI自动化能力。实操演示基于华为 CodeArts CLI,依托 OpenSpec 规格体系从零搭建业务项目。
回顾中
热门标签