| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 概率神经网络的主要思想神经网络随机数预测 -> 正文阅读 |
|
[人工智能]概率神经网络的主要思想神经网络随机数预测 |
神经网络提取图像的概率分布特征神经网络提取图像的概率分布特征:由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数,降低了网络参数选择的复杂度。 卷积神经网络中的每一个特征提取层(C-层)都紧跟着一个用来求局部平均与二次提取的计算层(S-层),这种特有的两次特征提取结构使网络在识别时对输入样本有较高的畸变容忍能力。 神经网络特点:例如实现图像识别时,只在先把许多不同的图像样板和对应的应识别的结果输入人工神经网络,网络就会通过自学习功能,慢慢学会识别类似的图像。自学习功能对于预测有特别重要的意义。 预期未来的人工神经网络计算机将为人类提供经济预测、市场预测、效益预测,其应用前途是很远大的。 谷歌人工智能写作项目:神经网络伪原创 怎么用spss根据神经网络模型分类数据,预测概率这个预测 必须要有历史数据,也就是你需要有过去众多的历史流失数据和可能影响流失的一些影响因素的数据写作猫。说白了 就是仍然需要有类似自变量和因变量的历史数据,之后才可能进行构建模型预测。 如果你没有历史数据做支撑建立模型,那是没有办法做预测的。 神经网络Kohonen模型一、Kohonen模型概述1981年芬兰赫尔辛基大学Kohonen教授提出了一个比较完整的,分类性能较好的自组织特征影射(Self-Organizing Feature Map)人工神经网络(简称SOM网络)方案。 这种网络也称为Kohonen特征影射网络。这种网络模拟大脑神经系统自组织特征影射功能,它是一种竞争式学习网络,在学习中能无监督地进行自组织学习。 二、Hohonen模型原理1.概述SOM网络由输入层和竞争层组成。输入层神经元数为N,竞争层由M=R×C神经元组成,构成一个二维平面阵列或一个一维阵列(R=1)。输入层和竞争层之间实现全互连接。 SOM网络的基本思想是网络竞争层各神经元竞争对输入模式的响应机会,最后仅有一个神经元成为竞争的胜者,并对那些与获胜神经元有关的各连接权朝着更有利于它竞争的方向调整,这一获胜神经元就表示对输入模式的分类。 SOM算法是一种无教师示教的聚类方法,它能将任意输入模式在输出层映射成一维或二维离散图形,并保持其拓扑结构不变。即在无教师的情况下,通过对输入模式的自组织学习,在竞争层将分类结果表示出来。 此外,网络通过对输入模式的反复学习,可以使连接权矢量空间分布密度与输入模式的概率分布趋于一致,即连接权矢量空间分布能反映输入模式的统计特征。 2.网络权值初始化因为网络输入很可能出现在中间区,因此,如果竞争层的初始权值选择在输入空间的中间区,则其学习效果会更加有效。 3.邻域距离矩阵SOM网络中的神经元可以按任何方式排列,这种排列可以用表示同一层神经元间的Manhattan距离的邻域距离矩阵D来描述,而两神经元的Manhattan距离是指神经元坐标相减后的矢量中,其元素绝对值之和。 4.Kohonen竞争学习规则设SOM网络的输入模式为Xp=( , ,…, ),p=1,2.…,P。 竞争层神经元的输出值为Yj(j=1,2,…,M),竞争层神经元j与输入层神经元之间的连接权矢量为Wj=(wj1,wj2,…,wjN),j=1,2,…,M。 Kohonen网络自组织学习过程包括两个部分:一是选择最佳匹配神经元,二是权矢量自适应变化的更新过程。 确定输入模式Xp与连接权矢量Wj的最佳匹配的评价函数是两个矢量的欧氏距离最小,即 ,j=1,2,…,M,]]g,确定获胜神经元g。dg=mjin(dj),j=1,2,…,M。 求输入模式Xp在竞争层的获胜神经元g及其在邻域距离nd内的神经元的输出。中国矿产资源评价新技术与评价新模型dgm为邻域距离矩阵D的元素,为竞争层中获胜神经元g与竞争层中其它神经元的距离。 求输入模式Xp在竞争层的获胜神经元g及其在邻域距离nd内的神经元的权值修正值。中国矿产资源评价新技术与评价新模型式中:i=1,2,…,N;lr为学习速率;t为学习循环次数。 Δwjt(t+1)的其余元素赋值为0。进行连接权的调整wji(t+1)=wji(t)+Δwji(t+1)。 5.权值学习中学习速率及邻域距离的更新(1)SOM网络的学习过程分为两个阶段第一阶段为粗学习与粗调整阶段。 在这一阶段内,连接权矢量朝着输入模式的方向进行调整,神经元的权值按照期望的方向在适应神经元位置的输入空间建立次序,大致确定输入模式在竞争层中所对应的影射位置。 一旦各输入模式在竞争层有了相对的影射位置后,则转入精学习与细调整阶段,即第二阶段。 在这一阶段内,网络学习集中在对较小的范围内的连接权进行调整,神经元的权值按照期望的方向在输入空间伸展,直到保留到他们在粗调整阶段所建立的拓扑次序。学习速率应随着学习的进行不断减小。 (2)邻域的作用与更新在SOM网络中,脑神经细胞接受外界信息的刺激产生兴奋与抑制的变化规律是通过邻域的作用来体现的邻域规定了与获胜神经元g连接的权向量Wg进行同样调整的其他神经元的范围。 在学习的最初阶段,邻域的范围较大,随着学习的深入进行,邻域的范围逐渐缩小。 (3)学习速率及邻域距离的更新在粗调整阶段,学习参数初始化最大学习循环次数 MAX_STEP1=1000,粗调整阶段学习速率初值 LR1=1.4,细调整阶段学习速率初值 LR2=0.02,最大邻域距离 MAX_ND1=Dmax,Dmax为邻域距离矩阵D的最大元素值。 粗调阶段学习循环次数step≤MAX_STEP1,学习速率lr从LR1调整到LR2,邻域距离nd 从MAX_ND1调整到1,求更新系数r,r=1-step/MAX_STEP1,邻域距离nd更新,nd=1.00001+(MAX_ND1-1)×r。 学习速率lr更新,lr=LR2+(LR1-LR2)×r。在细调整阶段,学习参数初始化,最大学习循环次数 MAX_STEP2=2000,学习速率初值 LR2=0.02,最大邻域距离 MAX_ND2=1。 细调阶段MAX_STEP1<step≤MAX_STEP1+MAX_STEP2,学习速率lr慢慢从LR2减少,邻域距离nd设为1,邻域距离nd更新,nd=MAX_ND2+0.00001。 学习速率lr更新,lr=LR2×(MAX_STEP1/step)。6.网络的回想——预测SOM网络经学习后按照下式进行回想:中国矿产资源评价新技术与评价新模型Yj=0,j=1,2,…,M,(j≠g)。 将需要分类的输入模式提供给网络的输入层,按照上述方法寻找出竞争层中连接权矢量与输入模式最接近的神经元,此时神经元有最大的激活值1,而其它神经元被抑制而取0值。这时神经元的状态即表示对输入模式的分类。 三、总体算法1.SOM权值学习总体算法(1)输入参数X[N][P]。(2)构造权值矩阵W[M][N]。1)由X[N][P]求Xmid[N],2)由Xmid[N]构造权值W[M][N]。 (3)构造竞争层。1)求竞争层神经元数M,2)求邻域距离矩阵D[M][M],3)求矩阵D[M][M]元素的最大值Dmax。(4)学习参数初始化。(5)学习权值W[M][N]。 1)学习参数学习速率lr,邻域距离nd更新,分两阶段:(i)粗调阶段更新;(ii)细调阶段更新。2)求输入模式X[N][p]在竞争层的获胜神经元win[p]。 (i)求X[N][p]与W[m][N]的欧氏距离dm;(ii)按距离dm最短,求输入模式X[N][p]在竞争层的获胜神经元win[p]。 3)求输入模式X[N][p]在竞争层的获胜神经元win[p]及其在邻域距离nd内的神经元的输出Y[m][p]。 4)求输入模式X[N][p]在竞争层的获胜神经元win[p]及其在邻域距离nd内的神经元的权值修正值ΔW[m][N],从而得到输入模式X[N][p]产生的权值修正值ΔW[M][N]。 5)权值修正W[M][N]=W[M][N]+ΔW[M][N]。 6)学习结束条件:(i)学习循环到MAX_STEP次;(ii)学习速率lr达到用户指定的LR_MIN;(iii)学习时间time达到用户指定的TIME_LIM。(6)输出。 1)学习得到的权值矩阵W[M][N];2)邻域距离矩阵D[M][M]。(7)结束。2.SOM预测总体算法(1)输入需分类数据X[N][P],邻域距离矩阵D[M][M]。 (2)求输入模式X[N][p]在竞争层的获胜神经元win[p]。1)求X[N][p]与W[m][N]的欧氏距离dm;2)按距离dm最短,求输入模式X[N][p]在竞争层的获胜神经元win[p]。 (3)求获胜神经元win[p]在竞争层排列的行列位置。(4)输出与输入数据适应的获胜神经元win[p]在竞争层排列的行列位置,作为分类结果。(5)结束。 四、总体算法流程图Kohonen总体算法流程图见附图4。五、数据流图Kohonen数据流图见附图4。 六、无模式识别总体算法假定有N个样品,每个样品测量M个变量,则有原始数据矩阵:X=(xij)N×M,i=1,2,…,N,j=1,2,…,M。 (1)原始数据预处理X=(xij)N×M处理为Z=(zij)N×M,分3种处理方法:1)衬度;2)标准化;3)归一化。程序默认用归一化处理。 (2)构造Kohonen网竞争层与输入层之间的神经元的连接权值构成矩阵WQ×M。WQ×M初始化。(3)进入Kohonen网学习分类循环,用epoch记录循环次数,epoch=1。 (4)在每个epoch循环中,对每个样品n(n=1,2,…,N)进行分类。从1个样品n=1开始。 (5)首先计算输入层的样品n的输入数据znm(m=1,2,…,M)与竞争层Q个神经元对应权值wqm的距离。 (6)寻找输入层的样品n与竞争层Q个神经元的最小距离,距离最小的神经元Win[n]为获胜神经元,将样品n归入获胜神经元Win[n]所代表的类型中,从而实现对样品n的分类。 (7)对样品集中的每一个样品进行分类:n=n+1。(如果n≤N,转到5。否则,转到8。 )(8)求分类后各神经元所对应的样品的变量的重心,用对应的样品的变量的中位数作为重心,用对应的样品的变量的重心来更新各神经元的连接权值。(9)epoch=epoch+1;一次学习分类循环结束。 (10)如果满足下列两个条件之一,分类循环结束,转到11;否则,分类循环继续进行,转到4。1)全部样品都固定在某个神经元上,不再改变了;2)学习分类循环达到最大迭代次数。 (11)输出:1)N个样品共分成多少类,每类多少样品,记录每类的样品编号;2)如果某类中样品个数超过1个,则输出某类的样品原始数据的每个变量的均值、最小值、最大值和均方差;3)如果某类中样品个数为1个,则输出某类的样品原始数据的各变量值;4)输出原始数据每个变量(j=1,2,…,M)的均值,最小值,最大值和均方差。 (12)结束。七、无模式识别总体算法流程图Kohonen无模式总体算法流程图见附图5。 神经网络bp算法可以对样本进行预测,具体是预测什么?关于神经网络(matlab)归一化的整理由于采集的各数据单位不一致,因而须对数据进行[-1,1]归一化处理,归一化方法主要有如下几种,供大家参考:(by james)1、线性函数转换,表达式如下:y=(x-MinValue)/(MaxValue-MinValue)说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。 2、对数函数转换,表达式如下:y=log10(x)说明:以10为底的对数函数转换。 3、反余切函数转换,表达式如下:y=atan(x)*2/PI归一化是为了加快训练网络的收敛性,可以不进行归一化处理归一化的具体作用是归纳统一样本的统计分布性。 归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。归一化有同一、统一和合一的意思。 无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,归一化是同一在0-1之间的统计概率分布;当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。 为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。 归一化是因为sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。所以这样做分类的问题时用[0.9 0.1 0.1]就要比用[1 0 0]要好。 但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。 关于用premnmx语句进行归一化:premnmx语句的语法格式是:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T)其中P,T分别为原始输入和输出数据,minp和maxp分别为P中的最小值和最大值。 mint和maxt分别为T的最小值和最大值。premnmx函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在[-1,1]区间内。 我们在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到tramnmx。 下面介绍tramnmx函数:[Pn]=tramnmx(P,minp,maxp)其中P和Pn分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。 (by terry2008)matlab中的归一化处理有三种方法1. premnmx、postmnmx、tramnmx2. restd、poststd、trastd3. 自己编程具体用那种方法就和你的具体问题有关了(by happy)pm=max(abs(p(i,:))); p(i,:)=p(i,:)/pm;和for i=1:27p(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));end 可以归一到0 1 之间0.1+(x-min)/(max-min)*(0.9-0.1)其中max和min分别表示样本最大值和最小值。 这个可以归一到0.1-0.9。 有哪些深度神经网络模型?目前经常使用的深度神经网络模型主要有卷积神经网络(CNN) 、递归神经网络(RNN)、深信度网络(DBN) 、深度自动编码器(AutoEncoder) 和生成对抗网络(GAN) 等。 递归神经网络实际.上包含了两种神经网络。 一种是循环神经网络(Recurrent NeuralNetwork) ;另一种是结构递归神经网络(Recursive Neural Network),它使用相似的网络结构递归形成更加复杂的深度网络。 RNN它们都可以处理有序列的问题,比如时间序列等且RNN有“记忆”能力,可以“模拟”数据间的依赖关系。卷积网络的精髓就是适合处理结构化数据。 关于深度神经网络模型的相关学习,推荐CDA数据师的相关课程,课程以项目调动学员数据挖掘实用能力的场景式教学为主,在讲师设计的业务场景下由讲师不断提出业务问题,再由学员循序渐进思考并操作解决问题的过程中,帮助学员掌握真正过硬的解决业务问题的数据挖掘能力。 这种教学方式能够引发学员的独立思考及主观能动性,学员掌握的技能知识可以快速转化为自身能够灵活应用的技能,在面对不同场景时能够自由发挥。点击预约免费试听课。 神经网络算法的人工神经网络人工神经网络(Artificial Neural Networks,ANN)系统是 20 世纪 40 年代后出现的。 它是由众多的神经元可调的连接权值连接而成,具有大规模并行处理、分布式信 息存储、良好的自组织自学习能力等特点。 BP(Back Propagation)算法又称为误差 反向传播算法,是人工神经网络中的一种监督式的学习算法。 BP 神经网络算法在理 论上可以逼近任意函数,基本的结构由非线性变化单元组成,具有很强的非线性映射能力。 而且网络的中间层数、各层的处理单元数及网络的学习系数等参数可根据具体情况设定,灵活性很大,在优化、信号处理与模式识别、智能控制、故障诊断等许 多领域都有着广泛的应用前景。 人工神经元的研究起源于脑神经元学说。19世纪末,在生物、生理学领域,Waldeger等人创建了神经元学说。人们认识到复杂的神经系统是由数目繁多的神经元组合而成。 大脑皮层包括有100亿个以上的神经元,每立方毫米约有数万个,它们互相联结形成神经网络,通过感觉器官和神经接受来自身体内外的各种信息,传递至中枢神经系统内,经过对信息的分析和综合,再通过运动神经发出控制信息,以此来实现机体与内外环境的联系,协调全身的各种机能活动。 神经元也和其他类型的细胞一样,包括有细胞膜、细胞质和细胞核。但是神经细胞的形态比较特殊,具有许多突起,因此又分为细胞体、轴突和树突三部分。细胞体内有细胞核,突起的作用是传递信息。 树突是作为引入输入信号的突起,而轴突是作为输出端的突起,它只有一个。树突是细胞体的延伸部分,它由细胞体发出后逐渐变细,全长各部位都可与其他神经元的轴突末梢相互联系,形成所谓“突触”。 在突触处两神经元并未连通,它只是发生信息传递功能的结合部,联系界面之间间隙约为(15~50)×10米。突触可分为兴奋性与抑制性两种类型,它相应于神经元之间耦合的极性。 每个神经元的突触数目正常,最高可达10个。各神经元之间的连接强度和极性有所不同,并且都可调整、基于这一特性,人脑具有存储信息的功能。利用大量神经元相互联接组成人工神经网络可显示出人的大脑的某些特征。 人工神经网络是由大量的简单基本元件——神经元相互联接而成的自适应非线性动态系统。每个神经元的结构和功能比较简单,但大量神经元组合产生的系统行为却非常复杂。 人工神经网络反映了人脑功能的若干基本特性,但并非生物系统的逼真描述,只是某种模仿、简化和抽象。 与数字计算机比较,人工神经网络在构成原理和功能特点等方面更加接近人脑,它不是按给定的程序一步一步地执行运算,而是能够自身适应环境、总结规律、完成某种运算、识别或过程控制。 人工神经网络首先要以一定的学习准则进行学习,然后才能工作。现以人工神经网络对于写“A”、“B”两个字母的识别为例进行说明,规定当“A”输入网络时,应该输出“1”,而当输入为“B”时,输出为“0”。 所以网络学习的准则应该是:如果网络作出错误的的判决,则通过网络的学习,应使得网络减少下次犯同样错误的可能性。 首先,给网络的各连接权值赋予(0,1)区间内的随机值,将“A”所对应的图象模式输入给网络,网络将输入模式加权求和、与门限比较、再进行非线性运算,得到网络的输出。 在此情况下,网络输出为“1”和“0”的概率各为50%,也就是说是完全随机的。这时如果输出为“1”(结果正确),则使连接权值增大,以便使网络再次遇到“A”模式输入时,仍然能作出正确的判断。 如果输出为“0”(即结果错误),则把网络连接权值朝着减小综合输入加权值的方向调整,其目的在于使网络下次再遇到“A”模式输入时,减小犯同样错误的可能性。 如此操作调整,当给网络轮番输入若干个手写字母“A”、“B”后,经过网络按以上学习方法进行若干次学习后,网络判断的正确率将大大提高。 这说明网络对这两个模式的学习已经获得了成功,它已将这两个模式分布地记忆在网络的各个连接权值上。当网络再次遇到其中任何一个模式时,能够作出迅速、准确的判断和识别。 一般说来,网络中所含的神经元个数越多,则它能记忆、识别的模式也就越多。 (1)人类大脑有很强的自适应与自组织特性,后天的学习与训练可以开发许多各具特色的活动功能。 如盲人的听觉和触觉非常灵敏;聋哑人善于运用手势;训练有素的运动员可以表现出非凡的运动技巧等等。普通计算机的功能取决于程序中给出的知识和能力。显然,对于智能活动要通过总结编制程序将十分困难。 人工神经网络也具有初步的自适应与自组织能力。在学习或训练过程中改变突触权重值,以适应周围环境的要求。同一网络因学习方式及内容不同可具有不同的功能。 人工神经网络是一个具有学习能力的系统,可以发展知识,以致超过设计者原有的知识水平。 通常,它的学习训练方式可分为两种,一种是有监督或称有导师的学习,这时利用给定的样本标准进行分类或模仿;另一种是无监督学习或称无为导师学习,这时,只规定学习方式或某些规则,则具体的学习内容随系统所处环境 (即输入信号情况)而异,系统可以自动发现环境特征和规律性,具有更近似人脑的功能。 (2)泛化能力泛化能力指对没有训练过的样本,有很好的预测能力和控制能力。特别是,当存在一些有噪声的样本,网络具备很好的预测能力。 (3)非线性映射能力当对系统对于设计人员来说,很透彻或者很清楚时,则一般利用数值分析,偏微分方程等数学工具建立精确的数学模型,但当对系统很复杂,或者系统未知,系统信息量很少时,建立精确的数学模型很困难时,神经网络的非线性映射能力则表现出优势,因为它不需要对系统进行透彻的了解,但是同时能达到输入与输出的映射关系,这就大大简化设计的难度。 (4)高度并行性并行性具有一定的争议性。承认具有并行性理由:神经网络是根据人的大脑而抽象出来的数学模型,由于人可以同时做一些事,所以从功能的模拟角度上看,神经网络也应具备很强的并行性。 多少年以来,人们从医学、生物学、生理学、哲学、信息学、计算机科学、认知学、组织协同学等各个角度企图认识并解答上述问题。 在寻找上述问题答案的研究过程中,这些年来逐渐形成了一个新兴的多学科交叉技术领域,称之为“神经网络”。神经网络的研究涉及众多学科领域,这些领域互相结合、相互渗透并相互推动。 不同领域的科学家又从各自学科的兴趣与特色出发,提出不同的问题,从不同的角度进行研究。 下面将人工神经网络与通用的计算机工作特点来对比一下:若从速度的角度出发,人脑神经元之间传递信息的速度要远低于计算机,前者为毫秒量级,而后者的频率往往可达几百兆赫。 但是,由于人脑是一个大规模并行与串行组合处理系统,因而,在许多问题上可以作出快速判断、决策和处理,其速度则远高于串行结构的普通计算机。 人工神经网络的基本结构模仿人脑,具有并行处理特征,可以大大提高工作速度。人脑存贮信息的特点为利用突触效能的变化来调整存贮内容,也即信息存贮在神经元之间连接强度的分布上,存贮区与计算机区合为一体。 虽然人脑每日有大量神经细胞死亡 (平均每小时约一千个),但不影响大脑的正常思维活动。 普通计算机是具有相互独立的存贮器和运算器,知识存贮与数据运算互不相关,只有通过人编出的程序使之沟通,这种沟通不能超越程序编制者的预想。元器件的局部损坏及程序中的微小错误都可能引起严重的失常。 心理学家和认知科学家研究神经网络的目的在于探索人脑加工、储存和搜索信息的机制,弄清人脑功能的机理,建立人类认知过程的微结构理论。 生物学、医学、脑科学专家试图通过神经网络的研究推动脑科学向定量、精确和理论化体系发展,同时也寄希望于临床医学的新突破;信息处理和计算机科学家研究这一问题的目的在于寻求新的途径以解决不能解决或解决起来有极大困难的大量问题,构造更加逼近人脑功能的新一代计算机。 人工神经网络早期的研究工作应追溯至上世纪40年代。下面以时间顺序,以著名的人物或某一方面突出的研究成果为线索,简要介绍人工神经网络的发展历史。 1943年,心理学家W·Mcculloch和数理逻辑学家W·Pitts在分析、总结神经元基本特性的基础上首先提出神经元的数学模型。此模型沿用至今,并且直接影响着这一领域研究的进展。 因而,他们两人可称为人工神经网络研究的先驱。1945年冯·诺依曼领导的设计小组试制成功存储程序式电子计算机,标志着电子计算机时代的开始。 1948年,他在研究工作中比较了人脑结构与存储程序式计算机的根本区别,提出了以简单神经元构成的再生自动机网络结构。 但是,由于指令存储式计算机技术的发展非常迅速,迫使他放弃了神经网络研究的新途径,继续投身于指令存储式计算机技术的研究,并在此领域作出了巨大贡献。 虽然,冯·诺依曼的名字是与普通计算机联系在一起的,但他也是人工神经网络研究的先驱之一。50年代末,F·Rosenblatt设计制作了“感知机”,它是一种多层的神经网络。 这项工作首次把人工神经网络的研究从理论探讨付诸工程实践。当时,世界上许多实验室仿效制作感知机,分别应用于文字识别、声音识别、声纳信号识别以及学习记忆问题的研究。 然而,这次人工神经网络的研究高潮未能持续很久,许多人陆续放弃了这方面的研究工作,这是因为当时数字计算机的发展处于全盛时期,许多人误以为数字计算机可以解决人工智能、模式识别、专家系统等方面的一切问题,使感知机的工作得不到重视;其次,当时的电子技术工艺水平比较落后,主要的元件是电子管或晶体管,利用它们制作的神经网络体积庞大,价格昂贵,要制作在规模上与真实的神经网络相似是完全不可能的;另外,在1968年一本名为《感知机》的著作中指出线性感知机功能是有限的,它不能解决如异感这样的基本问题,而且多层网络还不能找到有效的计算方法,这些论点促使大批研究人员对于人工神经网络的前景失去信心。 60年代末期,人工神经网络的研究进入了低潮。另外,在60年代初期,Widrow提出了自适应线性元件网络,这是一种连续取值的线性加权求和阈值网络。后来,在此基础上发展了非线性多层自适应网络。 当时,这些工作虽未标出神经网络的名称,而实际上就是一种人工神经网络模型。随着人们对感知机兴趣的衰退,神经网络的研究沉寂了相当长的时间。 80年代初期,模拟与数字混合的超大规模集成电路制作技术提高到新的水平,完全付诸实用化,此外,数字计算机的发展在若干应用领域遇到困难。这一背景预示,向人工神经网络寻求出路的时机已经成熟。 美国的物理学家Hopfield于1982年和1984年在美国科学院院刊上发表了两篇关于人工神经网络研究的论文,引起了巨大的反响。人们重新认识到神经网络的威力以及付诸应用的现实性。 随即,一大批学者和研究人员围绕着 Hopfield提出的方法展开了进一步的工作,形成了80年代中期以来人工神经网络的研究热潮。 1985年,Ackley、Hinton和Sejnowski将模拟退火算法应用到神经网络训练中,提出了Boltzmann机,该算法具有逃离极值的优点,但是训练时间需要很长。 1986年,Rumelhart、Hinton和Williams提出了多层前馈神经网络的学习算法,即BP算法。它从证明的角度推导算法的正确性,是学习算法有理论依据。从学习算法角度上看,是一个很大的进步。 1988年,Broomhead和Lowe第一次提出了径向基网络:RBF网络。总体来说,神经网络经历了从高潮到低谷,再到高潮的阶段,充满曲折的过程。 这该怎么做?高数求解大家都知道,AI (神经网络) 连加减法这样的简单算术都做不好:可现在,AI已经懂得微积分,把魔爪伸向你最爱的高数了。 它不光会求不定积分:还能解常微分方程:一阶二阶都可以。 这是Facebook发表的新模型,1秒给出的答案,超越了Mathematica和Matlab这两只付费数学软件30秒的成绩。 团队说,这是Seq2Seq和Transformer搭配食用的结果。 用自然语言处理 (NLP) 的方法来理解数学,果然行得通。 这项成果,已经在推特上获得了1700赞。许多小伙伴表示惊奇,比如: “感谢你们!在我原本的想象中,这完全是不可能的! ”而且,据说算法很快就要开源了:到时候让付费软件怎么办?巨大数据集的生成姿势要训练模型做微积分题目,最重要的前提就是要有大大大的数据集。 这里有,积分数据集和常微分方程数据集的制造方法:函数,和它的积分首先,就是要做出“一个函数&它的微分”这样的数据对。 团队用了三种方法: 第一种是正向生成 (Fwd) ,指生成随机函数 (最多n个运算符) ,再用现成的工具求积分。把工具求不出的函数扔掉。 第二种是反向生成 (Bwd) ,指生成随机函数,再对函数求导。 填补了第一种方法收集不到的一些函数,因为就算工具求不出积分,也一定可以求导。 第三种是用了分部积分的反向生成 (Ibp) 。 前面的反向生成有个问题,就是不太可能覆盖到f(x)=x3sin(x)的积分: F(x)=-x3cos(x)+3x2sin(x)+6xcos(x)-6sin(x) 因为这个函数太长了,随机生成很难做到。 另外,反向生成的产物,大多会是函数的积分比函数要短,正向生成则相反。 为了解决这个问题,团队用了分部积分:生成两个随机函数F和G,分别算出导数f和g。 如果fG已经出现在前两种方法得到的训练集里,它的积分就是已知,可以用来求出Fg: ∫Fg=FG-∫fG 反过来也可以,如果Fg已经在训练集里,就用它的积分求出fG。 每求出一个新函数的积分,就把它加入训练集。 如果fG和Fg都不在训练集里,就重新生成一对F和G。 如此一来,不借助外部的积分工具,也能轻松得到x10sin(x)这样的函数了。 一阶常微分方程,和它的解从一个二元函数F(x,y)说起。 有个方程F(x,y)=c,可对y求解得到y=f(x,c)。 就是说有一个二元函数f,对任意x和c都满足:再对x求导,就得到一个微分方程:fc表示从x到f(x,c)的映射,也就是这个微分方程的解。 这样,对于任何的常数c,fc都是一阶微分方程的解。 把fc替换回y,就有了整洁的微分方程:这样一来,想做出“一阶常微分方程&解”的成对数据集,只要生成一个f(x,c),对c有解的那种,再找出它满足的微分方程F就可以了,比如:二阶常微分方程,和它的解二阶的原理,是从一阶那里扩展来的,只要把f(x,c)变成f(x,c1,c2) ,对c2有解。 微分方程F要满足:把它对x求导,会得到:fc1,c2表示,从x到f(x,c1,c2)的映射。 如果这个方程对c1有解,就可以推出另外一个三元函数G,它对任意x都满足:再对x求导,就会得到:最后,整理出清爽的微分方程:它的解就是fc1,c2。 至于生成过程,举个例子:现在,求积分和求解微分方程两个训练集都有了。那么问题也来了,AI要怎么理解这些复杂的式子,然后学会求解方法呢? 将数学视作自然语言积分方程和微分方程,都可以视作将一个表达式转换为另一个表达式,研究人员认为,这是机器翻译的一个特殊实例,可以用NLP的方法来解决。 第一步,是将数学表达式以树的形式表示。 运算符和函数为内部节点,数字、常数和变量等为叶子节点。 比如 3x^2 + cos(2x) - 1 就可以表示为:再举一个复杂一点的例子,这样一个偏微分表达式:用树的形式表示,就是:采用树的形式,就能消除运算顺序的歧义,照顾优先级和关联性,并且省去了括号。 在没有空格、标点符号、多余的括号这样的无意义符号的情况下,不同的表达式会生成不同的树。表达式和树之间是一一对应的。 第二步,引入seq2seq模型。 seq2seq模型具有两种重要特性: 输入和输出序列都可以具有任意长度,并且长度可以不同。 输入序列和输出序列中的字词不需要一一对应。 因此,seq2seq模型非常适合求解微积分的问题。 使用seq2seq模型生成树,首先,要将树映射到序列。 使用前缀表示法,将每个父节点写在其子节点之前,从左至右列出。 比如 2 + 3 * (5 + 2),表示为树是:表示为序列就是 [+ 2 * 3 + 5 2]。 树和前缀序列之间也是一一映射的。 第三步,生成随机表达式。 要创建训练数据,就需要生成随机数学表达式。前文已经介绍了数据集的生成策略,这里着重讲一下生成随机表达式的算法。 使用n个内部节点对表达式进行统一采样并非易事。 比如递归这样的方法,就会倾向于生成深树而非宽树,偏左树而非偏右树,实际上是无法以相同的概率生成不同种类的树的。 所以,以随机二叉树为例,具体的方法是:从一个空的根节点开始,在每一步中确定下一个内部节点在空节点中的位置。重复进行直到所有内部节点都被分配为止。 不过,在通常情况下,数学表达式树不一定是二叉树,内部节点可能只有1个子节点。如此,就要考虑根节点和下一内部节点参数数量的二维概率分布,记作 L(e,n)。 接下来,就是对随机树进行采样,从可能的运算符和整数、变量、常量列表中随机选择内部节点及叶子节点来对树进行“装饰”。 最后,计算表达式的数量。 经由前面的步骤,可以看出,表达式实际上是由一组有限的变量、常量、整数和一系列运算符组成的。 于是,问题可以概括成: 最多包含n个内部节点的树 一组p1个一元运算符(如cos,sin,exp,log) 一组p2个二进制运算符(如+,-,×,pow) 一组L个叶子值,其中包含变量(如x,y,z),常量(如e,π),整数(如 {-10,…,10}) 如果p1 = 0,则表达式用二叉树表示。 这样,具有n个内部节点的二叉树恰好具有n + 1个叶子节点。每个节点和叶子可以分别取p1和L个不同的值。 具有n个二进制运算符的表达式数量就可以表示为:如果p1 > 0,表达式数量则为:可以观察到,叶子节点和二元运算符的数量会明显影响问题空间的大小。 △不同数目运算符和叶子节点的表达式数量胜过商业软件实验中,研究人员训练seq2seq模型预测给定问题的解决方案。 采用的模型,是8个注意力头(attention head),6层,512维的Transformer模型。 研究人员在一个拥有5000个方程的数据集中,对模型求解微积分方程的准确率进行了评估。 结果表明,对于微分方程,波束搜索解码能大大提高模型的准确率。而与最先进的商业科学计算软件相比,新模型不仅更快,准确率也更高。 在包含500个方程的测试集上,商业软件中表现最好的是Mathematica。 比如,在一阶微分方程中,与使用贪婪搜索解码算法(集束大小为1)的新模型相比,Mathematica不落下风,但新方法通常1秒以内就能解完方程,Mathematica的解题时间要长的多(限制时间30s,若超过30s则视作没有得到解)。 而当新方法进行大小为50的波束搜索时,模型准确率就从81.2%提升到了97%,远胜于Mathematica(77.2%) 并且,在某一些Mathematica和Matlab无力解决的问题上,新模型都给出了有效解。 △商业科学计算软件没有找到解的方程邀请AI参加IMO这个会解微积分的AI一登场,就吸引了众多网友的目光,引发热烈讨论。网友们纷纷称赞:鹅妹子嘤。 有网友这样说道: 这篇论文超级有趣的地方在于,它有可能解决复杂度比积分要高得高得高得多的问题。还有网友认为,这项研究太酷了,该模型能够归纳和整合一些sympy无法实现的功能。 不过,也有网友认为,在与Mathematica的对比上,研究人员的实验设定显得不够严谨。 默认设置下,Mathematica是在复数域中进行计算的,这会增加其操作的难度。 但作者把包含复数系数的表达式视作“无效”。所以他们在使用Mathematica的时候将设置调整为实数域了?我很好奇Mathematica是否可以解决该系统无法解决的问题。 30s的限制时间对于计算机代数系统有点武断了。但总之,面对越来越机智的AI,已经有人发起了挑战赛,邀请AI挑战IMO金牌。Facebook AI研究院出品 这篇论文有两位共同一作。 Guillaume Lample,来自法国布雷斯特,是Facebook AI研究院、皮埃尔和玛丽·居里大学在读博士。他曾于巴黎综合理工学院和CMU分别获得数学与计算机科学和人工智能硕士学位。 2014年进入Facebook实习。 Franois Charton,Facebook AI研究院的客座企业家(Visiting entrepreneur),主要研究方向是数学和因果关系。 传送门 ————编辑 ∑Gemini来源:新浪科技。 matlab 神经网络输出概率? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:40:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |