ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AI-For-Beginners 示例代码实战指南:从模式识别到情感分析的 4 个入门程序

AI-For-Beginners 示例代码实战指南:从模式识别到情感分析的 4 个入门程序 教程人工智能机器学习深度学习【免费下载链接】AI-For-Beginners12 Weeks, 24 Lessons, AI for All!项目地址https://gitcode.com/GitHub_Trending/ai/AI-For-Beginners点击查看免费下载本文聚焦 AI-For-Beginners 仓库examples/目录下的 4 个独立、可运行的入门示例Hello AI World模式识别、Simple Neural Network从零搭建神经网络、Image Classifier预训练模型图像分类与 Text Sentiment文本情感分析。这些示例覆盖了机器学习学习数据 → 做出预测 → 理解模式的完整闭环并且每个脚本都带有详尽的逐行注释与分步讲解。读完本文你将掌握它们的安装方式、运行方法、底层实现原理以及如何将它们作为进入完整课程体系神经网络、计算机视觉、NLP的阶梯。示例总览examples/目录共包含 4 个示例文件与一份说明文档原文档以表格形式给出了每个示例的定位、难度与前置知识示例描述难度前置知识01-hello-ai-world.py你的第一个 AI 程序——简单模式识别⭐ 入门Python 基础02-simple-neural-network.py从零构建一个神经网络⭐⭐ 入门Python、基础数学03-image-classifier.ipynb用预训练模型对图片进行分类⭐⭐ 入门Python、NumPy04-text-sentiment.py分析文本情感积极/消极⭐⭐ 入门Python这 4 个示例的设计具有很强的递进性第一个示例只用纯 Python 就演示了学习的核心概念第二个示例引入神经元、前向传播与反向传播第三个示例借助成熟的预训练模型MobileNetV2体验迁移学习第四个示例则进入自然语言处理领域。它们全部是独立文件不依赖仓库中其他模块随时可以单独运行。环境准备前置条件运行示例需要安装 Python原文档建议3.8 或更高版本仓库中 03-image-classifier.ipynb 的 notebook 元数据也标注了 Python 3.8 内核。安装依赖包针对不同示例依赖有所不同# Python 脚本01 / 02 / 04所需的包 pip install numpy # Jupyter Notebook03 图像分类器所需的包 pip install jupyter numpy pillow tensorflow其中图像分类器依赖tensorflow提供MobileNetV2模型及其预处理/解码工具pillow用于加载图片numpy负责把图像转换为模型需要的多维数组。使用 conda 环境推荐原文档同时提供了一条基于主课程 conda 环境的安装路径。仓库根目录的 environment.yml 定义了名为ai4beg的完整环境包含jupyter、ipykernel、numpy1.26、matplotlib3.9、scikit-learn、pytorch、torchvision、opencv等库并通过pip子段追加安装 requirements.txt 中固定版本号的依赖如tensorflow2.17.0、keras3.13.2、pillow12.2.0、nltk3.10.0等。安装与激活命令为conda env create --name ai4beg --file environment.yml conda activate ai4beg使用统一环境可以避免版本冲突也能无缝切换到课程后续的 notebook 练习。运行示例**Python 脚本.py 文件**直接在命令行执行python 01-hello-ai-world.py**Jupyter Notebook.ipynb 文件**需要先启动 notebook 服务jupyter notebook 03-image-classifier.ipynb原文档推荐的执行顺序是先运行01理解模式识别基础 → 再运行02理解神经网络工作原理 → 接着运行03用真实图片体验 AI 的实际效果 → 最后运行04探索自然语言处理。示例 01Hello AI World——用纯 Python 实现模式识别该脚本位于 examples/01-hello-ai-world.py是全仓库的第一个 AI 程序。它不依赖任何机器学习库仅用random模块就完整演示了 AI 的三个核心思想从数据中学习、做出预测、理解模式。核心类 SimpleAILearner程序定义了一个极简的线性学习器weight权重初始化时取random.uniform(0, 5)的随机猜测值这是 AI 唯一要学习的参数learning_rate学习率默认0.01控制每次修正权重时的调整幅度predict(x)直接返回self.weight * xtrain(training_data, epochs100)遍历训练数据对每个样本计算误差error y_actual - y_predicted然后执行学习规则self.weight learning_rate * error * x即最朴素的梯度下降/增量学习每 20 轮输出一次平均误差与当前权重。训练与测试流程训练数据就是一条直线规律y 2xtraining_data [ (1, 2), # 当 x1 时y 应为 2 (2, 4), # 当 x2 时y 应为 4 (3, 6), # 当 x3 时y 应为 6 (4, 8), # 当 x4 时y 应为 8 (5, 10), # 当 x5 时y 应为 10 ]训练 100 个 epoch 后程序用从未见过的输入6, 7, 10, 15做测试并对照真实值2*x打印预测结果与差值。如果权重收敛到 2 附近说明模型真正学会了规律而不是死记硬背。可实验的改进点脚本结尾明确给出了三条进阶实验建议修改训练数据让 AI 学习其他规律如y 3x 1、调整学习率脚本第 30 行的learning_rate、修改 epoch 数量观察训练时长与精度的关系。这是体会学习率过大震荡、过小收敛慢这一经典权衡的最小实验场。示例 02从零搭建的简易神经网络examples/02-simple-neural-network.py 不使用任何 ML 框架仅用 Python 标准库random和math实现了一个真实可训练的神经元目的是揭示神经网络引擎盖下发生了什么。Sigmoid 激活函数及其导数sigmoid(x)把任意数值压缩到(0, 1)区间语义上可理解为置信度接近 1 表示非常有把握是接近 0 表示非常有把握否0.5 附近表示不确定。源码中做了防溢出处理当x 100直接返回1.0x -100直接返回0.0。sigmoid_derivative(x) x * (1 - x)是学习所需的导数它告诉网络权重应该调整多少。单个神经元 SimpleNeuron神经元的决策流程在feedforward()中体现即所谓前向传播将每个输入乘以其权重并求和sum(w * x for w, x in zip(self.weights, inputs))加上偏置bias送入 sigmoid 激活函数得到输出。权重与偏置均初始化为random.uniform(-1, 1)偏置的作用是让神经元的决策边界不必强制经过原点。反向传播在train()方法中实现error target - self.output # 计算误差 delta error * sigmoid_derivative(self.output) # 用导数确定调整量 self.weights[i] learning_rate * delta * inputs[i] # 更新权重 self.bias learning_rate * delta # 更新偏置学习任务与效果验证示例的学习任务是判断二维平面上的点位于直线 y x 的上方还是下方。generate_training_data(num_samples100)在[0,10] × [0,10]区域内随机采样label 1 if y x else 0作为标签。训练阶段设置epochs 50、learning_rate 0.1每 10 个 epoch 输出一次平均误差训练完成后用新生成的 10 个测试点调用visualize_decision()以阈值 0.5 将输出转换为类别 0.5判为上方、否则判为下方并统计准确率。整个过程直观展示了从随机权重出发通过犯错—微调—再犯错—再微调的循环误差逐步下降、准确率逐步上升。进阶实验方向脚本末尾建议读者调整num_samples改变训练样本量、修改epochs改变训练轮数、修改learning_rate第 225 行的调用处观察学习行为变化、甚至修改generate_training_data中的判定条件来更换决策边界例如直线y 2x。将单个神经元换成多个神经元并堆叠成多层结构就可以自然过渡到课程中 3-NeuralNetworks 一节的正式内容。示例 03用预训练模型进行图像分类examples/03-image-classifier.ipynb 是一个 Jupyter Notebook它演示了迁移学习Transfer Learning直接使用别人在数百万张图片上训练好的模型而不是从零训练。加载模型Notebook 使用 TensorFlow/Keras 内置的MobileNetV2model MobileNetV2(weightsimagenet, include_topTrue)weightsimagenet表示加载在 ImageNet 数据集上训练好的权重include_topTrue表示保留顶部分类层该模型可以识别1000 种物体类别。首次运行时需要联网下载权重文件脚本会打印提示This may take a minute on first run (downloading weights)...。图像预处理prepare_image()完成模型输入的标准化共 4 步将图片缩放为224 × 224MobileNetV2 期望的输入尺寸转换为 NumPy 数组用np.expand_dims(img_array, axis0)增加批batch维度因为模型一次接受多张图片调用preprocess_input(img_array)执行 MobileNetV2 特有的归一化预处理。预测与解码classify_image()依次完成预处理 →model.predict(img_array, verbose0)得到 1000 个类别的概率分布 → 用decode_predictions(predictions, top5)解码出概率最高的前 5 个类别的可读标签与置信度。Notebook 内置了 3 张来自 Unsplash 的测试图猫、狗、汽车以彩色条形图打印 Top-5 预测结果Step 5还提供了自定义图片入口替换custom_image_url即可分类任意图片 URL。如何理解置信度与可能的误判Notebook 用一段表格给出了置信度的解读参考90–100%非常自信几乎肯定正确70–90%比较自信很可能正确50–70%有些自信可能正确低于 50%不太自信不确定。同时列出了预测可能出错的四类典型原因异常角度或光照模型基于典型照片训练、图片含多个物体模型期望单一主体、罕见物体模型只知道 1000 个类别、低质量图片模糊或像素化。这套方法论与课程 4-ComputerVision 中关于 CNN 特征提取、迁移学习的讲解一脉相承。示例 04简易文本情感分析examples/04-text-sentiment.py 是一个不依赖复杂 NLP 库的简化版情感分析器核心用例是判断电影评论是积极还是消极从中可以学到三个 NLP 基础概念文本预处理、特征提取把词转成数字、情感分类。文本预处理 preprocess_text()三步完成清洗text.lower()统一转小写re.sub(r[^a-z\s], , text)去掉标点与特殊字符text.split()分词并过滤掉长度不超过 2 的短词如 a、i减少无信息量词汇的干扰。训练为每个词打分train()使用collections.Counter分别统计积极文本与消极文本中每个词的出现次数然后对每个词计算情感得分self.word_scores[word] (pos_count - neg_count) / (total 1)分子为正负出现次数之差得分 0 表示偏向积极 0 表示偏向消极分母加 1 是**平滑smoothing**处理避免除零并缓解小样本下的过激得分。训练结束后会打印得分最高的 5 个积极词与 5 个消极词方便直观检视学习结果。训练语料共 16 条人工标注的电影评论8 积极、8 消极。预测平均得分与置信度analyze()对新文本做同样的预处理后累加每个词的得分并求平均平均分大于 0 判为positive否则为negative。置信度按min(abs(avg_score) * 100, 100)换算成百分比。若尚未训练就调用分析会抛出Exception(Please train the analyzer first!)防止误用。脚本除了一组 6 条内置测试评论外还提供交互模式运行后程序会循环读取你输入的评论并实时给出情感、置信度与得分输入quit/exit/q退出。进阶建议包括扩充训练语料提升精度、把输入换成推文或商品评论、并进入课程 5-NLP 学习更高级的 NLP 技术。从示例到完整课程学习路径4 个示例恰好对应了课程中的四个核心章节。原文档给出的下一步指引如下完成示例后可继续深入Introduction to AI —— AI 的历史与基础概念承接示例 01 的模式识别思想Neural Networks —— 感知机、自建框架与主流框架承接示例 02 的手写神经元Computer Vision —— CNN、迁移学习、目标检测与分割承接示例 03 的图像分类Natural Language Processing —— 文本表示、词嵌入与语言模型承接示例 04 的情感分析。仓库根目录 README.md 描述了完整的12 周、24 课课程体系examples/README.md 是英文原版说明translations/bn/examples/README.md 则是本文依据的孟加拉语翻译版本。如果希望把示例和课程笔记一起跑起来根目录 binder/requirements.txt 还提供了 Binder 在线环境所需的依赖清单可用于免本地安装的交互式体验。初学者建议与实验清单原文档为初学者总结了四条实践建议并结合上述源码可以落到具体动作认真阅读代码注释4 个示例都采用先写意图、再写实现的注释风格例如02中每个方法都解释了为什么需要这一步大胆实验修改01的训练数据与学习率、02的样本数/epochs/决策边界、03的自定义图片 URL、04的训练语料观察输出如何变化不必强求一次全懂学习曲线本就漫长先跑通再复盘主动提问遇到卡点可以在仓库的 Discussion 区交流原文档亦如此建议。这套示例的设计哲学是先看到现象、再理解原理用 100 行左右的代码让初学者在半小时内获得第一次训练模型的完整体验为后续啃下 3-NeuralNetworks 等深度课程建立信心与直觉。赞分享教程人工智能机器学习深度学习【免费下载链接】AI-For-Beginners12 Weeks, 24 Lessons, AI for All!项目地址https://gitcode.com/GitHub_Trending/ai/AI-For-Beginners点击查看免费下载相关推荐AI-For-Beginners 入门示例实战指南4 个动手实验带你从模式识别走到文本情感分析AI For Beginners 入门示例实战指南4 个动手实验带你从模式识别走到文本情感分析 examples/ 是 AI For Beginners ht教程人工智能机器学习深度学习AI-For-Beginners 入门实战4 个可运行的 AI 示例代码详解AI For Beginners 入门实战4 个可运行的 AI 示例代码详解 本篇技术指南围绕 AI For Beginners 课程仓库中 examples教程人工智能机器学习深度学习老 Mac 系统升级完整指南用 OpenCore Legacy Patcher 免费装最新 macOS老 Mac 系统升级完整指南用 OpenCore Legacy Patcher 免费装最新 macOS 一台 2015 年的 MacBook Air 还能装操作系统固件驱动开发上一篇Chrome文本替换插件终极指南如何智能编辑任何网页内容下一篇如何在5分钟内免费安装Chrome文本替换插件网页编辑终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表