学习笔记--神经网络与深度学习之前馈神经网络

目录

1. 神经元

1.1  Sigmoid型函数

1.2 ReLU函数 ​编辑

1.3 Swish函数

1.4 高斯误差线性单元

神经元总结

1.5  网络结构​编辑

1.5.1 前馈神经网络

1.5.2 反馈神经网络

1.5.3 图网络

2. 前馈神经网络

3. 反向传播算法

4. 自动梯度计算

4.1 4.2 数值微分、符号微分 

 4.3 自动微分

5. 优化问题

5.1 非凸优化问题

5.2 梯度消失问题 

总结:深度学习三步骤

神经网络是由神经元按照一定的连接结构组合而成的网络。神经网络可以看作一个函数,通过简单非线性函数的多次复合,实现输入空间到输出空间的复杂映射 。

前馈神经网络是最早发明的简单人工神经网络。整个网络中的信息单向传播,可以用一个有向无环路图表示,这种网络结构简单,易于实现。

1. 神经元

神经网络的基本组成单元为带有非线性激活函数的神经元

在大脑中,神经网络由称为神经元的神经细胞组成,神经元的主要结构有细胞体、树突(用来接收信号)和轴突(用来传输信号)。一个神经元的轴突末梢和其他神经元的树突相接触,形成突触。神经元通过轴突和突触把产生的信号送到其他的神经元。信号就从树突上的突触进入本细胞,神经元利用一种未知的方法,把所有从树突突触上进来的信号进行相加,如果全部信号的总和超过某个阀值,就会激发神经元进入兴奋状态,产生神经冲动并传递给其他神经元。如果信号总和没有达到阀值,神经元就不会兴奋。图1展示的是一个生物神经元。

图1-生物神经元

使用pytorch计算一组输入的净活性值z。代码实现如下:

import torch
 
X = torch.rand([2, 5])  # 2个特征数为5的样本
w = torch.rand([5, 1])  # 含有5个参数的权重向量
b = torch.rand([1, 1])  # 偏置项
z = torch.matmul(X, w) + b  # 使用'torch.matmul'实现矩阵相乘
print("input X:\n", X)
print("weight w:\n", w, "\nbias b:", b)
print("output z:\n", z)

1.1  Sigmoid型函数

1.2 ReLU函数 

1.3 Swish函数

1.4 高斯误差线性单元

神经元总结

1.5  网络结构

目前比较常用的神经网络结构有如下三种:

1.5.1 前馈神经网络

前馈神经网络中,把每个神经元按接收信息的先后分为不同的组,每一组可以看做是一个神经层。每一层中的神经元接收前一层神经元的输出,并输出到下一层神经元。整个网络中的信息是朝着一个方向传播的,没有反向的信息传播(和误差反向传播不是一回事),可以用一个有向无环图来表示。

前馈神经网络包括全连接前馈神经网络和卷积神经网络。

前馈神经网络可以看做是一个函数,通过简单非线性函数的多次复合,实现输入空间到输出空间的复杂映射。

1.5.2 反馈神经网络

反馈神经网络中神经元不但可以接收其他神经元的信号,而且可以接收自己的反馈信号。和前馈神经网络相比,反馈神经网络中的神经元具有记忆功能,在不同时刻具有不同的状态。反馈神经网络中的信息传播可以是单向也可以是双向传播,因此可以用一个有向循环图或者无向图来表示。

常见的反馈神经网络包括循环神经网络、Hopfield网络和玻尔兹曼机。

而为了进一步增强记忆网络的记忆容量,可以映入外部记忆单元和读写机制,用来保存一些网络的中间状态,称为记忆增强网络,比如神经图灵机。

1.5.3 图网络

前馈神经网络和反馈神经网络的输入都可表示为向量或者向量序列,但实际应用中很多数据都是图结构的数据,比如知识图谱、社交网络和分子网络等。这时就需要用到图网络来进行处理。

图网络是定义在图结构数据上的神经网络,图中每个结点都由一个或者一组神经元组成。结点之前的连接可以是有向的,也可以是无向的。每个结点可以收到来自相邻结点或自身的信息。

以下是这三种神经网络结构的示意图:

2. 前馈神经网络

思考题:一个两层的relu网络是否可以模拟任何有界闭集函数?

一个两层的ReLU(Rectified Linear Unit)网络在理论上可以近似模拟任何有界闭集函数。这是由于ReLU是一种非线性激活函数,可以引入网络的非线性特性,使其具备强大的表示能力。

该结论是基于深度学习中的“万能逼近定理”(Universal Approximation Theorem)而得出的。万能逼近定理表明,一个具有足够数量的隐藏单元的单隐藏层前馈神经网络可以以任意精度逼近任何连续函数。而ReLU网络恰好满足这个条件。

虽然理论上是可行的,但在实际应用中,使用两层ReLU网络来逼近复杂函数可能会面临许多挑战。例如,要准确地逼近某些函数可能需要非常大量的隐藏单元,导致网络非常复杂,容易过拟合数据。在实践中,使用更深层次的神经网络(多个隐藏层)通常更有效,因为它们可以使用更少的隐藏单元来实现相同或更好的逼近效果,同时具备更好的泛化能力。深层网络能够从数据中学习到更抽象的特征表示,使得训练过程更加高效和稳定。

3. 反向传播算法

4. 自动梯度计算

4.1 4.2 数值微分、符号微分 

 4.3 自动微分

5. 优化问题

5.1 非凸优化问题

5.2 梯度消失问题 

总结:深度学习三步骤

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值