神经网络与深度学习第三周学习总结

目录

第一章 深度学习平台介绍

1.1 深度学习平台简介

1.2 PyTorch简介

1.3 PyTorch基本使用-基本概念

1.3 PyTorch基本使用-简单实例

1.3 基本使用-线性回归

 第二章 卷积神经网络基础

 2.1 进化史

 2.2 基本概念

2.2 学习算法

 第三章 LeNet - 5网络

3.1 网络介绍

3.2 结构详解

 3.3 误差反向传播

3.4 网络结构可视化         

3.5代码实现

第四章 基本卷积神经网络

4.1 AlexNet

4.2 VGG-16


第五部分、卷积神经网络基础

第一章 深度学习平台介绍

1.1 深度学习平台简介

        机器学习可以用于模式识别,数据挖掘,统计学习,计算机视觉,语音识别,自然语言处理等方面。常用的深度学习平台以及他们对应的特点以及支持的系统如下:

         这些平台对应的特点比较如下图所示:

1.2 PyTorch简介

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

1.3 PyTorch基本使用-基本概念

        张量:是一个物理量,对高维 (维数 ≥ 2) 的物理量进行“量纲分析” 的一种工具。简单的可以理解为:一维数组称为矢量,二维数组为二阶张量,三维数组为三阶张量。

        计算图:用“结点”(nodes)和“线”(edges)的有向图来描述数学计算的图像。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入的起点/输出的终点,或者是读取/写入持久变量的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)

                ·使用 tensor 表示数据

                ·使用 Dataset、DataLoader 读取样本数据和标签

                · 使用变量 (Variable) 存储神经网络权值等参数

                ·使用计算图 (computational graph) 来表示计算任务

                ·在代码运行过程中同时执行计算图

1.3 PyTorch基本使用-简单实例

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

1.3 基本使用-线性回归

        给出100个散点样本,可以求出回归方程。

 第二章 卷积神经网络基础

 2.1 进化史

 

 2.2 基本概念

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

         局部连接网络:只有一部分权值链接,部分输入和权值卷积。

        填充:在矩阵的边界上填充一些值,来增加矩阵的大小。

        卷积神经网络结构:由多个卷积层和下采样层构成,后面连接全连接网络

2.2 学习算法

递推:前向传播:

 

 第三章 LeNet - 5网络

3.1 网络介绍

3.2 结构详解

       C1层:6个Feature map构成,每个神经元对输入进行5*5卷积,每个神经元对应5*5+1个参数,一共六个feature map,28*28个神经元,共有(5*5+1)*6*(28*28)=122304个连接。

        S2层:Pooling层                C3层:卷积层

        S4层:与S2层工作相同        C5:120个神经元,对输入进行5*5卷积

        F6层:84个神经元,与C5全连接

        输出层:由欧式径向基函数单元构成,每类一个单元

 3.3 误差反向传播

        经典BP算法

         卷积NN的BP算法:下采样层。

3.4 网络结构可视化         

网络结构可视化:https://adamharley.com/nn_vis/cnn/3d.html

3.5代码实现

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))

第四章 基本卷积神经网络

4.1 AlexNet

        网络说明:网络一共有8层可学习层

        改进:输入样本,最简单通用的图像数据变形的方式

        改进:激活函数:采用ReLU代替Tan Sigmoid,用于卷积层和全连接层之后。

        改进:Dropout:在每个全连接层后面使用一个Dropout层

        改进:双GPU策略:两块显卡只需要在特定的层进行通信

4.2 VGG-16

可视化:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值