AI 解析:从像素到行动 - 程序员指南
本文将带你探索这一过程:从像素到令牌(tokens),再到状态向量(state vectors),最后到可供性(affordances)。通过简单的例子和代码片段,我们将揭示这些概念如何帮助程序员构建更智能的系统。
想象你的厨房里有一个机器人,任务是把水倒进杯子里。它如何感知周围的世界?它是看到一堆光点,还是能识别杯子并知道如何操作?在人工智能(AI)中,数据表示从原始的像素逐步演化为有意义的行动,使机器能够真正与世界互动。
像素 - 原始感知
像素是数字图像的基本单位,每个像素代表图像中某个点的颜色强度。在计算机视觉中,图像被处理为像素网格,提供丰富的视觉信息。然而,像素本身缺乏语义意义——它们只是光和影的记录。早期的 AI 系统依赖手工设计的特征来解释像素,而现代深度学习通过卷积神经网络(CNN)自动提取特征。
例如,假设我们的机器人需要识别厨房中的杯子。像素数据可以告诉它杯子的形状和颜色,但无法直接告诉它“这是个杯子”。程序员可以使用 OpenCV,一个广受欢迎的计算机视觉库,来处理像素并检测边缘或物体。
import cv2
# 加载图像
image = cv2.imread('kitchen.jpg')
# 转换为灰度图
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 检测边缘
edges = cv2.Canny(gray, 100, 200)
# 显示结果
cv2.imshow('Edges', edges)
cv2.waitKey(0)
这段代码展示了如何用 OpenCV 检测图像中的边缘,但像素本身并不能告诉机器人如何拿起杯子。我们需要更高级的表示来赋予数据语义。
近期研究,如《PixelWorld: Towards Perceiving Everything as Pixels》(2025 年),提出了一种新方法,将文本和图像都作为像素处理,以保留更多的空间信息。这种方法表明,像素虽然原始,但仍是 AI 感知的基础。
令牌 - 离散化世界
令牌(tokens)是将世界分解为离散单元的方式,类似于语言中的单词或图像中的补丁。在自然语言处理(NLP)中,令牌化将文本分割为单词或子词,使模型能够理解和生成语言。类似地,在计算机视觉中,视觉变换器(Vision Transformers, ViTs)将图像分割为补丁,每个补丁作为一个令牌。
例如,NVIDIA 的博客《Explaining Tokens — the Language and Currency of AI》(2025 年)指出,令牌是 AI 模型处理数据的基本单位,无论是文本中的单词还是图像中的像素块。令牌化让 AI 能够以结构化的方式处理复杂数据,促进推理和生成任务。
以下是一个使用 Hugging Face 的 transformers 库进行文本令牌化的例子:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
tokens = tokenizer.tokenize('Hello, world!')
print(tokens) # ['hello', ',', 'world', '!']
令牌的优势在于它们将连续的数据(如图像或文本)转化为离散的、可操作的单元。然而,令牌可能存在歧义,例如“lie”可能表示“躺下”或“撒谎”,需要上下文来消解。此外,令牌化可能会丢失连续世界的细微变化,例如图像中的渐变。
在视觉领域,研究如《An Image is Worth 32 Tokens for Reconstruction and Generation》(2024 年)展示了如何将图像高效地令牌化为 32 个补丁,从而降低计算成本,同时保留关键信息。这表明令牌化是连接感知和推理的关键步骤。
状态向量 - 内部表示
状态向量是 AI 模型对当前情境的连续表示,类似于程序员在代码中维护的程序状态。在机器学习中,状态向量可以是循环神经网络(RNN)或变换器(Transformer)中的隐藏状态。这些向量捕获上下文信息,使模型能够记住过去并预测未来。
例如,在处理时间序列数据或文本序列时,状态向量可以帮助模型理解事件的顺序。以下是一个使用 PyTorch 实现的长短期记忆(LSTM)网络示例,用于预测句子中的下一个单词:
import torch
import torch.nn as nn
class LSTMModel(nn.Module):
def __init__(self, vocab_size, embedding_dim, hidden_dim):
super(LSTMModel, self).__init__()
self.embedding = nn.Embedding(vocab_size, embedding_dim)
self.lstm = nn.LSTM(embedding_dim, hidden_dim)
self.fc = nn.Linear(hidden_dim, vocab_size)
def forward(self, x, hidden):
embedded = self.embedding(x)
output, hidden = self.lstm(embedded, hidden)
prediction = self.fc(output)
return prediction, hidden
# 使用示例省略
状态向量通过将离散的令牌整合为连续的表示,弥合了语言和物理世界之间的差距。例如,我们的机器人可以通过状态向量了解杯子的位置、自己的手臂状态以及环境的约束,从而规划下一步动作。
文章《Understanding Vectors in Generative AI》(2025 年)指出,向量表示是生成式 AI 的核心,允许模型在高维空间中捕捉复杂模式。这对程序员来说意味着,理解状态向量可以帮助优化模型性能,尤其是在需要实时推理的任务中。
可供性 - 行动可能性
可供性(affordances)是指物体或环境的属性,暗示了可能的行动。例如,杯子的把手暗示它可以被拿起,门的把手暗示它可以被打开。在 AI 中,特别是在机器人和交互式系统中,可供性帮助模型决定在当前状态下哪些行动是可行的。
根据 Interaction Design Foundation 的定义(2021 年),可供性是用户与物体之间的关系,取决于用户的感知和物体的属性。例如,一个按钮在界面上暗示可以点击,而一个锁住的门则不提供打开的可供性。
在编程中,可供性广泛应用于用户界面设计和游戏开发。例如,在 Web 开发中,按钮元素通过其视觉设计(如高亮或阴影)暗示可点击,程序员需要处理相应的交互事件:
<button onclick="pourWater()">倒水</button>
在现代 Web 框架如 React 中,组件的属性进一步定义了可供性。例如,一个禁用状态的按钮明确表示它不可点击:
<Button disabled={isPouring}>倒水</Button>
在游戏开发中,可供性决定玩家如何与虚拟世界互动。例如,在 Unity 游戏引擎中,程序员可以为物体定义交互行为:
public class Door : MonoBehaviour
{
public bool isLocked = false;
public void Interact()
{
if (!isLocked)
{
// 打开门
transform.Rotate(0, 90, 0);
}
}
}
可供性将感知与行动连接起来,使 AI 系统能够从“看到”世界转变为“改变”世界。对于我们的机器人来说,理解杯子的可供性(如“可抓取”或“可倾倒”)是成功倒水的关键。
闭环:从感知到行动
从像素到可供性的演化形成了一个闭环:像素捕捉原始感知,令牌组织信息,状态向量提供推理基础,可供性引导行动。这个闭环是 AI 系统与现实世界交互的核心。例如,机器人通过像素看到杯子,通过令牌识别它,通过状态向量理解其位置和环境,最终通过可供性决定如何拿起并倒水。
这种闭环逻辑在现代 AI 系统中无处不在。例如,视觉语言模型(VLMs)通过将图像和文本统一为像素或令牌表示,实现了更强大的多模态推理。《PixelWorld: Towards Perceiving Everything as Pixels》(2025 年)的研究表明,这种统一表示可以提高模型的鲁棒性和效率。
常见误解与澄清
-
误解一:更多数据总是更好
并非如此。数据质量和与任务的相关性比数量更重要。冗余或无关的像素数据可能导致噪声,降低模型性能。 -
误解二:令牌化已经足够
令牌化虽然强大,但离散化会丢失连续信息。状态向量和可供性补充了这一不足,使模型更贴近现实世界。 -
误解三:可供性只是动作标签
可供性不是简单的标签,而是用户、物体和目标之间的动态关系。例如,同一个杯子对机器人和小孩提供的可供性不同。
结论
AI 从像素到行动的旅程展示了数据表示的强大力量:像素提供原始数据,令牌赋予结构,状态向量带来记忆和推理,可供性开启行动的可能性。对于程序员来说,理解这些层次不仅能帮助你开发更智能的系统,还能让你在 AI 时代保持竞争力。
你对 AI 的数据表示有什么看法?在你的项目中是否遇到过相关挑战?欢迎在评论区分享你的经验和见解!
参考文献:
-
Medium: A Beginner’s Guide to Tokens, Vectors, and Embeddings in NLP
-
arXiv: PixelWorld: Towards Perceiving Everything as Pixels
-
NVIDIA Blog: Explaining Tokens — the Language and Currency of AI
-
Interaction Design Foundation: What are Affordances?
更多推荐


所有评论(0)