Day57:深度神经网络
在前面的章节中,我们介绍了深度学习的概述和常见的深度学习框架TensorFlow和PyTorch。本节将讲解一种算法模型——全连接神经网络。
1. 全连接神经网络概述
全连接神经网络是一种基于人工神经网络的模型,具有多个隐藏层。它的设计灵感来自于人脑神经元之间的相互连接。多层感知机在图像识别、语音识别、自然语言处理等领域取得了巨大的成功。
2. 数学原理推导
全连接神经网络是一种由多层神经元组成的模型,它通过层与层之间的连接和激活函数的作用来逐层提取和转换输入数据的特征。
在全连接神经网络中,每个神经元与上一层的所有神经元相连接。设第 层的输入为 ,权重为 ,偏置为 ,则第 层的输出 可以通过以下公式计算:
其中, 表示激活函数。
全连接神经网络的意义就是通过对每一层权重矩阵和偏置的学习,不断调整参数,使最终输出合适结果。
3. 激活函数
如果只是简单的多层堆积,那不过相当于多个矩阵相乘,根据线性代数的矩阵运算我们知道,多个矩阵相乘其实可以看成它的结果也就是一个矩阵,这就是线性映射的缺点:我们设置了多层,但事实上起效果的数学上相当于是一层。因此,我们需要在每层后引入一个非线性映射。
激活函数激活函数在神经网络中起着非常重要的作用,它引入非线性特性,使得网络可以学习更复杂的函数关系。常见的激活函数包括:
- Sigmoid函数:
,它将数据映射到
[0, 1]
,可以很好地用以表示概率,故常用于二分类问题或者门控装置。
import torch
import matplotlib.pyplot as plt
x = torch.linspace(-10, 10, 100)
y = torch.sigmoid(x)
plt.plot(x.numpy(), y.numpy())
plt.xlabel('x')
plt.ylabel('sigmoid(x)')
plt.title('Sigmoid Activation Function')
plt.grid(True)
plt.show()
- ReLU函数: ,适用面比较广,一般适用于大多数情况。
x = torch.linspace(-10, 10, 100)
y = torch.relu(x)
plt.plot(x.numpy(), y.numpy())
plt.xlabel('x')
plt.ylabel('relu(x)')
plt.title('ReLU Activation Function')
p
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
大模型-AI小册 文章被收录于专栏
1. AI爱好者,爱搞事的 2. 想要掌握第二门语言的Javaer或者golanger 3. 决定考计算机领域研究生,给实验室搬砖的uu,强烈建议你花时间学完这个,后续搬砖比较猛 4. 任何对编程感兴趣的,且愿意掌握一门技能的人