简述什么是神经网络,神经网络主要包括

  简述什么是神经网络,神经网络主要包括

  上一页:目录

  神经网络虽然用了数学,但不如数学严谨。不同于传统的机器学习方法(如决策树、随机森林、最近邻法等。),它可以让我们清楚地知道它学到了什么。虽然现在很多人都在致力于研究神经网络背后的原理,但是3354它学到了什么?确实有一些令人兴奋的结果,但还远远不够。

  我们经常把网络称为“黑匣子”,即我们不知道它学到了什么,为什么它能这么好地工作(这里“我不知道”是指它还不能被严谨地解释)。

  我理解的神经网络(监督学习)其实就像一个孩子。一开始他做不到,所以一开始只能“蒙眼”。“盲”是指随机。这不重要。重要的是有一个好老师(家长)告诉他怎么做最好(标签)。在这种试错修正中,孩子不断成长。

  让我们看一个带有简单预测器的简单例子。假设我们不知道英里和公里的换算关系,但是我们知道它们之间的关系是线性的(公里=英里*C,C是常数)。现在我们只知道他们之间一些正确的匹配数据。

  

因为我们不知道系数C到底是什么,所以我们随机初始化C

=1,我们希望得到一个合适的系数c的值,当我们告诉它英里数时,它可以输出公里数。

  当我们使用第一组数据时,勇士号2乘以系数C=1

得出公里数等于2,但我们已经知道,实际的值应该为1,所以我们知道此时程序的输出有误差,为+1,也就是说我们初始化的C太大了!

一个显而易见的方法是,

我们减小C的值,让C从1变到0.9以此希望得到更接近于实际解的输出。

  我们继续使用表中的数据。当沃利斯数为3时,我们乘以C=0.9,输出结果为2.7。但是我们已经知道实际解应该是1.5,误差1.2,说明我们的系数C还是太大了,所以我们继续更新(降低)系数C到0.8。

  当然,在这个例子中,我们清楚地知道C的实际值应该是0.5,即km=li *0.5。刚才我们只用了两个数据将随机得到的系数1更新为0.8。想象一下,

如果我们有很多数据,就可以用这个“很笨”的方法得到最后相对满意的解。

  现在我们来看看这个方法。我们没有一步到位的准确解决问题,就像做数学题一样。反之

我们尝试得到一个答案并多次改进答案,这种方法也称为迭代,能够使我们持续地,一点点地改进答案

。说的通俗一点就是孟。一开始只是懵,但是我们会根据已知数据改变策略。如果萌的结果大,下次我就小了。如果萌的结果大,下次我就大,这和我们的思维方式很像。

  我们也可以给上面的例子起个高大上的名字:监督学习(带标签数据),后面会介绍。

  

分类与预测

  我们来看这样一个例子。我们现在得到一批bug的特征值,有两个特征:长和宽。现在让你把这两种类型的bug分开。

  显然,我们可以找到

这样一条线

来区分这两类昆虫,使用的策略也是“蒙人”。首先我们随机指定一个斜率,然后根据样本数据更新斜率,直到这条直线能够正确的对昆虫进行分类,这就是分类。

  假设我们经过多次迭代找到了这样一条直线,现在给定一个新的数据,我们就可以判断这个数据所代表的点是在直线的上方还是下方。上半部分叫蓝色bug,下半部分叫黄色bug,从而实现预测的功能。

  如何训练一个简单的分类器?在这一部分,我们将介绍如何更新权重,即如何获得一个合适的数量。

  在前面的例子中,我们继续对bug进行分类,但是我们仍然希望找到一个好的分类线来区分这两种类型的bug。

  显然,这样一条线是存在的。

  我们还是可以假设分割线是一条直线y=Ax(这里之所以没有B,是因为直线不能过原点,对这个问题没有任何影响),或者用‘幻数’的方法。我们尝试从上图中的A=0.25开始画这条线:

  显然,这条直线是行不通的!我们无法根据未知点在直线的上/下侧这一事实得出bug的种类。* *显然,我们希望直线向上移动一点!* *那么你想上调多少?

  查表数据,一条宽度为3的蜗杆的长度应该是1,但如果用上面的直线来预测长度,就会得到:y=0.253=0.75。与实际长度1相比,0.75太小了。

  在我们调整参数A的值之前,想一想这个问题,直线Y的值应该是多少?我们希望直线能把所有不同的bug分开,而不是落在直线上。所以,对于x=3.0,我们把y的目标值设为1.1(这个只比1.0大一点,刚好可以完成分类问题。也可以选择1.2,1.3甚至100,但这可能会使两种类型的bug都在直线以下,使分类器无用)。

  定义误差值=期望值-实际值

  y=ey-y=1.1-0.75的误差=0.35。

  那么y和A的关系是什么,A的调整量?(AA)作为调整后的权重系数,则目标值E=(AA)x A)x。

  e-y=(AA)x-x=yy

  简化后, y= a * x

  我们得到A的调整量 A= Y/x,也就是说我们可以通过求导数来确定权重相对较好的更新量。

  总结:神经网络其实就是一个幻数。初始权重是随机的(魔术),然后通过不断的试错来调整这些参数。如果输出太大,权重就会减少,反之亦然。确定更新量,我们可以通过求导数来确定更新量(实际上已经使用了梯度下降最小化损失函数的思想)。

  接下来:感知器模型原理,对偶形式,二元分类问题和python实现

简述什么是神经网络,神经网络主要包括