神经网络不是分类算法。
神经网络是一种机器学习技术,可以用于分类和回归问题。 它也可以用于解决复杂的问题,比如语音识别、计算机觉等。
神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。 这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
生物神经网络主要是指脑的神经网络,它是工神经网络的技术原型。 作为一门学科,生物神经网络主要研究脑神经网络的结构、功能及其工作机,意在探索脑思维和智能活动的规律。
神经网络训练注意事项
由于学习速率是固定的,因此网络的收敛速度慢,需要较的训练时间。 对于一些复杂问题,BP算法需要的训练时间可能非常,这主要是由于学习速率太小造成的,可采用变化的学习速率或自适应的学习速率加以改进。
BP算法可以使权值收敛到某个值,但并不保证其为误差平面的全最小值,这是因为采用梯度下降法可能产生一个部最小值。 对于这个问题,可以采用附加动量法来解决。
网络隐含层的层数和单元数的选择尚无理论上的指导,一般是根据经验或者通过反复实验确定。 因此,网络往往存在很大的冗余性,在一定程度上也增加了网络学习的负担。
网络的学习和记忆具有不稳定性。 也就是说,如果增加了学习样本,训练好的网络就需要从开始训练,对于以前的权值和阈值是没有记忆的。 但是可以将预测、分类或聚类做的比较好的权值保存。
工神经网络,简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或者计算模型。 其实是一种与贝叶斯网络很像的一种算法。
神经网络是一种方法,既可以用来做有监督的任务,如分类、觉识别等,也可以用作无监督的任务。 首先,我们看一个简单的例子。 如下图所示(这个图网上有很多引用了,但我找不到出处,欢迎指正),如果我们想训练一个算法可以使其识别出是猫还是狗,这是很简单的一个分类任务,我们可以找一条线(模型),在这个二元坐标中进行“一刀切”,把这两组数据分开。 我们知道,在解析几何中,这条直线可以用如下的公式表达:
一个简单的神经网络
这里的W1和W2就是两个坐标轴上的系数,可以称为权重。 W0可以称作截距,也叫做偏移。 新来一个数据点,也就是一组输入值(X1,X2),如果在这条线的左边,那么它就是一只狗,如果在右边就是一只猫了。 这就可以用一个简单的神经网络来表示。 如图2所示,X1和X2分别是输入值,Y是输出值,两条边的权重分别是W1和W2。 这是一个最简单的神经网络了。 这就是使用神经网络定义了一个线性分类器了。 这里的一个圆形的节点就是一个神经元。 我们也可以采用另一种方式,即在输入输出之间加一个中间节点S,然后增加一个输出层,包括两个节点Y1和Y2,分别对应猫和狗,最后哪个输出节点的值大,那么这个数据就属于哪个类别(猫或者狗)。
对于简单的二分类问题这就可以解决了。 但在实际情况中,有很多问题无法简单的使用“一刀切”的方式解决,如图3所示,假设猫和狗的数据分布如下图,那么这就无法用“一刀切”的方式来解决了,但是我们可以切两刀,横竖各一刀,然后把相同的“块”联合起来,这样就解决了比较复杂的分类问题了。 也有些问题,需要用曲线来分。 在这种情况下,我们就需要比较复杂一点的神经网络了。 以曲线为例,我们可以设计出一个三层的神经网络。 这就是用神经网络设计的一个非线性分类器。 理论上讲,如何一个分类器都可以设计一个神经网络来表征,也就是说,不管实际图形如何,我们都可以设计一个神经网络来拟合。 到这里,可能有问,每个节点的这个函数要如何选择?根据吴老师《数学之美》第二版中的说法,为了提供工神经网络的通用性,我们一般规定每个神经元的函数只能对其输入的变量做一次非线性的变换。 举个例子说就是假如某个神经元Y的输入值是X1,X2, Xn,它们的边的权重分别为W1,W2, Wn,那么计算Y节点的值分两步进行,第一步是计算来自输入值的线性组合:
第二步是计算y=f(G),这里的f(⋅)可以使非线性的,,但因为里面的参数是一个具体的值,所以不会很复杂。 这两个步骤的结合使得工神经网络既灵活又不至于太复杂。 这里的f(⋅)就是活函数。 线性模型的表达能力不够,它的作用就是来增强模型的表示能力。 工神经网络可以很多层连接在一起,因此在工神经网络中,主要的工作就是设计结构(基层网络,每层几个节点等)和活函数。 我们常用的活函数包括Sigmoid函数、ReLU函数、Tanh函数等等。 如下图所示,这是几种简单的活函数的示意图
上一篇:神经网络主要有哪三种算法
下一篇:ppt画神经网络模型图