news 2026/4/23 15:58:57

神经网络入门:从零开始构建你的第一个深度学习模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
神经网络入门:从零开始构建你的第一个深度学习模型

✨道路是曲折的,前途是光明的!

📝 专注C/C++、Linux编程与人工智能领域,分享学习笔记!

🌟 感谢各位小伙伴的长期陪伴与支持,欢迎文末添加好友一起交流!

    • 前言
    • 什么是神经网络?
      • 基本结构
    • 核心概念
      • 1. 神经元
      • 2. 激活函数
      • 3. 前向传播
    • PyTorch实战代码
      • 1. 定义神经网络
      • 2. 训练循环
    • 训练流程图
    • 损失函数的作用
    • 反向传播与梯度下降
    • 完整训练示例
    • 总结
    • 进一步学习方向

前言

神经网络是深度学习的基石,也是人工智能领域最激动人心的技术之一。本文将带你从零开始,理解神经网络的核心概念,并用代码实现一个简单的神经网络模型。

什么是神经网络?

神经网络是一种受人脑神经元结构启发的机器学习模型。它由相互连接的节点(神经元)组成,通过层层传递和处理信息来完成学习任务。

基本结构

Output Layer

Hidden Layer

Input Layer

输入特征1

输入特征2

输入特征3

神经元1

神经元2

神经元3

神经元4

输出1

输出2

核心概念

1. 神经元

每个神经元接收输入,通过权重和偏置计算,最后通过激活函数产生输出:

output = activation(Σ(input × weight) + bias)

2. 激活函数

激活函数引入非线性,使网络能够学习复杂的模式。

激活函数特点适用场景
ReLU计算简单,缓解梯度消失隐藏层首选
Sigmoid输出在0-1之间二分类输出层
Softmax输出概率分布多分类输出层

3. 前向传播

前向传播是数据从输入层流向输出层的过程。

输入数据

输入层

隐藏层1

隐藏层2

输出层

预测结果

PyTorch实战代码

1. 定义神经网络

importtorchimporttorch.nnasnnimporttorch.optimasoptim# 定义一个简单的全连接神经网络classSimpleNet(nn.Module):def__init__(self,input_size,hidden_size,num_classes):super(SimpleNet,self).__init__()# 第一层:输入层到隐藏层self.layer1=nn.Linear(input_size,hidden_size)self.relu=nn.ReLU()# 第二层:隐藏层到输出层self.layer2=nn.Linear(hidden_size,num_classes)defforward(self,x):out=self.layer1(x)out=self.relu(out)out=self.layer2(out)returnout# 初始化模型model=SimpleNet(input_size=784,hidden_size=128,num_classes=10)print(model)

2. 训练循环

# 定义损失函数和优化器criterion=nn.CrossEntropyLoss()optimizer=optim.Adam(model.parameters(),lr=0.001)# 训练循环num_epochs=10forepochinrange(num_epochs):forbatch_idx,(data,targets)inenumerate(train_loader):# 前向传播outputs=model(data)loss=criterion(outputs,targets)# 反向传播和优化optimizer.zero_grad()loss.backward()optimizer.step()print(f'Epoch [{epoch+1}/{num_epochs}], Loss:{loss.item():.4f}')

训练流程图

开始

初始化模型参数

获取训练数据批次

前向传播计算预测

计算损失

反向传播计算梯度

更新权重参数

是否完成所有epoch?

训练完成

损失函数的作用

损失函数衡量模型预测与真实值的差距:

# 常用损失函数示例# 1. 均方误差(回归任务)mse_loss=nn.MSELoss()# 2. 交叉熵(分类任务)cross_entropy=nn.CrossEntropyLoss()# 3. 二元交叉熵(二分类)bce_loss=nn.BCELoss()

反向传播与梯度下降

反向传播是训练神经网络的核心算法:

计算损失

计算输出层梯度

计算隐藏层梯度

计算输入层梯度

更新所有权重

完整训练示例

importtorchimporttorch.nnasnnfromtorch.utils.dataimportDataLoader,TensorDataset# 创建示例数据X=torch.randn(1000,20)# 1000个样本,20个特征y=torch.randint(0,2,(1000,))# 二分类标签# 创建数据加载器dataset=TensorDataset(X,y)train_loader=DataLoader(dataset,batch_size=32,shuffle=True)# 定义模型classBinaryClassifier(nn.Module):def__init__(self):super().__init__()self.network=nn.Sequential(nn.Linear(20,64),nn.ReLU(),nn.Dropout(0.2),nn.Linear(64,32),nn.ReLU(),nn.Linear(32,1),nn.Sigmoid())defforward(self,x):returnself.network(x)# 训练model=BinaryClassifier()optimizer=torch.optim.Adam(model.parameters(),lr=0.001)criterion=nn.BCELoss()forepochinrange(5):epoch_loss=0forX_batch,y_batchintrain_loader:optimizer.zero_grad()predictions=model(X_batch).squeeze()loss=criterion(predictions,y_batch.float())loss.backward()optimizer.step()epoch_loss+=loss.item()print(f'Epoch{epoch+1}, Average Loss:{epoch_loss/len(train_loader):.4f}')

总结

通过本文,我们学习了:

  1. 神经网络的基本结构和组成
  2. 前向传播和反向传播的原理
  3. 使用PyTorch构建和训练神经网络

进一步学习方向

  • CNN(卷积神经网络):图像处理领域
  • RNN/LSTM:序列数据处理
  • Transformer:自然语言处理
  • GAN(生成对抗网络):图像生成

神经网络的世界非常广阔,继续探索吧!


参考资料:

  • PyTorch官方文档
  • 《深度学习》- Ian Goodfellow
  • CS231n: 卷积神经网络课程

✍️ 坚持用清晰易懂的图解+可落地的代码,让每个知识点都简单直观

💡座右铭“道路是曲折的,前途是光明的!”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 15:15:07

便携式设备的防盗报警器设计

便携式设备的防盗报警器设计 第一章 系统总体设计 便携式设备防盗报警器以小型化、低功耗、高灵敏度、易携带为设计目标,主要用于笔记本电脑、平板电脑、工具箱、行李箱等贵重便携设备的防盗保护。系统采用主动检测报警联动结构,由传感器检测模块、主控模…

作者头像 李华
网站建设 2026/4/23 15:02:59

java工地建材原材料仓库管理系统 vue

目录系统概述技术架构核心功能系统优势扩展性设计项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统概述 Java工地建材原材料仓库管理系统结合Vue前端框架,实现建材的入库、出库、库存盘点、…

作者头像 李华
网站建设 2026/4/22 16:22:58

js--18

一、树结构基础1. 二叉查找树&#xff08;BST&#xff09;核心规则&#xff1a;左子树所有节点值 < 当前节点值 < 右子树所有节点值&#xff0c;无重复节点。添加规则&#xff1a;小值存左、大值存右、等值不存。遍历方式&#xff1a;前序&#xff1a;当前节点 → 左子节…

作者头像 李华
网站建设 2026/4/22 22:20:13

ClickHouse 参数设置说明文档

目录标题ClickHouse 参数设置说明文档一、概述环境信息二、配置方式方式一&#xff1a;通过 ClickHouseInstallation (CHI) 修改配置&#xff08;推荐&#xff09;1. 编辑 CHI 资源2. 修改 profiles 配置3. 当前实例配置&#xfffd;&#xfffd;例方式二&#xff1a;SQL 会话级…

作者头像 李华
网站建设 2026/4/18 14:37:56

春节在家必玩游戏推荐!手机巧借ToDesk玩3A

春节团聚时想和家人朋友共享游戏乐趣&#xff0c;却常受限于设备性能或游戏库存。如今&#xff0c;借助远程控制技术&#xff0c;即便身边只有手机&#xff0c;也能畅玩Steam上最新、最热门的游戏。2026年1月Steam销量榜显示&#xff0c;多人合作与高品质单机游戏持续占据主流&…

作者头像 李华