什么是机器学习?

为了明确机器学习的定义,我们首先需要界定机器学习一词所包含的具体概念。

机器学习中的机器指一种算法,而算法可以说是数学与逻辑的结合。以下是一个在一组数字中找出最大数的算法代码示例:

def find_max (L):
    max = 0
    for x in L:
        if x > max:
            max = x
    return max

上述算法并不是一种学习算法,它是静止不变的。该算法只是将变量max设为零,然后遍历整个集合L,检查其中的每项元素x,如果x大于max变量,则将max提升至较大的新x值。无论给出怎样的数据,它始终会用同一种方法来寻找最大值,而不会根据数据集来调整寻找最大值的方式。

所以算法的学习是什么意思?学习就是指算法在一段时间内根据所给的数据不断对自身进行调整。这种自我调整称为训练。算法根据数据来学习如何作出更好的判定,就像人类会吸取经验教训并作出更好的决定一样,比如你知道一壶水烧开时不该去碰水壶,因为以前碰到之后烫伤了手。(人生经验……¯\_(ツ)_/¯)

人类在学习的同时会改变自己与世界互动的方式。算法在学习的同时会改变自己处理数据的方式。人类可以学会许多种不同的任务,并且不断提高自己完成任务的水平,而算法通常只能熟练掌握一项非常具体的任务,所以我们暂时还不用担心“天网”的崛起。

这样解释机器学习还比较抽象,让我们举一个实际的例子:图像识别是比较流行的一种机器学习应用。我们将图像文件输入算法,算法会尝试辨识图像所代表的事物,然后输出一个“名称”。

参数化的学习算法

什么是参数?参数是帮助界定一项特定流程的量,英语中的parameter一词来自于希腊语的metron(度量)和para(在旁边)。所以参数是“在旁边的度量”,也就是算法的一项数值属性。下面的等式规定了输入x和输出y之间的关系,参数分别是9和0.1。

y = 9x - 0.1

但假如我们不知道xy之间的关系呢?如何才能找到可以把每个x转变为y的正确参数?所以我们一开始采用的参数是变量,而非固定的数值。

与我们在Gitter聊天