计算机系统应用教程网站

网站首页 > 技术文章 正文

用最少的数学知识解释神经网络 最简单的神经网络

btikc 2024-10-23 09:20:19 技术文章 11 ℃ 0 评论

背景

如果我们去网上学习人工神经网络(ANN),会看到像这样的图表,以及关于我们大脑中神经元和突触的引用。

人工神经网络(Artificial Neural Network)作为机器学习的核心算法之一,其灵感就来源于人脑中的神经元和突触。

下面将通过一系列更简单的图表逐步解释神经网络的基本原理。

输入与输出的映射

神经网络的核心是将输入值映射到输出值

输入和输出的定义

假设我们想要对灰度图像进行分类,以确定它是猫、狗、蛇还是其他物体。

输入将是像素值,范围从0(黑色)到255(白色)。

输出将是3个值,范围从0到1,表示图像是猫、狗或蛇的概率。

用于训练神经网络的数据将由人工手动标记,这称为真实集

训练数据中的响应变量值只有0或1,表示是否识别出猫/狗/蛇。

当在未标记的图像上运行分类器模型时,模型将输出关于猫、狗、蛇的概率,并选择最接近1的值。

如果所有值接近0,我们可以说图像类似于其他物体。

线性回归与隐藏层

如果神经网络只是一组线性回归,会怎么样呢?

简单线性回归的限制

如果神经网络只是简单的线性回归,那么我们会有三个线性回归方程,像素值是每个方程的自变量,猫、狗和蛇的概率是因变量。

每个像素都有一个对应的权重,类似于线性回归中每个自变量的权重。

引入隐藏层

神经网络不会将输入直接映射到输出。

相反,有一个中间层称为隐藏层。

隐藏层由多个节点组成,每个节点代表一个线性组合方程。

每个方程是加权像素值的线性组合,并将其结果传递给激活函数。

下图显示了具有 4 个节点的隐藏层:

这些箭头到底是什么?这是在显示什么?

该图代表 4 个方程。

每个方程都是加权像素值的线性组合。

隐藏层的特殊之处在于我们将获取该线性组合的结果并将其传递给激活函数。

激活函数

激活函数将线性组合的结果转化为输出值,通常接近0或1,类似于打开或关闭的电灯开关。

激活函数

通过隐藏层,计算输入与相应权重的线性组合,然后将其传递给激活函数,得到隐藏层节点的值。

我希望没有人注意到这些灯开关图标不一致

回顾一下,通过隐藏层,我们正在计算输入与相应权重的线性组合 - 然后我们将线性组合的结果传递给激活函数 - 这为我们提供了隐藏层中节点的值。

从隐藏层到输出层

为了从隐藏层到达输出层,我们执行与之前相同的步骤。

不同的是现在将隐藏层视为输入,进行线性组合并传递给激活函数,最终得到输出值。

这是现在的最终图表(类似于维基百科一开始的图表)

该图表示 3 个线性组合方程。我们将每个隐藏节点的值乘以其权重,然后将它们全部相加。

因为我们的最终输出范围是从 0 到 1,所以我们将再次将线性组合的结果传递给激活函数。

确定权重:模型训练

找到神经网络的权重称为训练模型。

暴力法的低效性

训练神经网络即找到最佳权重,使预测输出与实际输出之间的误差最小。

假设我们通过暴力法,为每个输入和隐藏节点选择随机权重,然后不断调整,直到找到最佳权重组合。

然而这种方法效率极低。

我们数据中的一条记录包含 1,000 个像素(我们的输入)以及猫、狗和蛇的打标。

这张照片代表一只猫

我们需要通过暴力找出最佳权重——或者换句话说,需要大量的试验和错误。

1、我们可以转到第一个记录并为所有输入和隐藏节点选择随机权重。


2、我们运行所有各种线性组合:在我们的例子中,每个隐藏节点有 4 个方程(每个方程有 1,000 个输入),然后每个最终输出有 3 个方程(每个方程有 3 个输入)。


3、我们检查我们的表现——将数据中的真实输出与使用随机权重得到的输出进行比较。那么如果我们是猫呢?变量应该是 1,但我们的结果是 0.42,我们会偏离 0.58。

如果我们有一台超级强大的计算机,假设我们可以继续为每个记录和隐藏节点选择随机权重,直到我们的最终输出看起来尽可能接近真实输出。

反向传播算法

实际上,我们使用一种称为反向传播的技术进行训练。

反向传播不能保证找到完美的拟合,但它平衡了计算效率和最佳拟合之间的权衡。

反向传播过程

1、初始化权重:为所有输入和隐藏节点选择随机权重。

2、前向传播:计算所有线性组合和激活函数,得到输出值。

3、误差计算:将预测输出与真实输出进行比较,计算误差。

4、反向传播:根据误差调整权重,使误差逐渐减小。

总结

神经网络是一组通过激活函数传递的线性组合方程。

这些方程又作为输入传递到更多的线性组合方程,然后传递到另一个激活函数。

找到权重可以通过反向传播来实现,反向传播是一种有效找到权重的算法,使我们的预测与实际输出值之间达到最佳拟合。

扩展阅读

实际上,神经网络有许多不同类型和更复杂的架构。

在将机器学习应用于现实世界问题时,问题陈述和输入数据是基础

因此,理解和定义问题以及准备适当的数据是成功应用神经网络的关键步骤。

参考

https://expandmapping.substack.com/p/explainer-series-artificial-neural

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表