“卷积神经网络” 祖师爷 学习之前先来拜码头

Yann LeCun,中文常译为杨立昆,1960 年 7 月 8 日出生于法国巴黎西北边的一个小镇。是一位杰出的计算机科学家,在机器学习、计算机视觉、移动机器人和计算神经科学等领域做出了重大贡献,被誉为 “卷积神经网络之父”。以下是对他的一些介绍:

主要成就

开发了世界上第一个用于文本数字识别的卷积网络 LeNet-5,这是反向传播算法的首次实践,也是计算机视觉中常见的卷积神经网络原型。推动了深度学习在社交媒体和通信领域的应用,如面部识别、自然语言处理、内容理解等。在多个顶级学术会议和期刊上发表了大量研究论文,对深度学习和计算机视觉领域的发展产生了深远影响。

Yann LeCun 对人工智能领域的发展有诸多重要贡献,主要包括以下几个方面:

卷积神经网络(CNN)的创立与发展

提出 LeNet-5:Yann LeCun 在 1989 年提出了 LeNet - 5,这是第一个成功应用于手写数字识别的卷积神经网络。它引入了卷积层、池化层和全连接层等概念,为后来 CNN 的发展奠定了基础。LeNet - 5 能够自动提取图像的特征,大大提高了手写数字识别的准确率,展示了 CNN 在图像识别领域的巨大潜力。

推动 CNN 的广泛应用:他不断改进和推广卷积神经网络,使其逐渐成为计算机视觉领域的主流模型。随着硬件计算能力的提升,CNN 在图像分类、目标检测、语义分割等众多计算机视觉任务中取得了突破性的成果,推动了计算机视觉技术在工业、医疗、安防等多个领域的广泛应用。

反向传播算法的完善

优化训练方法:Yann LeCun 对反向传播算法进行了深入研究和改进。反向传播算法是训练神经网络的关键技术,它能够有效地计算网络中每个参数的梯度,从而实现参数的更新和模型的优化。LeCun 通过改进算法的稳定性、收敛速度等方面,使得神经网络能够更快速、更准确地训练,为深度学习模型的大规模应用提供了可能。

解决梯度消失问题:在神经网络训练中,梯度消失是一个常见的问题,它会导致模型难以收敛。LeCun 等人提出了一些解决方法,如使用合适的激活函数(如 ReLU 及其变体)、优化网络结构等,缓解了梯度消失问题,使得深层神经网络的训练成为可能,推动了深度学习向更深层次发展。

学习祖师爷的模型 LeNet-5

网络结构

简单记忆 就是卷池卷池 两个全链接  

class Lenet5(Model):
    # . 定义Lenet5模型的初始化方法,*args和**kwargs分别用于接收任意数量的位置参数和关键字参数
    def __init__(self, *args, **kwargs):
        # . 调用父类Model的初始化方法
        super().__init__(*args, **kwargs)
        # . 创建序贯模型实例self.conv,用于存储卷积层和池化层
        # . 添加一个卷积层,6个卷积核,核大小为(5, 5),激活函数为relu
        # . 添加一个最大池化层
        # .添加一个卷积层,16个卷积核,核大小为(5, 5),激活函数为relu
        # .添加一个最大池化层
        self.conv = Sequential([
            layers.Conv2D(filters=6, kernel_size=(5, 5), activation=activations.relu),
            layers.MaxPooling2D(),
            layers.Conv2D(filters=16, kernel_size=(5, 5), activation=activations.relu),
            layers.MaxPooling2D(),
        ])

        # .创建序贯模型实例self.flat,用于存储展平层
        self.flat = layers.Flatten()
        # .创建序贯模型实例self.fc,用于存储全连接层
        # .添加一个全连接层,神经元数量为120,激活函数为relu
        # .添加一个丢弃层,丢弃比例为0.3
        # .添加一个全连接层,神经元数量为84,激活函数为relu
        # .添加一个丢弃层,丢弃比例为0.3
        # .添加一个全连接层,神经元数量为10,激活函数为softmax,为输出层
        self.fc = Sequential([
            layers.Dense(units=120, activation=activations.relu),
            layers.Dropout(0.3),
            layers.Dense(units=84, activation=activations.relu),
            layers.Dropout(0.3),
            layers.Dense(units=hot_dim, activation=activations.softmax),
        ])

    # .定义call方法,用于模型的 前向传播
    # .将输入数据通过卷积层和池化层处理
    # .将处理后的数据展平
    # .将展平后的数据全连接层处理
    # .返回处理后的结果
    def call(self, x, *args, **kwargs):
        x = self.conv(x)
        x = self.flat(x)
        x = self.fc(x)
        return x
  • 输入层:输入图像的大小为 32×32 像素,通道数为 1(灰度图像)。
  • 卷积层 C1:使用 6 个大小为 5×5 的卷积核,步长为 1,无填充。经过卷积操作后,得到 6 个特征图,每个特征图的大小为 28×28。
  • 池化层 S2:采用平均池化,池化窗口大小为 2×2,步长为 2。池化后,特征图数量不变仍为 6 个,但大小变为 14×14。
  • 卷积层 C3:使用 16 个大小为 5×5 的卷积核,步长为 1,无填充。得到 16 个大小为 10×10 的特征图。
  • 池化层 S4:与 S2 层相同,平均池化,窗口大小 2×2,步长 2,输出特征图大小变为 5×5,数量为 16 个。
  • 全连接层 F5:将 S4 层的输出展平后连接到一个具有 120 个神经元的全连接层。
  • 全连接层 F6:包含 84 个神经元。
  • 输出层:采用 Softmax 激活函数,有 10 个神经元,对应 0 - 9 这 10 个数字类别,输出每个类别的概率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值