☰
AI-For-Beginners 入门示例指南:从零开始运行你的第一个 AI 程序
2026/10/7 2:26:51 网站建设 项目流程
  • 教程
  • 人工智能
  • 机器学习
  • 深度学习

【免费下载链接】AI-For-Beginners

12 Weeks, 24 Lessons, AI for All!

项目地址:https://gitcode.com/GitHub_Trending/ai/AI-For-Beginners
点击查看免费下载

本篇技术指南围绕微软开源课程AI-For-Beginners(12 周、24 课、面向所有人的 AI 课程)仓库中的examples/目录展开,讲解其中 4 个独立的入门级示例:从纯 Python 实现的最小"AI 学习者"、从零手写的单神经元网络,到调用 MobileNetV2 预训练模型的图像分类器,再到基于词频统计的文本情感分析。读者学完后,将能够独立配置 Python 环境、运行.py脚本与.ipynb笔记本,并理解数据学习、前向传播、反向传播、迁移学习与文本预处理等核心 AI 概念。

示例总览

examples/目录收录了 4 个面向初学者、可独立运行的示例(原始说明见 translations/et/examples/README.md),每个示例均配有详细注释和分步讲解,难度逐级递进:

示例文件描述难度前置要求
Hello AI World01-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.py

Jupyter 笔记本(.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)。

示例逐层揭示了神经网络的四个核心机制:

  1. Sigmoid 激活函数:sigmoid(x)将任意数值映射到 0 与 1 之间,源码中对x > 100和x < -100做了溢出保护;sigmoid_derivative(x)返回x * (1 - x),用于梯度计算。
  2. 神经元:SimpleNeuron用随机权重与偏置初始化;feedforward()完成前向传播——对输入加权求和、加偏置、过 sigmoid 输出。
  3. 反向传播:train()计算误差error = target - output,乘以导数得到delta,再按weight += learning_rate * delta * input更新权重与偏置。
  4. 数据生成与评估: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 步组织:

  1. 导入库:numpy、PIL.Image、requests与 TensorFlow 的 Keras 应用模块;若未安装 TensorFlow 会给出提示。
  2. 加载模型:MobileNetV2(weights='imagenet', include_top=True)——include_top=True表示保留分类层,weights='imagenet'表示使用 ImageNet 预训练权重,模型可识别1000 个物体类别;首次运行需要下载权重,可能耗时一分钟左右。
  3. 辅助函数: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)将概率输出解码为人类可读的类别标签与置信度。
  4. 测试样例图像:对 Unsplash 上猫、狗、汽车三张图片逐一分类,以条形图形式展示 Top 5 预测及置信度百分比。
  5. 测试自定义图像:替换custom_image_url变量(默认是一张花朵照片),即可分类任意图片 URL。

笔记本末尾还给出了置信度解读标准(90–100% 非常确定、70–90% 确定、50–70% 一般、低于 50% 不确定)以及预测可能出错的原因(非常规角度或光照、图中多物体、物体不在 1000 类之内、图像模糊低质),帮助读者正确评估模型输出。

示例四:简单文本情感分析

examples/04-text-sentiment.py 展示了自然语言处理(NLP)的完整最小闭环,任务设定为:判断电影评论是正面还是负面。它不依赖重型 NLP 库,而是用一个SimpleSentimentAnalyzer类实现了三个核心 NLP 步骤:

  1. 文本预处理:preprocess_text()依次做小写转换、用正则re.sub(r'[^a-z\s]', '', text)去除标点和特殊字符、按空格分词、过滤长度小于等于 2 的短词(如 "a"、"i")。
  2. 特征提取与学习:train()用collections.Counter分别统计正面与负面语料中的词频,并为每个词计算情感得分:(pos_count - neg_count) / (total + 1),分母中的+1是平滑项,用于避免除零并缓解稀疏词频的偏差;得分大于 0 偏向正面,小于 0 偏向负面。训练后会打印最正面与最负面的各 5 个词。
  3. 情感分类: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)的良好铺垫。提升准确率的方法包括增加训练语料、尝试分析推文/商品评论等更多场景。

推荐学习路径

按照官方建议,应按如下顺序逐个完成示例:

  1. 先跑 Hello AI World——掌握模式识别与"从数据中学习"的基础概念;
  2. 再构建简单神经网络——理解神经元、前向传播、反向传播与激活函数的内部机制;
  3. 尝试图像分类器——观察 AI 在真实图片上的表现,理解迁移学习;
  4. 最后做文本情感分析——进入自然语言处理领域。

给初学者的建议

  • 仔细阅读代码注释:每个示例的注释都解释了每一行代码的意图,是比正文更重要的教材;
  • 大胆实验:修改数值(权重初始化范围、学习率、epochs、样本量)并观察结果变化,这是最有效的学习方式;
  • 不必强求一次全懂:学习是渐进过程,暂时不理解激活函数的导数完全正常;
  • 多提问交流:遇到问题可在仓库的 Discussion 板块发起讨论,"出声学习"有助于巩固理解。

下一步与参与贡献

完成这 4 个示例后,可以进入完整课程体系继续深入:

  • 课程导论与 AI 概述
  • 神经网络:从感知机到深度学习框架
  • 计算机视觉:卷积网络、迁移学习、目标检测与分割
  • 自然语言处理:文本表示、嵌入、RNN 与 Transformer

同时欢迎为示例库贡献力量:报告问题或提出改进建议、为初学者新增更多示例、完善文档与注释。如果希望从零搭建完整运行环境并了解课程的整体教学法(项目制学习 + 课前课后测验),可进一步阅读 lessons/0-course-setup/setup.md。

记住:每一位专家都曾是初学者。祝你学习愉快!

  • 教程
  • 人工智能
  • 机器学习
  • 深度学习

【免费下载链接】AI-For-Beginners

12 Weeks, 24 Lessons, AI for All!

项目地址:https://gitcode.com/GitHub_Trending/ai/AI-For-Beginners
点击查看免费下载

相关推荐

上一篇:终极Python界面设计神器:5分钟零代码打造专业级GUI应用
下一篇:如何3步配置Citra模拟器:从模糊到高清的游戏体验升级指南

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询