• [其他] 浅谈BP神经网络应用
    BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络模型之一。BP网络是在输入层与输出层之间增加若干层(一层或多层)神经元,这些神经元称为隐单元,它们与外界没有直接的联系,但其状态的改变,则能影响输入与输出之间的关系,每一层可以有若干个节点。BP神经网络的计算过程由正向计算过程和反向计算过程组成。正向传播过程,输入模式从输入层经隐单元层逐层处理,并转向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层不能得到期望的输出,则转入反向传播,将误差信号沿原来的连接通路返回,通过修改各神经元的权值,使得误差信号最小。1.网络状态初始化2.前向计算过程应用在人工神经网络的实际应用中,绝大部分的神经网络模型都采用BP网络及其变化形式。它也是前向网络的核心部分,体现了人工神经网络的精华。BP网络主要用于以下四个方面。1)函数逼近:用输入向量和相应的输出向量训练一个网络逼近一个函数。2)模式识别:用一个待定的输出向量将它与输入向量联系起来。3)分类:把输入向量所定义的合适方式进行分类。4)数据压缩:减少输出向量维数以便于传输或存储。BP神经网络无论在网络理论还是在性能方面已比较成熟。其突出优点就是具有很强的非线性映射能力和柔性的网络结构。网络的中间层数、各层的神经元个数可根据具体情况任意设定,并且随着结构的差异其性能也有所不同。但是BP神经网络也存在以下的一些主要缺陷。①学习速度慢,即使是一个简单的问题,一般也需要几百次甚至上千次的学习才能收敛。②容易陷入局部极小值。③网络层数、神经元个数的选择没有相应的理论指导。④网络推广能力有限。对于上述问题,已经有了许多改进措施,研究最多的就是如何加速网络的收敛速度和尽量避免陷入局部极小值的问题。
  • [其他] 浅谈BP神经网络基本原理
    BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络模型之一。在人工神经网络的发展历史上,感知机(Multilayer Perceptron,MLP)网络曾对人工神经网络的发展发挥了极大的作用,也被认为是一种真正能够使用的人工神经网络模型,它的出现曾掀起了人们研究人工神经元网络的热潮。单层感知网络(M-P模型)做为最初的神经网络,具有模型清晰、结构简单、计算量小等优点。但是,随着研究工作的深入,人们发现它还存在不足,例如无法处理非线性问题,即使计算单元的作用函数不用阀函数而用其他较复杂的非线性函数,仍然只能解决线性可分问题.不能实现某些基本功能,从而限制了它的应用。增强网络的分类和识别能力、解决非线性问题的唯一途径是采用多层前馈网络,即在输入层和输出层之间加上隐含层。构成多层前馈感知器网络。20世纪80年代中期,David Runelhart。Geoffrey Hinton和Ronald W-llians、DavidParker等人分别独立发现了误差反向传播算法(Error Back Propagation Training),简称BP,系统解决了多层神经网络隐含层连接权学习问题,并在数学上给出了完整推导。人们把采用这种算法进行误差校正的多层前馈网络称为BP网。BP神经网络具有任意复杂的模式分类能力和优良的多维函数映射能力,解决了简单感知器不能解决的异或(Exclusive OR,XOR)和一些其他问题。从结构上讲,BP网络具有输入层、隐藏层和输出层;从本质上讲,BP算法就是以网络误差平方为目标函数、采用梯度下降法来计算目标函数的最小值。人工神经网络无需事先确定输入输出之间映射关系的数学方程,仅通过自身的训练,学习某种规则,在给定输入值时得到最接近期望输出值的结果。作为一种智能信息处理系统,人工神经网络实现其功能的核心是算法。BP神经网络是一种按误差反向传播(简称误差反传)训练的多层前馈网络,其算法称为BP算法,它的基本思想是梯度下降法,利用梯度搜索技术,以期使网络的实际输出值和期望输出值的误差均方差为最小。基本BP算法包括信号的前向传播和误差的反向传播两个过程。即计算误差输出时按从输入到输出的方向进行,而调整权值和阈值则从输出到输入的方向进行。正向传播时,输入信号通过隐含层作用于输出节点,经过非线性变换,产生输出信号,若实际输出与期望输出不相符,则转入误差的反向传播过程。误差反传是将输出误差通过隐含层向输入层逐层反传,并将误差分摊给各层所有单元,以从各层获得的误差信号作为调整各单元权值的依据。通过调整输入节点与隐层节点的联接强度和隐层节点与输出节点的联接强度以及阈值,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的网络参数(权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。
  • [技术干货] 知识蒸馏相关技术【模型蒸馏、数据蒸馏】以ERNIE-Tiny为例
    1.任务简介基于ERNIE预训练模型效果上达到业界领先,但是由于模型比较大,预测性能可能无法满足上线需求。 直接使用ERNIE-Tiny系列轻量模型fine-tune,效果可能不够理想。如果采用数据蒸馏策略,又需要提供海量未标注数据,可能并不具备客观条件。 因此,本专题采用主流的知识蒸馏的方案来压缩模型,在满足用户预测性能、预测效果的需求同时,不依赖海量未标注数据,提升开发效率。 文心提供多种不同大小的基于字粒度的ERNIE-Tiny学生模型,满足不同用户的需求。注:知识蒸馏(KD)是将复杂模型(teacher)中的dark knowledge迁移到简单模型(student)中去,teacher具有强大的能力和表现,而student则更为紧凑。通过知识蒸馏,希望student能尽可能逼近亦或是超过teacher,从而用更少的复杂度来获得类似的预测效果。1.1 模型蒸馏原理知识蒸馏是一种模型压缩常见方法,指的是在teacher-student框架中,将复杂、学习能力强的网络(teacher)学到的特征表示"知识"蒸馏出来,传递给参数量小、学习能力弱的网络(student)。 在训练过程中,往往以最优化训练集的准确率作为训练目标,但真实目标其实应该是最优化模型的泛化能力。显然如果能直接以提升模型的泛化能力为目标进行训练是最好的,但这需要正确的关于泛化能力的信息,而这些信息通常不可用。如果我们使用由大型模型产生的所有类概率作为训练小模型的目标,就可以让小模型得到不输大模型的性能。这种把大模型的知识迁移到小模型的方式就是蒸馏。基本原理可参考Hinton经典论文:cid:link_11.2 ERNIE-Tiny 模型蒸馏模型蒸馏原理可参考论文 ERNIE-Tiny : A Progressive Distillation Framework for Pretrained Transformer Compression 2021。不同于原论文的实现,为了和开发套件中的通用蒸馏学生模型保持一致,我们将蒸馏loss替换为Attention矩阵的KQ loss和 VV loss,原理可参考论文 MiniLM: Deep Self-Attention Distillation for Task-Agnostic Compression of Pre-Trained Transformers 2020 和 MiniLMv2: Multi-Head Self-Attention Relation Distillation for Compressing Pretrained Transformers 2021。实验表明通用蒸馏阶段和任务蒸馏阶段的蒸馏loss不匹配时,学生模型的效果会受到影响。BERT 等预训练语言模型 (PLM) 采用了一种训练范式,首先在一般数据中预训练模型,然后在特定任务数据上微调模型,最近取得了巨大成功。然而,PLM 因其庞大的参数而臭名昭著,并且难以部署在现实生活中的应用程序中。知识蒸馏通过在一组数据上将知识从大老师转移到小得多的学生来解决这个问题。我们认为选择三个关键组成部分,即教师、训练数据和学习目标,对于蒸馏的有效性至关重要。因此,我们提出了一个四阶段渐进式蒸馏框架 ERNIE-Tiny 来压缩 PLM,它将三个组件从一般级别逐渐变化到特定任务级别。具体来说,第一阶段,General Distillation,在预训练的老师、一般数据和潜在蒸馏损失的指导下进行蒸馏。然后,General-Enhanced Distillation 将教师模型从预训练教师转变为微调教师。之后,Task-Adaptive Distillation 将训练数据从一般数据转移到特定于任务的数据。最后,Task-Specific Distillation 在最后阶段增加了两个额外的损失,即 Soft-Label 和 Hard-Label 损失。实证结果证明了我们的框架的有效性和所带来的泛化增益 。实验表明 4 层 ERNIE-Tiny 在 GLUE 基准测试的基础上保持其 12 层教师 BERT 的 98.0% 以上的性能,超过最先进的 (SOTA) 1.0% 的 GLUE 分数相同数量的参数。此外,ERNIE-Tiny 在五个中文 NLP 任务上实现了新的压缩 SOTA,比 BERT 基础的精度高 0.4%,参数减少 7.5 倍,推理速度加快 9.4 倍。预训练的语言模型(例如,BERT (Devlin et al., 2018) 及其变体)在各种 NLP 任务中取得了显着的成功。然而,这些模型通常包含数亿个参数,由于延迟和容量限制,这给现实应用中的微调和在线服务带来了挑战。在这项工作中,我们提出了一种简单有效的方法来压缩基于大型 Transformer (Vaswani et al., 2017) 的预训练模型,称为深度自注意力蒸馏。小模型(学生)通过深度模仿大模型(老师)的自注意力模块进行训练,该模块在 Transformer 网络中起着至关重要的作用。具体来说,我们建议提炼出教师最后一个 Transformer 层的自注意力模块,这对学生来说既有效又灵活。此外,除了现有作品中使用的注意力分布(即查询和键的缩放点积)之外,我们还引入了自我注意模块中值之间的缩放点积作为新的深度自我注意知识. 此外,我们表明,引入教师助理(Mirzadeh 等人,2019 年)也有助于提炼大型预训练 Transformer 模型。实验结果表明,我们的单语模型在不同参数大小的学生模型中优于最先进的基线。特别是,它使用 50% 的 Transformer 参数和教师模型的计算在 SQuAD 2.0 和几个 GLUE 基准测试任务上保持了 99% 以上的准确率。我们还在将深度自注意力蒸馏应用于多语言预训练模型方面获得了竞争性结果。我们仅使用自注意力关系蒸馏来对预训练的 Transformer 进行任务不可知的压缩,从而在 MiniLM (Wang et al., 2020) 中推广深度自注意力蒸馏。特别是,我们将多头自注意力关系定义为每个自注意力模块内的查询、键和值向量对之间的缩放点积。然后我们利用上述关系知识来训练学生模型。除了简单统一的原则外,更有利的是,学生的注意力头数没有限制,而之前的大多数工作都必须保证教师和学生之间的头数相同。此外,细粒度的自注意力关系倾向于充分利用 Transformer 学习到的交互知识。此外,我们彻底检查了教师模型的层选择策略,而不是像 MiniLM 中那样仅仅依赖最后一层。我们对压缩单语和多语预训练模型进行了广泛的实验。实验结果表明,我们从基础规模和大型教师(BERT、RoBERTa 和 XLM-R)中提取的模型优于最先进的模型。二阶段蒸馏:通用蒸馏(General Distillation,GD):在预训练阶段训练,使用大规模无监督的数据, 帮助学生网络学习到尚未微调的教师网络中的知识,有利于提高泛化能力。为方便用户使用,我们提供了多种尺寸的通用蒸馏学生模型,可用的通用蒸馏学生模型可参考文档:通用模型 - ERNIE3.0 Tiny。任务蒸馏(Task-specific Distillation,TD):使用具体任务的数据,学习到更多任务相关的具体知识。如果已提供的通用蒸馏学生模型尺寸符合需求,用户可以主要关注接下来的任务蒸馏过程。1.3任务蒸馏步骤FT阶段:基于ERNIE 3.0 Large蒸馏模型fine-tune得到教师模型,注意这里用到的教师模型和ERNIE 3.0 Large是两个不同的模型;GED阶段(可选):使用fine-tuned教师模型和通用数据继续用通用蒸馏的方式蒸馏学生模型,进一步提升学生模型的效果;a. 热启动fine-tuned的教师模型和通用学生模型。其中,通用的学生模型由文心平台提供,从bos上下载。TD1阶段:蒸馏中间层a.只对学生模型的最后一层进行蒸馏,将学生模型transformer的attention层的k-q矩阵和v-v矩阵与教师模型的对应矩阵做KLloss,可参考 :MiniLMV2。b.热启动fine-tuned的教师模型和GED阶段得到的学生模型。其中,通用的学生模型由文心平台提供,从bos上下载,下载链接所在文档:通用模型ERNIE3.0 Tiny,或参考预置的下载脚本:c. 反向传播阶段只更新学生模型参数,教师模型参数不更新;TD2阶段:蒸馏预测层,产出最终的学生模型。a. 热启动fine-tuned的教师模型和TD1阶段训练的学生模型;b. loss包括两部分: 1) pred_loss:软标签,学生模型的预测层输出与教师模型的预测层输出的交叉熵; 2) student_ce_loss:硬标签,学生模型的预测层输出与真实label的交叉熵;c. pred_loss与student_ce_loss之和作为最终loss,进行反向传播;d. 反向传播阶段只更新学生模型参数,教师模型参数不更新;注:关于GED阶段使用的通用数据:开发套件中的通用数据是由开源项目 cid:link_0 中的中文维基百科语料(wiki2019zh)经过预处理得到。该数据只用于demo展示,实际使用时替换为业务无标注数据效果提升更明显。2. 常见问题问题1:怎么修改学生模型的层数?上面提供了多种不同的学生模型,但每个学生模型的层数、hidden size等都是固定的,如果想更改,需要在哪些地方更改?文心提供了三种不同结构的预训练学生模型,如果修改层数、hidden size等,会导致预训练学生模型参数无法加载,在此情况下,蒸馏出来的学生模型效果无法保证,建议用户还是使用文心提供的预训练模型,不更改模型结构;如果用户认为更改学生模型的结构非常有必要,需要对文心做以下改动:修改TD1阶段json配置文件的pre_train_model配置项,删除预训练学生模型的加载,只保留微调后的教师模型"pre_train_model": [ # 热启动fine-tune的teacher模型 { "name": "finetuned_teacher_model", "params_path": "./output/cls_ernie_3.0_large_ft/save_checkpoints/checkpoints_step_6000" } ]将json文件中的"student_embedding"替换为自定义的学生模型"student_embedding": { "config_path": "../../models_hub/ernie_3.0_tiny_ch_dir/ernie_config.json" },再次强调,上述修改后,由于无法加载预训练学生模型,蒸馏出来的学生模型效果无法保证。(用户训练数据量到百万样本以上可以考虑尝试一下)3.数据蒸馏任务3.1 简介在ERNIE强大的语义理解能力背后,是需要同样强大的算力才能支撑起如此大规模模型的训练和预测。很多工业应用场景对性能要求较高,若不能有效压缩则无法实际应用。因此,我们基于数据蒸馏技术构建了数据蒸馏系统。其原理是通过数据作为桥梁,将ERNIE模型的知识迁移至小模型,以达到损失很小的效果却能达到上千倍的预测速度提升的效果。目录结构 数据蒸馏任务位于 wenxin_appzoo/tasks/data_distillation├── data │ ├── dev_data │ ├── dict │ ├── download_data.sh │ ├── predict_data │ ├── test_data │ └── train_data ├── distill │ └── chnsenticorp │ ├── student │ └── teacher ├── examples │ ├── cls_bow_ch.json │ ├── cls_cnn_ch.json │ ├── cls_ernie_fc_ch_infer.json │ └── cls_ernie_fc_ch.json ├── inference │ ├── custom_inference.py │ ├── __init__.py ├── model │ ├── base_cls.py │ ├── bow_classification.py │ ├── cnn_classification.py │ ├── ernie_classification.py │ ├── __init__.py ├── run_distill.sh ├── run_infer.py ├── run_trainer.py └── trainer ├── custom_dynamic_trainer.py ├── __init__.py3.2 数据准备目前采用三种数据增强策略策略,对于不用的任务可以特定的比例混合。三种数据增强策略包括:(1)添加噪声:对原始样本中的词,以一定的概率(如0.1)替换为”UNK”标签(2)同词性词替换:对原始样本中的所有词,以一定的概率(如0.1)替换为本数据集中随机一个同词性的词(3)N-sampling:从原始样本中,随机选取位置截取长度为m的片段作为新的样本,其中片段的长度m为0到原始样本长度之间的随机值数据增强策略可参考数据增强,我们已准备好了采用上述3种增强策略制作的chnsenticorp的增强数据。3.3 离线蒸馏使用预置的ERNIE 2.0 base模型cd wenxin_appzoo/models_hub bash download_ernie_2.0_base_ch.sh下载预置的原始数据以及增强数据。cd wenxin_appzoo/tasks/data_distillation/distill bash download_data.sh运行以下命令,开始数据蒸馏cd wenxin_appzoo/tasks/data_distillation bash run_distill.sh3.3.1蒸馏过程说明run_distill.sh脚本会进行前述的三步:在任务数据上Fine-tune; 加载Fine-tune好的模型对增强数据进行打分; 使用Student模型进行训练。脚本采用hard-label蒸馏,在第二步中将会直接预测出ERNIE标注的label。run_distill.sh脚本涉及教师和学生模型的json文件,其中:./examples/cls_ernie_fc_ch.json负责教师模型的finetune, ./examples/cls_ernie_fc_ch_infer.json 负责教师模型的预测。 ./examples/cls_cnn_ch.json,负责学生模型的训练。事先构造好的增强数据放在./distill/chnsenticorp/student/unsup_train_aug在脚本的第二步中,使用 ./examples/cls_ernie_fc_ch_infer.json 进行预测:脚本从标准输入获取明文输入,并将打分输出到标准输出。用这种方式对数据增强后的无监督训练预料进行标注。最终的标注结果放在 ./distill/chnsenticorp/student/train/part.1文件中。标注结果包含两列, 第一列为明文,第二列为标注label。在第三步开始student模型的训练,其训练数据放在 distill/chnsenticorp/student/train/ 中,part.0 为原监督数据 part.1 为 ERNIE 标注数据。注:如果用户已经拥有了无监督数据,则可以将无监督数据放入distill/chnsenticorp/student/unsup_train_aug 即可。
  • 新颖的图卷积神经网络(gCNN)
    西北大学(Northwestern University)的研究人员开发了一种新颖的图卷积神经网络(gCNN),用于分析局部解剖形状和预测 Gf。皮质带和皮质下结构的形态学信息是从两个独立队列中的 T1 加权 MRI 中提取的,即儿童青少年大脑认知发展研究(ABCD;年龄:9.93 ± 0.62 岁)和人类连接组计划(HCP;年龄:28.81 ± 3.70 岁)。将皮质和皮质下表面结合在一起的预测为 ABCD(R = 0.314)和 HCP 数据集(R = 0.454)产生了最高精度的 Gf,优于历史文献中任何其他大脑测量对 Gf 的最新预测。在这两个数据集中,杏仁核、海马体和伏隔核的形态以及颞叶、顶叶和扣带皮质的形态一致地推动了对 Gf 的预测,这表明大脑形态和 Gf 之间的关系发生了重大的重构,包括与奖赏/厌恶处理、判断和决策、动机和情绪有关的系统。该研究以「A multicohort geometric deep learning study of age dependent cortical and subcortical morphologic interactions for fluid intelligence prediction」为题,于 2022 年 10 月 22 日发布在《Scientific Reports》。论文链接:https://www.nature.com/articles/s41598-022-22313-x了解智力的神经基础是一个长期的研究领域,历史上旨在识别涉及各种人类行为的大脑区域,特别是认知任务。Pioneering 和 Binet 的开创性工作发现,从命名对象到定义单词、绘图和解决类比,人类在各种任务中的行为总是不同的。Spearman 将这些观察结果综合到广义智力因素 g 的假设中,从而将人类行为与大脑功能联系起来,这反映了抽象思维,包括获取知识、适应新事物、开发抽象模型以及从学校教育和学习经验中受益的能力。Cattell 的进一步工作将 g 分为流体智能(Gf),即解决新问题和抽象推理的能力,以及与积累知识有关的结晶智能(Gc)。尽管 Gc 和 Gf 相关并在儿童期直至青春期迅速发展,但 Gf 在延迟下降之前的第三个十年达到稳定状态,而 Gc 在整个生命周期中继续发展。其中,Gf 已被证明与大量认知活动呈正相关,并且是教育和职业成功的重要预测指标。Gf 的这些高风险效应需要更好地了解其神经基质,首先要了解其神经解剖学基础。然而,如何找到大脑形态与 Gf 之间的关系仍不清楚。以前试图了解 Gf 的神经基质的工作集中在广泛的神经成像模式和病变模型上,每一种都有其局限性。例如,认知任务的功能成像研究,或血氧水平依赖(BOLO)信号的静息状态振荡之间的同步研究,集中在额顶叶网络,负责以顶叶整合理论的形式整合感觉和执行功能(P-FIT)。或者,结合脑损伤和成像分析的工作探索了多需求(MD)系统如何有助于 Gf。此外,独立于脑损伤的结构成像(即形态测量)也评估了大脑大小与 Gf 之间的相关性,或评估了特定皮质区域和白质纤维束对 Gf 的影响,但没有理论框架。使用这些成像方法,以前的研究已经确定了 Gf 和皮质形态之间的关联,例如皮质厚度、皮质面积、皮质体积、脑回和灰质密度。然而,没有研究皮层下结构的相对影响,也没有研究皮层下和额顶叶网络之外的大脑皮层区域之间的关系,例如颞叶皮层,这与一些基于洞察力的问题解决的适应性过程有关。在整个生命早期,神经变化如何与 Gf 相关非常重要,因为它提供了有关大脑成熟和衰老过程的有价值信息,并提供了对认知障碍的生理原因的洞察。研究人员发现 Gf 与年龄相关的强烈下降最近被归因于额叶皮层的白质差异。此外,Kievit 团队认为这些与年龄相关的变化是由灰质体积和前钳介导的。然而,由于神经系统的个体差异和复杂的与年龄相关的大脑变化,在这个问题上还没有达成共识。最近,形状分析已显示出通过分析表面几何特性来检测跨年龄和行为特征组的结构差异的前景。至关重要的是,这些差异通常无法通过体积变化或灰质变化来检测。因此,基于表面的方法可能对与人类行为和认知功能相关的细微大脑变化更敏感。此外,新皮质扩大主要取决于表面积的增长,这使得在考虑具有显著年龄差异的群组之间的相似性时,皮质和皮质下表面的测量很重要。因此,本研究将开发一种基于表面的方法来识别不同年龄组与 Gf 相关的大脑形态测量的一致和独特特征。来源:https://www.frontiersin.org/articles/10.3389/fnagi.2022.895535/full?&utm_source=Email_to_authors_&utm_medium=Email&utm_content=T1_11.5e1_author&utm_campaign=Email_publication&field=&journalName=Frontiers_in_Aging_Neuroscience&id=895535
  • [问题求助] 模型迁移pb2om
    运行结果如上这是日志
  • [其他] 浅谈人工神经网络发展历史
    人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。最近十多年来,人工神经网络的研究工作不断深入,已经取得了很大的进展,其在模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性。    发展历史1943年,心理学家W.S.McCulloch和数理逻辑学家W.Pitts建立了神经网络和数学模型,称为MP模型。他们通过MP模型提出了神经元的形式化数学描述和网络结构方法,证明了单个神经元能执行逻辑功能,从而开创了人工神经网络研究的时代。1949年,心理学家提出了突触联系强度可变的设想。60年代,人工神经网络得到了进一步发展,更完善的神经网络模型被提出,其中包括感知器和自适应线性元件等。M.Minsky等仔细分析了以感知器为代表的神经网络系统的功能及局限后,于1969年出版了《Perceptron》一书,指出感知器不能解决高阶谓词问题。他们的论点极大地影响了神经网络的研究,加之当时串行计算机和人工智能所取得的成就,掩盖了发展新型计算机和人工智能新途径的必要性和迫切性,使人工神经网络的研究处于低潮。在此期间,一些人工神经网络的研究者仍然致力于这一研究,提出了适应谐振理论(ART网)、自组织映射、认知机网络,同时进行了神经网络数学理论的研究。以上研究为神经网络的研究和发展奠定了基础。1982年,美国加州工学院物理学家J.J.Hopfield提出了Hopfield神经网格模型,引入了“计算能量”概念,给出了网络稳定性判断。 1984年,他又提出了连续时间Hopfield神经网络模型,为神经计算机的研究做了开拓性的工作,开创了神经网络用于联想记忆和优化计算的新途径,有力地推动了神经网络的研究,1985年,又有学者提出了波耳兹曼模型,在学习中采用统计热力学模拟退火技术,保证整个系统趋于全局稳定点。1986年进行认知微观结构地研究,提出了并行分布处理的理论。1986年,Rumelhart, Hinton, Williams发展了BP算法。Rumelhart和McClelland出版了《Parallel distribution processing: explorations in the microstructures of cognition》。迄今,BP算法已被用于解决大量实际问题。1988年,Linsker对感知机网络提出了新的自组织理论,并在Shanon信息论的基础上形成了最大互信息理论,从而点燃了基于NN的信息应用理论的光芒。1988年,Broomhead和Lowe用径向基函数(Radial basis function, RBF)提出分层网络的设计方法,从而将NN的设计与数值分析和线性适应滤波相挂钩。90年代初,Vapnik等提出了支持向量机(Support vector machines, SVM)和VC(Vapnik-Chervonenkis)维数的概念。人工神经网络的研究受到了各个发达国家的重视,美国国会通过决议将1990年1月5日开始的十年定为“脑的十年”,国际研究组织号召它的成员国将“脑的十年”变为全球行为。在日本的“真实世界计算(RWC)”项目中,人工智能的研究成了一个重要的组成部分。
  • [其他] 浅谈神经网络语言模型
    神经网络语言模型 NNLM 最早由Bengio系统化提出并进行了深入研究[Bengio, 2000, 2003]。当然分开来看,(1) distributed representation最早由Hinton提出(1985), (2)利用神经网络建模语言模型由Miikkulainen and Dyer,Xu and Rudnicky分别在1991和2000提出。 NNLM 依赖的一个核心概念就是词向量(Word Embedding)。词向量源于Hinton在Learning distributed representations of concepts提出的Distributed Representation,Bengio将其引入到语言模型建模中,提出了NNLM。那么,我们不禁要问,什么是词向量呢?词向量 简而言之,词向量是用一个向量来表示一个词,一定程度上可以用来刻画词之间的语义距离。 a、词表中的词表示为一个词向量,其维度一般取值为等值。 b、词向量为神经网络的一类参数,可以通过训练得到,同时基于词向量可以表示词序列的联合分布。 为了得到词向量,我们需要在给定训练数据集情况下,训练得到目标模型。而模型需要满足的约束,即对于任意的,表示与上下文所有可能的组合的概率和为1。 如此,我们可以将分解成两部分: a、词表中任意单词表示为词向量,由此构建了一个的矩阵。 b、词的概率分布可以通过矩阵进行变换得到。函数是组合上下文中词向量构建一个词的条件概率分布,即函数的输出为一个向量,其第个分量表示当前词等于词表中第个词的条件概率,,函数组合了和得到最终的输出结果。神经网络语言模型的优化目标是最大化带正则化项的Log-Likelihood,其中参数集合为为神经网络的参数。发展方向 Bengio在论文的Feature Work部分提出了神经网络语言模型的可能改进方向,在后续研究者(包括他本人)的工作中多有所体现。 a、将神经网络分解成为小的子网络,比如利用词的聚类等。 b、加速SoftMax中的正则项Z的快速求导 c、仅对一部分输出进行梯度传播。 d、引入先验知识,比如语义信息(WordNet),语法信息(low-level: POS, high level:句法结构)等。 e、词向量可解释性。 f、解决一词多义问题(Polysemous)。神经网络语言模型类型● Neural Network Language Model ,NNLM● Log-Bilinear Language Model, LBL● Recurrent Neural Network based Language Model,RNNLM● Collobert 和 Weston 在 2008 年提出的 C&W 模型● Mikolov 等人提出了 CBOW( Continuous Bagof-Words)和 Skip-gram 模型
  • [基础介绍] 卷积神经网络表征可视化研究综述(4)
    转人工智能技术与咨询源自:自动化学报 作者:司念文 张文林 屈丹 罗向阳 常禾雨 牛铜摘要近年来, 深度学习在图像分类、目标检测及场景识别等任务上取得了突破性进展, 这些任务多以卷积神经网络为基础搭建识别模型, 训练后的模型拥有优异的自动特征提取和预测性能, 能够为用户提供“输入–输出”形式的端到端解决方案. 然而, 由于分布式的特征编码和越来越复杂的模型结构, 人们始终无法准确理解卷积神经网络模型内部知识表示, 以及促使其做出特定决策的潜在原因. 另一方面, 卷积神经网络模型在一些高风险领域的应用, 也要求对其决策原因进行充分了解, 方能获取用户信任. 因此, 卷积神经网络的可解释性问题逐渐受到关注. 研究人员针对性地提出了一系列用于理解和解释卷积神经网络的方法, 包括事后解释方法和构建自解释的模型等, 这些方法各有侧重和优势, 从多方面对卷积神经网络进行特征分析和决策解释. 表征可视化是其中一种重要的卷积神经网络可解释性方法, 能够对卷积神经网络所学特征及输入–输出之间的相关关系以视觉的方式呈现, 从而快速获取对卷积神经网络内部特征和决策的理解, 具有过程简单和效果直观的特点. 对近年来卷积神经网络表征可视化领域的相关文献进行了综合性回顾, 按照以下几个方面组织内容: 表征可视化研究的提起、相关概念及内容、可视化方法、可视化的效果评估及可视化的应用, 重点关注了表征可视化方法的分类及算法的具体过程. 最后是总结和对该领域仍存在的难点及未来研究趋势进行了展望.。。。。。(接上)4. 可视化的应用4.1理解与解释模型表征可视化是理解CNN模型的一种重要途径,在图像领域应用广泛, 常见于图像分类、场景识别等任务的可视化解释. 本文第3节所述的表征可视化方法常用于对基于CNN的图像分类器的解释, 例如, AM方法用于可视化网络对输入图像的偏好, 从另一种角度揭示了网络对何种输入模式的依赖性较强. 注意力掩码能够告诉设计者网络的关注点, 这使其自身具有一定的可解释特性, 因此, 基于注意力掩码的可视化方法不仅可以验证注意力机制自身的有效性, 也常用于观察网络的训练效果.此外, 表征可视化方法也可以应用在其他类型的数据, 例如, CAM这类方法具有较好的类别区分性, 能够用来确定与特定输出类别相关联的图像区域, 可在视觉问答模型中帮助定位与问题最相关的图像区域. LRP方法在制定反向传播规则时依靠网络的权重与激活值, 而非特征图和通道等图像领域的概念. 因此, 它不仅适应于图像识别任务的解释, 还可以用于可视化机器翻译、语音识别[94]等任务中, 为这些领域的研究者提供了另一种理解模型的途径.4.2 诊断与优化网络在CNN学习效果诊断和结构优化上, 基于反卷积的可视化能够观察任意层的神经元的激活, 从而分析CNN的学习率、卷积核尺寸及步长等重要参数的设计是否达到最优. 文献[13]使用基于反卷积的可视化方法对AlexNet内部激活进行分析与改进, 进而提出了ZFNet, 获得了2013年ImageNet数据集图像分类任务冠军. 这种基于表征可视化的针对性分析和诊断方式, 很大程度上避免了盲目的参数调优. 文献[95]利用基于梯度的可视化方法指导单像素的对抗性扰动和对抗性分析, 帮助模型进行对抗性学习. 文献[88]则使用显著性方法检测对抗样本, 避免模型受到对抗攻击. 文献[72]使用Grad-CAM产生的类激活图来观察网络中间层表征, 分析对比不同结构设计对模型训练效果的影响. 此外, CAM这类方法还可用于提供自注意力, 优化CNN的结构设计. 例如, 文献[73]和文献[77]使用Grad-CAM生成自注意力的掩码作为图像蒙版, 用于去除图像中的非重要区域, 并将处理后的图像应用于下阶段的模型训练和推理. 文献[96]将CAM方法集成到图像转换模型的自注意力模块中, 引导模型关注源域与目标域之间的判别性区域, 从而提升图像转换模型对细节的关注能力.4.3 其他方面除了对CNN本身的理解与诊断, 可视化方法在其他任务上也有不断拓展与延伸, 例如CAM和Grad-CAM方法在弱监督目标定位任务上取得了非常好的效果. 文献[93]进一步探索了将显著性归因方法产生的显著图作为先验, 应用于弱监督的分割任务上. 在应用领域方面, 可视化方法能够提升对推荐系统决策结果的理解[97], 以及与知识图谱的结合来实现可解释的推荐算法[98]. 对于自动驾驶[99-100]以及智能医疗[101]等领域, 由于这些领域对于决策风险的承受能力较低, 可视化方法对这些领域应用的现实落地至关重要.5. 存在的难点及发展趋势5.1 难点分析与趋势展望近年来, CNN表征可视化相关研究越来越多, 研究者们提出了各种可视化方法, 极大推动了该领域的进展, 但仍存在一些难点问题有待解决, 本节对其进行了归纳, 并分析了未来可能的研究趋势.1)对于可视化方法, 仍存在噪声、稳定性、解释能力有限等问题.通过对多种可视化方法的实验比较发现, 多数可视化方法生成的热力图含有一定的噪声, 噪声产生的原因仍没有权威统一的解释. 同时, 面对不同图像时的可视化效果不尽相同, 有些图像可能直接导致可视化方法的失效, 而失效的原因尚不清楚, 仍有待进一步的探究. 此外, 面对复杂背景条件的图像、多目标场景、小目标图像等, 受限于模型本身在面对这些情形时的性能约束, 可视化方法的解释效果并不一定好. 未来可能的研究趋势是将可视化方法与其他解释方法的结合, 从不同侧面不同角度解释模型, 从而缓解单一可视化方法解释效果受限的问题.2)对于可视化效果的评估, 仍欠缺标准统一的评估方法.目前很难找到适用于大多数可视化方法的评估标准, 原因在于许多方法的目标并不相同, 也即每种方法对“可解释性”的理解并不相同, 导致各种可视化方法的解释结果差别较大. 同时, 很多可视化方法自身同样缺乏清晰明确的数学与逻辑机理, 导致结果难以量化比较. 如果可以从“可解释性”的概念出发, 统一数个可解释性的标准, 那么对于可视化结果的评估也就有了依据. 同时, 还可以根据可视化方法产生的热力图的特点进行分类评价, 每类热力图使用与之适应的评价标准, 提升其侧重解释某方面的能力.3)对于可视化的对象, 细粒度的识别模型难以可视化解释.可视化方法多应用于对图像分类、目标定位及场景识别等任务的解释, 能够实现对多目标图像中语义级目标的区分. 例如,“Cat”和“Dog”虽然同属动物, 但是在语义级上属于明显不同的两种动物. 而单独对于“Cat”这一动物, 实现的不同品种猫的细粒度图像分类, 受限于分类网络自身准确性, 可视化方法很难找到用于区分目标的细节特征, 此时的解释效果非常有限, 甚至对于不同的目标可视化效果始终相同. 与人们的视觉观察及解释能力相差较远. 这一问题或许可以通过视觉解释与语言解释相结合的途径来改善解释效果. 对可视化解释难以描述的细微之处, 辅助加以自然语言描述形式的解释(比如对猫的颜色、猫耳形状的描述), 能够实现更好的解释效果.4)对于可视化解释的完备性, 现有研究中的解释结果与预测结果无法相互印证.理论上看, 一个完备可靠的解释可以使用户从中推理并得到被解释的预测结果, 而目前的可视化方法仍不具备这一能力, 仅能从预测结果中得到解释结果, 而无法根据解释来推断出模型的预测, 即两者之间的相互印证关系没有被建立起来. 例如, 如果可视化方法给出了错误的解释, 但这一解释恰好符合用户根据预测结果推测的预期解释, 进而使得用户相信了解释的可靠性, 这将对其形成误导. 此时, 若能根据解释结果推断预测结果, 发现推断出的预测结果和实际预测结果不相符合, 则可通过进一步分析发现其中存在的问题, 从而提升用户对可视化方法的信任.5.2 学界近年来的关注近年来, 众多人工智能领域顶级会议关注人工智能和深度学习可解释问题, 其中许多涉及到表征可视化方面的前沿研究, 如[102]:1) IJCAI 2020 Tutorial on Trustworthiness of Interpretable Machine Learning;2) CVPR 2020 Tutorial on Interpretable Machine Learning for Computer Vision;3) ICCV 2019 Workshop on Interpretating and Explaining Visual Artificial Intelligence Models;4) ICLR 2019 Workshop on Safe Machine Learning;5) CVPR 2019 Workshop on Explainable AI;6) AAAI 2019 Workshop on Network Interpretability for Deep Learning;7) IJCAI 2018/2017 Workshop on Explainable Artificial Intelligence;8) ICML 2018 Workshop on Human Interpretability in Machine Learning;9) NIPS 2017 Interpretable Machine Learning Symposium.表4列举了可解释性深度学习研究领域的部分综述文献, 对各文献的内容侧重作了简要介绍, 其中包含CNN表征可视化的相关内容.表 4 CNN表征可视化相关的综述文献统计Table 4 Review literature statistics related to CNN representation visualization5.3 开源工具CNN可视化的相关开源工具, 一些研究人员在GitHub等网站开源了多种方法综合的代码包,这对于表征可视化研究及迁移到其他任务使用具有重要价值.文献[103]对2016年以前的可视化方法作了详细调研和分类整理, 将其中主流方法分为修改输入的方法(如基于扰动的方法)、反卷积类方法和重建输入的方法(如激活最大化方法)三类. 根据这些方法开发了基于MatConvNet框架[112]的CNN可视化工具包FeatureVis, 适用于Matlab平台上的CNN可视化.Ozbulak[83]发布了一个内容丰富的开源代码包, 实现了10余种可视化方法, 包括梯度方法(如VBP、GAP、Smooth gradient、Integrated gradient等)和类激活映射方法(如Grad-CAM、Score-CAM等). 该源码包基于PyTorch框架, 已经被许多研究人员关注和使用, 受到领域内好评, 目前仍在更新与拓展中.韩国科学技术院的Kim[113]发布了基于Tensorflow框架的可视化源码包, 该源码包含有梯度类方法、CAM类方法、激活最大化方法等, 配有详细的使用教程, 对各种方法的原理及实现过程的介绍细致, 适合初学者使用.此外, 佐治亚理工学院的Wang等[114]实现了对CNN网络的交互式可视化, 可对CNN网络各层的卷积、激活和池化操作的数据流向及中间层特征图进行实时展示, 支持交互式的选择输入图像, 实时观察各层的数据流向及表征情况. 虽然该工具更多关注于CNN网络中数据流的走向, 而非解释CNN中间层特征的语义, 但也非常有利于理解CNN的内部表征.6. 结束语本文围绕CNN表征可视化研究, 详细梳理了该领域近年来相关的文献, 从基础概念及内容、常见方法的分类与比较、效果的评估及应用等方面进行了详细介绍. 其中, 对常见的可视化方法的分类和介绍是本文的重点内容, 该部分详细分析了各种算法的过程, 归纳了每一类方法的特点, 并对它们的效果进行了比较. 最后, 对该领域仍存在的难点和未来的研究趋势作了总结和展望.随着表征可视化研究的深入, 人们对CNN的特征学习和预测机制的理解也会更加深刻. 同时, 其他类型的可解释性方法也在不断发展中, 在它们的共同作用下, 不断推动可解释性深度学习的发展. 期待未来实现可理解的、透明的和高效的深度学习方法.登录中国人工智能培训chinaai查看更多信息
  • [干货汇总] 教你使用CANN将照片一键转换成卡通风格
    【摘要】 你喜欢动画片,或者说卡通,动漫吗?我是挺喜欢的。绚丽多彩的卡通世界从来没有缺失过吸引力。手冢治虫画笔下,那个可以上天入地的阿童木,在与邪恶世界的斗争中教会了我们勇敢与正义。漫画工匠宫崎骏用清新的水彩勾勒出自然的乡村景观,不染一丝现实的尘土。美艳而不可方物的世界令人神往。这次是将AnimeGAN部署到Ascend 310,从而实现对自己想要图片的一键转换为我们想看到的卡通风格。本文分享自华为云社区《【CANN训练营】CANN训练营_昇腾AI趣味应用实现AI趣味应用(上)随笔》,作者: Tianyi_Li。前言你喜欢动画片,或者说卡通,动漫吗?我是挺喜欢的。绚丽多彩的卡通世界从来没有缺失过吸引力。手冢治虫画笔下,那个可以上天入地的阿童木,在与邪恶世界的斗争中教会了我们勇敢与正义。漫画工匠宫崎骏用清新的水彩勾勒出自然的乡村景观,不染一丝现实的尘土。美艳而不可方物的世界令人神往。从《大闹天宫》到《大圣归来》,从《哪吒闹海》到《哪吒之魔童降世》,国漫的发展也不曾落下。恢弘的场景结合扣人心弦的故事,不仅有丰富视觉享受,同时也带来了一个心灵慰藉的港湾。但是卡通世界的诞生需要日积月累的积淀,在一笔笔线条和色彩的勾勒下才能生成动人的场景。而人工智能却带来了便捷的可能,现实世界的景色人物都可以一键定格为卡通风格。在尽可能保留显示细节的同时也保持着艺术的风格化。这次是将AnimeGAN部署到Ascend 310,从而实现对自己想要图片的一键转换为我们想看到的卡通风格。参考实现: https://github.com/TachibanaYoshino/AnimeGAN参考论文: https://link.springer.com/chapter/10.1007/978-981-15-5577-0_18最终效果图如下图所示,左图是输入,右图是输出:CANN介绍Ascend 310是硬件,我们是基于在硬件上构建的软件进行开发的,不会直接接触到底层的硬件,这里我们是基于CANN开发,CANN(Compute Architecture for Neural Networks)是华为公司针对AI场景推出的异构计算架构,通过提供多层次的编程接口,支持用户快速构建基于昇腾平台的AI应用和业务。包括:AscendCL:昇腾硬件的统一编程接口,包含了编程模型、硬件资源抽象、AI任务及内核管理、内存管理、模型和算子调用、媒体预处理接口、加速库调用等一系列功能,充分释放昇腾系统多样化算力,使能开发者快速开发AI应用。TBE算子开发工具:预置丰富API接口,支持用户自定义算子开发和自动化调优,缩短工期,节省人力。算子库:基于昇腾处理器,深度协同优化的高性能算子库这里我们主要用到的还Ascend CL,也就是ACL,不过为了更加方便开发,减少对原生接口的数据对齐的琐碎限制,我们使用官方推出的进一步封装的acllite,相当于做了进一步封装,更加方便开发者使用。acllite的主要接口如下图所示:具体的开发流程如下图所示,不仅适用于本应用,也适用于所有的开发应用。AnimeGAN网络概述AnimeGAN生成网络结构如下,以Generative Adversarial Networks(GAN)为基础,其架构包括一个生成器(Generator)用于将现实世界场景的照片转换为动漫图像,和一个判别器(Discriminator)区分图像是来自真实目标域还是来自生成器产生的输出,通过迭代训练两个网络(即生成器和判别器),由判别器提供的对抗性损失可以生成卡通化的结果。同时将生成器替换为自编码结构,使得生成器具有更强的生成能力。对于生成器,它希望生成样本尽可能符合真实样本的分布,而判别器则希望尽可能的区分真实样本与生成样本。具体来说,判别器将真实样本判断为正确,记为1;而将生成结果判断为错误,记为0。AnimeGAN 的生成器可以被认为是一个对称的编码器-解码器网络。主要由标准卷积、深度可分离卷积、反向残差块(IRB),上采样和下采样模块组成。 在生成器中,最后一个具有 1×1 卷积核的卷积层不使用归一化层,后面是 tanh 非线性激活函数。Conv-Block 由具有 3×3 卷积核的标准卷积、实例归一化层和 LRelu 激活函数组成。 DSConv 由具有 3 × 3 卷积核的深度可分离卷积、实例归一化层和 LRelu 激活函数组成。反转的残差块包含 Conv-Block、深度卷积、点卷积和实例归一化层。为了避免最大池化导致的特征信息丢失,使用Down-Conv作为下采样模块来降低特征图的分辨率。它包含步长为 2 的 DSConv 模块和步长为 1 的 DSConv 模块。在 Down-Conv 中,特征图的大小被调整为输入特征图大小的一半。 Down-Conv 模块的输出是步长为 2 的 DSConv 模块和步长为 1 的 DSConv 模块的输出之和。使用Up-Conv 用作上采样模块以提高特征图的分辨率。为了有效减少生成器的参数数量,网络中间使用了 8 个连续且相同的 IRB。与标准残差块 相比,IRB 可以显着减少网络的参数数量和计算工作量。生成器中使用的 IRB 包括具有 512 个内核的逐点卷积、具有 512 个内核的深度卷积和具有 256 个内核的逐点卷积。值得注意的是,最后一个卷积层没有使用激活函数。为了辅助生成器生成更好的结果,判别器需要判断输出图像是否是真实的卡通图片。因为判断是否真实依赖于图片本身特征,不需要抽取最高层的图片特征信息,所以可以设计成较为浅层的框架。首先对输入进行卷积核为3 x 3的卷积,然后紧接两个步长为2的卷积块来降低分辨率,并且提取重要的特征信息。最后使用一个3 × 3的卷积层得到最终提取的特征,再与真实标签进行损失计算。如果输入为256 × 256,则输出为64 × 64的PatchGAN形式。这里将Leaky ReLU的参数设置为0.2。开发过程介绍在拿到一个模型,我们希望做开发部署的时候,基本流程如下图所示:下面就来看看。分析预处理代码模型转换获取到原始模型后,需要使用昇腾CANN所提供的ATC模型转换工具,将第三方框架的模型转换为昇腾推理芯片所支持的om模型。模型转换步骤可参考昇腾文档中开发者文档->应用开发->将已有模型通过ATC工具转换(命令行)的指导进行转换。该样例通过不同分辨率的模型支持三种不同的输入图片,直接影响到生成图片的质量。以下为模型转换过程。三种不同的模型输入分辨率,分辨率越高,图片质量越好,但模型推理时间也就越长,咱们用的是第一种256 * 256,如下图所示:测试预处理代码编写如果你想用Python,也没问题,来看看Python版本的代码:使用DVPP对读入图片进行解码,并缩放至256 × 256分辨率,以符合网络输入大小;在模型转换时,使用AIPP功能,将unit8的数据转换为fp16格式,将0~255的数值归一化到-1~1,将BGR的图片格式转换为RGB格式。执行推理后处理如果使用Python接口开发,代码如下所示:后处理模块主要是对模型的推理结果进行格式变换,然后将变换结果反馈给用户。主要过程是先将-1~1的值映射回0~255,然后将256 × 256的转换结果缩放回原始图像的尺寸大小。最后进行色域转换将RGB格式的输出转换为BGR格式。结果展示整理流程图如下图所示:1.运行管理资源申请:用于初始化系统内部资源,固定的调用流程。2.加载模型文件并构建输出内存:从文件加载离线模型AnimeGAN.om数据,需要由用户自行管理模型运行的内存,根据内存中加载的模型获取模型的基本信息包含模型输入、输出数据的数据buffer大小;由模型的基本信息构建模型输出内存,为接下来的模型推理做好准备。3.数据预处理:对读入的图像数据进行预处理,然后构建模型的输入数据。4.模型推理:根据构建好的模型输入数据进行模型推理。5.解析推理结果:根据模型输出,解析模型的推理结果。使用OpenCV将转换后的卡通画数据转化为JPEG。(可选)优化加速结语图片卡通化或者说动漫化,还是挺有意思的,算是AI一个娱乐性较强的应用了,可以让每个普通人随时随地创造自己想要的卡通化Demo,很有意思,如果你想体验的话,可以到昇腾开发者社区的在线体验,上传自己的图片转换,如果你想要代码,那也没问题,在线体验提供了原始代码,可以免费下载使用,奉上在线实验链接:https://www.hiascend.com/zh/developer/mindx-sdk/cartoon/99172254img最后奉上不同分辨率下的运行结果对比:
  • [参赛经验分享] 赛事回顾 | 第四届·2022量子计算黑客松全国大赛圆满落幕!
    随着全球新一轮科技革命的飞速发展,颠覆性技术革新风起云涌,量子科技当之无愧是最引人瞩目的焦点。2022年5月29日,由HiQ量子计算软件团队、上海大学、电子科技大学、南方科技大学、昇思MindSpore社区和华为云ModelArts平台联合举办的第四届·2022量子计算黑客松全国大赛决赛圆满落幕。1大赛赛况总结本此大赛历时两个多月,吸引了来自北京大学、清华大学、中国科学技术大学、复旦大学、浙江大学、上海交通大学、中山大学、南方科技大学、上海大学等国内外170多所高校的本科生、研究生以及建信金科、中国金融认证中心等企业员工,总计500多人报名。近200个团队参与本次比赛,共同创新,推动量子计算的技术研究。为了体现前沿性和交叉性,本次参赛题目涉及量子计算、量子化学、机器学习等交叉学科。初赛题目颇具挑战性,赛题1“利用量子经典混合的神经网络来完成手写字体识别任务”、赛题2“量子化学模拟——基态能求解的浅层线路设计”,基于高性能开源量子计算框架MindSpore Quantum和HiQ量子计算云平台完成赛题。参赛团队之间互相启发,台上竞争,台下合作,经过层层选拔,最终有13个团队、28名优秀选手成功晋级总决赛,汇聚一堂巅峰对决。2嘉宾评委阵容强大2022年5月29日总决赛在线上如期举行。决赛邀请六位量子计算领域的专家组成评审团,分别是南方科技大学物理系教授、HiQ量子计算软件与算法首席科学家翁文康老师,中国科学院计算机技术研究所研究员孙晓明老师,北京清华大学自动化系教授吴热冰老师,上海交通大学物理系教授唐豪老师,电子科技大学计算机系教授王晓霆老师,MindSpore Quantum高级研究员徐旭升博士。决赛答辩环节,由于日程紧,团队多,给予评委团的压力很大。但是,我们的嘉宾评委全程保持了高度专注,认真听取每一支队伍的决赛演讲,以公正、严谨的态度进行打分,并从自己的专业出发为作品提出中肯的意见和建议。各队选手均是有备而来,凭借深厚的专业知识、对赛题创新性的深入挖掘和团队协作精神,深深的打动了各位评委老师,答辩提问环节选手对评委老师的各种挑战和提问也是应对自如。3角逐冠军,竞争激烈!决赛评审团从创新性、通用性、性能三个维度进行评分,经过激烈的角逐,来自重庆大学的参赛团队以总分第一名的成绩,获得冠军,来自上海大学的两支队伍同时获得亚军。此外还产生了三等奖三名,优秀奖七名。恭喜以下获奖团队,让我们来一睹他们的团队风采吧!一等奖获奖团队:五点组会也没关系团队成员:储贻达、周彦桦、徐维(重庆大学)二等奖获奖团队:Hbar团队成员:唐加亮、王瑞、李宇栋(上海大学)获奖团队:Fenice团队成员:徐宜家、刘懿贤(上海大学)三等奖获奖团队:量子emo小分队团队成员:周旭(中山大学)、刘佳薇(中国科学技术大学)、周俊园(南方科技大学)获奖团队:为什么神经网络和化学都要做团队成员:陈柄任(建信金融科技有限责任公司) 、 于小涵(电子科技大学)获奖团队:零熵 团队成员:耿力(同济大学)优秀奖4 总结没有横空出世的幸运,只有不为人知的努力,在征服与挑战中,各位选手在本次大赛中都收获了属于自己的那一份荣誉与认同。来自不同院校和企业的参赛选手、组织者在一起不仅收获了成绩,更多的是在学术交流和创新实践中收获知识、经验和友情。本次大赛涌现了一大波量子计算种子选手,将成为我国量子计算的后备人才。我们相信通过量子计算黑客松这样的重量级精品赛事,将选拔出更多量子计算优秀人才参与到量子计算的研究中来,推动我国量子计算事业发展。  值得一提的是华为已连续举办了四届量子计算黑客松全国大赛,也受到来自全国各高校和企业单位的高度重视和大力支持。重庆大学物理学院、上海大学新闻网、中国海洋大学信息科学与工程学部、上海科技报、新民晚报等多家高校网站和媒体纷纷对赛事进行报道。
  • [其他] 浅谈k近邻算法
    K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:在特征空间中,如果一个样本附近的k个最近(即特征空间中最邻近)样本的大多数属于某一个类别,则该样本也属于这个类别。K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居), 这K个实例的多数属于某个类,就把该输入实例分类到这个类中。KNN 的模型表示就是整个训练数据集。对新数据点的预测结果是通过在整个训练集上搜索与该数据点最相似的 K 个实例(近邻)并且总结这 K 个实例的输出变量而得出的。对于回归问题来说,预测结果可能就是输出变量的均值;而对于分类问题来说,预测结果可能是众数(或最常见的)的类的值。关键之处在于如何判定数据实例之间的相似程度。如果你的数据特征尺度相同(例如,都以英寸为单位),那么最简单的度量技术就是使用欧几里得距离,你可以根据输入变量之间的差异直接计算出该值。KNN 算法本身简单有效,它是一种 lazy-learning 算法,分类器不需要使用训练集进行训练,训练时间复杂度为0。KNN 分类的计算复杂度和训练集中的文档数目成正比,也就是说,如果训练集中文档总数为 n,那么 KNN 的分类时间复杂度为O(n)。KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。K 近邻算法使用的模型实际上对应于对特征空间的划分。K 值的选择,距离度量和分类决策规则是该算法的三个基本要素:    K 值的选择会对算法的结果产生重大影响。K值较小意味着只有与输入实例较近的训练实例才会对预测结果起作用,但容易发生过拟合;如果 K 值较大,优点是可以减少学习的估计误差,但缺点是学习的近似误差增大,这时与输入实例较远的训练实例也会对预测起作用,使预测发生错误。在实际应用中,K 值一般选择一个较小的数值,通常采用交叉验证的方法来选择最优的 K 值。随着训练实例数目趋向于无穷和 K=1 时,误差率不会超过贝叶斯误差率的2倍,如果K也趋向于无穷,则误差率趋向于贝叶斯误差率。    该算法中的分类决策规则往往是多数表决,即由输入实例的 K 个最临近的训练实例中的多数类决定输入实例的类别    距离度量一般采用 Lp 距离,当p=2时,即为欧氏距离,在度量之前,应该将每个属性的值规范化,这样有助于防止具有较大初始值域的属性比具有较小初始值域的属性的权重过大。
  • [其他] 浅学人工神经网络(Artificial Neural Network,ANN )
    人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。人工神经网络是由大量处理单元互联组成的非线性、自适应信息处理系统。它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。人工神经网络具有四个基本特征:(1)非线性 非线性关系是自然界的普遍特性。大脑的智慧就是一种非线性现象。人工神经元处于激活或抑制二种不同的状态,这种行为在数学上表现为一种非线性关系。具有阈值的神经元构成的网络具有更好的性能,可以提高容错性和存储容量。(2)非局限性 一个神经网络通常由多个神经元广泛连接而成。一个系统的整体行为不仅取决于单个神经元的特征,而且可能主要由单元之间的相互作用、相互连接所决定。通过单元之间的大量连接模拟大脑的非局限性。联想记忆是非局限性的典型例子。(3)非常定性 人工神经网络具有自适应、自组织、自学习能力。神经网络不但处理的信息可以有各种变化,而且在处理信息的同时,非线性动力系统本身也在不断变化。经常采用迭代过程描写动力系统的演化过程。(4)非凸性 一个系统的演化方向,在一定条件下将取决于某个特定的状态函数。例如能量函数,它的极值相应于系统比较稳定的状态。非凸性是指这种函数有多个极值,故系统具有多个较稳定的平衡态,这将导致系统演化的多样性。人工神经网络中,神经元处理单元可表示不同的对象,例如特征、字母、概念,或者一些有意义的抽象模式。网络中处理单元的类型分为三类:输入单元、输出单元和隐单元。输入单元接受外部世界的信号与数据;输出单元实现系统处理结果的输出;隐单元是处在输入和输出单元之间,不能由系统外部观察的单元。神经元间的连接权值反映了单元间的连接强度,信息的表示和处理体现在网络处理单元的连接关系中。人工神经网络是一种非程序化、适应性、大脑风格的信息处理 ,其本质是通过网络的变换和动力学行为得到一种并行分布式的信息处理功能,并在不同程度和层次上模仿人脑神经系统的信息处理功能。它是涉及神经科学、思维科学、人工智能、计算机科学等多个领域的交叉学科。人工神经网络是并行分布式系统,采用了与传统人工智能和信息处理技术完全不同的机理,克服了传统的基于逻辑符号的人工智能在处理直觉、非结构化信息方面的缺陷,具有自适应、自组织和实时学习的特点。人工神经网络模型主要考虑网络连接的拓扑结构、神经元的特征、学习规则等。目前,已有近40种神经网络模型,其中有反传网络、感知器、自组织映射、Hopfield网络、波耳兹曼机、适应谐振理论等。根据连接的拓扑结构,神经网络模型可以分为:前向网络网络中各个神经元接受前一级的输入,并输出到下一级,网络中没有反馈,可以用一个有向无环路图表示。这种网络实现信号从输入空间到输出空间的变换,它的信息处理能力来自于简单非线性函数的多次复合。网络结构简单,易于实现。反传网络是一种典型的前向网络。 反馈网络网络内神经元间有反馈,可以用一个无向的完备图表示。这种神经网络的信息处理是状态的变换,可以用动力学系统理论处理。系统的稳定性与联想记忆功能有密切关系。Hopfield网络、波耳兹曼机均属于这种类型。
  • [其他] 华为诺亚实验室的研究员发现图神经网络(GNN)
    华为诺亚实验室的研究员发现图神经网络(GNN)也能做视觉骨干网络。将图像表示为图结构,通过简洁高效的适配,提出一种新型视觉网络架构 ViG,表现优于传统的卷积网络和 Transformer。在 ImageNet 图像识别任务,ViG 在相似计算量情况下 Top-1 正确率达 82.1%,高于 ResNet 和 Swin Transformer。论文链接:https://arxiv.org/abs/2206.00272PyTorch 代码:https://github.com/huawei-noah/CV-BackbonesMindSpore 代码:https://gitee.com/mindspore/models/tree/master/research/cv/ViG在计算机视觉领域,骨干网络一直是特征提取的重要部件。从 AlexNet 到 ResNet,卷积网络 CNN 在很长一段时间内一直是视觉任务的标配。近年来,基于注意力机制的 Transformer 和以全连接层为主的 MLP 网络也开始在计算机视觉领域崭露头角。与现有主流 CNN 模型相比,基于 Transformer 或 MLP 的模型在视觉任务上也显示出了良好的性能。直到现在,关于谁是更好的视觉骨干网络还是一个仍在探索和颇具争议的课题。 传统的卷积网络将图像视作一个矩阵或网格,通过滑动窗口对邻域像素点或特征点进行聚合;视觉 Transformer 或 MLP 则是输入图片切分为若干个图像块,形成一个序列,用注意力机制或全连接层处理序列关系,如图 1 所示。网格或序列表示的方法,对于图像来说显得不够灵活。比如,一个人往往由头部、四肢和躯干构成,这些部位之间有一定连接关系,是一种非规则化的会变化的模式。 图 1:图像的 3 种表示方法。 为了更好地对图像进行表示,本文提出用图结构(Graph)来对图像进行解析。将图像切分成若干图像块,每个图像块视作一个节点来构建图结构。进而提出用图神经网络进行图像识别等任务,首次构建了视觉 GNN,简称 ViG,如下图 2 所示。 图 2:视觉图神经网络 ViG 架构。 直接使用原始 GNN 在图像任务会有过平滑的问题,也就是随着网络的加深,节点特征之间会越来越相似。为了缓解这个问题,ViG 引入前馈神经网络 FFN 模块来增强特征变换能力和特征多样性。通过基础的图卷积模块和 FFN 模块,作者构建了 isotropic 式和金字塔式的 ViG 网络架构。在 ImageNet 基准测试和下游任务上的实验表明了该方法在视觉任务方面的优越性。例如, Pyramid ViG-S 仅用 4.5G FLOPs 就达到了 82.1% 的 ImageNet top-1 正确率,这比计算量相近的 Swin Transformer 和 ResNet 都要高出不少。 转发自:https://www.jiqizhixin.com/articles/2022-06-26
  • [其他] 神经网络中重要的算法:反向传播BP(Back Propagation)
    在很久以前,人工神经网络面临一个重大的挑战:增加神经网络的层数虽然可为其提供更大的灵活性,让网络能有更强的表征能力,也就是说,能解决的问题更多,但随之而来的庞大网络参数训练,一直是制约多层神经网络发展的一个重要瓶颈。 说到BP算法,我们通常强调的是反向传播。其实在本质上,它是一个双向算法: (1)正向传播输入信息,实现分类功能(所有的有监督学习,在本质都可以归属于分类); (2)反向传播误差,调整网络权值。 神经网络包含了前馈网络和反向传播两个主要过程。前者是多个函数的复合,如果你画出前馈神经网络的图结构,你会发现这个图结构形象地描述了函数的复合方式,最经典的是“链式结构”。而反向传播是目前用来训练神经网络的最常用并且也是最有效的方法。梯度下降因为基于反向传播的思想方法,而得以在神经网络训练过程中大施拳脚。 简化的说,反向传播是从错误出发层层究责的过程,究什么责?究那个部分导致最终训练结果误差的权重的责。究责是为了改正过失,这就是神经网络学习的本质——找到网络中神经元之间的最佳连接权值。换句话说,反向传播就是反向计算偏微分,将信息逆向从神经网络的高层向前层传播。 前向传播完毕后,我们得出了预测值,而这个输出结果与实际结果必然存在着误差。误差越大,说明模型越差,但是这种差可以改善。我们通过将误差转化规范成损失函数,通过训练模型将损失函数不断减小。怎么训练呢?你是否还记得梯度下降这个概念, 反向传播通过对链式函数构成的误差函数的梯度下降,在将这个误差从输出层向隐藏层传播的过程中,对每个权重进行更新,直至传播到输入层。 各个权重在不断迭代的反向传播过程中得以调整,直至收敛。 损失函数的最小化过程采取了对链式结构函数的梯度下降的求解,虽然计算深层的链式结构的梯度直接易懂,但是计算量很大,而反向传播有效地减小了梯度下降算法的计算量,我们也可以说反向传播是计算梯度的算法。
  • [其他] 联结主义人工智能的基本观点
    联结主义人工智能的基本观点是:人工智能必须能够模仿大脑的功能,更具体地强调机器应具有学习能力和认知能力,通过学习来解决问题。 联结主义人工能特指感知机、神经网络发展的机器学习,广泛意义上也可以包括强化学习以及其他机器学习方法。联结主义人工智能主要解决模式识别、聚类、分类、联想等非结构化同题。早在20世纪40年代,McCulloch和Walter开创了集成认知神经学、科学和数理逻辑计算的计算神经学,提出了最早的神经网络模型,给出了神经元的形式化数学描述和网络结构、证明了单个神经元能执行逻辑功能。 1958年,Frank将感知器建立在一个非线性神经元上,得到了神经元的Pitts模型。这是在计算机有限运算能力的条件下,基于硬件结构建立的第一个可进行模式识别的单层神经网络模型。但在此后的一段时间内,神经网络模型仍然无法测试,而且连比较基本的异或(XOR)的逻辑运算都不能实现,即便多层神经网络也不具有低复杂度,相关研究进人了长达20年的停滞状态。 1974年,哈佛大学的Paul首次提出误差反向传播算法,不仅解决了异或运算问题,而且大大提升了神经网络迭代计算效率。直到20世纪80年代,神经网络才再度迎来研究高潮。1982年,John提出了可用作联想存储器的互连网络模型,该模型是一种从输出到输人有反愦连接的循环神经网络。1986年,David等人在神经网络上应用了反向传播算法。1989年,Yann等人受日本学者福岛邦彦提出的仿生视觉皮层神经网络模型等的启发,构建了应用于计算机视觉问题的包含2个卷积层和2个全连接层的神经网络,正式提出了卷积神经网络,并于1998年构建更完备的卷积神经网络LeNet-5,成功用于解决手写识别问题。 2006年,Hinton等人发表文章,提出将预训练、自编码器与深度神经网络结合,开启了深度学习(深度神经网络)在学术界和工业界的研究与应用浪潮,相继在语音识别、图像识别等领域开展应用,显著降低了错误识别率。2011年后,深度学习开始将卷积层与最大池化层合并,并将其输出传递给几个全连接层,再传递给输出层。2013年4月,美国麻省理了学院(MIT)的《麻省理工科技评论》将深度学习列为2013年十大突破性技术之一。2014年,当时还在蒙特利尔大学读博上的Ian等人提出生成对抗网络溉念,使得神经网络系统不仅能够更好地生成图像与声音,还能识别它们,从而奠定了无监督自主学习算法框架的基础。2015年,谷歌DeepMind提出正式的Deep Q Networks系统。2016年,融合了深度学习、强化学习和蒙特卡罗树搜索方法的AlphaGo战胜了世界围棋高手李世石。这些研究让联结主义大放异彩,也是当前人工智能高潮形成的主因。 其他机器学习方向也在不断取得成果。早在1952年,IBM科学家Arthur开发了一个跳棋程序。该程序能够通过观察当前位置,并学习一个隐含的模型,为后续动作提供更好的指导。从1984年开始,Leo Breiman等人相继提出了适用于分类和连续输人(特征)/输出(预测)变量回归预测建模问题的决策树算法和多决策树组合的随机森林算法,后者属于集成学习范畴。1995年,由Corinna等人提出了支持向量机的溉念,通过Kernel的技巧将低维空间线性不可分或难分的样本数据点映射至高维空间使其线性可分,在解决小样本、非线性以及高维模式识别问题方面具有明显优势。
总条数:995 到第
上滑加载中