
12
|
第
1
章
在最高层次上,传统编程涉及创建作用于数据并为我们提供答案的规则。在前面的场景
中,我们拥有数据
—
一条线上的两个点。然后我们找出了作用于这些数据的规则,以
计算出这条线的方程。接着,根据这些规则,我们可以获得新数据的答案,例如,我们
可以绘制该线条。
这种场景下程序员的核心工作就是搞清楚规则。这就是你为任何问题带来的价值
—
将
它分解成规则,然后使用计算机可以理解的编码语言来表达这些规则。
但是你可能并不总是能够轻松表达这些规则。考虑之前我们想要区分 T 恤和鞋子的场
景。人们无法总是通过找出规则来确定它们之间的关系,然后在代码中表达这些规则。
这就是机器学习的用武之地,但在针对这样的计算机视觉任务进行研究之前,先考虑一
下如何使用机器学习来得出我们之前计算出的直线方程。
1.2.2
机器如何学习
鉴于前面的场景,你作为程序员找出构成一条线的规则,然后用计算机实现它们,现在
让我们看看机器学习方法会有什么不同。
让我们从了解机器学习代码的结构开始。虽然这在很大程度上是一个“ Hello World”问
题,但代码的整体结构与你在更复杂的代码中所看到的非常相似。
我喜欢绘制一个顶层架构,概述使用机器学习来解决这样的问题。请记住,在这种情况
下,我们有
x
和
y
值,想算出
W
和
B
以便拥有一个直线方程。一旦有了这个方程,我们
就可以得到给定
x
的新
y
值。
第
1
步:猜答案
是的,你没看错。首先,我们不知道答案可能是什么,因此猜测与任何其他答案一样。
实际上,这意味着我们为
W
和
B
选择随机值。稍后我们会更智能地循环回这一步 ...