- 教程
- 人工智能
- 机器学习
- 深度学习
【免费下载链接】AI-For-Beginners
12 Weeks, 24 Lessons, AI for All!
本指南围绕 AI-For-Beginners 仓库中examples目录提供的四个独立入门示例展开,带你以最小成本完成从"模式识别"到"文本情感分析"的完整初体验。读完本文后,你将掌握四个可直接复制运行的 Python 示例与 Jupyter Notebook,理解机器学习中"从数据中学习"、"前向/反向传播"、"迁移学习"与"文本预处理"的核心思想,并学会如何接入仓库完整的 12 周课程体系继续深入学习。
示例总览:四个循序渐进的学习台阶
examples目录(本指南的德语翻译版位于 translations/de/examples/README.md)中放置了四个风格统一、注释详尽的独立示例,难度从一颗星到两颗星逐级递增:
| 示例 | 功能说明 | 难度 | 前置要求 |
|---|---|---|---|
| 01-hello-ai-world.py | 你的第一个 AI 程序——简单模式识别 | ⭐ 初学者 | Python 基础 |
| 02-simple-neural-network.py | 从零搭建一个神经网络 | ⭐⭐ 初学者进阶 | Python、基础数学 |
| 03-image-classifier.ipynb | 用预训练模型对图片分类 | ⭐⭐ 初学者进阶 | Python、numpy |
| 04-text-sentiment.py | 分析文本情感(正面/负面) | ⭐⭐ 初学者进阶 | Python |
四个示例的共同设计原则是"初学者友好":每个文件都带有详细的逐行注释和分步讲解,不依赖任何复杂的机器学习框架(其中两个纯 Python 示例甚至连 numpy 都不需要)。它们共同勾勒出一条从"规则模式"到"神经网络"再到"视觉与文本任务"的渐进式学习曲线,与课程主线 1-Intro、3-NeuralNetworks、4-ComputerVision、5-NLP 一一对应。
环境准备
示例运行环境要求并不高,官方文档建议安装Python 3.8 或更高版本。具体安装依赖时,可按使用场景二选一。
方式一:直接使用 pip 安装所需包
# Python 脚本(01、02、04)所需的最小依赖 pip install numpy # Jupyter Notebook(03 图像分类器)需要额外安装 pip install jupyter numpy pillow tensorflow其中图像分类器对依赖的要求更明确:tensorflow提供深度学习运行环境与预训练模型接口,pillow(PIL)负责图片的读取与缩放,jupyter用于运行 notebook。
方式二:复用仓库的 conda 环境
仓库根目录的 environment.yml 定义了完整课程环境ai4beg,一次创建即可覆盖全部示例与后续课程:
conda env create --name ai4beg --file environment.yml conda activate ai4beg从该配置文件可以看到,环境基于defaults与conda-forge两个 channel,核心依赖包括jupyter、ipykernel、ipywidgets、numpy=1.26、matplotlib=3.9、scikit-learn、scipy=1.13、opencv,并同时安装了 PyTorch 全家桶(pytorch、torchtext、torchvision、torchdata)——这是为了服务完整课程中 PyTorch 与 TensorFlow 双栈的教学需要。此外,environment.yml 还会通过 pip 读取 requirements.txt 补充安装tensorflow==2.17.0、keras==3.13.2、pillow==12.2.0、nltk==3.10.0、gensim==4.3.3、gym==0.26.2等课程配套依赖。
运行示例
运行 Python 脚本(.py 文件),在仓库根目录执行:
python examples/01-hello-ai-world.py python examples/02-simple-neural-network.py python examples/04-text-sentiment.py运行 Jupyter Notebook(.ipynb 文件):
jupyter notebook examples/03-image-classifier.ipynb也可以在 VS Code 等编辑器中对 notebook 逐 cell 执行。需要注意的是,03 号示例首次运行加载 MobileNetV2 时会联网下载预训练权重,需要保持网络畅通。
示例详解:源码级逐层拆解
下面结合四个示例的完整源码,逐一讲解它们"做了什么"以及"为什么这么做"。
1. Hello AI World:理解"从数据中学习"的最小模型
01-hello-ai-world.py 的目标是让一个不带任何框架的"AI"学会数学规律y = 2x。它用一个只有单个权重参数的类SimpleAILearner演示了机器学习最核心的三个步骤:从数据中学习、做出预测、识别模式。
关键实现(对应 01-hello-ai-world.py):
- 权重初始化:
self.weight = random.uniform(0, 5),AI 以一个随机猜测作为起点; - 学习率:
self.learning_rate = 0.01,控制每次修正的步长; - 预测:
predict(x)直接返回weight * x,即线性模型 y = wx; - 训练:遍历训练数据,用
error = y_actual - y_predicted计算误差,再以weight += learning_rate * error * x更新权重——这一行就是"学习"发生的物理位置。
训练数据是 5 个(x, y)样本对:(1,2), (2,4), (3,6), (4,8), (5,10)。默认训练 100 个 epoch(完整遍历数据集 100 遍),每 20 个 epoch 打印一次平均误差与当前权重。训练完成后,脚本用未见过的输入6, 7, 10, 15测试模型,你会发现预测值逼近2x,误差收敛到很小。
这段代码的精妙之处在于:它把"训练"与"预测"剥离开——AI 学到的不是死记硬背,而是数据背后的比例关系。源码末尾的提示也给出了三个可自行实验的旋钮:更换训练数据以学习不同规律、调整第 29 行的learning_rate观察收敛速度、修改epochs观察训练时长与精度的关系。
2. 从零搭建简单神经网络:前向传播与反向传播
02-simple-neural-network.py 不使用任何 ML 框架,纯 Python 实现一个单神经元网络,任务是判断二维平面上的点位于直线 y = x 上方(标签 1)还是下方(标签 0)。它帮你理解神经网络"引擎盖下面"发生了什么。
源码包含三个核心组件:
- sigmoid 激活函数(02-simple-neural-network.py):把任意数值压缩到 0~1 之间,用于表达"信心程度"——接近 1 表示"非常确定是",接近 0 表示"非常确定不是",0.5 附近表示"不确定"。实现中还通过
if x > 100 / if x < -100提前截断,防止math.exp(-x)溢出; - sigmoid 导数(02-simple-neural-network.py):
x * (1 - x),用于反向传播中计算权重调整量; - SimpleNeuron 类(02-simple-neural-network.py):每个输入配一个
random.uniform(-1, 1)的初始权重,另有偏置项。feedforward依次完成加权求和 → 加偏置 → sigmoid 激活三步;train则计算误差,用delta = error * sigmoid_derivative(output)求出调整量,再按learning_rate(默认 0.1)更新全部权重与偏置。
训练数据由generate_training_data(num_samples=100)随机生成 100 个点,标签由1 if y > x else 0自动标注。主流程训练 50 个 epoch,最后用visualize_decision在 10 个新点上打印预测、真实值与正确性,并输出准确率百分比。
从源码结构看,这个示例完整演示了前向传播(预测)、误差计算、反向传播(学习)的闭环,是理解后续课程中 03-Perceptron 与 04-OwnFramework(从零搭建自己的框架)的最好铺垫。源码末尾同样给出了进阶实验方向:调整num_samples、epochs、第 185 行的learning_rate,以及修改generate_training_data尝试不同的决策边界。
3. 图像分类器:用预训练模型体验迁移学习
03-image-classifier.ipynb 是四个示例中唯一的 notebook,它演示如何零训练成本地让神经网络识别现实物体(猫、狗、汽车等)。核心思路是迁移学习——直接加载别人在海量数据上训练好的模型,这正是课程 08-TransferLearning 的核心概念。
完整流程分为五步:
- 导入依赖:
numpy、PIL、requests、tensorflow;代码用try/except ImportError捕获未安装 TensorFlow 的情况并给出安装提示; - 加载预训练模型(对应 03-image-classifier.ipynb):
MobileNetV2(weights='imagenet', include_top=True)——include_top=True表示保留顶部分类层,weights='imagenet'表示使用在 ImageNet 数据集上训练好的权重,模型可识别1000 种物体类别; - 图片预处理(
prepare_image,03-image-classifier.ipynb):统一resize到 224×224(模型的期望输入尺寸)→ 转 numpy 数组 →np.expand_dims增加 batch 维度 → 调用preprocess_input做 MobileNetV2 专属的标准化; - 分类预测(
classify_image):model.predict输出 1000 个类别的概率向量,decode_predictions(predictions, top=5)解码为可读标签,取前 5 名并以可视化进度条(█字符)展示置信度; - 测试与扩展:内置猫、狗、车三张 Unsplash 示例图,最后留出"自定义图片"cell,替换 URL 即可测试任意图片。
Notebook 还给出了置信度的解读标准:90–100% 非常确定、70–90% 有把握、50–70% 可能正确、低于 50% 不确定;并解释了预测失败的可能原因:异常角度或光线、图中含多个物体、目标超出 1000 类、图片模糊低质等。这套"如何理性看待模型输出"的思维,比分类结果本身更具迁移价值。
4. 文本情感分析:NLP 的最小实现
04-text-sentiment.py 的目标是判断一段影评是正面还是负面。它用约 120 行纯 Python 代码,无框架地实现了 NLP 的三大经典步骤:文本预处理 → 特征提取 → 情感分类。
核心类SimpleSentimentAnalyzer的实现要点:
- 预处理(04-text-sentiment.py):转小写 → 用正则
re.sub(r'[^a-z\s]', '', text)剔除标点与特殊字符 → 按空格分词 → 过滤长度 ≤2 的短词(如 "a"、"i"); - 训练(04-text-sentiment.py):用
collections.Counter分别统计正/负样本中的词频,然后为每个词计算情感分:(pos_count - neg_count) / (total + 1),分母的+1是平滑项,避免除零并抑制低频词的影响。得分 >0 偏正面、<0 偏负面; - 分析(04-text-sentiment.py):新文本取各词情感分的平均值,
avg_score > 0判为 positive,置信度由min(abs(avg_score) * 100, 100)换算为百分比。
训练数据由create_training_data()提供 16 条人工标注的影评(8 正 8 负),覆盖 "amazing/wonderful/brilliant" 等正面词与 "terrible/awful/horrible" 等负面词。主流程先训练,再对 6 条新影评做预测(含一条语义中性偏正的 "Pretty good movie"),最后进入交互模式——你可以反复输入自己的影评实时得到情感判定,输入quit、exit或q退出。源码末尾提示了进阶方向:增加训练样本提升精度、尝试分析推文/商品评论,并链接到 5-NLP 课程继续深入。
推荐学习路径
官方文档建议按以下顺序逐个攻破,因为四个示例之间存在清晰的知识递进关系:
- 先跑 "Hello AI World"——理解模式识别与"从数据中学习"的基本概念;
- 再搭一个简单神经网络——理解神经元的计算过程与学习机制;
- 试玩图像分类器——用真实图片直观感受 AI 的能力边界;
- 最后分析文本情感——迈入自然语言处理领域。
给初学者的四点建议
- 逐行阅读代码注释:四个示例的注释都解释了"这一行在做什么",是比任何教程都更贴身的学习材料;
- 大胆实验:修改学习率、epochs、训练数据等参数,观察输出如何变化,这是建立直觉的最快方式;
- 不要求一次全部看懂:学习需要时间,先跑通、再理解、后改造,是符合认知规律的节奏;
- 学会提问:遇到困惑时可以借助仓库的讨论区与社区交流,也可以结合 CONTRIBUTING.md 中的协作规范参与讨论。
下一步:接入完整课程
完成上述四个示例后,你就具备了继续完整 12 周课程的基础。官方推荐按以下路线继续:
- 课程导论与 AI 基础:AI 的历史、方法与哲学问题;
- 神经网络与深度学习:从感知机到主流框架;
- 计算机视觉:CNN、迁移学习、GAN、目标检测与分割;
- 自然语言处理:文本表示、嵌入、Transformer 与大语言模型。
此外,仓库的 binder/environment.yml 与根目录 environment.yml 提供了 Binder 在线环境支持,可以直接在浏览器中运行课程 notebook,无需在本地配置环境。
参与贡献
如果你觉得这些示例对入门有帮助,也欢迎帮助它们变得更好:
- 报告问题或提出改进建议(通过仓库的 Issues);
- 新增更多面向初学者的示例;
- 改进文档与代码注释质量。
这些示例是课程体系的"前菜"——每个专家都曾是初学者,从这里开始,你将一步步走进 AI 的世界。
- 教程
- 人工智能
- 机器学习
- 深度学习
【免费下载链接】AI-For-Beginners
12 Weeks, 24 Lessons, AI for All!
相关推荐
AI-For-Beginners 实战示例入门指南:从模式识别到情感分析的四个动手练手项目
AI For Beginners 实战示例入门指南:从模式识别到情感分析的四个动手练手项目 本指南基于开源课程 AI For Beginners https:/
教程人工智能机器学习深度学习AI-For-Beginners 示例代码实战指南:从模式识别到情感分析的 4 个入门程序
AI For Beginners 示例代码实战指南:从模式识别到情感分析的 4 个入门程序 本文聚焦 AI For Beginners https://link
教程人工智能机器学习深度学习AI-For-Beginners 入门示例实战指南:4 个动手实验带你从模式识别走到文本情感分析
AI For Beginners 入门示例实战指南:4 个动手实验带你从模式识别走到文本情感分析 examples/ 是 AI For Beginners ht
教程人工智能机器学习深度学习
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考