计算机机器学习/自控仿真
0
小小少年不可欺之人工智能艰辛的成长记录(跟踪贴)
Jason·Kamking·Black 2018-11-11 20:10:14

   天空一声巨响,楼主闪亮登场~~人们都说,人工智能是大人们才可以驾驭的东西,只有苦闷的程序员才可以搞定他们。身为中国好少年的我,在一个电闪雷鸣的下午立下flag:我一定要玩转人工智能!

    楼主可不想被雷神的裤衩批到于,于是楼主风餐露宿,兢兢业业的学习了半年的人工智能

    那么何为人工智能?人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。

   目前人工智能最主要的算法就是神经网络算法。人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型。神经网络技术起源于上世纪五、六十年代,当时叫感知机(perceptron),拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果。但是,Rosenblatt的单层感知机有一个严重得不能再严重的问题,即它对稍复杂一些的函数都无能为力(比如最为典型的“异或”操作)。随着数学的发展,这个缺点直到上世纪八十年代才被Rumelhart、Williams、Hinton、LeCun等人(反正就是一票大牛)发明的多层感知机(multilayer perceptron)克服。多层感知机,顾名思义,就是有多个隐含层的感知机。

    神经网络发展初期主要出现了:M-P神经网络模型,Hebb规则(无监督学习规则),Delta学习规则(有监督学习规则),感知器模型,自适应线性神经网络(Adaline)

   首先,让我们来谈一谈初期的神经网络算法:

     1. M-P神经网络模型:40年代,美国心理学家麦克洛奇(Mcculloch)和数学家皮兹(Pitts)提出了M-P模型。这种“阈值加权和”的神经元模型称为M-P模型 ( McCulloch-Pitts Model ),也称为神经网络的一个处理单元( PE, Processing Element )。此时并没有引入激活函数。

    2. Hebb规则(无监督学习规则):1949 年,心理学家赫布(Hebb)出版了《The Organization of Behavior》(行为组织学),他在书中提出了突触连接强度可变的假设。可变性是学习和记忆的基础 )

  3.Delta学习规则(有监督学习规则):pic 

  4.感知器模型:1957 年,罗森勃拉特(Rosenblatt)以M-P 模型为基础,提出了感知器(Perceptron)模型,激活函数实际为阶跃函数。即为单层的人工神经网络,以区别于较复杂的多层感知机(Multilayer Perceptron)。一个一个样本进行调节。

  5.自适应线性神经网络(Adaline):自适应线性神经网络(Adaptive Linear,简称Adaline) 是由威德罗(Widrow)和霍夫(Hoff)首先提出的。它与感知器的主要不同之处在于 其神经元有一个线性激活函数,这允许输出可以是任意值,而不仅仅只是像感知器中那样只能取0或1。它采用的是Widrow-Hoff学习法则(又称最小均方差算法LMS或称δ规则),对权值进行训练。自适应线性元件的主要用途是线性逼近一个函数式而进行模式联想。其结构和感知机一样,仍然是单层。仍然不能解决线性不可分问题,但是学习规则相对于感知机进行了改进。多样本进行调节,批处理

  pic

  6.采用W-H规则训练自适应性元件使其能够收敛的必要条件是被训练的输入矢量必须是线性独立的(思考:如果线性相关产生什么样的结果),且必须选择合适的学习速率以免产生振荡现象。 

              未完待续

2018-11-11 20:11:07
1楼
0

线性神经网络与感知器的区别在于:线性神经网络的神经元传递函数是线性函数,因此线性神经网络的输出可以取任意值,而感知器的输出只可能是0或者1。 

2018-11-12 21:42:16
2楼
0

个人也很感兴趣,能否问下楼主目前大几

3楼
0

初中

4楼
0
5楼
0


@天际遨游我初三

6楼
0

楼主才初中。。。我一直以为这要大学才行。。。楼主加油,持续关注中

2018-11-25 19:07:31
7楼
0

     线性神经网络在收敛速度与精度上都比感知器要高,但是同感知器一样,线性神经网络只能解决线性分离问题。

     中期: 
人工智能的创始人之一Minsky和Papert对以感知器为代表的网络系统的功能及局限性从数学上做了深入研究,于1969年发表了轰动一时《Perceptrons》一书,指出简单的线性感知器的功能是有限的,它无法解决线性不可分的两类样本的分类问题,如简单的线性感知器不可能实现“异或”的逻辑关系等。 
    (1)自组织神经网络SOM模型:1972年,芬兰的KohonenT.教授,提出了自组织神经网络SOM(Self-Organizing feature map)。后来的神经网络主要是根据KohonenT.的工作来实现的。SOM网络是一类无监督学习网络,主要用于模式识别﹑语音识别及分类问题。自组织神经网络,是一种用于聚类的神经网络算法,从名字便可以看出,这是一种无监督式的算法,意味着,它不需要任何训练样本,便可以直接对输入样本根据其特征 分类,将具有相似特征的划分为一类。SOM是一类“无监督学习”模型,一般的用法是将高维的input数据在低维的空间表示[1],因此SOM天然是一种降维方法。除了降维,SOM还可以用于数据可视化,以及聚类等应用中。pic
    (2)自适应共振理论ART:1976年,美国Grossberg教授提出了著名的自适应共振理论ART(Adaptive Resonance Theory),其学习过程具有自组织和自稳定的特征。第三阶段—-复兴时期 
    (1) Hopfield模型:1982年,美国物理学家霍普菲尔德(Hopfield)提出了一种离散神经网络,即离散Hopfield网络,从而有力地推动了神经网络的研究。在网络中,它首次将李雅普诺夫(Lyapunov)函数引入其中,后来的研究学者也将Lyapunov函数称为能量函数。证明了网络的稳定性。1984年,Hopfield 又提出了一种连续神经网络,将网络中神经元的激活函数由离散型改为连续型。1985 年,Hopfield和Tank利用Hopfield神经网络解决了著名的旅行推销商问题(Travelling Salesman Problem)。Hopfield神经网络是一组非线性微分方程。 
    (2)Boltzmann机模型:1983年,Kirkpatrick等人认识到模拟退火算法可用于NP完全组合优化问题的求解,这种模拟高温物体退火过程来找寻全局最优解的方法最早由Metropli等人1953年提出的。1984年,Hinton与年轻学者Sejnowski等合作提出了大规模并行网络学习机,并明确提出隐单元的概念,这种学习机后来被称为Boltzmann机。 
Hinton和Sejnowsky利用统计物理学的感念和方法,首次提出的多层网络的学习算法,称为Boltzmann 机模型。 
    (3)BP神经网络模型:1986年,儒默哈特(D.E.Ru melhart)等人在多层神经网络模型的基础上,提出了多层神经网络权值修正的反向传播学习算法—-BP算法(Error Back-Propagation),解决了多层前向神经网络的学习问题,证明了多层神经网络具有很强的学习能力,它可以完成许多学习任务,解决许多实际问题。 
    (4)并行分布处理理论 
    (5)细胞神经网络模型:1988年,Chua和Yang提出了细胞神经网络(CNN)模型,它是一个细胞自动机特性的大规模非线性计算机仿真系统。Kosko建立了双向联想存储模型(BAM),它具有非监督学习能力。 
按性能分:连续性神经网络和离散型神经网络 
    (6)Darwinism模型:Edelman提出的Darwinism模型在90年代初产生了很大的影响,他建立了一种神经网络系统理论 
    (7)1988年,Linsker对感知机网络提出了新的自组织理论,并在Shanon信息论的基础上形成了最大互信息理论,从而点燃了基于NN的信息应用理论的光芒。 
    (8)1988年,Broomhead和Lowe用径向基函数(Radialbasis function, RBF)提出分层网络的设计方法,从而将NN的设计与数值分析和线性适应滤波相挂钩。 
    (9)1991年,Haken把协同引入神经网络,在他的理论框架中,他认为,认知过程是自发的,并断言模式识别过程即是模式形成过程。 
    (10)1994年,廖晓昕关于细胞神经网络的数学理论与基础的提出,带来了这个领域新的进展。通过拓广神经网络的激活函数类,给出了更一般的时滞细胞神经网络(DCNN)、Hopfield神经网络(HNN)、双向联想记忆网络(BAM)模型。 
    (11)90年代初,Vapnik等提出了支持向量机(Supportvector machines, SVM)和VC(Vapnik-Chervonenkis)维数的概念。第四阶段—-高潮时期 
深度学习(Deep Learning,DL)由Hinton等人于2006年提出,是机器学习(Machine Learning, ML)的一个新领域。深度学习本质上是构建含有多隐层的机器学习架构模型,通过大规模数据进行训练,得到大量更具代表性的特征信息。深度学习算法打破了传统神经网络对层数的限制,可根据设计者需要选择网络层数。                                                                                                                                                                                                                                                                     二、神经网络的优点及特性                                                                  高度的并行性高度的非线性局部作用联想记忆功能和良好的容错性良好的自适应和自学习能力知识的分布存储非凸性

8楼
1

在这里谈一下楼主的一个关于人工智能的构想

2018-12-2 18:59:59
9楼
0

二、神经网络的优点及特性

    高度的并行性高度的非线性局部作用联想记忆功能和良好的容错性良好的自适应和自学习能力知识的分布存储非凸性神经元的功能特性时空整合功能神经元的动态极性化兴奋和一直兴奋状态结构的可塑性脉冲和电位信号的转换突触延期和不应期学习、遗忘和疲劳 
人类的大脑能够收到输入的信息的刺激由分布式并行处理的神经元相互连接进行非线性映射处理,从而实现复杂的信息处理和推理任务。神经结构

   在人工神经网络设计及应用研究中,通常需要考虑三个方面的内容,即神经元激活函数、神经元之间的连接形式和网络的学习(训练)。

神经网络的学习形式:

   在构造神经网络时,其神经元的传递函数和转换函数就已经确定了

神经网络的工作过程:

   神经网络的工作过程包括离线学习和在线判断两部分。学习过程中各神经元进行规则学习,权参数调整,进行非线性映射关系拟合以达到训练精度;判断阶段则是训练好的稳定的网络读取输入信息通过计算得到输出结果。

三、人工神经网络模型分类

按性能分:连续型和离散型网络,或确定型和随机型网络。 
按拓扑结构分:前向网络和反馈网络。 
按学习方法分:有教师(监督)的学习网络和无教师(监督)的学习网络。 
按连接突触性质分:一阶线性关联网络和高阶非线性关联网络。

前向网络

有自适应线性神经网络(AdaptiveLinear,简称Adaline)、单层感知器、多层感知器、BP等。前向网络,网络中各个神经元接受前一级的输入,并输出到下一级,网络中没有反馈,可以用一个有向无环路图表示。这种网络实现信号从输入空间到输出空间的变换,它的信息处理能力来自于简单非线性函数的多次复合。网络结构简单,易于实现。反传网络是一种典型的前向网络。

反馈网络

有Hopfield、Hamming、BAM等。反馈网络,网络内神经元间有反馈,可以用一个无向的完备图表示。这种神经网络的信息处理是状态的变换,可以用动力学系统理论处理。系统的稳定性与联想记忆功能有密切关系。Hopfield网络、波耳兹曼机均属于这种类型。

反向传播模型也称B-P模型,

是一种用于前向多层的反向传播学习算法。之所以称它是一种学习方法,是因为用它可以对组成前向多层网络的各人工神经元之间的连接权值进行不断的修改,从而使该前向多层网络能够将输入它的信息变换成所期望的输出信息。之所以将其称作为反向学习算法,是因为在修改各人工神经元的连接权值时,所依据的是该网络的实际输出与其期望的输出之差,将这一差值反向一层一层的向回传播,来决定连接权值的修改。 
B-P算法的学习过程如下: 
(1)、选择一组训练样例,每一个样例由输入信息和期望的输出结果两部分组成。 
(2)、从训练样例集中取一样例,把输入信息输入到网络中。 
(3)、分别计算经神经元处理后的各层节点的输出。 
(4)、计算网络的实际输出和期望输出的误差。 
(5)、从输出层反向计算到第一个隐层,并按照某种能使误差向减小方向发展的原则,调整网络中各神经元的连接权值。 
(6)、对训练样例集中的每一个样例重复(3)-(5)的步骤,直到对整个训练样例集的误差达到要求时为止。 
在以上的学习过程中,第(5)步是最重要的,如何确定一种调整连接权值的原则,使误差沿着减小的方向发展,是B-P学习算法必须解决的问题。 
B-P算法的优缺点: 
优点:理论基础牢固,推导过程严谨,物理概念清晰,通用性好等。所以,它是目前用来训练前向多层网络较好的算法。 
缺点:(1)、该学习算法的收敛速度慢;(2)、网络中隐节点个数的选取尚无理论上的指导;(3)、从数学角度看,B-P算法是一种梯度最速下降法,这就可能出现局部极小的问题。当出现局部极小时,从表面上看,误差符合要求,但这时所得到的解并不一定是问题的真正解。所以B-P算法是不完备的。 
BP算法局限性: 
(1)、在误差曲面上有些区域平坦,此时误差对权值的变化不敏感,误差下降缓慢,调整时间长,影响收敛速度。这时误差的梯度变化很小,即使权值的调整量很大,误差仍然下降很慢。造成这种情况的原因与各节点的净输入过大有关。 
(2)、存在多个极小点。从两维权空间的误差曲面可以看出,其上存在许多凸凹不平,其低凹部分就是误差函数的极小点。可以想象多维权空间的误差曲面,会更加复杂,存在更多个局部极小点,它们的特点都是误差梯度为0。BP算法权值调整依据是误差梯度下降,当梯度为0时,BP算法无法辨别极小点性质,因此训练常陷入某个局部极小点而不能自拔,使训练难以收敛于给定误差。 
BP算法改进:误差曲面的平坦区将使误差下降缓慢,调整时间加长,迭代次数增多,影响收敛速度;而误差曲面存在的多个极小点会使网络训练陷入局部极小,从而使网络训练无法收敛于给定误差。这两个问题是BP网络标准算法的固有缺陷。 
针对此,国内外不少学者提出了许多改进算法,几种典型的改进算法:

(1)、增加动量项:标准BP算法在调整权值时,只按t时刻误差的梯度下降方向调整,而没有考虑t时刻以前的梯度方向,从而常使训练过程发生振荡,收敛缓慢。为了提高训练速度,可以在权值调整公式中加一动量项。大多数BP算法中都增加了动量项,以至于有动量项的BP算法成为一种新的标准算法。 
(2)、可变学习速度的反向传播算法(variable learning rate back propagation,VLBP):多层网络的误差曲面不是二次函数。曲面的形状随参数空间区域的不同而不同。可以在学习过程中通过调整学习速度来提高收敛速度。技巧是决定何时改变学习速度和怎样改变学习速度。可变学习速度的VLBP算法有许多不同的方法来改变学习速度。 
(3)、学习速率的自适应调节:可变学习速度VLBP算法,需要设置多个参数,算法的性能对这些参数的改变往往十分敏感,另外,处理起来也较麻烦。此处给出一简洁的学习速率的自适应调节算法。学习率的调整只与网络总误差有关。学习速率η也称步长,在标准BP中是一常数,但在实际计算中,很难给定出一个从始至终都很合适的最佳学习速率。从误差曲面可以看出,在平坦区内η太小会使训练次数增加,这时候希望η值大一些;而在误差变化剧烈的区域,η太大会因调整过量而跨过较窄的“凹坑”处,使训练出现振荡,反而使迭代次数增加。为了加速收敛过程,最好是能自适应调整学习率η,使其该大则大,该小则小。比如可以根据网络总误差来调整. 
(4)、引入陡度因子—-防止饱和:误差曲面上存在着平坦区。其权值调整缓慢的原因在于S转移函数具有饱和特性造成的。如果在调整进入平坦区后,设法压缩神经元的净输入,使其输出退出转移函数的饱和区,就可改变误差函数的形状,从而使调整脱离平坦区。实现这一思路的具体作法是在转移函数中引进一个陡度因子。 
BP神经网络设计的一般原则:关于它的开发设计,大多数是根据使用者的经验来设计网络结构﹑功能函数﹑学习算法﹑样本等。

[1]、BP网络参数设计(1)、BP网络输入与输出参数的确定

A、输入量的选择: 
a、输入量必须选择那些对输出影响大且能够检测或提取的变量; 
b、各输入量之间互不相关或相关性很小。从输入、输出量性质分类来看,可以分为两类:数值变量和语言变量。数值变量又分为连续变量或离散变量。如常见的温度,压力,电压,电流等就是连续变量;语言变量是用自然语言表示的概念。如红,绿,蓝;男,女;大,中,小,开,关,亮,暗等。一般来说,语言变量在网络处理时,需要转化为离散变量。 
c、输入量的表示与提取:多数情况下,直接送给神经网络的输入量无法直接得到,常常需要用信号处理与特征提取技术从原始数据中提取能反映其特征的若干参数作为网络输入。 
B、输出量选择与表示: 
a、输出量一般代表系统要实现的功能目标,如分类问题的类别归属等; 
b、输出量表示可以是数值也可是语言变量;

(2)、训练样本集的设计

网络的性能与训练用的样本密切相关,设计一个好的训练样本集既要注意样本规模,又要注意样本质量。 
A、样本数目的确定:一般来说样本数n越多,训练结果越能正确反映其内在规律,但样本的获取往往有一定困难,另一方面,当样本数n达到一定数量后,网络的精度也很难提高。 
选择原则:网络规模越大,网络映射关系越复杂,样本数越多。一般说来,训练样本数是网络连接权总数的5~10倍,但许多情况难以达到这样的要求。 
B、样本的选择和组织: 
a、样本要有代表性,注意样本类别的均衡; 
b、样本的组织要注意将不同类别的样本交叉输入; 
c、网络的训练测试,测试标准是看网络是否有好的泛化能力。测试做法:不用样本训练集中数据测试。一般是将收集到的可用样本随机地分成两部分,一部分为训练集,另一部分为测试集。若训练样本误差很小,而对测试集的样本误差很大,泛化能力差。

(3)、初始权值的设计

网络权值的初始化决定了网络的训练从误差曲面的哪一点开始,因此初始化方法对缩短网络的训练时间至关重要。 
神经元的作用函数是关于坐标点对称的,若每个节点的净输入均在零点附近,则输出均出在作用函数的中点,这个位置不仅远离作用函数的饱和区,而且是其变化最灵敏的区域,必使网络学习加快。从神经网络净输入表达式来看,为了使各节点的初始净输入在零点附近,如下两种方法被常常使用: 
A、取足够小的初始权值; 
B、使初始值为+1和-1的权值数相等。

2018-12-18 17:55:34
10楼
0

人工智能是个很宽泛的概念。神经网络和模糊控制只是其中的一个分支。

比如大数据分析和预测,语音识别,语义理解,这些都归属人工智能。

所以初中生要玩的话,似乎大数据分析和预测还可以靠谱一点点。当然可靠的大数据来源不易,结果验证也不易,但是不影响作为兴趣研究和思考。

11楼
0

总结:数学很重要,不能熟练应用代数、统计这些基础中的基础,就不要指望超越别人了。楼主加油

想参与大家的讨论?现在就 登录 或者 注册

nkc production server  https://github.com/kccd/nkc.git

科创研究院 (c)2001-2018

蜀ICP备11004945号-2 川公网安备51010802000058号