什么是机器学习?它与普通的编程有什么不同?

事实上,它们的区别在于有没有“学习”的过程。一般的编程是我们设计好所有的指令和步骤,然后交给计算机执行,整个过程会往我们预期的方向走,计算机只是帮助我们计算。也就是说,这时候计算机仅仅充当着计算的辅助功能,真正在学习、发现规律的还是我们人自己。

相比之下,我们可以认为机器学习具有一定的学习能力。首先我们会设计一个模型,但这个模型会带有一些未知的、待确定的参数,所以严格来讲,我们设计了一类模型,或者说是一个模型的框架。最简单的情形是设$y=kx+b$,两个参数$k,b$是待定的,那么我们设计的模型就是一条直线,但这条直线的位置和斜率都是不确定的。然后,我们试图让这个带参数的模型来拟合我们的数据,或者说,我们试图从一类模型中,挑出跟数据最吻合的那一个。挑出来后,我们就可以用这个最优的模型来进行预测。这个过程就称为“机器学习”。

在“机器学习”的过程中,我们只是对模型的具体形式有一个约束,而没有完全“写死”每个步骤。如果我们人工地把参数求出来,然后写入到模型中,这就变成了普通的编程了。所以说,“机器学习”区别于一般编程的特点就是能自动地从数据中“学习”到待定的参数。

标签: 机器学习, 模型

添加新评论