大模型学习6 -- 深度学习 1 概述和PyTorch

深度学习是机器学习的一个分支,核心是用多层神经网络自动从数据中学习特征和规律。下面从几个层面梳理一下。


一、深度学习概述

1.什么是深度学习

深度学习(Deep Learning)是机器学习的一个子领域(分支),它使用多层非线性变换 (即深层神经网络)来对数据建模,能够主动学习数据的多层次表示,从而完成分类 ,回归 或 生成等任务。

广泛应用于 图像识别 , 语音识别 和 自然语言处理(NLP)等领域.

核心特点:

  • 自动特征提取:传统机器学习需要人工设计特征,深度学习直接从原始数据中学习特征。
  • 端到端学习:输入原始数据,直接输出结果,中间不需要人工干预。
  • 层次化表示:浅层学低级特征(如边缘、纹理),深层学高级特征(如物体、语义)。
    • 使用多层神经网络,能够自动拾取数据的多层次特征
    • 适合处理非结构化数据,如图像 , 音频,文本等
    • 依赖大量数据和计算资源,训练时间较长
    • 模型复杂,通常被视为 "黑箱",解释性较差

和传统机器学习的关系:

复制代码
人工智能
  └── 机器学习
        └── 表示学习
              └── 深度学习

深度学习是机器学习的一个子集,而机器学习又是人工智能的一个子集。


2、为什么深度学习现在才火

深度学习的概念几十年前就有了,但直到最近才爆发,主要靠三个条件:

条件 说明
大数据 互联网产生海量标注数据,ImageNet、维基百科等
算力 GPU、TPU 等并行计算设备,训练速度大幅提升
算法 ReLU、Dropout、Batch Normalization、Adam 等优化技巧

三者缺一不可。


3、神经网络的基本结构

3.1. 神经元

神经网络的基本单元,接收输入,加权求和,经过激活函数输出:

y = f ( ∑ i w i x i + b ) y = f\left(\sum_{i} w_i x_i + b\right) y=f(i∑wixi+b)

  • w i w_i wi:权重
  • b b b:偏置
  • f f f:激活函数

3.2. 层

  • 输入层:接收原始数据
  • 隐藏层:中间层,负责特征变换,可以有很多层
  • 输出层:输出最终结果

3.3. 前向传播与反向传播

  • 前向传播:输入 → 逐层计算 → 输出预测
  • 反向传播:计算损失 → 逐层求梯度 → 更新权重

这是神经网络训练的核心机制。


3、常见网络结构

网络类型 全称 擅长任务
CNN 卷积神经网络 图像识别、目标检测
RNN 循环神经网络 序列数据、时间序列
LSTM 长短期记忆网络 长序列建模
Transformer 注意力机制网络 NLP、多模态,当前主流
GAN 生成对抗网络 图像生成、数据增强
GNN 图神经网络 图结构数据,社交网络、分子

5、深度学习的训练流程

  1. 准备数据:收集、清洗、标注、划分训练/验证/测试集
  2. 设计模型:选择网络结构、层数、激活函数
  3. 定义损失函数:分类用交叉熵,回归用 MSE
  4. 选择优化器:SGD、Adam、RMSProp 等
  5. 训练:前向传播 → 计算损失 → 反向传播 → 更新参数
  6. 验证与调参:调整学习率、正则化、网络深度等
  7. 测试与部署:在测试集评估,上线推理

6、常见问题与对策

问题 表现 对策
过拟合 训练好,测试差 加数据、Dropout、正则化、早停
欠拟合 训练测试都差 加层、加特征、减正则化
梯度消失 深层网络难训练 ReLU、Batch Norm、残差连接
梯度爆炸 损失变 NaN 梯度裁剪、减学习率
训练慢 收敛慢 换优化器、调学习率、用 GPU

7、应用领域

  • 计算机视觉:图像分类、目标检测、分割、人脸识别
  • 自然语言处理:机器翻译、情感分析、问答、大语言模型
  • 语音:语音识别、语音合成
  • 推荐系统:点击率预测、个性化推荐
  • 医疗:医学影像分析、药物发现
  • 自动驾驶:感知、决策、控制
  • 游戏:AlphaGo、强化学习

8、当前趋势

  • 大模型:GPT、LLaMA、Claude 等,参数量从亿到万亿
  • 多模态:文本、图像、音频统一建模
  • 自监督学习:不依赖人工标注,从数据本身学
  • 高效推理:量化、蒸馏、剪枝,让模型跑在边缘设备
  • AI 生成:扩散模型、生成对抗网络,文生图、文生视频

9、一句话总结

深度学习就是用多层神经网络,从大量数据中自动学习层次化特征,端到端地解决感知、预测和生成任务。 它是当前 AI 的核心驱动力,背后靠的是大数据、算力和算法的共同进步。

二 PyTorch介绍

2.1 PyTorch 简介

PyTorch 是深度学习领域主流的开源 Python 机器学习框架,它为实现神经网络模型提供了高效的计算工具与训练环境,是连接深度学习理论与实际应用的关键桥梁。

它最初由 Meta Platforms 人工智能团队开发,现隶属于 Linux 基金会,支持 Python 与 C++ 双接口,其中 Python 接口为核心开发重点,广泛适配计算机视觉、自然语言处理等深度学习主流领域。

作为基于 Torch 库构建、底层由 C++ 实现的框架,PyTorch 解决了"深度学习模型需高效计算与训练"的核心需求:

  • 提供类NumPy的张量计算体系,支持GPU/MPS硬件加速;
  • 内置自动微分系统,为实现神经网络的反向传播与参数优化提供原生支持。

目前,特斯拉自动驾驶、Hugging Face Transformers、PyTorch Lightning 等众多深度学习工具与应用,均基于 PyTorch 构建,也印证了其在第一章所述深度学习工程落地场景中的广泛应用价值。

PyTorch 官方地址:https://pytorch.org/

2.2 PyTorch 安装

(1)先创建一个虚拟环境:conda create -n dl python=3.12

(2)然后激活虚拟环境conda activate dl

(3)为了加速安装,配置pip的国内镜像源:

python 复制代码
#这里只是推荐,不一定合适
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

PyTorch 有 CPU 版本和 GPU 版本供选择。

2.2.1 CPU版本的安装

打开官网,根据自己的操作系统,选择对应的安装命令即可。

https://pytorch.org/get-started/locally/

2.2.2 GPU版本的安装

首先要保证你的电脑是NVIDIA的独立显卡。

2.2.3.1 确定你显卡算力

可以去这个网址查看你的显卡算力https://developer.nvidia.cn/cuda-gpus#compute

如果显卡的算力>=3.0,就可以使用GPU进行加速训练了

如果是最近几年才买的电脑,一般都能达到3.0的算力。

2.2.3.2 查看支持的最高CUDA版本

CUDA 是 NVIDIA 推出的通用并行计算平台和编程模型,它让 GPU 不仅能做图形渲染,还能做科学计算和深度学习。

PyTorch 的 GPU 加速版,是和特定 CUDA 版本绑定的。

命令行中输入nvidia-smi,在CUDA Version栏查看显卡支持的最高CUDA版本。

2.2.3.3 选择合适的CUDA版本

选择的 PyTorch CUDA 版本,绝对不能超过nvidia-smi命令查到的最高版本。

和 12.8 都≤12.8,都可以选,优先选稳定版(Stable)里最新的兼容版本(图里选 CUDA12.6 是稳定版,12.8 如果是稳定版也可以选)

最后复制对应的安装命令(图里提供的是pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu126),就能安装对应 CUDA 版本的 PyTorch 了。

2.2.4 测试是否安装成功

1)Windows:

python 复制代码
import torch
print(torch.__version__) # torch版本
print(torch.cuda.is_available())  # GPU 是否可用   windows cuda

2)Apple系列芯片的 macos:

python 复制代码
import torch
print(torch.__version__) # torch版本
print(torch.backends.mps.is_available()) # GPU 是否可用  macos mps
  1. 当你电脑上装了多个 Python 环境:
    可以试试在安装了的环境里试试
    怎么确认
    在 CMD 里输入:
python 复制代码
bash
where python

这会列出系统里所有能找到的 Python 路径。你会看到可能有多个,比如:

python 复制代码
text
C:\Users\Administrator\AppData\Local\Programs\Python\Python311\python.exe
C:\Users\Administrator\anaconda3\python.exe

哪一个是你装 PyTorch 的那个? 在编辑器里运行:

python 复制代码
python
import sys
print(sys.executable)

这会输出当前编辑器的 Python 路径。对比一下,如果和 CMD 里的不一样,就说明是环境不一致。

相关推荐
阳明山水1 小时前
因果嵌入与流水线范式的本质差异
人工智能·深度学习·算法·机器学习·架构
An独行者1 小时前
融合生长阶段信息的深度学习:冬小麦叶片氮含量无人机高光谱估算新方法
人工智能·深度学习·无人机
传奇开心果编程1 小时前
【Flutter入门练中学】第3课:滚动与列表
android·学习·flutter·ui·ios
李游Leo2 小时前
HarmonyOS 7 + ArkTS + Image Kit 学习笔记:图像超分处理链路与 PixelMap 数据流实践【鸿蒙心迹】
笔记·学习·harmonyos
为啥全要学2 小时前
PyTorch 中网络剪枝、梯度剪裁、梯度累积
网络·pytorch·剪枝
李游Leo2 小时前
HarmonyOS 7 + ArkTS + NAPI 学习笔记:Native 模块桥接、CMake 构建与跨语言调用实践【鸿蒙心迹】
笔记·学习·harmonyos
Ivanqhz2 小时前
窥孔优化(Peephole Optimization)
人工智能·深度学习·机器学习
边境悍匪3 小时前
蜗牛学苑 Java 智能体学习 Day49|贯穿项目 5 订单下单业务 思维导图复盘
java·开发语言·spring boot·学习·阿里云
别动我齐刘海3 小时前
ROS2 Jazzy + C++ 时间系统——Time / Clock / Duration
linux·c++·人工智能·学习·机器学习·机器人·自动驾驶