pytorch基础 神经网络构建

这篇具有很好参考价值的文章主要介绍了pytorch基础 神经网络构建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

www.ai-xlab.com
AI MOOC
Torch介绍
Torch是一个开源的机器学习的框架,早在2002年就发
布了Torch的初版,Torch的编程语言为C和Lua。如今
的Torch7依旧是热门的深度学习框架之一。 www.ai-xlab.com
AI MOOC
PyTorch介绍
PyTorch是在2017年1月由Facebook推出的。它是经
典机器学习库Torch框架的一个端口,主要编程语言为
python。
PyTorch“曾经”的优点是动态图
PyTorch现在的优点是开源代码和开源社区 www.ai-xlab.com
AI MOOC
各种深度学习框架介绍
Torch: 2002年发布,早期的机器学习框架。
Theano: 2008年开发,第一个影响力较大的python深度学习框架。
CNTK: 2016年1月由微软公司开源,在语音领域效果比较突出。
TensorFlow: 2015年11月Google开源,目前最热门深度学习框架之一。
Keras: 以Theano/Tensorflow/CNTK作为底层,最容易使用的深度学习框架。
Caffe/Caffe2: 2013年开源的C++深度学习框架,曾经计算机视觉领域的王者。
MXNet: 2015年发布,AWS云计算的官方深度学习平台。
Paddle: 2016年8月开源的百度深度学习框架。
PyTorch: 2017年开源,Torch的python版本,目前最有潜力,最热门的深度学
习框架之一。 www.ai-xlab.com
AI MOOC
安装 url    PyTorch    PyTorch
www.ai-xlab.com
AI MOOC
MNIST数据集介绍
2 www.ai-xlab.com
AI MOOC
MNIST数据集
MNIST数据集官网: Yann LeCun’s Website
下载下来的数据集被分成两部分:60000行的训练数据集(mnist.train)和
10000行的测试数据集(mnist.test) www.ai-xlab.com
AI MOOC
MNIST的数据
一张图片包含28*28个像素,我们把这一个数组展开成一个向量,长度是28*28=784。
如果把数据用矩阵表示,可以把MNIST训练数据变成一个形状为 [60000, 784] 的矩阵,
第一个维度数字用来索引图片,第二个维度数字用来索引每张图片中的像素点。图片里
的某个像素的强度值介于0-1之间。 www.ai-xlab.com
AI MOOC
MNIST的数据 www.ai-xlab.com
AI MOOC
独热编码(one-hot)
MNIST数据集的标签是介于0-9的数字,我们要把标签转化为“one-hot
vectors”。一个one-hot向量除了某一位数字是1以外,其余维度数字都是0,
比如标签0将表示为([1,0,0,0,0,0,0,0,0,0]),标签3将表示为
([0,0,0,1,0,0,0,0,0,0]) 。
因此,可以把MNIST训练集的标签变为 [60000, 10] 的矩阵。 www.ai-xlab.com
AI MOOC
Softmax函数介绍
3 www.ai-xlab.com
AI MOOC
Softmax激活函数
在多分类问题中,我们通常会使用softmax函数作为网络输出层的激活函数,
softmax函数可以对输出值进行归一化操作,把所有输出值都转化为概率,所有概率
值加起来等于1,softmax的公式为:
𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑥ሻ 𝑖 =
ex p( 𝑥
𝑖
σ 𝑗
ex p( 𝑥
𝑗 www.ai-xlab.com
AI MOOC
Softmax计算例子
例如某个神经网络有3个输出值,为[1,5,3]。
计算e1=2.718,e5=148.413,e3=20.086,e1+e5+e3=171.217。
p1 = 𝑒
1
𝑒 1 +
𝑒
5 +𝑒 3 = 0.016 p2 = 𝑒
5
𝑒 1 +
𝑒
5 +𝑒 3 = 0.867 p3 = 𝑒
3
𝑒 1 +
𝑒
5 +𝑒 3 = 0.117
所以加上softmax函数后数值变成了[0.016,0.867,0.117]。
例如手写数字识别的网络最后的输出结果本来是:
[-0.124, -4.083, -0.62, 0.899, -1.193, -0.701, -2.834, 6.925, -0.332, 2.064],
加上softmax函数后会变成:
[0.001, 0.0, 0.001, 0.002, 0.0, 0.0, 0.0, 0.987, 0.001, 0.008]。 www.ai-xlab.com
AI MOOC
交叉熵
4 www.ai-xlab.com
AI MOOC
二次代价函数
二次代价函数:
激活函数的梯度f’(z)越大,w的大小调整得越快,训练收敛得就越
快。激活函数的梯度f’(z)越小,w的大小调整得越慢,训练收敛得
就越慢。 www.ai-xlab.com
AI MOOC
二次代价函数
以一个二分类问题为例,进行两组实验。输入同一个样本数据x=1.0,该样本对应
的分类为y=0,使用sigmoid激活函数。 www.ai-xlab.com
AI MOOC
二次代价函数 www.ai-xlab.com
AI MOOC
交叉熵(Cross-Entropy)
换一个思路,我们不改变激活函数,而是改变代价函数,
该用交叉熵代价函数:
对于sigmoid函数: www.ai-xlab.com
AI MOOC
过拟合
5 www.ai-xlab.com
AI MOOC
回归拟合
欠拟合(Underfitting)
正确拟合(Just right)
过拟合(Overfitting) www.ai-xlab.com
AI MOOC
分类拟合
x 1
x 2
x 1
x 2
x 1
x 2
欠拟合(Underfitting)
正确拟合(Just right)
过拟合(Overfitting) www.ai-xlab.com
AI MOOC
过拟合导致测试误差变大 www.ai-xlab.com
AI MOOC
防止过拟合
6 www.ai-xlab.com
AI MOOC
增大数据集
数据挖掘领域流行着这样一句话,“有时候拥有更多的数据胜过一个
好的模型”。一般来说更多的数据参与训练,训练得到的模型就越好。
如果数据太少,而我们构建的神经网络又太复杂的话就比较容易产生
过拟合的现象。 www.ai-xlab.com
AI MOOC
增大图片数据集
1.随机裁剪
2.水平翻转
3.光照颜色抖动 www.ai-xlab.com
AI MOOC
Early stopping
在训练模型的时候,我们往往会设置一个比较大的迭代次数。Early
stopping便是一种提前结束训练的策略用来防止过拟合。
一般的做法是记录到目前为止最好的validation accuracy,当连续10个
Epoch没有达到最佳accuracy时,则可以认为accuracy不再提高了。此
时便可以停止迭代了(Early Stopping)。 www.ai-xlab.com
AI MOOC
Dropout www.ai-xlab.com
AI MOOC
正则化项
C0代表原始的代价函数,n代表样本的个数,λ就是正则项系数,
权衡正则项与C0项的比重。
L1正则化:
L2正则化:
L1正则化可以达到模型参
数稀疏化的效果
L2正则化可以使得模型的权
值衰减,使模型参数值都接
近于0。 www.ai-xlab.com
AI MOOC
正则化项 www.ai-xlab.com
AI MOOC
优化器
7 www.ai-xlab.com
AI MOOC
Adadelta
Adagrad
Adam
Adamax
AdamW
ASGD
LBFGS
RMSprop
Rprop
SGD
SparseAdam
优化器 www.ai-xlab.com
AI MOOC
优化器 www.ai-xlab.com
www.ai-xlab.com
AI MOOC
卷积神经网络CNN
1 www.ai-xlab.com
AI MOOC
卷积神经网络是近年发展起来,并广泛应用于图像处理,NLP等领域的一
种多层神经网络。
传统BP处理图像时的问题:
1.权值太多,计算量太大
2.权值太多,需要大量样本
进行训练。
CNN www.ai-xlab.com
AI MOOC
1962年哈佛医学院神经生理学家Hubel和Wiesel通过对猫视觉皮层细
胞的研究,提出了感受野(receptive field)的概念,1984年日本学者
Fukushima基于感受野概念提出的神经认知机(neocognitron)可以看
作是卷积神经网络的第一个实现网络,也是感受野概念在人工神经网
络领域的首次应用。
局部感受野 www.ai-xlab.com
AI MOOC
CNN通过 局部感受野 权值共享 减少了神经网络需要训练的参数个数
局部感受野和权值共享 www.ai-xlab.com
AI MOOC
1*1+1*0+1*1+0*0+1*1+1*0+0*1+0*0+1*1 = 4
特征图:feature map
卷积核/滤波器
卷积计算 www.ai-xlab.com
AI MOOC
步长为1
步长为2
不同步长的卷积 www.ai-xlab.com
AI MOOC
滤波器 www.ai-xlab.com
AI MOOC
Pooling常用的三种方式:
1.max-pooling
2.mean-pooling
3.stochastic pooling
池化Pooling www.ai-xlab.com
AI MOOC
SAME PADDING:
给平面外部补0
卷积窗口采样后得到一个跟原来大小相同的平面
VALID PADDING:
不会超出平面外部
卷积窗口采样后得到一个比原来平面小的平面
VALID PADDING
SAME PADDING
Padding www.ai-xlab.com
AI MOOC
SAME PADDING
VALID PADDING
Padding www.ai-xlab.com
AI MOOC
SAME PADDING:可能会给平面外部补0
VALID PADDING:不会超出平面外部
假如有一个28*28的平面,用2*2步长为2的窗口对其进行卷积/池化操作
使用SAME PADDING的方式,得到14*14的平面
使用VALID PADDING的方式,得到14*14的平面
假如有一个2*3的平面,用2*2步长为2的窗口对其进行卷积/池化操作
使用SAME PADDING的方式,得到1*2的平面
使用VALID PADDING的方式,得到1*1的平面
Padding www.ai-xlab.com
AI MOOC
LeNET-5 是最早的卷积神经网络之一,曾广泛用于美国银行。手写
数字识别正确率在99%以上。
卷积窗口:5*5
步长:1
池化窗口:2*2
步长:2
卷积窗口:5*5
步长:1
池化窗口:2*2
步长:2
卷积层
池化层 卷积层
池化层
输入层
全链接层 全链接层
输出层
LeNET-5 www.ai-xlab.com
AI MOOC
可视化:
http://scs.ryerson.ca/~aharley/vis/conv/
http://scs.ryerson.ca/~aharley/vis/conv/flat.html
LeNET-5 www.ai-xlab.com
AI MOOC
ImageNet介绍
2 www.ai-xlab.com
AI MOOC
ImageNet是一个计算机视觉系统识别项目,是目前世界上图像识别最大
的数据库。一共有1500万张左右的图片,被分为22000个左右的类。是
由斯坦福教授李飞飞领导建立的。
TED演讲:我们怎么教计算机理解图片?
ImageNet www.ai-xlab.com
AI MOOC
1976年出生于北京,长在四川,16岁随父母移居美国新泽西州。
1999年毕业于普林斯顿大学,2005年获得加州理工学院电子工程博士。
2009年加入斯坦福大学担任助理教授,并于2012年担任副教授(终生教授),和
斯坦福人工智能实验室与视觉实验室主任。
2017年1月入职Google,担任谷歌云首席科学家
2018年9月卸任谷歌云首席科学家,回归斯坦福大学当教授。
李飞飞 www.ai-xlab.com
AI MOOC
ILSVRC:ImageNet Large Scale Visual Recognition Challenge
ILSVRC www.ai-xlab.com
AI MOOC
ILSVRC:ImageNet Large Scale Visual Recognition Challenge
ILSVRC www.ai-xlab.com
AI MOOC
序列模型
3 www.ai-xlab.com
AI MOOC
RNN(Recurrent Neural Network)
1986年 Rumelhart 等人提出循环神经网络(recurrent neural network),简称RNN。RNN
跟我们之前学习过的神经网络都不太一样,它是一种序列模型。比如卷积网络是专门用来处
理网格化数据(例如图像数据)的神经网络,RNN是专门用来处理序列数据的神经网络。所
谓的序列数据指的是跟序列相关的数据,比如一段语音,一首歌曲,一段文字,一段录像等。 www.ai-xlab.com
AI MOOC
序列模型应用:语音识别
把语音转换成为文字 www.ai-xlab.com
AI MOOC
序列模型应用:文本分类
把文章,邮件或用户评论等文本数据做分类 www.ai-xlab.com
AI MOOC
序列模型应用:机器翻译
例如把中文翻译成英文 www.ai-xlab.com
AI MOOC
序列模型应用:分词标注
给一段文字做分词标注,标注每个字对应的标号。假如使用4-tag(BMES)标注标签,
B表示词的起始位置,M表示词的中间位置,E表示词的结束位置,S表示单字词。
可以得到类似如下结果:
“人/B 们/E 常/S 说/S 生/B 活/E 是/S 一/S 部/S 教/B 科/M 书/E ” www.ai-xlab.com
AI MOOC
RNN(Recurrent Neural Network) www.ai-xlab.com
AI MOOC
RNN(Recurrent Neural Network)
隐层 h t 接收的是上时刻的隐层(hidden layer)
h t−1
还是上时刻的输出(output layer)y t−1
可以分成了两种 RNN:
Elman network 接收上时刻的隐层 h t−1
Jordan network 接收上时刻的输出 y t−1 www.ai-xlab.com
AI MOOC
RNN一个重要的用法就是通过之前的信息来决策当前的问题。
比如就像我们看电影,我们要根据电影之前的情节,才能理解现在的情节。
例子1:有一朵云飘在()
例子2:我从小生长在美国。。。我可以说一口流利的()
RNN(Recurrent Neural Network) www.ai-xlab.com
AI MOOC
RNN(Recurrent Neural Network) www.ai-xlab.com
AI MOOC
长短时记忆网络LSTM
4 www.ai-xlab.com
AI MOOC
i t 输入门信号
f t 忘记门信号
𝑐 𝑡 Cell输入信号
c t Cell输出信号
o t 输出门信号
h t block输出信号
x t 第t个序列输入
h t-1 第t-1个序列输出
σ g sigmoid函数
σ c tanh函数
σ h tanh函数或线性函数
LSTM(Long Short Term Memory) www.ai-xlab.com
AI MOOC
Peephole LSTM
和之前的公式做比较,发现只是把 h t−1 都换成
了 c t−1 ,即三个门的输入都改成了 [x t ,c t−1 ] 。因
为是从 cell state 里取得信息,所以叫窥视孔(
peephole)。 www.ai-xlab.com
AI MOOC
FC-LSTM(Fully-connected LSTM )
三个输入分别是 [x t ,h t−1 ,c t−1 ] www.ai-xlab.com
AI MOOC
LSTM(Long Short Term Memory) www.ai-xlab.com
AI MOOC
LSTM(Long Short Term Memory) www.ai-xlab.com
AI MOOC
门控循环单元GRU
5 www.ai-xlab.com
AI MOOC
GRU(Gated Recurrent Unit)
GRU 这个结构是 2014 年才出现的,效果跟
LSTM差不多,但是用到的参数更少。将忘记
门和输入门合成了一个单一的更新门。
z t 是更新门(update gate),决定h t 的更新情况
r t 是重置门(reset gate),决定是否要放弃h t-1
𝑡 是候选输出,接收 [x t ,h t−1 ]
h t 是当前输出,接收 [h t−1 ,
𝑡 ] www.ai-xlab.com
AI MOOC
其他RNN模型
6 www.ai-xlab.com
AI MOOC
双向RNN(Bidirectional RNNs)
双向的 RNN 是同时考虑“过去”和“未来”的信息,输入(黑色点)沿着黑色的实线箭
头传输到隐层(黄色点),再沿着红色实线传到输出(红色点)。黑色实线做完前向传播
后,在 Bidirectional RNNs 却先不急着后向传播,而是从末尾的时刻沿着虚线的方向再回
传回来。 www.ai-xlab.com
AI MOOC
Stacked Bidirectional RNNs
图中是双向的三层 RNNs,堆叠多层的RNN网络,可以增加模型的参数,提高模型的拟合
能力。每层的 hidden state 不仅要输给下一时刻,还是当做是此时刻下一层的输入。 www.ai-xlab.com
AI MOOC
THANKS

文章来源地址https://www.toymoban.com/news/detail-811030.html

到了这里,关于pytorch基础 神经网络构建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【人工智能概论】 构建神经网络——以用InceptionNet解决MNIST任务为例

    两条原则,四个步骤。 从宏观到微观 把握数据形状 准备数据 构建模型 确定优化策略 完善训练与测试代码 InceptionNet的设计思路是通过增加网络宽度来获得更好的模型性能。 其核心在于基本单元Inception结构块,如下图: 通过纵向堆叠Inception块构建完整网络。 MNIST是入门级的

    2023年04月20日
    浏览(52)
  • pytorch基础 神经网络构建

    www.ai-xlab.com AI MOOC Torch介绍 Torch是一个开源的机器学习的框架,早在2002年就发 布了Torch的初版,Torch的编程语言为C和Lua。如今 的Torch7依旧是热门的深度学习框架之一。 www.ai-xlab.com AI MOOC PyTorch介绍 PyTorch是在2017年1月由Facebook推出的。它是经 典机器学习库Torch框架的一个端口,

    2024年01月21日
    浏览(47)
  • 人工智能学习与实训笔记(一):零基础理解神经网络

    人工智能专栏文章汇总:人工智能学习专栏文章汇总-CSDN博客 本篇目录 一、什么是神经网络模型 二、机器学习的类型 2.1 监督学习 2.2 无监督学习 2.3 半监督学习 2.4 强化学习 三、网络模型结构基础 3.1 单层网络 ​编辑 3.2 多层网络 3.3 非线性多层网络  四、 神经网络解决回

    2024年02月20日
    浏览(43)
  • 【人工智能的数学基础】使用Mitchell近似构造加法神经网络

    使用Mitchell近似构造加法神经网络. paper:Deep Neural Network Training without Multiplications arXiv:link 本文通过 Mitchell 近似算法将乘法运算转变为加法运算,从而降低了神经网络中的乘法的运算量。 Mitchell 近似是一种在二进制下近似的 快速对数 和 指数 计算方法。对于一个十进制的非

    2024年02月07日
    浏览(78)
  • 人工智能学习与实训笔记(四):神经网络之NLP基础—词向量

    人工智能专栏文章汇总:人工智能学习专栏文章汇总-CSDN博客 本篇目录 四、自然语言处理 4.1 词向量 (Word Embedding) 4.1.1 词向量的生成过程 4.1.2 word2vec介绍 4.1.3 word2vec:skip-gram算法的实现 4.2 句向量 - 情感分析 4.2.1 LSTM (Long Short-Term Memory)介绍 4.2.2 基于飞桨实现的情感分析模型

    2024年02月20日
    浏览(54)
  • 【人工智能】实验五 采用卷积神经网络分类MNIST数据集与基础知识

    熟悉和掌握 卷积神经网络的定义,了解网络中卷积层、池化层等各层的特点,并利用卷积神经网络对MNIST数据集进行分类。 编写卷积神经网络分类软件,编程语言不限,如Python等,以MNIST数据集为数据,实现对MNIST数据集分类操作,其中MNIST数据集共10类,分别为手写0—9。

    2024年02月04日
    浏览(64)
  • 深度学习基础——通过PyTorch构建神经网络实现1维/2维序列分类

    通过PyTorch构建前馈神经网络,并对二维数据点进行分类。在该例子当中,所有的训练数据和测试数据都是通过高斯混合模型GMM生成的: 更换使用循环神经网络RNN模型,进行1维序列分类任务。 为了简化问题,我们假定: 序列的长度是固定的。我们将其长度设为T=4。 我们只有

    2024年02月11日
    浏览(44)
  • 人工智能-神经网络

    目录 1 神经元 2 MP模型 3 激活函数       3.1 激活函数       3.2 激活函数作用       3.3 激活函数有多种 4、神经网络模型 5、神经网络应用 6、存在的问题及解决方案 6.1 存在问题 6.2 解决方案-反向传播        神经元是主要由 树突、轴突、突出 组成, 树突 是从上面接收很

    2024年02月16日
    浏览(61)
  • 人工智能 -- 神经网络

    什么是人工智能?通俗来讲,就是让机器能像人一样思考。这个无需解释太多,因为通过各种科幻电影我们已经对人工智能很熟悉了。大家现在感兴趣的应该是——如何实现人工智能? 从1956年夏季首次提出“人工智能”这一术语开始,科学家们尝试了各种方法来实现它。这

    2024年02月05日
    浏览(59)
  • 人工智能神经网络概念股,神经网络芯片概念股

    人工智能包含硬件智能、软件智能和其他。 硬件智能包括:汉王科技、康力电梯、慈星股份、东方网力、高新兴、紫光股份。 软件智能包括:金自天正、科大讯飞。 其他类包括:中科曙光、京山轻机。 谷歌人工智能写作项目:小发猫 1、苏州科达:苏州科达科技股份有限公

    2024年02月07日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包