首先数据库有个三大范式,起名字简单粗暴第一范式 (1NF)、第二范式 (2NF)、第三范式 (3NF)。 编程语言也有几个范式:面向对象、函数式、过程式、逻辑式等。机器学习中也学到一个范式名词,最近被这个分类折磨的不理解了。有的文章说 机器学习 分为 监督学习、无监督学习、强化学习,我的疑问是,这个范式分为无监督的和有监督的不就瓜分完了么,那么怎么又来了强化学习,这个强化学习看来不属于 监督学习和无监督学习呀。基于这个,我查了很多资料。
首先,这个范式的理解有错误,不同的领域虽然都叫范式,但是他们各有不同和相同的地方。先同的就是,能称之为范式的基本都是一种指导思想,是一种方法论。所以不要纠结,思想并非不能相互兼容的。例如scala这门语言就属于一种多范式的编程语言,未来的编程语言绝对会大一统的。
什么是范式?
“范式”(Paradigm)是一个源自科学哲学的重要概念,它在机器学习和人工智能领域有着特定的含义。
范式的基本定义
范式指的是:
- 解决问题的基本框架和方法论
- 学科共同体公认的理论基础和实践规范
- 指导研究和实践的思维模式和行为准则
这个概念最早由科学哲学家托马斯・库恩(Thomas Kuhn)在《科学革命的结构》中提出,用于描述科学发展的模式。
2. 数据库的三大范式
- 本质 :数据组织和设计的规则
- 目的 :减少数据冗余,保证数据一致性
- 例子 :第一范式 (1NF)、第二范式 (2NF)、第三范式 (3NF)
- 特点 :关注数据结构和存储
- 源自数据库理论,关注如何高效组织数据
3. 编程语言的范式
- 本质 :编程的风格和思维模式
- 目的 :提供组织代码的不同方式
- 例子 :面向对象、函数式、过程式、逻辑式等
- 特点 :关注代码结构和执行方式
- 源自计算机科学,关注如何表达计算逻辑
那机器学习的范式呢
9 种主要的机器学习范式:
- 监督学习、无监督学习、强化学习
- 半监督学习、自监督学习、迁移学习
- 联邦学习、元学习、多任务学习
核心维度对比
| 范式 | 数据需求 | 学习目标 | 典型任务 | 主要挑战 |
|---|---|---|---|---|
| 监督学习 | 大量标注数据 | 学习输入 - 输出映射 | 分类、回归 | 标注成本高、过拟合 |
| 无监督学习 | 无标签数据 | 发现数据结构 | 聚类、降维 | 结果解释性弱、评估困难 |
| 强化学习 | 环境交互数据 | 最大化累积奖励 | 游戏 AI、控制 | 样本效率低、训练时间长 |
| 半监督学习 | 少量标注 + 大量无标签 | 利用无标签数据提升性能 | 分类、回归 | 数据分布假设敏感 |
| 自监督学习 | 无标签数据 | 学习通用特征表示 | 预训练任务 | 代理任务设计、计算资源需求大 |
| 迁移学习 | 源任务数据 + 目标任务数据 | 知识迁移 | 图像分类、NLP | 任务相关性、负迁移风险 |
| 联邦学习 | 分布式数据 | 隐私保护下的协作学习 | 医疗、金融 | 通信成本高、数据异构性 |
| 元学习 | 多个任务数据 | 学习如何学习 | 少样本学习 | 训练复杂、理论基础薄弱 |
| 多任务学习 | 多个任务数据 | 任务间知识共享 | 多标签分类 | 任务平衡、相关性要求高 |