神经网络与深度学习(三)——卷积神经网络基础

本文介绍了卷积神经网络的基础知识,包括其进化历史、特征提取方法、PyTorch的简介,以及LeNet-5网络的结构和实现。重点讲解了神经网络的学习算法,如前向传播和误差反向传播,特别是针对卷积网络的BP算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.为什么要学习神经网络

1.1全连接网络问题

  • 链接权过多,算的慢,难收敛,同时可能进入局部极小值,也容易产生过拟合问题
    e.g.输入为1000×1000图像 ,隐含层有 1M 个节点,则输入->隐含层间有1×1012数量级的参数

  • 解决算的慢的问题:减少权值连接,每一个节点只连接到上一层的少数神经元,即局部连接网络
    在这里插入图片描述

  • 解决难以收敛的问题:权值过多容易产生过拟合问题,如何消除?
    联想到人类解决问题的思路->信息分层处理,每一层在上一层提取特征的基础上进行再处理,抽象出更高级别的特征。
    在这里插入图片描述

1.2深度学习平台简介

在这里插入图片描述

1.3PyTorch简介

是什么?

  • PyTorch是一个 Python 的深度学习库 。它最初由Facebook人工智能研究小组开发而优步的Pyro软件则用于概率编程。
  • 最初PyTorch由Hugh Perkins开发作为基于Torch框架的LusJIT的Python 包装器。PyTorch在Python中重新设计和实现Torch同时为后端代码共享相同的核心C库。
  • 除了Facebook之外Twitter、GMU和Salesforce等机构都采用了PyTorch。
  • 到目前据统计已有80%的研究采用PyTorch包括Google。

基本概念

  • 张量(Tensor)
    是一个物理量,对高维(维数 ≥ 2)的物理量进行“量纲分析”的一种工具。
    简单的可以理解为:一维数组称为矢量,二维数组为二阶张量,三维数组称为三阶张量…
  • 计算图
    用 “ 结点 ”(nodes)和 “ 线 ”(edges)的有向图来描述数学计算的图像。“ 节点 ” 一般用来表示施加的数学操作,但也可以表示数据输入的起点/输出的终点,或者是读取/写入持久变量的终点。“ 线 ” 表示 “ 节点 ” 之间的输入/输出关系。这些数据 “ 线 ” 可以输运 “ size可动态调整 ” 的多维数据数组,即 “ 张量 ”(tensor)
    在这里插入图片描述
  • 注意
    使用 tensor 表示数据
    使用Dataset、DataLoader读取样本数据和标签
    使用变量(Variable)存储神经网络权值等参数
    使用计算图(Computational Graph)来表示计算任务
    在代码运行过程中同时执行计算图

1.4简单示例

构建简单的计算图,每个节点将零个或多个tensor作为输入,产生一个tensor作为输出。PyTorch中,所见即为所得,tensor的使用和numpy中的多维数组类似:

import torch

x_const = torch.tensor([1.0, 2.0, 3.0])
y = torch.tensor([3.0, 4.0, 5.0])
output 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿健也会编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值