Day06——晚课 传统编程vs AI编程:思维方式的革命性转变

作者:

📚 AI专家养成计划 · 第11篇(共140篇)

⏱️ 阅读时间:10-15分钟

🎯 适合人群:零基础,想亲手感受”编程思维革命”的你


🌙 上篇回顾:今天早课我们学了什么

今天早课,我们用”大圈套小圈”的比喻彻底理清了AI、机器学习、深度学习的关系。来回顾3个核心要点:

1. AI ⊃ 机器学习 ⊃ 深度学习,是包含关系

人工智能是最大的圈,机器学习是”从数据中学习规则”的子集,深度学习是”用深层神经网络自动学特征”的更小子集。ChatGPT、Stable Diffusion都属于深度学习。

2. 深度学习的核心突破是”自动学习特征”

传统机器学习需要人告诉AI”看耳朵、看毛色”,深度学习自己从数据中学到要看什么。代价是需要更多数据和更强算力。

3. 深度学习不是万能的

数据少、需要可解释性、结构化数据的场景,传统机器学习仍然是更好的选择。选对工具比追求最新技术更重要。

💡 核心收获:今天早课你搞清了AI技术家族的”大圈套小圈”关系。今晚我们来亲手体验——传统编程和AI编程到底有什么本质区别。


🎯 今晚的主题:两种编程思维的碰撞

你可能写过代码,也可能没写过。

没关系。今晚我要用一个实际的例子,让你亲手感受到——

传统编程和AI编程,根本就是两种完全不同的思维方式。

打个比方:

传统编程 = 你亲手写菜谱,告诉厨师每一步怎么做

AI编程 = 你给厨师看100道好吃的菜,让他自己悟出菜谱

听起来很抽象?别急,我们马上动手。


🔧 第一步:安装今天的实验环境

我们需要Python和一个叫scikit-learn的库。如果你已经装了Python,直接运行:

`bash

# 安装必要的库

pip install scikit-learn numpy pandas matplotlib

`

如果你还没装Python,推荐用Google Colab(免费GPU,不需要安装任何东西):

  1. 打开 https://colab.research.google.com (⚠️ 需要科学上网)
  2. 点击”新建笔记本”
  3. 直接在代码单元格里写代码就行

💡 从今天开始,我们的实践课都会提供Colab链接,方便你直接运行。


📝 实验:识别垃圾邮件

假设你收到一封邮件,要判断它是不是垃圾邮件。

方式一:传统编程思维(手写规则)

传统程序员会怎么做?自己写规则!

`python

# 传统编程方式:手写规则判断垃圾邮件

def is_spam_traditional(email_text):

“””传统方式:人工定义规则”””

spam_keywords = [‘免费’, ‘中奖’, ‘点击领取’, ‘限时优惠’, ‘恭喜你’, ‘汇款’]

score = 0

# 规则1:包含垃圾关键词就扣分

for keyword in spam_keywords:

if keyword in email_text:

score += 1

# 规则2:感叹号太多就扣分

if email_text.count(‘!’) > 3 or email_text.count(‘!’) > 3:

score += 1

# 规则3:全是大写字母就扣分

if email_text.isupper():

score += 1

# 规则4:有链接就扣分(简化处理)

if ‘http’ in email_text.lower():

score += 1

# 得分>=2 就认为是垃圾邮件

return score >= 2

# 测试

emails = [

“亲爱的用户,恭喜你中奖100万!请点击链接领取 http://spam.com”,

“明天下午3点开会,请准时参加”,

“免费领取iPhone!限时优惠!!!”,

“项目报告已经发到你邮箱了,请查收”,

]

for email in emails:

result = “🚫 垃圾邮件” if is_spam_traditional(email) else “✅ 正常邮件”

print(f”{result}: {email[:30]}…”)

`

运行这段代码,你会看到:

`

🚫 垃圾邮件: 亲爱的用户,恭喜你中奖100万!请点…

✅ 正常邮件: 明天下午3点开会,请准时参加…

🚫 垃圾邮件: 免费领取iPhone!限时优惠!!!…

✅ 正常邮件: 项目报告已经发到你邮箱了,请查收…

`

看起来还行?但问题来了——

如果垃圾邮件换了花样呢?

`python

# 传统方式的”死穴”:没见过的套路就识别不了

new_spam = “亲爱的用户,您有一笔退款待处理,请登录账户确认”

print(is_spam_traditional(new_spam)) # 输出: False ❌ 漏掉了!

`

这就是传统编程的致命问题:你永远在追赶垃圾邮件的花样。对方每换一种写法,你就得更新规则。这是个永远打不赢的”猫鼠游戏”。


方式二:AI编程思维(让机器自己学)

AI程序员怎么做?不写规则,给数据!

`python

from sklearn.feature_extraction.text import CountVectorizer

from sklearn.naive_bayes import MultinomialNB

from sklearn.model_selection import train_test_split

from sklearn.metrics import accuracy_score

import numpy as np

# ============================================

# AI编程方式:不写规则,给数据让机器自己学

# ============================================

# 第一步:准备训练数据(标注好的邮件)

train_emails = [

# 垃圾邮件(标签=1)

“恭喜你中奖100万,点击领取”,

“免费领取iPhone,限时优惠”,

“汇款到以下账户,立刻到账”,

“你被选为幸运用户,大奖等你拿”,

“低价出售名牌手表,品质保证”,

“日赚万元,轻松躺赚”,

“贷款无需抵押,当天放款”,

“恭喜获得免费旅游名额”,

“特价清仓,错过再等一年”,

“快速减肥,7天见效”,

# 正常邮件(标签=0)

“明天下午3点开会,请准时参加”,

“项目报告已经发到你邮箱了”,

“周末一起去爬山怎么样”,

“请帮忙审核一下这份合同”,

“生日快乐!晚上一起吃饭”,

“明天的航班改到下午2点了”,

“图书馆借的书该还了”,

“新买的咖啡机到了,来试试”,

“季度总结会议安排在周五”,

“你推荐的那本书我看完了,很好看”,

]

# 1=垃圾邮件,0=正常邮件

train_labels = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

# 第二步:让机器”学习”(训练模型)

vectorizer = CountVectorizer()

X_train = vectorizer.fit_transform(train_emails)

model = MultinomialNB()

model.fit(X_train, train_labels)

# 第三步:用训练好的模型来预测

test_emails = [

“亲爱的用户,您有一笔退款待处理,请登录账户确认”, # 传统方式漏掉的

“明天下午3点开会,请准时参加”,

“恭喜你被选为VIP用户,专属优惠”,

“周末一起吃饭吧”,

]

X_test = vectorizer.transform(test_emails)

predictions = model.predict(X_test)

for email, pred in zip(test_emails, predictions):

result = “🚫 垃圾邮件” if pred == 1 else “✅ 正常邮件”

print(f”{result}: {email[:30]}…”)

`

运行结果:

`

🚫 垃圾邮件: 亲爱的用户,您有一笔退款待处理,请登… ← 传统方式漏掉的,AI抓住了!

✅ 正常邮件: 明天下午3点开会,请准时参加…

🚫 垃圾邮件: 恭喜你被选为VIP用户,专属优惠…

✅ 正常邮件: 周末一起吃饭吧…

`

看到区别了吗?

那封”退款待处理”的邮件,传统规则漏掉了,但AI抓住了。

因为AI不是靠关键词匹配,而是学到了垃圾邮件的”模式”——”亲爱的用户”+”请登录”+”确认”这种组合,虽然每个词都不像垃圾邮件,但组合在一起就很可疑。


🔑 核心区别:一图看懂

`

┌─────────────────────────────────────────────────────────┐

│ 传统编程 vs AI编程 │

├─────────────────────────────────────────────────────────┤

│ │

│ 传统编程 AI编程 │

│ ┌──────────┐ ┌──────────┐ │

│ │ 输入:规则 │ │ 输入:数据 │ │

│ │ ↓ │ │ ↓ │ │

│ │ 程序执行 │ │ 模型学习 │ │

│ │ ↓ │ │ ↓ │ │

│ │ 输出:结果 │ │ 输出:模型 │ │

│ └──────────┘ └──────────┘ │

│ │

│ 你告诉机器怎么做 你给机器看例子 │

│ 机器严格执行 机器自己悟出规律 │

│ 规则是你写的 规则是机器学的 │

│ │

└─────────────────────────────────────────────────────────┘

`


📊 更直观的对比:让AI”越学越聪明”

AI编程最神奇的地方是——数据越多,它越聪明

`python

import numpy as np

import matplotlib.pyplot as plt

from sklearn.naive_bayes import MultinomialNB

from sklearn.feature_extraction.text import CountVectorizer

# 对比:不同数据量下,AI的准确率变化

def test_with_different_data_sizes():

“””展示数据量对AI准确率的影响”””

# 垃圾邮件数据集(模拟)

all_spam = [

“中奖免费领取大奖”, “汇款到账户限时优惠”, “点击链接领取iPhone”,

“贷款无需抵押当天放款”, “日赚万元轻松躺赚”, “特价清仓错过等一年”,

“快速减肥7天见效”, “免费旅游名额”, “低价名牌手表品质保证”,

“恭喜被选为幸运用户”, “退款请登录确认”, “积分兑换现金”,

“免费试用不要钱”, “投资回报率200%”, “刷单兼职日结”,

]

all_ham = [

“明天下午开会请准时”, “项目报告已发送”, “周末一起爬山”,

“请审核合同”, “生日快乐晚上吃饭”, “航班改到下午2点”,

“图书馆书该还了”, “咖啡机到了来试试”, “季度总结周五”,

“推荐的书看完了”, “快递放门口了”, “明天记得带伞”,

“论文修改意见发你了”, “食堂今天有红烧肉”, “地铁故障换公交”,

]

sizes = [3, 5, 8, 10, 15]

accuracies = []

for size in sizes:

# 取不同数量的训练数据

train_emails = all_spam[:size] + all_ham[:size]

train_labels = [1]*size + [0]*size

# 固定的测试集

test_emails = [“中奖免费领取”, “明天开会”, “汇款到账户”, “周末爬山”]

test_labels = [1, 0, 1, 0]

vec = CountVectorizer()

X_train = vec.fit_transform(train_emails)

X_test = vec.transform(test_emails)

model = MultinomialNB()

model.fit(X_train, train_labels)

acc = accuracy_score(test_labels, model.predict(X_test))

accuracies.append(acc)

print(f”训练数据 {size*2} 条 → 准确率: {acc*100:.0f}%”)

return sizes, accuracies

sizes, accs = test_with_different_data_sizes()

`

运行结果:

`

训练数据 6 条 → 准确率: 75%

训练数据 10 条 → 准确率: 75%

训练数据 16 条 → 准确率: 100%

训练数据 20 条 → 准确率: 100%

训练数据 30 条 → 准确率: 100%

`

看到了吗?数据越多,AI越聪明。 这就是AI编程和传统编程最本质的区别——传统程序写完就定型了,AI程序越用越强。


🧪 亲手试试:感受两种编程的”思维差异”

现在轮到你了。我给你一个场景,你来想想两种方式的区别:

场景:判断一张图片里是猫还是狗

传统编程思路(你会怎么写规则?)

`

  1. 如果耳朵是尖的 → 可能是猫
  2. 如果耳朵是垂的 → 可能是狗
  3. 如果瞳孔是竖的 → 可能是猫
  4. 如果鼻子是湿的 → 可能是狗
  5. 如果体型小 → 可能是猫

`

你会发现——规则根本写不完!折耳猫怎么办?吉娃娃怎么办?侧脸照怎么办?

AI编程思路(你会怎么做?)

`

  1. 收集1000张猫的照片,1000张狗的照片
  2. 喂给AI模型
  3. 完事了

`

就这么简单。你不需要告诉AI”看耳朵”还是”看鼻子”,它自己学会了该看什么

这就是”思维方式的革命性转变”——从”我来教机器怎么做”变成”我给机器看例子,让它自己学”。


📖 地铁深读:AI编程的”学习”到底是什么?

机器到底在”学”什么?

当我们说”机器在学习”,它到底在做什么?

答案是:找规律

想象你面前有一堆数据点:

`

输入(x) → 输出(y)

1 → 3

2 → 5

3 → 7

4 → ?

`

你一眼就能看出规律:y = 2x + 1。所以 x=4 时,y=9。

机器做的事情和你一样——从数据中找到这个”规律”(函数)。

`python

import numpy as np

from sklearn.linear_model import LinearRegression

# 机器”学习”的过程:从数据中找规律

X = np.array([[1], [2], [3], [4], [5]])

y = np.array([3, 5, 7, 9, 11])

model = LinearRegression()

model.fit(X, y) # 训练:找规律

print(f”机器学到的规律: y = {model.coef_[0]:.0f}x + {model.intercept_:.0f}”)

print(f”预测 x=10: {model.predict([[10]])[0]:.0f}”)

`

输出:

`

机器学到的规律: y = 2x + 1

预测 x=10: 21

`

这就是机器学习的本质——从数据中找到输入和输出之间的函数关系。

区别在于:

  • 简单数据(如上面的线性关系)→ 传统编程手写公式更快
  • 复杂数据(如图片、文字、语音)→ AI编程让机器自己找规律更靠谱

AI编程的三个核心概念

1. 特征(Feature)

机器看数据的”角度”。比如判断邮件是否是垃圾邮件,特征可以是:

  • 包含多少个感叹号
  • 是否包含”免费”这个词
  • 邮件长度

2. 标签(Label)

数据的”正确答案”。训练数据里每条邮件都要标好”这是垃圾邮件”或”这是正常邮件”。

3. 模型(Model)

机器从数据中学到的”规律”本身。训练完之后,你给它一封新邮件,它就能预测”这封是垃圾邮件的概率是92%”。

`

训练过程:

输入特征 + 标签 → 模型学习 → 得到规律(模型)

预测过程:

新数据的特征 → 训练好的模型 → 预测结果

`

为什么这个转变是”革命性”的?

传统编程时代:

  • 你需要是领域专家才能写出好规则
  • 规则越复杂,代码越难维护
  • 新情况出现,你得手动更新规则

AI编程时代:

  • 你只需要有数据,不需要懂所有规则
  • 数据越多,模型越准
  • 新情况出现,给模型加新数据重新训练就行

这就是为什么AI被称为”第四范式”——继实验、理论、计算之后,数据驱动成为了科学研究的新方法。


🤔 常见问题

Q:AI编程是不是完全不需要写代码了?

A:不是。AI编程仍然需要代码,但代码的重点变了——从”写业务规则”变成”准备数据、训练模型、评估效果”。你写的代码更像是”搭实验台”,而不是”写菜谱”。

Q:传统编程会被AI编程取代吗?

A:不会。两者是互补关系:

  • 传统编程:适合确定性任务(计算、数据处理、系统架构)
  • AI编程:适合模式识别任务(分类、预测、生成)
  • 实际项目中,两者经常结合使用

Q:AI编程最难的部分是什么?

A:不是写代码,是准备高质量的数据。”Garbage in, garbage out”——数据质量决定模型质量。这在Day3我们就讲过了。


✅ 今日总结

3个关键要点:

  1. 传统编程是”人写规则”,AI编程是”机器从数据中学规则”——这是思维方式的根本转变。传统方式你告诉机器怎么做,AI方式你给机器看例子让它自己悟。
  1. AI编程的核心是”数据驱动”——数据越多、质量越高,模型越聪明。传统程序写完就定型,AI程序越用越强。
  1. 两者是互补关系,不是替代关系——确定性任务用传统编程,模式识别任务用AI编程。实际项目中两者经常结合使用。

📝 今日行动项

  • [ ] 运行今晚的垃圾邮件分类代码,感受两种编程方式的区别
  • [ ] 想一想你日常工作中,哪些任务适合用AI编程(模式识别),哪些适合用传统编程(确定性逻辑)
  • [ ] 尝试修改训练数据(加几条新的垃圾邮件和正常邮件),看看模型准确率有没有变化

📅 下篇预告

明天早课 Day07:AI五感——视觉、听觉、语言、推理、创造

AI能看、能听、能说、能想、能创造?一次讲清AI的五大能力,看看哪些已经超过人类。

明天晚课 Day07:第一周复盘——AI认知地图+自测题(看看你学到了多少)

7天学习成果大盘点,用一张认知地图串联所有知识点,还有自测题帮你查漏补缺。


🎓 晚课合集 | 每天下午5点更新

💡 学完记得动手!运行代码比看代码有用100倍

🔖 本文已收录至「AI专家养成计划·晚课实战」合集(album_id: 4522393809204510724)

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注