- 什么是机器学习?
- 机器学习的代码做什么?
- 当我们说机器在学习时,它是修改自己的代码,还是修改历史(数据库),其中包含了对于给定输入集的代码经验?
回答:
什么是机器学习?
本质上,机器学习是一种教计算机基于某些数据进行预测或改进行为的方法。这里的“数据”是什么?这完全取决于问题本身。可能是机器人在学习走路时传感器的读数,或者是程序对于特定输入的正确输出。
另一种理解机器学习的方式是将其视为“模式识别”——教程序对模式做出反应或识别模式的过程。
机器学习代码做什么?
这取决于你所讨论的类型的机器学习。机器学习是一个庞大的领域,拥有数百种不同的算法来解决各种各样的问题——请参阅维基百科获取更多信息;特别是查看算法类型部分。
当我们说机器在学习时,它是修改自己的代码,还是修改历史(数据库),其中包含了对于给定输入集的代码经验?
再次,这取决于具体情况。
一个代码实际被修改的例子是遗传编程,你基本上是进化一个程序来完成一项任务(当然,程序本身不会修改自己——但它确实会修改另一个计算机程序)。
另一方面,神经网络会根据准备好的刺激和预期的响应自动修改其参数。这使它们能够产生许多行为(理论上,它们可以产生任何行为,因为它们可以以任意精度近似任何函数,只要有足够的时间)。
我应该指出,你使用“数据库”这个术语暗示了机器学习算法通过“记住”信息、事件或经验来工作。这并不一定(甚至经常)是事实。
我已经提到的神经网络,只保留当前的“状态”近似值,并在学习过程中更新它。与其记住发生了什么以及如何反应,神经网络构建了一种“模型”来描述它们的“世界”。这个模型告诉它们如何对某些输入做出反应,即使这些输入是它们从未见过的。
这种最后的能力——对从未见过的输入做出反应的能力——是许多机器学习算法的核心原则之一。想象一下,试图教一台计算机驾驶员在交通中导航高速公路。使用你的“数据库”比喻,你必须准确地教计算机在数百万种可能的情况下该做什么。一个有效的机器学习算法(希望!)能够学习不同状态之间的相似性,并对它们做出相似的反应。
状态之间的相似性可以是任何东西——即使是我们认为“平凡”的事情也可能让计算机感到困惑!例如,假设计算机驾驶员学会了当前面的车辆减速时,它也必须减速。对于人类来说,将车辆替换为摩托车不会改变任何事情——我们认识到摩托车也是一种车辆。对于机器学习算法来说,这实际上可能非常困难!数据库必须分别存储关于前方是汽车和前方是摩托车的情况的信息。另一方面,机器学习算法会从汽车的例子中“学习”,并能够自动推广到摩托车的例子。