【AI编程入门】一文带你入门AI神经网络编程思想

240 阅读2分钟

假如我们有一台计算器:可以将亩转换为平方米,如下所示。

而且我们也知道,大概的计算方式:应该是“平方米= Cx亩”,其中C为常数。虽然,我们还不完全准确的知道这个常数C是多少。

现在假设,已经有一些真实的数据,如下表:

我们怎么才能计算出C呢?瞟了一眼表格里的数据,就用 C = 700 试试吧。

1.65 x 700 = 1155

猜测值比真实值大。误差:真实值 - 计算值 = 1100 - 1155 = -55

我们猜测的有误差,但是无需对这种误差感到失望,我们可以使用这个误差,指导我们得到更好的C的猜测值

由于亩转换为平方米的公式是线性的,即平方米= Cx亩,因此我们知道,减小C就可以减小输出。

我们把C稍微减小一点 C = 680 现在,680 x 1.65 = 1122。 这一次,误差:1100 - 1122 = -22

误差变小了!

我们取得了明显的进步。

这里,很重要的一点是,我们使用误差值的大小指导如何改变C的值。我们希望输出值减小一些,因此我们稍微减小了C的值。

我们不必尝试使用代数法计算出C需要改变的确切量,让我们继续使用这种方法改进C值。试想一下,沿着这样的方法,我们是不是可以继续调整C的值,直到误差变得越来越小... 一直到,你认为这个误差是可以接受的范围。

如果你还不能被我说服,还是认为计算出确切的答案才够简单,那么,请记住,更多有趣的问题是没有一个简单的数学公式将输出和输入关联起来这就是我们需要诸如神经网络这样相对成熟而复杂的方法的原因。

无论你是否相信,我们刚刚所做的,就是走马观花地走了一遍神经网络中所谓训练的核心过程。我们训练机器,使其输出值越来越接近正确的答案。

如果你之前没有接触过计算机编程或者算法,这里值得停下来,思考一下这种方法:我们并未像在学校里求解数学和科学问题时所做的一样一步到位,精确求解问题。相反,我们尝试得到一个答案,并多次改进答案,这是一种非常不同的方法。一些人将这种方法称为迭代,意思是持续地、一点一点地改进答案。