Post

人工智能导论:发展历程与核心概念

本文全面介绍人工智能的历史发展、关键技术阶段与代表人物,从初期符号主义到知识工程,再到特征学习、深度学习直至大模型时代,系统梳理AI领域的演进脉络。

人工智能导论:发展历程与核心概念

1. 人工智能的起源

1.1 人工智能的”诞生”

人工智能作为一门学科正式诞生于1956年的达特茅斯夏季讨论会,由约翰·麦卡锡(John McCarthy)等计算机科学家首次提出”人工智能”(Artificial Intelligence)这一术语。这次会议标志着人工智能作为一门独立学科的开端,与会者包括马文·明斯基、克劳德·香农等日后在人工智能领域做出重要贡献的研究者。

在人工智能正式命名之前,人类对智能机器的探索已有悠久历史。古希腊神话中的塔洛斯(Talos)就是一个能思考的青铜巨人,被视为人工智能的早期概念雏形。而从科学角度,阿兰·图灵在1950年发表的论文《计算机与智能》(Computing Machinery and Intelligence)首次提出了”图灵测试”,用以判断机器是否具备人类水平的智能,为人工智能研究奠定了理论基础。

1.2 人工智能发展的五个阶段

人工智能的发展可以大致划分为五个主要阶段:

  1. 初期阶段(逻辑/符号时代):以符号操作和逻辑推理为核心
  2. 知识时代:以专家系统和知识工程为代表
  3. 特征时代:以统计学习方法和手工特征工程为主
  4. 数据时代:以深度学习和表示学习为标志
  5. 大模型时代:以超大规模预训练模型为代表

每个阶段都有其独特的理论基础、技术路线和解决方案,反映了人工智能领域对”智能”本质认识的不断深入。

2. 人工智能发展的关键阶段

2.1 初期阶段(逻辑/符号时代)

这一阶段的人工智能研究主要基于符号逻辑和规则推理,代表性工作包括:

  • 定理证明:利用计算机自动证明数学定理
  • 通用问题求解:开发能解决各种问题的通用算法
  • 逻辑推理:构建形式化的逻辑系统进行推理
  • 机器翻译:早期的基于规则的机器翻译系统
  • 博弈与游戏:如早期的国际象棋程序

核心特点是人为定义符号和演算关系,试图通过形式化逻辑建模人类思维过程。这一时期的研究者相信,如果能将人类知识形式化为符号和规则,就能实现机器智能。

代表人物

  • 赫伯特·西蒙(Herbert A. Simon):人工智能先驱,诺贝尔经济学奖获得者
  • 艾伦·纽厄尔(Allen Newell):与西蒙合作开发了最早的人工智能程序之一——”逻辑理论家”

早期机器翻译的一个著名失败案例是将英语谚语”The spirit is willing but the flesh is weak”(心有余而力不足)翻译成俄语后再翻回英语,结果变成了”The vodka is strong but meat is rotten”(伏特加酒虽然很浓,但肉是腐烂的)。这个例子生动展示了符号逻辑时代AI无法理解语义和上下文的局限性,因为纯粹的字词替换无法把握语言的深层含义。

2.2 知识时代

随着符号系统的局限性逐渐显现,研究重点转向知识表示与工程,主要研究方向包括:

  • 专家系统:模拟人类专家解决问题的计算机系统
  • 知识工程:知识获取、表示和应用的系统方法
  • 知识表示:框架、语义网络、产生式规则等表示方法
  • 不确定性推理:概率推理、模糊逻辑等处理不确定信息的方法

这一时期的核心是通过人为构建知识库来模拟专家思维过程,试图解决特定领域的复杂问题。专家系统在医疗诊断、矿物勘探等领域取得了一定成功,但也遇到了知识获取的瓶颈问题。

代表人物

  • 爱德华·费根鲍姆(Edward Albert Feigenbaum):被誉为”专家系统之父”,开发了第一个实用专家系统DENDRAL

技术瓶颈: 知识获取的瓶颈问题成为这一时期的主要挑战。例如,要教会计算机”如何骑自行车”,需要将复杂的平衡感、肌肉控制等隐性知识形式化,这几乎不可能完全通过规则描述。人类拥有大量无法明确表达的”默会知识”,这使得知识工程面临巨大挑战。

1
2
3
4
5
6
7
8
9
10
% 专家系统规则示例(Prolog语言)
diagnose(Patient, flu) :- 
    symptom(Patient, fever), 
    symptom(Patient, cough), 
    symptom(Patient, headache).
    
diagnose(Patient, cold) :- 
    symptom(Patient, cough), 
    symptom(Patient, runny_nose), 
    not(symptom(Patient, fever)).

上述代码需要Prolog解释器运行,展示了典型专家系统的规则表示方式。这种基于逻辑的规则表示虽然直观,但难以处理不确定性和模糊性,更难以扩展到复杂领域。

2.3 特征时代

这一阶段的人工智能转向了统计学习方法,主要研究方向包括:

  • 统计学习方法:贝叶斯网络、隐马尔可夫模型等
  • 优化技术:梯度下降、遗传算法等优化算法
  • 特征映射(浅层):将输入映射到特征空间
  • 支持向量机:基于核函数的分类方法
  • 决策树与随机森林:基于树结构的分类与回归方法

核心思想是从数据中提取有效特征,通过统计模型实现分类、回归等任务。然而,特征定义的困难仍然是一个关键挑战,需要依靠领域专家设计复杂的特征提取方法。

代表人物

  • 莱斯利·瓦利安特(Leslie Valiant):提出PAC(概率近似正确)学习理论
  • 朱迪亚·珀尔(Judea Pearl):贝叶斯网络和因果推理的奠基人

以语音识别为例,传统方法需要人工设计声学特征(如梅尔频率倒谱系数MFCC),但如何定义最优特征仍然高度依赖专家经验,难以全面捕捉语音的复杂模式。这种对手工特征工程的依赖成为特征时代AI系统的主要瓶颈。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 特征提取示例代码(Python)
import numpy as np
from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler

# 假设X_train包含手工设计的特征
X_train = np.array([[0.1, 0.2, 0.3], [0.2, 0.3, 0.4], [0.3, 0.4, 0.5], [0.4, 0.5, 0.6]])
y_train = np.array([0, 0, 1, 1])  # 二分类标签

# 特征标准化
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)

# 训练SVM模型
svm_model = SVC(kernel='rbf')
svm_model.fit(X_train_scaled, y_train)

上述代码展示了特征时代的典型机器学习流程:手工特征提取、特征处理和模型训练。这种方法对特征工程的依赖性强,且难以应对复杂模式识别任务。

2.4 数据时代

以深度学习为标志的数据时代实现了特征的自动学习,主要研究方向包括:

  • 深度学习:多层神经网络的训练与应用
  • 表示学习:自动学习数据表示
  • 自动特征抽取:避免手工特征工程
  • 不同层次的抽象特征:逐层提取更高层次特征
  • 特征映射(深层):通过多层非线性变换实现

核心突破在于通过多层神经网络从原始数据中自动学习层次化特征表示,避免了手工特征设计的困难。深度学习在计算机视觉、自然语言处理、语音识别等领域取得了革命性突破。

代表人物

  • 杨立昆(Yann LeCun):卷积神经网络先驱,推动深度学习在计算机视觉领域的应用
  • 杰弗里·辛顿(Geoffrey Hinton):深度学习奠基人之一,反向传播算法的主要贡献者
  • 约书亚·本吉奥(Yoshua Bengio):在深度学习理论与方法上做出重要贡献

深度神经网络通过多层非线性变换自动学习特征表示:

\[h^{(l)} = \sigma(W^{(l)}h^{(l-1)} + b^{(l)})\]

其中$h^{(l)}$是第$l$层的隐藏表示,$W^{(l)}$是权重矩阵,$b^{(l)}$是偏置向量,$\sigma$是非线性激活函数。通过这种方式,网络能够学习从低级特征到高级抽象特征的表示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# 简单卷积神经网络示例(PyTorch)
import torch
import torch.nn as nn

class SimpleCNN(nn.Module):
    def __init__(self):
        super(SimpleCNN, self).__init__()
        # 第一个卷积层
        self.conv1 = nn.Conv2d(1, 32, kernel_size=3, stride=1, padding=1)
        self.relu1 = nn.ReLU()
        self.pool1 = nn.MaxPool2d(kernel_size=2)
        
        # 第二个卷积层
        self.conv2 = nn.Conv2d(32, 64, kernel_size=3, stride=1, padding=1)
        self.relu2 = nn.ReLU()
        self.pool2 = nn.MaxPool2d(kernel_size=2)
        
        # 全连接层
        self.fc1 = nn.Linear(64 * 7 * 7, 128)
        self.relu3 = nn.ReLU()
        self.fc2 = nn.Linear(128, 10)  # 假设是10分类任务
    
    def forward(self, x):
        # 卷积层1
        x = self.conv1(x)
        x = self.relu1(x)
        x = self.pool1(x)
        
        # 卷积层2
        x = self.conv2(x)
        x = self.relu2(x)
        x = self.pool2(x)
        
        # 展平
        x = x.view(-1, 64 * 7 * 7)
        
        # 全连接层
        x = self.fc1(x)
        x = self.relu3(x)
        x = self.fc2(x)
        
        return x

上述代码展示了一个简单的卷积神经网络结构,用于图像分类任务。卷积层能自动学习图像的空间特征,无需手工设计特征提取器。这种端到端学习方式是深度学习时代的典型特征。

2.5 大模型时代

随着计算能力的提升和数据规模的扩大,AI进入了大模型时代,以ChatGPT为代表的大规模语言模型展现出前所未有的能力。

技术特点

  • 超大规模参数:从百亿到千亿级别的参数量
  • 海量训练数据:TB级别的文本和多模态数据
  • 自监督学习:利用未标注数据进行预训练
  • 涌现能力(Emergent Abilities):随着模型规模增大而出现的新能力
  • 多模态融合:整合文本、图像、音频等多种模态信息

大模型案例

  • ChatGPT
    • 1750亿个参数
    • 45TB训练数据
    • 训练成本约1200万美元
    • 需要28.5万个CPU和1万个高端GPU
    • 展现出强大的语言理解、生成和多轮对话管理能力
  • DeepSeek-v3
    • 6710亿个参数
    • 59TB训练数据
    • 约1300个高端GPU用于训练
    • 训练成本约600万美元
    • 基于Transformer架构的中文大模型

GPT(生成式预训练变换模型)的核心技术

  • 生成式模型:能够产生连贯、流畅的文本
  • 预训练模型:通过自监督学习在海量文本上预训练
  • 变换模型:基于Transformer架构,核心是自注意力机制

大模型通常基于Transformer架构,核心是自注意力机制:

\[\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V\]

其中$Q$是查询矩阵,$K$是键矩阵,$V$是值矩阵,$d_k$是键向量的维度。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Transformer自注意力机制示例代码
import torch
import torch.nn as nn
import torch.nn.functional as F

class SelfAttention(nn.Module):
    def __init__(self, embed_size, heads):
        super(SelfAttention, self).__init__()
        self.embed_size = embed_size
        self.heads = heads
        self.head_dim = embed_size // heads
        
        assert (self.head_dim * heads == embed_size), "Embed size needs to be divisible by heads"
        
        self.values = nn.Linear(self.head_dim, self.head_dim, bias=False)
        self.keys = nn.Linear(self.head_dim, self.head_dim, bias=False)
        self.queries = nn.Linear(self.head_dim, self.head_dim, bias=False)
        self.fc_out = nn.Linear(heads * self.head_dim, embed_size)
    
    def forward(self, values, keys, query, mask=None):
        N = query.shape[0]
        value_len, key_len, query_len = values.shape[1], keys.shape[1], query.shape[1]
        
        # Split embedding into self.heads pieces
        values = values.reshape(N, value_len, self.heads, self.head_dim)
        keys = keys.reshape(N, key_len, self.heads, self.head_dim)
        queries = query.reshape(N, query_len, self.heads, self.head_dim)
        
        values = self.values(values)
        keys = self.keys(keys)
        queries = self.queries(queries)
        
        # Scaled dot-product attention
        energy = torch.einsum("nqhd,nkhd->nhqk", [queries, keys])
        
        if mask is not None:
            energy = energy.masked_fill(mask == 0, float("-1e20"))
        
        attention = torch.softmax(energy / (self.embed_size ** (1/2)), dim=3)
        
        out = torch.einsum("nhql,nlhd->nqhd", [attention, values]).reshape(
            N, query_len, self.heads * self.head_dim
        )
        
        out = self.fc_out(out)
        return out

上述代码展示了Transformer架构中自注意力机制的核心实现。自注意力能够捕捉序列中的长距离依赖关系,是现代大型语言模型的基础架构。实际大模型训练需要分布式计算框架和庞大的GPU集群支持。

3. 人工智能的本质思考

3.1 图灵测试与理解的本质

阿兰·图灵(1912-1954)作为计算机科学的奠基人之一,于1950年在《计算机与智能》一文中提出了著名的”图灵测试”(又称模仿游戏)。这一测试提出了判断机器是否具有智能的操作性标准:如果人类无法分辨与之交流的对象是机器还是人类,那么这台机器就可被认为具有智能。

然而,约翰·希尔勒(John Searle)1980年提出的”中文屋子”思想实验对图灵测试提出了挑战。这一思想实验描述了一个不懂中文的人在一个封闭房间内,通过一套精确的指令(规则)处理中文输入并产生合理的中文输出,尽管他完全不理解中文。希尔勒认为,这种情况类似于计算机程序——它们可能通过图灵测试,但并不真正”理解”其处理的内容。

举例来说,罗杰·施安克(Roger Schank)的故事理解程序能够回答关于简单故事的问题:

“一个人进入餐馆并订了一份汉堡包。当汉堡包端来时发现被烘脆了,此人暴怒地离开餐馆,没有付帐或留下小费。”

“一个人进入餐馆并订了一份汉堡包。当汉堡包端来后他非常喜欢它,而且在离开餐馆付帐之前,给了女服务员很多小费。”

当被问及在每种情况下这个人是否吃了汉堡包时,程序能给出正确答案。但这引发了一个深层次的问题:机器是否真的”理解”了故事,还是仅仅按照规则进行了符号处理?

3.2 AI的本质与五要素

人工智能的本质是研究如何制造出人造的智能机器或系统,来模拟人类智能活动的能力,以延伸人们智能的科学。现代AI系统可以从五个要素的角度来理解:

  1. 算法(Algorithm):解决问题的核心方法和理论
  2. 数据(Data):训练和评估AI系统的基础素材
  3. 算力(Computing Power):支持AI系统运行的计算资源
  4. 场景(Scenario):AI系统应用的具体环境和任务
  5. 人员(People):设计、开发和使用AI系统的人类

这五个要素相互依存、缺一不可,共同构成了现代AI系统的完整生态。

3.3 人工智能的共同特点

纵观人工智能的各个发展阶段,我们可以发现一个共同点:人工智能始终是”定义”与”算法”的结合。也就是说,AI系统首先需要清晰地定义问题(描述智能行为),然后通过算法将智能问题转化为可计算的问题。

以国际象棋AI为例:

  • 深蓝(1997):使用α-β剪枝搜索算法,结合国际象棋大师的知识,成功击败了世界冠军卡斯帕罗夫。深蓝的成功依赖于专家知识和强大的搜索能力的结合。

  • AlphaGo(2016):使用蒙特卡洛树搜索(MCTS)与深度学习相结合的方法,击败了围棋世界冠军李世石。AlphaGo利用人类棋谱进行初始训练,然后通过自我对弈不断提升。

  • AlphaGo Zero:完全摆脱了人类知识的依赖,纯粹从零开始学习,通过自我对弈和强化学习达到超越AlphaGo的水平。仅用3天就达到了足以战胜AlphaGo Lee的水平,40天后更是能够战胜AlphaGo Master。

棋类问题之所以能取得突破,很大程度上得益于其特殊性:游戏规则明确,胜负判定清晰,可以通过自我对弈生成大量训练数据。这些特点使得深度学习和强化学习方法能够充分发挥作用。

4. 人工智能的发展展望

4.1 当前挑战

当前人工智能仍面临诸多挑战,包括:

  • 可解释性问题:深度学习模型尤其是大模型常被视为”黑盒”,难以解释其决策过程,限制了在关键领域的应用
  • 数据依赖性:高质量、大规模数据获取成本高昂,且存在数据偏见问题
  • 计算资源限制:训练大模型需要巨大的计算资源,能耗问题日益突出
  • 鲁棒性与泛化能力:当前模型面对分布外数据或对抗样本时表现不佳
  • 深度学习的局限性
    • 大数据 vs. 小样本学习
    • 黑箱 vs. 可解释性
    • 一次性学习 vs. 增量学习
    • 固执己见 vs. 知错能改
    • 猜测 vs. 理解

4.2 未来方向

人工智能的未来发展方向可能包括:

  • 多模态融合:整合视觉、语言、声音等多种模态的信息,实现更全面的感知与理解
  • 小样本学习:减少对大规模标注数据的依赖,向人类学习的高效性靠拢
  • 因果推理:超越相关性,实现因果关系的推断,提高系统的鲁棒性和泛化能力
  • 分布式智能:边缘计算与云端结合,实现更高效的AI部署
  • 可信AI:增强AI系统的安全性、隐私保护和公平性

人工智能将在医疗健康、气候变化、智慧城市、教育等领域发挥越来越重要的作用,同时也将进一步融入人类日常生活的方方面面。随着技术的进步,我们期待AI系统不仅能够展现出强大的性能,还能拥有更好的可解释性、安全性和伦理性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 未来AI系统架构示意图(伪代码)
class FutureAISystem:
    def __init__(self):
        self.perception_module = MultiModalPerception()  # 多模态感知
        self.reasoning_module = CausalReasoning()        # 因果推理
        self.knowledge_base = EvolvingKnowledgeBase()    # 不断进化的知识库
        self.learning_module = ContinualLearning()       # 持续学习
        self.ethics_module = EthicalConstraints()        # 伦理约束
    
    def process(self, input_data):
        # 多模态感知
        perceptions = self.perception_module.perceive(input_data)
        
        # 知识查询与更新
        relevant_knowledge = self.knowledge_base.query(perceptions)
        self.knowledge_base.update(perceptions)
        
        # 因果推理
        causal_model = self.reasoning_module.infer_causal_relations(perceptions, relevant_knowledge)
        
        # 决策生成(考虑伦理约束)
        decision = self.generate_decision(causal_model)
        ethical_check = self.ethics_module.evaluate(decision)
        
        if ethical_check.passed:
            return decision
        else:
            return self.revise_decision(decision, ethical_check.constraints)
    
    def generate_decision(self, causal_model):
        # 基于因果模型生成决策
        pass
    
    def revise_decision(self, decision, constraints):
        # 根据伦理约束修改决策
        pass

4.3 学习与研究人工智能

学习人工智能需要多学科的知识基础,主要包括:

  1. 数学基础:高等数学、线性代数、概率与统计等
  2. 编程能力:熟练掌握至少一门编程语言,如Python、C++等
  3. 核心算法:搜索算法、机器学习方法、深度学习技术等
  4. 领域知识:根据应用方向,如计算机视觉、自然语言处理、机器人学等

对于有志于探索人工智能的学习者,可以从以下资源入手:

  • 入门书籍:《艾博士:深入浅出人工智能》(马少平),《人工智能简史》(尼克)
  • 专业教材:《人工智能-现代方法》(Stuart Russell和Peter Norvig),《机器学习方法》(李航),《深度学习》(Ian Goodfellow等)
  • 在线课程:有多个平台提供优质的AI课程,如Coursera、edX、吴恩达的深度学习课程等
  • 实践项目:参与开源项目或自行设计小型AI应用,将理论知识应用到实践中

人工智能是一个快速发展的跨学科领域,持续学习和跟进最新研究成果是非常必要的。通过理论学习与实践相结合,不断探索AI的边界与可能性,将是每一位AI研究者和实践者的终身课题。

This post is licensed under CC BY 4.0 by the author.