- 教程
- 人工智能
- 机器学习
- 深度学习
【免费下载链接】AI-For-Beginners
12 Weeks, 24 Lessons, AI for All!
本篇技术指南围绕微软开源课程AI-For-Beginners(12 周、24 课、面向所有人的 AI 课程)仓库中的examples/目录展开,讲解其中 4 个独立的入门级示例:从纯 Python 实现的最小"AI 学习者"、从零手写的单神经元网络,到调用 MobileNetV2 预训练模型的图像分类器,再到基于词频统计的文本情感分析。读者学完后,将能够独立配置 Python 环境、运行.py脚本与.ipynb笔记本,并理解数据学习、前向传播、反向传播、迁移学习与文本预处理等核心 AI 概念。
示例总览
examples/目录收录了 4 个面向初学者、可独立运行的示例(原始说明见 translations/et/examples/README.md),每个示例均配有详细注释和分步讲解,难度逐级递进:
| 示例 | 文件 | 描述 | 难度 | 前置要求 |
|---|---|---|---|---|
| Hello AI World | 01-hello-ai-world.py | 你的第一个 AI 程序——简单的模式识别 | ⭐ 入门 | Python 基础 |
| 简单神经网络 | 02-simple-neural-network.py | 从零构建一个神经网络 | ⭐⭐ 入门+ | Python、基础数学 |
| 图像分类器 | 03-image-classifier.ipynb | 用预训练模型对图像分类 | ⭐⭐ 入门+ | Python、numpy |
| 文本情感分析 | 04-text-sentiment.py | 分析文本情感(正面/负面) | ⭐⭐ 入门+ | Python |
这四个示例恰好构成了一条从"模式识别"到"神经网络"再到"计算机视觉(CV)"与"自然语言处理(NLP)"的渐进路径,对应课程体系中 1-Intro、3-NeuralNetworks、4-ComputerVision 和 5-NLP 四大模块,适合作为正式上课前的暖身练习。
运行环境准备
前置要求
示例基于 Python 开发,建议安装Python 3.8 或更高版本(笔记本的language_info中也标注了 3.8 作为参考运行环境)。随后安装必要的第三方包:
# Python 脚本所需 pip install numpy # Jupyter 笔记本所需(图像分类器) pip install jupyter numpy pillow tensorflow其中:
numpy用于数值数组操作,是01、03示例的依赖;jupyter用于运行.ipynb笔记本;pillow(PIL)用于读取和处理图像;tensorflow提供 Keras 应用模块,供03示例加载 MobileNetV2 模型。
使用 conda 环境(推荐)
也可以直接复用课程主线的 conda 环境,一条命令完成全部依赖安装(定义文件位于仓库根目录的 environment.yml,环境名ai4beg):
conda env create --name ai4beg --file environment.yml conda activate ai4beg该环境除 numpy、jupyter、matplotlib、scikit-learn 等基础库外,还同时包含 PyTorch(pytorch、torchvision、torchtext、torchdata)与 OpenCV,并通过 requirements.txt 一并安装了 TensorFlow 2.17、Keras、Pillow、pandas、seaborn 等完整课程依赖,可覆盖本课程所有示例和笔记本的运行需求。详细的本地/容器/云端运行说明可参考 lessons/0-course-setup/how-to-run.md。
运行示例
Python 脚本(.py 文件):进入examples/目录后直接执行
python 01-hello-ai-world.pyJupyter 笔记本(.ipynb 文件):启动 Jupyter 后打开笔记本
jupyter notebook 03-image-classifier.ipynb如果希望在 VS Code 中运行,可参考课程环境搭建文档 lessons/0-course-setup/setup.md:安装 Python 扩展后即可在编辑器内直接执行笔记本;较有经验者还可以选择 Docker 容器或云端(Codespaces、Binder、带 GPU 的云虚拟机)运行。
示例一:Hello AI World——最小 AI 学习者
examples/01-hello-ai-world.py 是全部示例中代码量最小、概念最纯粹的入口:它不依赖任何机器学习库,仅用纯 Python 就让程序"学会"了一个数学模式——y = 2x。
核心是一个SimpleAILearner类:
__init__中用random.uniform(0, 5)随机初始化一个"权重"(weight),并设置学习率learning_rate = 0.01;predict(x)只做一件事:返回weight * x;train()遍历训练数据(形如(x, y)的元组列表),计算预测值与真实值的误差,并用增量式规则更新权重:weight += learning_rate * error * x,每 20 轮打印一次平均误差。
训练数据只有 5 条:(1,2) (2,4) (3,6) (4,8) (5,10)。训练 100 轮后,程序用全新的输入[6, 7, 10, 15]测试模型,展示预测值、真实值(2 * x)及二者差值。从输出可以看到权重从随机初值逐步收敛到接近 2,误差趋近于零。
这一示例回答了一个根本问题:AI 是怎么"学习"的?答案是:从数据中反复调整参数(这里的单一权重),以最小化预测误差。它是后续所有神经网络示例的思想起点。可以自行实验的变量包括:更换训练数据以学习其他线性关系、调整learning_rate(见源码第 29 行)、修改epochs观察训练时长对精度的影响。
示例二:从零构建简单神经网络
examples/02-simple-neural-network.py 在不使用任何 ML 框架的前提下,构建了一个能够完成分类任务的单神经元网络,任务设定为:判断二维平面上的点位于直线 y = x 的上方(标签 1)还是下方(标签 0)。
示例逐层揭示了神经网络的四个核心机制:
- Sigmoid 激活函数:
sigmoid(x)将任意数值映射到 0 与 1 之间,源码中对x > 100和x < -100做了溢出保护;sigmoid_derivative(x)返回x * (1 - x),用于梯度计算。 - 神经元:
SimpleNeuron用随机权重与偏置初始化;feedforward()完成前向传播——对输入加权求和、加偏置、过 sigmoid 输出。 - 反向传播:
train()计算误差error = target - output,乘以导数得到delta,再按weight += learning_rate * delta * input更新权重与偏置。 - 数据生成与评估:
generate_training_data(num_samples=100)随机采样 100 个点并打标签;visualize_decision()用 10 个新点评估分类正确率。
运行后可以看到:神经元从随机权重出发,经过 50 轮(epochs)训练,平均误差持续下降,最终对新点的分类准确率接近 100%。训练过程中每 10 轮打印一次平均误差,方便观察收敛曲线。可尝试的改动包括:调整num_samples增减训练样本量、修改epochs控制训练轮数、改变learning_rate(源码第 225 行传入0.1)、甚至改写generate_training_data更换决策边界(例如 y = 2x)来训练一个不同的分类器。
示例三:使用预训练模型进行图像分类
examples/03-image-classifier.ipynb 是一个 Jupyter 笔记本,展示了迁移学习(Transfer Learning)的典型用法:直接加载已经在 ImageNet 数百万张图像上训练好的MobileNetV2模型,识别图像中的物体(如猫、狗、汽车等)。
笔记本按 5 步组织:
- 导入库:
numpy、PIL.Image、requests与 TensorFlow 的 Keras 应用模块;若未安装 TensorFlow 会给出提示。 - 加载模型:
MobileNetV2(weights='imagenet', include_top=True)——include_top=True表示保留分类层,weights='imagenet'表示使用 ImageNet 预训练权重,模型可识别1000 个物体类别;首次运行需要下载权重,可能耗时一分钟左右。 - 辅助函数:
load_image_from_url()从 URL 下载图片;prepare_image()完成关键预处理——缩放到 224×224(模型期望输入尺寸)、转 numpy 数组、np.expand_dims增加 batch 维度、调用preprocess_input做 MobileNetV2 专用的归一化;classify_image()调用model.predict()并借助decode_predictions(..., top=5)将概率输出解码为人类可读的类别标签与置信度。 - 测试样例图像:对 Unsplash 上猫、狗、汽车三张图片逐一分类,以条形图形式展示 Top 5 预测及置信度百分比。
- 测试自定义图像:替换
custom_image_url变量(默认是一张花朵照片),即可分类任意图片 URL。
笔记本末尾还给出了置信度解读标准(90–100% 非常确定、70–90% 确定、50–70% 一般、低于 50% 不确定)以及预测可能出错的原因(非常规角度或光照、图中多物体、物体不在 1000 类之内、图像模糊低质),帮助读者正确评估模型输出。
示例四:简单文本情感分析
examples/04-text-sentiment.py 展示了自然语言处理(NLP)的完整最小闭环,任务设定为:判断电影评论是正面还是负面。它不依赖重型 NLP 库,而是用一个SimpleSentimentAnalyzer类实现了三个核心 NLP 步骤:
- 文本预处理:
preprocess_text()依次做小写转换、用正则re.sub(r'[^a-z\s]', '', text)去除标点和特殊字符、按空格分词、过滤长度小于等于 2 的短词(如 "a"、"i")。 - 特征提取与学习:
train()用collections.Counter分别统计正面与负面语料中的词频,并为每个词计算情感得分:(pos_count - neg_count) / (total + 1),分母中的+1是平滑项,用于避免除零并缓解稀疏词频的偏差;得分大于 0 偏向正面,小于 0 偏向负面。训练后会打印最正面与最负面的各 5 个词。 - 情感分类:
analyze()对输入文本计算所有已知词得分的平均值,据此判定情感(avg_score > 0为正面,否则为负面),并将min(abs(avg_score) * 100, 100)换算为置信度百分比。
示例内置了 16 条带标签的电影评论作为训练数据(8 正 8 负,源码中create_training_data()),训练后在 6 条未见过的评论上测试,并提供了交互模式:程序会循环等待用户输入自己的评论(输入quit/exit/q退出),实时返回情感、置信度与得分。该实现直观演示了 NLP 中"从标注样本学习词的情感极性,再对新文本做分类"的朴素贝叶斯式思想,是理解词向量、嵌入等更高级 NLP 技术(见 lessons/5-NLP/README.md)的良好铺垫。提升准确率的方法包括增加训练语料、尝试分析推文/商品评论等更多场景。
推荐学习路径
按照官方建议,应按如下顺序逐个完成示例:
- 先跑 Hello AI World——掌握模式识别与"从数据中学习"的基础概念;
- 再构建简单神经网络——理解神经元、前向传播、反向传播与激活函数的内部机制;
- 尝试图像分类器——观察 AI 在真实图片上的表现,理解迁移学习;
- 最后做文本情感分析——进入自然语言处理领域。
给初学者的建议
- 仔细阅读代码注释:每个示例的注释都解释了每一行代码的意图,是比正文更重要的教材;
- 大胆实验:修改数值(权重初始化范围、学习率、epochs、样本量)并观察结果变化,这是最有效的学习方式;
- 不必强求一次全懂:学习是渐进过程,暂时不理解激活函数的导数完全正常;
- 多提问交流:遇到问题可在仓库的 Discussion 板块发起讨论,"出声学习"有助于巩固理解。
下一步与参与贡献
完成这 4 个示例后,可以进入完整课程体系继续深入:
- 课程导论与 AI 概述
- 神经网络:从感知机到深度学习框架
- 计算机视觉:卷积网络、迁移学习、目标检测与分割
- 自然语言处理:文本表示、嵌入、RNN 与 Transformer
同时欢迎为示例库贡献力量:报告问题或提出改进建议、为初学者新增更多示例、完善文档与注释。如果希望从零搭建完整运行环境并了解课程的整体教学法(项目制学习 + 课前课后测验),可进一步阅读 lessons/0-course-setup/setup.md。
记住:每一位专家都曾是初学者。祝你学习愉快!
- 教程
- 人工智能
- 机器学习
- 深度学习
【免费下载链接】AI-For-Beginners
12 Weeks, 24 Lessons, AI for All!
相关推荐
AI-For-Beginners 入门示例全解析:从零构建你的第一个 AI 程序
AI For Beginners 入门示例全解析:从零构建你的第一个 AI 程序 导读 本文系统讲解 AI For Beginners 开源课程中 exampl
教程人工智能机器学习深度学习AI-For-Beginners 入门实战:4 个可运行的 AI 示例代码详解
AI For Beginners 入门实战:4 个可运行的 AI 示例代码详解 本篇技术指南围绕 AI For Beginners 课程仓库中 examples
教程人工智能机器学习深度学习DeepBeliefSDK入门教程:从零开始构建你的第一个AI应用
DeepBeliefSDK入门教程:从零开始构建你的第一个AI应用 DeepBeliefSDK是一个强大的深度学习框架,专门为移动设备上的图像识别应用开发而设计
深度学习计算机视觉
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考