大模型基础技术理论第一章:深度学习基础

第一章:深度学习基础

1.1 深度学习概念及发展历程

深度学习是机器学习中的一个分支,它通过模拟人脑神经元的工作方式来自动学习和提取数据中的特征。不同于传统的机器学习方法,深度学习无需依赖人为设计的特征,而是通过多个层次的神经网络对输入数据进行逐层处理,自动学习复杂的特征表达。这种特性使得深度学习在处理如图像、语音、自然语言等大规模数据时表现出色。深度学习的基本单元是神经元,神经元之间通过连接权重进行信息传递,这种结构类似于大脑的神经元网络,因此得名为“神经网络”。

深度学习的历史可以追溯到20世纪40年代,但真正的发展是在21世纪初,得益于计算能力的提升和大数据的出现。早期的神经网络模型如感知器(Perceptron)虽然能够处理简单的线性问题,但在应对复杂任务时存在局限。随着多层神经网络的提出,人们逐渐意识到,增加网络的层数能够提升模型的表达能力。这个过程也被称为“深层神经网络”,即我们今天所说的“深度学习”。

深度学习的突破性进展发生在2006年,Hinton等学者提出了“深度置信网络”(Deep Belief Networks),为深度神经网络的训练提供了一种有效的方法。之后,随着GPU(图形处理单元)在深度学习中的广泛应用,研究者们开始能够处理更大规模的数据,训练更深的神经网络。如今,深度学习已经成为人工智能的核心技术之一,广泛应用于自动驾驶、医疗诊断、智能推荐等领域。

1.2 深度神经网络(DNN)

深度神经网络(DNN)是深度学习的基础模型之一,它由多层神经元组成,每一层神经元都与上一层和下一层的神经元相连。网络的层次越深,模型的表达能力越强。DNN通过前向传播和反向传播来进行计算和优化。在前向传播过程中,输入数据经过每一层的线性变换和非线性激活函数,最终输出预测结果。而反向传播则是通过计算预测结果与真实标签之间的误差,利用梯度下降算法调整网络中的参数,使模型逐步优化。

以下是一个简单的深度神经网络(DNN)示例代码,用于体现深度神经网络的基本概念,包括前向传播和反向传播的过程。此代码使用了常见的深度学习框架 `PyTorch`,展示了如何通过多层神经网络进行计算、优化和训练。

```python
import torch
import torch.nn as nn
import torch.optim as optim

# 定义一个简单的DNN模型
class SimpleDNN(nn.Module):
    def __init__(self, input_size, hidden_size, output_size):
        super(SimpleDNN, self).__init__()
        # 定义网络的各层:输入层 -> 隐藏层 -> 输出层
        self.fc1 = nn.Linear(input_size, hidden_size)  # 输入层到隐藏层的线性变换
        self.relu = nn.ReLU()                         # 非线性激活函数ReLU
        self.fc2 = nn.Linear(hidden_size, output_size) # 隐藏层到输出层的线性变换

    # 前向传播过程
    def forward(self, x):
        out = self.fc1(x)    # 输入数据经过第一层线性变换
        out = self.relu(out) # 经过ReLU激活函数
        out = self.fc2(out)  # 经过第二层线性变换,输出结果
        return out

# 模型超参数
input_size = 10    # 输入维度
hidden_size = 20   # 隐藏层神经元个数
output_size = 2    # 输出维度(分类任务中的类别数)
learning_rate = 0.001

# 创建模型
model = SimpleDNN(input_size, hidden_size, output_size)

# 损失函数和优化器
criterion = nn.CrossEntropyLoss()  # 损失函数:交叉熵损失
optimizer = optim.SGD(model.parameters(), lr=learning_rate)  # 优化器:随机梯度下降

# 假设我们有训练数据
# 输入数据 (batch_size x input_size)
inputs = torch.randn(5, input_size)  
# 真实标签 (batch_size)
labels = torch.randint(0, output_size, (5,))

# 训练过程中的前向传播与反向传播
# 前向传播
outputs = model(inputs)  # 将输入数据传入模型,计算输出
loss = criterion(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

新说一二

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

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

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

打赏作者

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

抵扣说明:

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

余额充值