【深度学习与神经网络】【二】学习笔记

卷积神经网络基础

深度学习

起因

全连接网络:链接权过多,算的慢,难收敛,同时可能进入局部极小值,也容易产生过拟合问题。

<解决方案>
局部连接网络:减少权值连接,每一个节点只连到上一层的少数神经元。
在这里插入图片描述
解决难收敛、算的慢问题:权值过多极易产生过拟合。如何消除?
回想人类解决思路:信息分层处理,每一层在上层提取特征的基础上获取进行再处理,得到更高级别的特征。

深度学习平台

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

pytorch

张量:是一个物理量,对高维(维数>2)的物理量进行”量纲分析“的一种工具。

计算图:PyTorch中的计算图是一种用于追踪和记录张量(tensor)之间复杂数学运算的机制。在深度学习和自动微分背景下,计算图是实现反向传播算法的关键工具,它可以自动计算所有中间变量的梯度,从而简化了模型参数的更新过程。

具体来说,计算图是由一系列张量和操作(或函数)构成的有向无环图(DAG),其中:

节点(Nodes):代表张量或者执行的运算。在PyTorch中,每个张量对象都有自己的属性,比如requires_grad,如果这个属性被设置为True,则意味着当这个张量参与计算时,它的梯度将会被跟踪。

边(Edges):连接节点,表示从一个张量到另一个张量的操作关系。例如,如果有一个加法操作 c = a + b,则会有两个节点分别对应 a 和 b,以及一个加法操作的节点 c,边会从 a 和 b 节点指向 c 节点。

动态图机制:PyTorch的核心特征之一就是动态计算图。这意味着每次执行代码时都会重新构建计算图,允许用户在运行时自由地修改和重塑计算流程。当Python代码执行时,计算图按需实时构建,不需要预先定义整个计算流程。

自动微分:在动态图模式下,PyTorch可以追踪并记录每一步操作,当调用.backward()方法时,它能按照逆向传播算法自动生成损失函数关于模型参数的梯度。计算图在背后默默地记录着每一层的输出依赖于哪些输入和权重,从而能够高效地计算出这些参数的梯度。
在这里插入图片描述

卷积神经网络

特征提取

在这里插入图片描述
图像卷积时,根据定义,需要首先把卷积核上下左右转置。此处
卷积核(黄色)是对称的,所以忽视。
填充:也就是在矩阵的边界上填充一些值,以增加矩阵的大小,通常用0或者复制边界像素来进行填充。
步长:每次移动的像素数
池化:使用局部统计特征,如均值或最大值。解决特征过多问题
在这里插入图片描述

结构

构成:由多个卷积层和下采样层构成,后面可连接全连接网络
卷积层:k个滤波器
下采样层:采用mean或max
前向传播:
在这里插入图片描述
如果第l层为卷积+池化层,则为:
在这里插入图片描述

卷积网络BP算法

卷积层+卷积层:
在这里插入图片描述

卷积层+全连接层:
在这里插入图片描述

网络的提出-Lenet-5

网络结构:
在这里插入图片描述

在这里插入图片描述
与现在网络的区别 :

①卷积时不进行填充(padding)

②池化层选用平均池化而非最大池化

③选用Sigmoid或tanh而非ReLU作为非线性环节激活函数

④层数较浅,参数数量小(约为6万)

普遍规律:随网络深入,宽、高衰减,通道数增加。

代码实现:

import torch
from torch import nn
from d2l import torch as d2l
class Reshape(torch.nn.Module):
def forward(self, x):
return x.view(-1, 1, 28, 28)
net = torch.nn.Sequential(
Reshape(),
nn.Conv2d(1, 6, kernel_size=5, padding=2), nn.Sigmoid(),
nn.AvgPool2d(kernel_size=2, stride=2),
nn.Conv2d(6, 16, kernel_size=5), nn.Sigmoid(),
nn.AvgPool2d(kernel_size=2, stride=2),
nn.Flatten(),
nn.Linear(16 * 5 * 5, 120), nn.Sigmoid(),
nn.Linear(120, 84), nn.Sigmoid(),
nn.Linear(84, 10))

基本卷积神经网络 AlexNet

网络结构:
在这里插入图片描述
说明:网络一共有8层可学习层——5层卷积层和3层全连接层
改进:
-池化层均采用最大池化
-选用ReLU作为非线性环节激活函数
-网络规模扩大,参数数量接近6000万
-出现“多个卷积层+一个池化层”的结构
普遍规律:
-随网络深入,宽、高衰减,通道数增加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值