深度学习|前馈神经网络(Feedforward Neural Network,FNN)

前馈神经网络(Feedforward Neural Network,FNN)是最简单的人工神经网络形式,在这种网络中,信息仅在一方向传播,从输入层,经过隐藏层,最后到输出层,没有任何循环或跳跃,即无反馈机制(不像在循环神经网络RNN中那样)。

组成部分

  • 输入层:接受输入数据
  • 隐藏层:一个或多个,执行计算并转换输入信号
  • 输出层:计算并输出预测或分类结果
  • 权重和偏置:在输入和隐藏层、隐藏层之间、隐藏层与输出层之间对数据执行线性变换的参数

激活函数

  • 用于引入非线性因素,使得神经网络能够学习、模拟更复杂的系数。常见激活函数包括ReLU、Sigmoid、Tanh等。

损失函数

  • 用于计算预测值和真实值之间的差异。常见损失函数包括均方误差(MSE)、交叉熵损失等。

优化器

  • 用于调整网络参数以最小化损失函数。常见的优化器包括随机梯度下降(SGD)、Adam等。

训练过程

  • 包括前向传播、损失计算、反向传播和参数更新几个步骤。

下面是一个用PyTorch简单实现的前馈神经网络代码示例。输入层有2个节点,含一个隐藏层包含3个节点,输出层有1个节点。

import torch
import torch.nn as nn
import torch.optim as optim

# 定义一个简单的前馈神经网络
class SimpleFFNN(nn.Module):
    def __init__(self):
        super(SimpleFFNN, self).__init__()
        # 定义第一个隐藏层
        self.hidden1 = nn.Linear(2, 3)
        # 定义输出层
        self.output = nn.Linear(3, 1)
        # 定义隐藏层的激活函数
        self.activation = nn.ReLU()

    def forward(self, x):
        # 通过第一个隐藏层后激活
        x = self.activation(self.hidden1(x))
        # 输出层不需要激活函数,直接输出
        x = self.output(x)
        return x

# 初始化网络
net = SimpleFFNN()

# 定义损失函数为均方误差
criterion = nn.MSELoss()

# 定义优化器为SGD,学习率为0.01
optimizer = optim.SGD(net.parameters(), lr=0.01)

# 生成一些随机数据进行训练
# 假设我们的任务是从二维数据预测一个标量值

# 输入数据
inputs = torch.randn(100, 2)

# 目标数据,简单起见,我们这里随机生成
targets = torch.randn(100, 1)

# 训练网络
for epoch in range(100):  # 运行100次训练循环
    # 前向传播
    outputs = net(inputs)
    # 计算损失
    loss = criterion(outputs, targets)
    # 清除之前的梯度
    optimizer.zero_grad()
    # 反向传播
    loss.backward()
    # 更新参数
    optimizer.step()

    # 打印每个epoch的损失
    print(f'Epoch [{epoch+1}/100], Loss: {loss.item()}')

这段代码定义了一个非常简单的前馈神经网络,其有一个含3个神经元的隐藏层,并使用ReLU作为激活函数。模型的训练数据是随机生成的,所以这个网络的实际应用价值不大,但足以作为一个示例来展示如何使用PyTorch开发前馈神经网络。

如果你想更深入地了解人工智能的其他方面,比如机器学习、深度学习、自然语言处理等等,也可以点击这个链接,我按照如下图所示的学习路线为大家整理了100多G的学习资源,基本涵盖了人工智能学习的所有内容,包括了目前人工智能领域最新顶会论文合集和丰富详细的项目实战资料,可以帮助你入门和进阶。

链接: 人工智能交流群【最新顶会与项目实战】(点击跳转)

在这里插入图片描述在这里插入图片描述

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RRRRRoyal

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值