【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍

CNN

卷积层

在这里插入图片描述

在这里插入图片描述

  • 平移不变性,局部性
  • 虽称为卷积,但用的是互相关运算(不翻转),而非信号处理中的卷积(翻转)概念
  • 影响前向计算的所有可能输入区域称为感受野
  • 填充(padding) 是在输入高宽两侧填充,通常为0,控制输出形状的减少量
  • 步幅(stride) 是卷积核每次滑动的大小,使得输出形状成倍减少
    conv_valid = keras.layers.Conv2D(
        filters=1, 
        kernel_size=kernel_size, 
        strides=strides, 
        padding="VALID")
    
  • 卷积核本质是二维信号滤波器
  • 卷积本质是提取图像不同频率的特征
  • 核矩阵大小、填充、步幅是超参数
  • 有时,1个5x5卷积核 不如 2个3x3卷积核
  • 训练 CNN 需大量内存,如内存不足需调整 batch_size 或 strides
  • 核矩阵和偏移的值是可学习的参数
  • 每个卷积和生成一个特征图
  • 在 TensorFlow 中,3D图像格式为[h, w, c]

1*1 卷积核

  • 作用:不识别模式,只增加通道
    在这里插入图片描述

池化层

  • 对称不变形,下采样
  • 减小计算量、内存占用和参数(防止过拟合)
  • 缓解卷积层对位置的过度敏感性
  • 最大池化,均值池化…
    max_pool = keras.layers.MaxPool2D(pool_size=2)
    avg_pool = keras.layers.AvgPool2D(pool_size=2)
    
  • 最大池化保留了最强的特征,因此效果通常比均值池化好
  • 也有填充、步幅,是超参数
  • 没有可学习参数
  • 对每个输入通道分别池化,输出通道数不变

经典CNN网络

LeNet

  • 卷积-池化-…-全连接-输出

AlexNet

VGG

  • 重复使用3x3卷积块
  • 不同卷积块个数和超参数得到不同复杂度的变种
    在这里插入图片描述

NiN

  • 串联多个卷积层和全连接层构成小网络并构建深层网络
    在这里插入图片描述

GoogLeNet

  • 第一个达上百层的模型

  • 含非常经典的子模块 Inception
    在这里插入图片描述

  • 常用Iception版本为 V3, V4

  • 不同层面重启特征,然后融合

ResNet -非常经典的残差结构

在这里插入图片描述
在这里插入图片描述

  • resnet50:
    在这里插入图片描述
  • skip-connection 有效地缓解梯度消失

DenseNet

在这里插入图片描述

  • 在通道维度上连结

Xception

  • 深度可分离卷积
  • depthwise + pointwise
  • 各通道分别卷积处理,再合并(或先合并再分别卷积)
    在这里插入图片描述

SE-Net

  • Squeeze-and Excitation Network

  • SE块分析其连接的单元的输出,仅专注于深度维度,并了解哪一些特征通常最活跃,然后使用此信息重新校准特征图

  • SE块的组成:
    在这里插入图片描述

  • SE-Inception模块SE-ResNet单元:
    在这里插入图片描述

DeepLab

在这里插入图片描述

PSPNet

在这里插入图片描述

使用预训练模型

model = keras.applications.resnet50.ResNet50(weights="imagenet")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "Hands-On Machine Learning with Scikit-Learn,Keras"是由Aurélien Géron撰写的一本深度学习机器学习的实践指南。它是学习机器学习和深度学习的极好资源。 这本书首先介绍机器学习的基础概念,然后深入讨论了如何使用Scikit-Learn和Keras这两个流行的Python机器学习库。Scikit-Learn提供了丰富的机器学习算法和工具,可以帮助我们构建、训练和评估模型。而Keras是一个用于构建深度学习模型的高级神经网络库。 在这本书中,作者结合实践案例和详细的代码示例,带领读者通过实际的项目学习机器学习和深度学习的应用。你将学习如何预处理和清洗数据、选择合适的模型、训练和调整模型参数,以及评估模型的性能。 此外,这本书还探讨了深度学习的各个方面,包括卷神经网络、循环神经网络、生成对抗网络等。作者通过讲解这些概念和技术,帮助读者理解深度学习的原理和应用,并将其应用于实际项目中。 总体而言,“Hands-On Machine Learning with Scikit-Learn,Keras”提供了一个全面而易于理解的学习路径,帮助读者从初学者逐步成为机器学习和深度学习的专家。无论你是新手还是有一定经验的开发者,这本书都是一个值得推荐的资源。 ### 回答2: "Hands-On Machine Learning with Scikit-Learn, Keras" 是一本介绍机器学习和深度学习的书籍,作者是Aurélien Géron。这本书的目的是帮助读者从实践的角度深入了解使用Scikit-Learn和Keras库进行机器学习和深度学习的方法。 这本书采用了实践驱动的方法,通过编写代码和实际项目的例子,帮助读者理解机器学习和深度学习的核心概念和技术。书中涵盖了各种机器学习和深度学习的主题,包括数据预处理、监督学习、无监督学习、集成学习、深度神经网络等。 书中的案例涉及到了实际应用场景,比如图像分类、文本分类、推荐系统等。读者可以通过具体的例子理解机器学习和深度学习在实际项目中的应用。 这本书还介绍了使用Scikit-Learn和Keras库的基本操作和功能。读者可以学习如何安装和配置这些库,并学会使用它们进行数据处理、模型训练和评估等操作。 总的来说,《Hands-On Machine Learning with Scikit-Learn, Keras》是一本非常实用的机器学习和深度学习实践指南。它适合那些对机器学习和深度学习感兴趣的读者,尤其是那些希望通过具体的例子和实践项目来学习这些技术的人。这本书将帮助读者理解机器学习和深度学习基本原理和技术,并将它们应用到实际项目中。 ### 回答3: 《机器学习实战:基于Scikit-Learn和Keras的实践》是一本非常受欢迎的机器学习教材,它由Aurelien Geron编写。这本书提供了关于使用Scikit-Learn和Keras进行实践的详细指导和示例。 Scikit-Learn是一个常用的Python机器学习库,它集成了许多常用的机器学习算法和工具,使机器学习模型的开发变得更加简单和高效。Keras是另一个流行的深度学习库,它提供了高级的神经网络建模接口,使深度学习模型的设计和实现变得更加容易。 《机器学习实战:基于Scikit-Learn和Keras的实践》主要分为三个部分。第一部分介绍机器学习基本概念和常用技术,如线性回归、逻辑回归、决策树和随机森林等。第二部分介绍了深度学习基本原理和常用模型,如卷神经网络和循环神经网络等。第三部分通过几个实际项目的实例,展示了如何使用Scikit-Learn和Keras进行机器学习和深度学习的实践。 这本书在整个实践过程中给出了详细的步骤和代码示例,有助于读者理解和复现。此外,书中还提供了相关的数据集和预训练模型,方便读者进行实际的实验和项目开发。 总体而言,《机器学习实战:基于Scikit-Learn和Keras的实践》是一本很好的机器学习实战指南,适合那些对机器学习和深度学习感兴趣的读者。无论是初学者还是有经验的从业者,都能从中获得宝贵的知识和技能。希望通过阅读这本书,读者能够在机器学习和深度学习领域取得更好的成果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值