软件开发 | 人工智能教程(七):Scikit-learn 和训练第一个模型

软件开发 | 人工智能教程(七):Scikit-learn 和训练第一个模型

💡 原文中文,约7400字,阅读约需18分钟。
📝

内容提要

本文介绍了ChatGPT和DALL-E 2两个令人惊叹的人工智能应用,分别是聊天机器人和绘画生成系统。此外,还介绍了scikit-learn库和TensorFlow与Keras的使用。

🔎

延伸解读

从ChatGPT到DALL-E 2:AI应用的双面性

文章开篇介绍了ChatGPT和DALL-E 2两个轰动性AI应用。ChatGPT基于GPT-3.5,能进行人类般对话,甚至帮助改写句子、编写程序;DALL-E 2则根据英文描述生成多种风格的绘画。作者亲身体验后感叹AI的强大,但也提醒这些工具会带来版权侵犯、学生作业抄袭等问题。这提示读者,在拥抱AI便利的同时,需关注其伦理与法律风险。

scikit-learn:传统机器学习的有力工具

文章介绍了scikit-learn这个强大的机器学习Python库,它提供回归、分类、聚类等算法,并以支持向量机(SVM)为例展示了分类和回归的代码实现。SVM由Vapnik和Chervonenkis发明,他们还提出了VC维概念。对于想入门机器学习的读者,scikit-learn是一个易于安装且功能丰富的选择,尤其适合理解监督学习的基本流程。

训练第一个神经网络:MNIST手写数字识别

作者使用Keras和MNIST数据集训练了一个卷积神经网络,用于识别手写数字。程序包括数据预处理、模型定义、训练和保存,以及用实际手写图像测试。测试结果显示,虽然数字7被正确识别,但置信度仅23.77%,且可能分类错误。作者认为低分辨率训练图像和测试图像质量是主因。这提醒读者,模型性能受数据质量影响,实践中需关注预处理和评估。

TensorFlow实验场:可视化理解神经网络

文章推荐了TensorFlow提供的“神经网络实验场”在线工具,它通过可视化方式帮助理解神经网络工作原理。用户可以添加神经元和隐藏层,选择Tanh、Sigmoid、Linear、ReLU等激活函数,并观察训练动画。对于初学者,这是一个低门槛的辅助学习工具,能直观感受网络结构和参数对分类或回归效果的影响。

❓

Q&A

ChatGPT 是什么?它基于哪个模型?

ChatGPT 是 OpenAI 于 2022 年 11 月推出的在线人工智能聊天机器人,可以像人类一样聊天。它基于 GPT-3.5 大型语言模型,使用监督学习和强化学习技术训练。

DALL-E 2 能做什么?它支持哪些图像风格?

DALL-E 2 是 OpenAI 推出的根据英文描述生成绘画的人工智能系统。它支持油画、卡通、漫画、现实主义、超现实主义、壁画等多种图像风格,还能模仿达利、毕加索、梵高等著名画家的风格。

scikit-learn 是什么?它提供了哪些算法?

scikit-learn 是一个强大的机器学习 Python 库,采用新 BSD 许可协议,是自由开源软件。它提供了回归、分类、聚类和降维等算法,如支持向量机(SVM)、随机森林、k-means 聚类等。

支持向量机(SVM)是什么?在 scikit-learn 中如何使用?

支持向量机是机器学习中的重要监督学习模型,可用于分类和回归分析,由 Vladimir Vapnik 和 Alexey Chervonenkis 发明。在 scikit-learn 中,使用 svm 模块的 SVC() 方法生成分类器,SVR() 方法生成回归模型,然后通过 fit() 方法拟合模型,最后用 predict() 进行预测。

如何使用 TensorFlow 和 Keras 训练第一个神经网络模型?

使用 MNIST 手写数字数据集训练模型。首先加载数据并预处理(归一化、扩展维度、转换为类别矩阵),然后定义序列模型(包含卷积层、池化层、Dropout 层和全连接层),编译模型(损失函数为 categorical_crossentropy,优化器为 adam),接着用 fit() 训练模型并保存,最后用测试数据评估模型,并用实际手写数字图像进行预测。

训练模型时,为什么需要先尝试加载已有模型?

因为训练模型是一个处理器密集和高内存消耗的操作,如果每次运行程序都重新训练会浪费资源。所以代码先尝试从 existing_model 目录加载模型,如果不存在则定义、训练并保存模型,以便后续直接使用。

在测试训练好的模型时,为什么识别准确率可能不高?

文章中提到,模型在某些情况下会分类错误,置信度较低。作者认为相对较低的训练图像分辨率以及测试图像的质量可能是主要的影响因素。

🏷️

标签

➡️

继续阅读