我用ChatGPT写神经网络:一字不改,结果竟然很好用

 

AI 写 AI 的速度比我们预期的还要快。自从去年底推出以来,对话式 AI 模型 ChatGPT 已在整个社区中引发轰动。

ChatGPT 的确是一个令人惊叹的工具,它宛如一个“潘多拉魔盒”。一旦找到合适的使用方式,你可能会发现自己再也离不开它。

作为一个全能选手,人们对 ChatGPT 的使用方式多种多样,既有用它来撰写论文,也有人让它陪聊,这些都是常见的玩法。如果再大胆一些,既然 ChatGPT 是 AI 的“王者”,那么它是否能自己写出一个 AI 呢?

最近,一位机器学习领域的博主突发奇想,决定让 ChatGPT 构建一个神经网络,并使用 Keras 解决经典的 MNIST 问题。

MNIST 数据集是机器学习领域的经典案例。尽管这个手写数字数据集逐渐被淘汰,但它的重要性依然显著,因为许多人在学习深度学习时,都是以 MNIST 作为第一组数据集来验证算法的。

话不多说,作者立刻着手进行。博主让 ChatGPT 生成了一段代码,代码看起来完美无瑕,甚至无需修改任何内容,这是个不错的开端。

ChatGPT 选择了分类交叉熵作为损失函数。作者提出要重写这一部分代码,ChatGPT 随即将其替换为稀疏分类交叉熵。而更新后的代码依然能够正常运行,新的损失函数省略了标签的分类转换。

接下来,ChatGPT 生成的代码使用了全连接层,但博主希望使用卷积层。因此,ChatGPT 根据指示进行了修改,增加了一个 Conv2D 层和一个最大池化层(MaxPooling layer)。

在最终模型的评估阶段,作者引导 ChatGPT 使用测试集编写评估代码,结果令人满意,且 ChatGPT 的每一次回复都附带详细解释。例如,在这次评估中,它这样描述:“‘评估’方法接收测试数据和测试标签作为参数,并返回模型编译期间指定的损失和度量,输出了测试的准确性,有助于了解模型对新数据的泛化能力。”

模型在训练期间使用了整个测试集作为验证数据。随后,作者又请求 ChatGPT 将其修改为训练数据的 20%。

博主还希望使用更小的 batch 以及较少的训练 epoch。虽然这项任务可以在不借助 ChatGPT 的情况下完成,但他更愿意保持上下文的连贯性,因此还是将任务交给了 ChatGPT。

接下来,博主打算绘制训练过程中的训练与测试损失曲线图。ChatGPT 建议:“需要更改适合模型的线条,以捕获结果值。”

为了展示数据集中一些示例,作者让 ChatGPT 编写代码以输出图像与标签的结合,生成的代码也非常完美,能够展示 20 张图像的合集。

在构建模型时,查看其结构也是必要的。如果向 ChatGPT 提出这个问题,得到的回复是:

ChatGPT 给出了模型的总结:

模型的总结非常有用,但博主更想直观地看到模型结构图。因此他继续询问:

最终,回复结果让人满意。接下来便是准备部署模型,博主让 ChatGPT 将模型保存到磁盘。

现在,博主想创建一个使用保存模型进行预测的类。这个任务的提问方式非常有趣,而 ChatGPT 提供的解决方案也毫无瑕疵。

最后,作者让 ChatGPT 展示一个示例,使用这个预测类来对 10 个随机图像的标签进行预测。

为了完成这个,博主请 ChatGPT 显示一个混淆矩阵:

不可否认,ChatGPT 使用的样式既简洁又美观。

完成所有实验后,博主公开了所有 ChatGPT 生成的代码,你也可以尝试一下:

地址:[Google Colab](https://colab.research.google.com/drive/1JX1AVIfGtIlnLGqgHrK6WPylPhZvu9qe?usp=sharing)

### 见解

本文展示了 ChatGPT 能够承担起构建和调用 AI 任务的能力,显示了这一强大工具的潜力和灵活性。通过与机器学习相关的具体应用,ChatGPT 说明了其在实际开发环节中的重要性。这不仅是一次技术的探索,也揭示了 AI 在编程、模型构建和评估等方面的高效性和可靠性。

在深度学习的实际应用中,借助 ChatGPT 等工具,研究者和开发者能够更高效地进行实验、调试和优化,从而加快机器学习模型的开发进程。这种互动式的协作无疑为整个技术社区带来了新的思路和方向,也预示着 AI 技术在未来将扮演越来越重要的角色。

标签



热门标签