假设使用 Keras 或 Tensorflow 创建了一个深度神经网络。通常,当您要进行预测时,用户会调用model.predict
. 但是,实际的 AI 系统如何主动调用自己的操作(即无需我调用model.predict
)?
人工智能如何自由地做出决定?
神经网络、深度学习和其他监督学习算法本身不会“采取行动”,它们缺乏代理。
但是,就采取行动而言,给予机器代理相对容易。这是通过将输入连接到环境中一些有意义的数据源(例如相机或互联网),并将输出连接到可以在该环境中运行的东西(例如电机,或用于管理互联网浏览器的 API)来实现的)。从本质上讲,这与您可能编写的用于编写有用行为的脚本的任何其他自动化没有什么不同。如果您可以编写一系列测试、if/then 语句或数学语句,为任何以这种方式设置的机器做出有用的决策,那么理论上神经网络或类似的机器学习算法可以学习近似,甚至改进相同的种功能。
如果您的神经网络已经在示例输入和给定这些输入的情况下为实现某个目标而采取的正确行动进行了训练,那么这就是所需要的。
然而,将网络训练到可以在不受约束的环境中实现这一点(“让它在互联网上放松”)是一项艰巨的挑战。
有一些方法可以训练神经网络(以及一般的学习功能),以便它们学习观察结果和朝着实现目标前进的行动之间的有用映射。例如,您可以使用遗传算法或其他搜索技术,NEAT 方法可以成功地训练简单环境中的代理的控制器。
强化学习是另一种流行的方法,它也可以扩展到相当具有挑战性的控制环境。可应对古人防御、星际争霸、围棋等复杂游戏环境。在这些复杂游戏中展示 AI 实力的目的,部分是为了展示在更加复杂和开放的现实世界中实现最佳行为的长期目标的进展。
最先进的代理距离一般智能行为还有很长的路要走,但是在学习如何充当代理的系统中使用神经网络的问题有很多研究和在线可用的许多示例。
我认为,简短的回答是它不能。
人工智能系统只会做,而且只会擅长程序员做的任务。当然,您可以拥有一个 AI,例如,它可以根据其他一些变量使用不同的模型触发对输入的预测,但这仍将基于程序员编写的内容,它永远无法做到或学习新的东西意想不到的事情。就像在循环中使用图像分类 NN 的 model.predict() 并且仅在它检测到狗时停止,然后使用另一个模型来预测品种。
您提到的“让 AI 在网络上迷失”通常是对 AI 可以进化、学习新动作并开始自行行动的一些担忧的一部分。但那些人在不知不觉中实际上在谈论通用人工智能或强人工智能,一种可以像人类一样聪明的人工智能系统,因此它也可以自己行动。但至少据我们所知,我们甚至还没有接近创建这样一个系统。
希望我真的回答了你的问题,并且没有偏离你实际问的太多。如果是,请告诉我。
您在循环中调用它。想象一个响应语音查询的数字助理。它可能看起来像这样:
for(;;) {
var audio = RecordSomeAudio();
var response = model.predict(audio);
if(response.action == "SAYSOMETHING") {
PlaySomeAudio(response.output);
}
}
请注意,模型会被重复调用,并且可以在给定的情况下决定是否响应。在数字助理上下文中,模型的一部分是检查用户是否提出查询(例如“Hey Google”等)。