【深度学习】(一)概述

发布时间:2026/8/18 3:40:09
【深度学习】(一)概述 一、深度学习1 深度学习介绍深度学习是机器学习的一个子集其核心是构建具有多个“隐藏层”的人工神经网络。它的灵感来源于人脑神经元的工作方式但并非严格模拟生物神经机制。核心思想通过“端到端”的学习方式让模型自动从原始数据中逐层提取特征。浅层网络学习边缘、颜色等简单特征深层网络则将这些简单特征组合成轮廓、部件乃至语义等复杂抽象概念。这一过程被称为“特征学习”或“表示学习”。发展关键深度学习的崛起得益于三大要素数据互联网时代积累的海量数据图像、文本、语音。算力GPU图形处理器、TPU张量处理器等高性能计算硬件的普及。算法反向传播算法、ReLU激活函数、Dropout正则化、Batch Normalization批归一化等技术的突破解决了深层网络难以训练的问题。2 深度学习知识框架学习深度学习通常遵循以下层次结构数学基础线性代数向量、矩阵、张量运算、特征分解。概率与统计最大似然估计、贝叶斯定理、分布。优化方法梯度下降、随机梯度下降SGD、Adam等优化器。神经网络基础感知机神经网络的基本单元。激活函数Sigmoid, Tanh, ReLU, Softmax。损失函数均方误差MSE、交叉熵。正则化L1/L2正则、Dropout、早停法。核心网络架构多层感知机全连接网络基础结构。卷积神经网络处理网格状数据如图像。循环神经网络与Transformer处理序列数据如文本、时间序列。高级技术生成模型生成对抗网络GAN、变分自编码器VAE、扩散模型。自监督学习BERT、MAE等掩码建模技术。深度强化学习DQN深度Q网络、PPO近端策略优化。3 常用模型模型类别代表模型特点适用场景卷积神经网络ResNet、VGG、Inception利用卷积核提取局部特征参数共享平移不变性图像分类、目标检测、语义分割循环神经网络与变体LSTM、GRU具有记忆单元擅长处理时序依赖但存在长程依赖瓶颈机器翻译、语音识别、时间序列预测TransformerBERT、GPT、ViT基于自注意力机制并行计算能力强可捕捉长距离依赖自然语言处理NLP全领域、视觉大模型生成模型GAN、Stable Diffusion能够生成高保真度的新数据样本图像生成、艺术创作、数据增强图神经网络GCN、GAT处理非欧几里得空间的数据图结构社交网络分析、分子结构预测、推荐系统4 应用场景深度学习已渗透到几乎所有人工智能应用领域计算机视觉图像识别人脸识别、医学影像诊断癌症筛查、自动驾驶中的交通标志识别。目标检测与分割安防监控、工业质检、遥感图像分析。自然语言处理大语言模型ChatGPT、文心一言等用于对话、写作、代码生成。信息抽取情感分析、智能客服、机器翻译。语音处理语音识别智能音箱、实时字幕。语音合成数字人播报、语音导航。跨模态与生成文生图/视频广告设计、游戏素材制作。多模态理解视频理解、图像描述生成。科学计算与决策生物信息学蛋白质结构预测。游戏与机器人AlphaGo、机械臂抓取、自动驾驶决策。5 与机器学习的区别深度学习是机器学习的一种实现方式但两者在多个维度存在显著差异维度传统机器学习深度学习特征工程人工主导。依赖专家手工设计特征如SIFT、HOG特征工程的质量决定了模型的上限。自动提取。模型端到端学习自动从原始数据中提取分层特征无需人工干预。数据依赖小数据友好。在样本量较小几百到几万条时表现较好不易过拟合。大数据依赖。通常需要海量数据百万级以上才能展现优势在小数据上往往不如传统模型。硬件需求低。普通CPU即可运行大部分算法如随机森林、逻辑回归。高。严重依赖GPU或TPU进行并行加速训练成本高。可解释性较高。决策树、线性回归等模型逻辑清晰容易解释特征权重。较低。常被视为“黑盒”参数规模巨大千亿级难以直观解释决策逻辑。模型复杂度简单。参数数量少训练时间短调试相对直观。复杂。网络层数深参数规模大亿级至万亿级调试需要大量经验。典型算法线性回归、支持向量机、随机森林、XGBoost卷积神经网络CNN、循环神经网络RNN、Transformer、扩散模型二、PyTorchPyTorch 是由 Meta AI原 Facebook AI Research开发的开源深度学习框架于 2017 年首次发布。它以动态计算图和Pythonic 的设计哲学著称已成为学术界和工业界最受欢迎的深度学习框架之一。特点张量计算自动微分系统深度学习库动态计算图GPU加速跨平台支持PyTorch 安装condainstallpytorch torchvision torchaudio pytorch-cuda11.8-cpytorch-cnvidiaimporttorch# 检查版本print(fPyTorch 版本:{torch.__version__})# 检查 CUDA 是否可用print(fCUDA 可用:{torch.cuda.is_available()})iftorch.cuda.is_available():print(fCUDA 版本:{torch.version.cuda})print(fGPU 数量:{torch.cuda.device_count()})print(f当前 GPU:{torch.cuda.get_device_name()})# 测试张量计算xtorch.rand(3,3)print(f随机张量:\n{x})# 测试 GPU 计算iftorch.cuda.is_available():yx.cuda()print(fGPU 张量设备:{y.device})三、张量张量Tensor是 PyTorch 中最基本的操作对象本质上是一个多维数组。对标 NumPy它的功能和 NumPy 的ndarray非常相似都用于存储和操作多维数值数据。核心区别PyTorch 张量可以无缝地在CPU 和 GPU之间迁移并且专门为**自动求导Autograd**和深度学习计算进行了优化。你可以把张量理解为深度学习框架的“通用语言”——数据图像、文本、音频进入模型前都要先转化为张量。使用张量的好处特性说明GPU 加速通过.to(cuda)或.cuda()轻松将张量移到 GPU利用 CUDA 进行高速并行计算。自动微分设置requires_gradTrue后PyTorch 会记录张量上的所有操作并自动计算梯度这是训练神经网络的基础。动态计算图PyTorch 使用动态图Define-by-Run意味着计算图在每次前向传播时都会重新构建更灵活、更易调试。丰富的操作函数支持索引、切片、数学运算、线性代数、统计函数等几乎涵盖所有科学计算需求。与 NumPy 互操作可以轻松地在 NumPy 数组和 PyTorch 张量之间转换torch.from_numpy()和.numpy()且许多情况下共享内存。张量的基本用法importtorch# 1. 从数据直接创建atorch.tensor([1,2,3])# 1维整数型btorch.tensor([[1,2],[3,4]],dtypetorch.float32)# 2维指定类型# 2. 从NumPy创建importnumpyasnp arrnp.array([1,2,3])ctorch.from_numpy(arr)# 共享内存# 3. 创建特殊数值张量zerostorch.zeros(3,4)# 全0形状 3x4onestorch.ones(2,3,4)# 全13维eyetorch.eye(5)# 单位矩阵randtorch.randn(3,3)# 标准正态分布随机数# 4. 从已有张量创建继承属性dtorch.zeros_like(b)# 形状与b相同值全0eb.new_ones(2,2)# 使用b的dtype和device创建# 5. 创建可求导的张量用于神经网络xtorch.tensor([2.0,3.0],requires_gradTrue)四、数据集在深度学习中数据集Dataset是用于训练、验证和测试模型的样本集合。每个样本通常包含特征Features/X模型的输入数据如图像像素、文本词向量、表格数值标签Labels/Y模型需要预测的目标值如图像类别、房价数值、翻译文本核心原则数据质量和数量往往比模型架构更能决定最终效果上限——“Garbage in, garbage out”。数据集的三大划分划分用途占比常见是否参与梯度更新训练集用于模型学习参数是梯度更新的依据70%~80%✅ 是验证集用于调参学习率、网络层数和早停防止过拟合10%~15%❌ 否测试集最终评估模型泛化能力严格来说只能使用一次10%~15%❌ 否常见的数据集类型领域经典数据集任务类型图像MNIST, CIFAR-10, ImageNet, COCO分类、检测、分割文本IMDb, AG News, WikiText, GLUE分类、情感分析、问答语音LibriSpeech, VoxCeleb识别、说话人验证表格UCI 各数据集, Kaggle 房价回归、分类图结构Cora, PubMed, OGB节点分类、链接预测