更改

跳到导航 跳到搜索
添加960字节 、 2025年6月14日 (六) 20:50
无编辑摘要
第8行: 第8行:     
第一个是双曲正切函数,其范围从 -1 到 1,另一个是逻辑函数,其形状类似,但范围从 0 到 1。这里[math]\displaystyle{y_i}[/math]是第[math]\displaystyle{i}[/math]个节点(神经元)和。[math]\displaystyle{v_i}[/math]是输入连接的加权和。其他激活函数已被提出,包括rectifier 和 softplus函数。更专业的激活函数包括径向基函数(用于径向基网络,这是另一类有监督神经网络模型)。
 
第一个是双曲正切函数,其范围从 -1 到 1,另一个是逻辑函数,其形状类似,但范围从 0 到 1。这里[math]\displaystyle{y_i}[/math]是第[math]\displaystyle{i}[/math]个节点(神经元)和。[math]\displaystyle{v_i}[/math]是输入连接的加权和。其他激活函数已被提出,包括rectifier 和 softplus函数。更专业的激活函数包括径向基函数(用于径向基网络,这是另一类有监督神经网络模型)。
 +
 +
在深度学习的最新发展中,修正线性单元(ReLU)被更频繁地用作克服与 S 型函数相关的 数值问题的可能方法之一。
 
== 学习 ==
 
== 学习 ==
 
学习是通过在处理每条数据后,根据输出结果与预期结果之间的误差量,改变连接权重来实现的。这是监督学习的一个例子,通过反向传播进行。
 
学习是通过在处理每条数据后,根据输出结果与预期结果之间的误差量,改变连接权重来实现的。这是监督学习的一个例子,通过反向传播进行。
   −
我们可以在输出节点中表示错误程度在第个数据点(训练示例), 在哪里是期望的目标值节点处的第个数据点, 和是节点产生的值当第个数据点作为输入。
+
我们可以在输出节点中表示错误程度 j 在第 n 个数据点(训练示例):
 +
 
 +
[math]\displaystyle{e_j(n) = d_j(n) - y_j(n)}[/math]
 +
 
 +
其中 [math]\displaystyle{d_j(n)}[/math] 是期望的目标值、[math]\displaystyle{y_j(n)}[/math] 是实际输出。
 +
 
 +
然后可以根据最小化整个输出误差的校正来调整节点权重,第 n 条数据点的误差为:
 +
 
 +
<nowiki>[math]\displaystyle{\mathcal{E}(n) = \frac{1}{2} \sum_j^{\text{output node}} e_j^2(n)}[/math]</nowiki>
 +
 
 +
使用 '''梯度下降''',每个权重的变化为:
 +
 
 +
[math]\displaystyle{\Delta w_{ji}(n) = -\eta \frac{\partial \mathcal{E}(n)}{\partial v_j(n)} y_i(n)}[/math]
   −
然后可以根据最小化整个输出误差的校正来调整节点权重第个数据点,由下式给出
+
其中:
   −
: 。
+
* [math]\displaystyle{y_i(n)}[/math] 是第 i 个神经元的输出
 +
* [math]\displaystyle{\eta}[/math] 是学习率,用于控制步长,避免过度更新或收敛太慢
 +
* <nowiki>[math]\displaystyle{\frac{\partial \mathcal{E}(n)}{\partial v_j(n)}}[/math] 表示误差函数对神经元输入的导数</nowiki>
   −
使用梯度下降,每个权重的变化是
+
对于常见的激活函数为可导函数 [math]\displaystyle{\phi}[/math] 的情况,有:
    +
[math]\displaystyle{\frac{\partial \mathcal{E}(n)}{\partial v_j(n)} = e_j(n) \phi'(v_j(n))}[/math]
 
:
 
:
130

个编辑

导航菜单