深度学习笔记1--神经网络

本文介绍了神经网络的基础,从感知器的概念出发,详细解释了权重的含义和作用,以及输入数据如何通过权重加总。讨论了激活函数,特别是单位阶跃函数,以及如何通过加偏置项来调整输出。此外,文章还提到了最简单的神经网络,使用sigmoid函数作为激活函数,并介绍了梯度下降法在训练神经网络中的应用。内容涵盖了数据清理、权重学习和反向传播的概念,以及在实践中如何使用NumPy实现这些计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


感知器 Perceptron

现在你看到了一个简单的神经网络如何做决策:输入数据,处理信息,然后给出一个结果作为输出!现在让我们深入这个大学录取的案例,来学习更多输入数据如何被处理。

数据,无论是考试成绩还是评级,被输入到一个相互连接的节点网络中。这些独立的节点被称作感知器 或者神经元。它们是构成神经网络的基本单元。每一个依照输入数据来决定如何对数据分类。 在上面的例子中,输入的评级或者成绩要么通过阈值 (threshold) 要么通不过。这些分类组合形成一个决策 - 例如,如果两个节点都返回 “yes“,这个学生就被学校录取了。

让我们进一步放大来看一个单个感知器如何处理输入数据。

上面的感知器是视频中来决定学生是否被录取的两个感知器中的一个。它决定了学生的评级是否应该被学校录取。你也许会问:“它怎么知道在做录取决定的时候是分数更重要还是评级更重要呢?”。事实上,当我们初始化神经网络的时候,是不知道那个信息对决定更重要的。这需要由神经网络自己学出来 哪个数据更重要,然后来调整它如何使用那个数据。

它通过一个叫做Weights(权值)的东西来做这件事。

Weights(权值)

当数据被输入感知器,它会跟分配给这个输入的制定的 weights 相乘。例如,上面的感知器有两个输入,testsgrades,所以它有两个与之相关的 weights,并且可以分别调整。这些权重刚开始是随机值,当神经网络学到什么样的输入数据会使得学生被学校录取之后,网络会根据之前 weights 下分类的错误来调整 weights,这也被称作是神经网络的训练

一个更大的 weights 意味着神经网络认为这个输入比其它输入更重要,小 weights 意味着数据不是那么重要。一个极端的例子是,如果 test 成绩对学生录取没有影响,那么 test 分数的 weight 就会是零,也就是说,它对感知器的输出没有影响。

输入数据加总

所以,每个感知器的输入需要有一个关联的权重代表它的重要性,这个权重是由神经网络的学习过程决定的,也就是训练。接下来,经过加权的输入数据被加总,生成一个单独的直,它会帮助实现最终输出 - 也就是这个学生是否被录取。让我们看一个实际的例子:

我们把 `x_test` 跟它的权重 `w_test` 做点乘再与 `x_grades` 与`w_grades` 点乘的结果相加。

我们把 x_test 跟它的权重 w_test 做点乘再与 x_gradesw_grades 点乘的结果相加。

在写跟神经网络有关的公式的时候,权重总是被各种样式的字母 w 来表示。W通常表示权重矩阵,而w被用来表示单个权重。有时还会有些额外的信息以下标的形式给出(后面会见到更多)。记住你看到字母w,想到权重是不会错的。

在这个例子中,我们用 wgrades 来表示 grades 的权重,wtest 来表示 test 的权重。在上图中,权重是 wgrades=1,wtest =0.2。你不用关注它们具体的值,他们的比值更重要。wgradeswtest 的5倍,代表神经网络认为在判断学生是否能被大学录取时, grades 的重要性是 test 的5倍。

感知器把权重和输入做点积并相加再加总的过程叫做 线性组合。在这里也就是

wgradesxgrades+wtestxtest=1xgrades0.2xtest.

为了让我们的公式更简洁,我们可以把名称用数字表示。用 1 来表示 grades2 来表示 tests. 我们的公式就变成了:

w1x1+w2x2

在这个例子中,我们只有两个简单的输入。grades 和 tests。试想如果我们有 m 个不同的输入可以把他们标记成 x1,x2,...,xm。对应x1 的权重是 w1 以此类推。在这里,我们的线性组合可以简洁的写成:

i=1mwixi

这里,希腊字母 Sigma 用来表示 求和。它意思是求解右边表达式,并把结果加总。也就是说,这里求了. wixi 的和。

但是我们从哪里找到 wixi

i=1m 意思是遍历所有 i 值, 1m

这些都组合在一起 i=1mwixi 表示:

  • w1x1 并记住结果
  • i=2
  • w2x2 的值并把它加到 w1x1
  • 重复这个过程直到 i=mm 是输入的个数

最后,无论是我们这里还是你自己的阅读中,你都会看到公式有很多种写法。例如:你会看到 i 而不是 i=1m。第一个只是第二个的简写。也就是说你看到一个求和没有截止点,意思就是把它们都加起来。有时候,如果遍历的值可以被推断,你可能会看到一个单独的 。记住,它们都是相同的:i=1mwixi=iwixi=wixi

计算激活函数的输出

最后,感知器求和的结果会被转换成输出信号,这是通过把线性组合传给 激活函数 来实现的。

当输入给到节点,激活函数可以决定节点的输出。因为它决定了实际输出,我们也把层的输出,称作“激活”。

最简单的激活函数之一是单位阶跃函数(Heaviside step function)。如果线性组合小于0,函数返回0,如果线性组合等于或者大于0,函数返回1。单位阶跃函数(Heaviside step function) 如下图, h 是线性组合的结果:

单位阶跃函数 Heaviside Step Function

单位阶跃函数 Heaviside Step Function

在上面这个大学录取的例子中,我们用了 wgrades=1,wtest =0.2 作为权重。因为 wgrades 都是负值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值