Administrator
Administrator
发布于 2025-03-17 / 15 阅读

一口气刷完深度学习在医学领域的十大应用实战

医疗影像丨Unet图像分割丨YOLO算法丨知识图谱丨神经网络丨DeepLab算法

网址:2.2-Resnet网络架构原理分析_哔哩哔哩_bilibili

Resnet网络架构原理分析

堆叠网络层数的时候发现越堆叠效果越差,Resnet网络可以跳过一些效果差的层,让其效果至少不必原来差

在ResNet中,使用加法实现“跳过某些网络层”的核心思想源于残差学习​(Residual Learning)

1. 残差学习的基本思想

- 传统网络直接学习目标映射 \( H(x) \),而ResNet改为学习残差 \( F(x) = H(x) - x \)。通过将目标映射分解为 \( H(x) = F(x) + x \),网络只需学习输入与输出之间的差值(残差),而非完整的映射。

2. 加法操作的作用

- 恒等映射:当残差 \( F(x) \) 趋近于零时,输出 \( H(x) = x \),相当于跳过了当前残差块中的所有层。这种设计允许网络在训练中自动决定某些层的贡献程度,若某层冗余,其权重可通过训练趋近于零,使输入直接传递到输出。

- 梯度传播优化:反向传播时,加法操作将梯度分为两条路径:一条通过残差块(可能包含多层),另一条直接通过跳跃连接。即使残差路径的梯度因深度而衰减,跳跃连接仍能保留梯度(导数为1),避免梯度消失。

3. 维度匹配与调整

- 当输入与输出维度不同时,ResNet使用1x1卷积调整跳跃连接的维度,确保加法操作可行。这保持了残差学习的普适性,适用于不同深度的模块。

4. 深层网络的训练优势

- 跳跃连接为信息提供了“高速公路”,允许数据绕过复杂变换直接传递。这降低了深层网络的训练难度,使网络能有效利用增加的深度,而非因梯度问题导致性能下降。

总结:ResNet中的加法操作通过残差学习机制,使网络能够灵活跳过冗余层(残差趋零),同时优化梯度流动,解决深度网络的训练难题。这种设计不仅提升了模型性能,还为构建更深层网络提供了可行方案。

albumentations库-图像增强库

albumentations是专门用来做图像数据增强的。现用现查网址:

官网:albumentations-team/albumentations: Fast and flexible image augmentation library. Paper about the library: https://www.mdpi.com/2078-2489/11/2/125

第三方教程:Albumentations库:为自定义数据进行数据增强-CSDN博客

U-net

网络结构简单,适合小目标检测(比如医学方向)

特征融合:一般有两种,特征加法(对位相加)、特征拼接(变成更长的特征)。以前特征加法用得比较多,现在特征拼接用得比较多,拼接完之后再下采样得到相同的大小(可以实现特征筛选的步骤,而特征加法是做不到的)

U-net++

U-net +++

U2-net

空洞卷积dilation参数——让我们不改变特征图大小的情况下,让感受野变大

U2-net 可以适应很多类型的图片的任务,效果都不错

deeplab系列

图像分割中的传统做法:

为了增大感受野,通常都会选择pooling操作,但是也会损失一部分信息

方法一 、空洞卷积

空洞卷积比较适合那种大的目标检测,比如人,比如常见物体的检测。而不太适合小目标检测(因为小目标不需要大的感受野),比如医疗相关的细胞检测等等

方法二、SPP (Spatial Pyramid Pooling Layer,空间金字塔池化层

SPP层是通过不同的池化层,得到不同的规格大小的特征,然后再进行特征拼接,得到统一大小的特征,再进行后续操作。可以适用于图片不同的输入规格的情况,保证输出特征是固定的(主要是全连接层,要求特征数是固定的,卷积层、池化层不要求)。

常用的多尺度特征提取方法:

方法1:普通的,将不同特征进行分别的特征提取,最后把特征拼接

方法2:Encoder-Decoder,就是U-net

方法3:空洞卷积

方法4:SPP

SPP改进版本-ASPP(SPP的改进版本,在SPP中引入了不同倍率的空洞卷积)

deepLabV3+ 解析

pascal数据集

很多图像任务都可以做,是一个比较全面的,通用的经典的数据集。

网址:The PASCAL Visual Object Classes Challenge 2012 (VOC2012)

pytorch 的hub模块

pytorch给我们做好了一些现成深度学习模块,不需要我们自己手写,比如u-net,deeplab等常见的深度学习模型,我们可以直接使用。在hub模块中。如需完整模型列表,可访问 [PyTorch Hub 官网](https://pytorch.org/hub) 或通过代码查询支持的模型。

  • 1. 图像分类模型

PyTorch Hub 提供了多种经典的图像分类模型,这些模型经过预训练,可直接用于迁移学习或微调:

- AlexNet:早期的深度卷积神经网络。

- ResNet 系列:包括 ResNet-18、ResNet-50、ResNet-101 等不同深度的残差网络。

- VGG 系列:如 VGG11、VGG16、VGG19 及其带批量归一化的变体(VGG11_bn 等)。

- DenseNet:密集连接网络,如 DenseNet-121、DenseNet-169 等。

- MobileNet:轻量级网络,适用于移动端部署(如 MobileNet V2)。

- Inception:如 Inception-v3,支持多尺度特征提取。

示例代码

```python

model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True)

```

  • 2. 图像分割模型

针对语义分割任务,Hub 提供以下模型:

- DeepLabV3:基于 ResNet-101 的语义分割模型(如 deeplabv3_resnet101)。

- FCN:全卷积网络(如 fcn_resnet101),适用于像素级分类。

示例代码

```python

model = torch.hub.load('pytorch/vision:v0.4.2', 'deeplabv3_resnet101', pretrained=True)

```

  • 3. 生成模型

PyTorch Hub 支持生成对抗网络(GAN)等生成模型,例如:

- PGAN(Progressive GAN):用于生成高分辨率图像。

- 其他生成模型可通过 Hub 的扩展库或第三方仓库加载。

  • 4. 自然语言处理模型

虽然搜索结果中未明确列出 NLP 模型的具体名称,但 PyTorch Hub 集成了 Hugging Face Transformers 等库,支持加载如 BERT、**GPT** 等预训练语言模型。例如:

```python

from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained('Qwen/Qwen2.5-0.5B-Instruct')

```

#- 5. 其他模型与自定义扩展

- 自定义模型发布:用户可通过在 GitHub 仓库中添加 hubconf.py 文件发布自己的模型。

- 模型列表查询:使用 torch.hub.list() 查看特定仓库支持的模型,例如:

```python

torch.hub.list('pytorch/vision:v0.10.0') # 返回该版本所有可用模型

```

### 使用场景与优势

1. 快速原型开发:一行代码加载模型,加速实验。

2. 迁移学习:微调预训练模型以适应新任务(如气温预测中的全连接层调整)。

3. 跨领域研究:如物理信息神经网络(PINN)用于求解微分方程。

---

### 注意事项

- 模型版本兼容性:不同 PyTorch 版本支持的模型可能不同(如 pytorch/vision:v0.4.2v0.10.0)。

- 依赖项:部分模型需安装 torchvision 或其他扩展库。

- 资源需求:大模型(如 ResNet-152)需较高计算资源,推荐使用 GPU。

如需完整模型列表,可访问 [PyTorch Hub 官网](https://pytorch.org/hub) 或通过代码查询支持的模型。

R(2+1)D网络(视频、时间序列)

R2D

R3D

YOLOv5 细胞检测