机器学习2024年12月10日· 10分钟
深度学习入门:从感知机到神经网络
详细介绍深度学习的基础概念,从最简单的感知机模型开始,逐步理解神经网络的工作原理和实现方法。
作者:AI & Finance
#深度学习#神经网络#Python#PyTorch
引言
深度学习是人工智能领域最激动人心的分支之一。本文将带你从零开始理解神经网络的基本原理。
什么是感知机?
感知机(Perceptron)是最简单的神经网络模型,由Frank Rosenblatt在1957年提出。
数学表达式
感知机的输出可以表示为:
其中:
- 是输入特征
- 是权重
- 是偏置
- 是激活函数
使用PyTorch实现简单神经网络
下面是使用PyTorch实现一个简单的前馈神经网络的代码:
import torch
import torch.nn as nn
import torch.optim as optim
class SimpleNN(nn.Module):
def __init__(self, input_size, hidden_size, output_size):
super(SimpleNN, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size)
self.relu = nn.ReLU()
self.fc2 = nn.Linear(hidden_size, output_size)
def forward(self, x):
x = self.fc1(x)
x = self.relu(x)
x = self.fc2(x)
return x
# 创建模型
model = SimpleNN(input_size=10, hidden_size=20, output_size=2)
# 定义损失函数和优化器
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
print(f"模型参数数量: {sum(p.numel() for p in model.parameters())}")
激活函数的作用
激活函数引入非线性,使神经网络能够学习复杂的模式。
常见激活函数
| 激活函数 | 公式 | 特点 |
|---|---|---|
| Sigmoid | 输出范围(0,1) | |
| ReLU | 计算简单,避免梯度消失 | |
| Tanh | 输出范围(-1,1) |
训练过程
神经网络的训练包括以下步骤:
- 前向传播:计算预测值
- 计算损失:评估预测与真实值的差距
- 反向传播:计算梯度
- 参数更新:使用优化器更新权重
重要提示:选择合适的学习率对训练至关重要。学习率过大可能导致震荡,过小则收敛缓慢。
总结
本文介绍了深度学习的基础概念:
- ✅ 感知机的基本原理
- ✅ PyTorch实现神经网络
- ✅ 激活函数的重要性
- ✅ 训练过程的核心步骤
深度学习是一个广阔的领域,这只是开始。继续学习,探索更多高级主题!
参考资料:
- PyTorch官方文档
- Ian Goodfellow的《Deep Learning》