← 返回文章列表
机器学习2024年12月10日· 10分钟

深度学习入门:从感知机到神经网络

详细介绍深度学习的基础概念,从最简单的感知机模型开始,逐步理解神经网络的工作原理和实现方法。

作者:AI & Finance
#深度学习#神经网络#Python#PyTorch

引言

深度学习是人工智能领域最激动人心的分支之一。本文将带你从零开始理解神经网络的基本原理。

什么是感知机?

感知机(Perceptron)是最简单的神经网络模型,由Frank Rosenblatt在1957年提出。

数学表达式

感知机的输出可以表示为:

y=f(i=1nwixi+b)y = f(\sum_{i=1}^{n} w_i x_i + b)

其中:

  • xix_i 是输入特征
  • wiw_i 是权重
  • bb 是偏置
  • ff 是激活函数

使用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σ(x)=11+ex\sigma(x) = \frac{1}{1+e^{-x}}输出范围(0,1)
ReLUf(x)=max(0,x)f(x) = \max(0, x)计算简单,避免梯度消失
Tanhtanh(x)=exexex+ex\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}输出范围(-1,1)

训练过程

神经网络的训练包括以下步骤:

  1. 前向传播:计算预测值
  2. 计算损失:评估预测与真实值的差距
  3. 反向传播:计算梯度
  4. 参数更新:使用优化器更新权重

重要提示:选择合适的学习率对训练至关重要。学习率过大可能导致震荡,过小则收敛缓慢。

总结

本文介绍了深度学习的基础概念:

  • ✅ 感知机的基本原理
  • ✅ PyTorch实现神经网络
  • ✅ 激活函数的重要性
  • ✅ 训练过程的核心步骤

深度学习是一个广阔的领域,这只是开始。继续学习,探索更多高级主题!


参考资料