反向传播

如何手动优化神经网络模型(附链接)

。_饼干妹妹 提交于 2021-01-02 03:00:38
翻译:陈丹 校对:车前子 本文 约5400字 ,建议阅读 15 分钟 本文是一个教授如何优化神经网络模型的基础教程,提供了具体的实战代码供读者学习和实践。 深度学习的神经网络是采用随机梯度下降优化算法对训练数据进行拟合。 利用误差反向传播算法对模型的权值进行更新。优化和权值更新算法的组合是经过仔细挑选的,是目前已知的最有效的拟合神经网络的方法。 然而,也可以使用交替优化算法将神经网络模型拟合到训练数据集。这是一个有用的练习,可以了解更多关于神经网络的是如何运转的,以及应用机器学习时优化的中心性。具有非常规模型结构和不可微分传递函数的神经网络,也可能需要它。 在本教程中,您将了解如何手动优化神经网络模型的权重。 完成本教程后,您将知道: 如何从头开始开发神经网络模型的正向推理通路。 如何优化二值分类感知器模型的权值。 如何利用随机爬山算法优化多层感知器模型的权值。 我们开始吧。 图源土地管理局,权利归其所有 教程概述 本教程分为三个部分:它们是: 优化神经网络 优化感知器模型 优化多层感知器 优化神经网络 深度学习或神经网络是一种灵活的机器学习。 它们是受大脑结构和功能的启发而来的,由节点和层次组成的模型。神经网络模型的工作原理是将给定的输入向量传播到一个或多个层,以产生可用于分类或回归预测建模的数值输出。 通过反复将模型暴露在输入和输出示例中

独家 | 如何手动优化神经网络模型(附链接)

我怕爱的太早我们不能终老 提交于 2020-12-30 16:57:37
翻译:陈丹 校对:车前子 本文 约5400字 ,建议阅读 15 分钟 本文是一个教授如何优化神经网络模型的基础教程,提供了具体的实战代码供读者学习和实践。 标签:神经网络优化 深度学习的神经网络是采用随机梯度下降优化算法对训练数据进行拟合。 利用误差反向传播算法对模型的权值进行更新。优化和权值更新算法的组合是经过仔细挑选的,是目前已知的最有效的拟合神经网络的方法。 然而,也可以使用交替优化算法将神经网络模型拟合到训练数据集。这是一个有用的练习,可以了解更多关于神经网络的是如何运转的,以及应用机器学习时优化的中心性。具有非常规模型结构和不可微分传递函数的神经网络,也可能需要它。 在本教程中,您将了解如何手动优化神经网络模型的权重。 完成本教程后,您将知道: 如何从头开始开发神经网络模型的正向推理通路。 如何优化二值分类感知器模型的权值。 如何利用随机爬山算法优化多层感知器模型的权值。 我们开始吧。 图源土地管理局,权利归其所有 教程概述 本教程分为三个部分:它们是: 优化神经网络 优化感知器模型 优化多层感知器 优化神经网络 深度学习或神经网络是一种灵活的机器学习。 它们是受大脑结构和功能的启发而来的,由节点和层次组成的模型。神经网络模型的工作原理是将给定的输入向量传播到一个或多个层,以产生可用于分类或回归预测建模的数值输出。 通过反复将模型暴露在输入和输出示例中

用 PyTorch 实现基于字符的循环神经网络

时光总嘲笑我的痴心妄想 提交于 2020-12-20 08:05:29
在过去的几周里,我花了很多时间用 PyTorch 实现了一个 char-rnn 的版本。我以前从未训练过神经网络,所以这可能是一个有趣的开始。 这个想法(来自 循环神经网络的不合理效应 )可以让你在文本上训练一个基于字符的循环神经网络recurrent neural network(RNN),并得到一些出乎意料好的结果。 不过,虽然没有得到我想要的结果,但是我还是想分享一些示例代码和结果,希望对其他开始尝试使用 PyTorch 和 RNN 的人有帮助。 这是 Jupyter 笔记本格式的代码: char-rnn in PyTorch.ipynb 。你可以点击这个网页最上面那个按钮 “Open in Colab”,就可以在 Google 的 Colab 服务中打开,并使用免费的 GPU 进行训练。所有的东西加起来大概有 75 行代码,我将在这篇博文中尽可能地详细解释。 第一步:准备数据 首先,我们要下载数据。我使用的是古登堡项目Project Gutenberg中的这个数据: Hans Christian Anderson’s fairy tales 。 !wget -O fairy-tales.txt 这个是准备数据的代码。我使用 fastai 库中的 Vocab 类进行数据处理,它能将一堆字母转换成“词表”,然后用这个“词表”把字母变成数字。 之后我们就得到了一个大的数字数组(

【AI in 美团】深度学习在文本领域的应用

大憨熊 提交于 2020-12-18 03:44:34
背景 近几年以深度学习技术为核心的人工智能得到广泛的关注,无论是学术界还是工业界,它们都把深度学习作为研究应用的焦点。而深度学习技术突飞猛进的发展离不开海量数据的积累、计算能力的提升和算法模型的改进。本文主要介绍深度学习技术在文本领域的应用,文本领域大致可分为4个维度:词、句子、篇章、系统级应用。 词。分词方面,从最经典的前后向匹配到条件随机场(Conditional Random Field,CRF)序列标注,到现在Bi-LSTM+CRF模型,已经不需要设计特征,从字粒度就能做到最好的序列标注效果,并且可以推广到文本中序列标注问题上,比如词性标注和专门识别等。 句子。Parser方面,除词粒度介绍的深度学习序列标注外,还可以使用深度学习模型改善Shift-Reduce中间分类判断效果;句子生成方面,可以通过序列到序列(Seq2Seq)模型训练自动的句子生成器,可用于闲聊或者句子改写等场景。 篇章。情感分析方面,可以使用卷积神经网络对输入文本直接建模预测情感标签;阅读理解方面,可以设计具有记忆功能的循环神经网络来做阅读理解,这个也是近年非常热的研究问题。 系统级应用。信息检索方面,把深度学习技术用在文本匹配做相似度计算,可以通过BOW、卷积神经网络或循环神经网络表示再学习匹配关系(如DSSM系列),还有使用DNN做排序模型(如Google的Wide & Deep等,后面会重点介绍)

【PyTorch】PyTorch中的梯度累加

一笑奈何 提交于 2020-12-06 12:40:20
PyTorch中的梯度累加 使用PyTorch实现梯度累加变相扩大batch PyTorch中在反向传播前为什么要手动将梯度清零? - Pascal的回答 - 知乎 https://www.zhihu.com/question/303070254/answer/573037166 这种模式可以让梯度玩出更多花样,比如说梯度累加(gradient accumulation) 传统的训练函数,一个batch是这么训练的: for i,(images,target) in enumerate(train_loader): # 1. input output images = images.cuda(non_blocking=True) target = torch.from_numpy(np.array(target)).float().cuda(non_blocking=True) outputs = model(images) loss = criterion(outputs,target) # 2. backward optimizer.zero_grad() # reset gradient loss.backward() optimizer.step() 获取loss:输入图像和标签,通过infer计算得到预测值,计算损失函数; optimizer.zero_grad()

白话Xavier | 神经网络初始化的工程选择

人走茶凉 提交于 2020-12-04 07:14:55
插播一个小新闻:最近建立了交流群~欢迎回复【加群】加入~ “Xavier”初始化方法是一种很有效的神经网络初始化方法,方法来源于2010年的一篇论文《Understanding the difficulty of training deep feedforward neural networks》。 论文的链接在这里:https://machinelearning.wustl.edu/mlpapers/paper_files/AISTATS2010_GlorotB10.pdf PyTorch代码 在介绍论文和理论之前,先讲一下如何使用在PyTorch中使用Xavier初始化: def _initialize_weights (self) : # print(self.modules()) for m in self.modules(): print(m) if isinstance(m, nn.Linear): # print(m.weight.data.type()) # input() # m.weight.data.fill_(1.0) init.xavier_uniform_(m.weight, gain= 1 ) print(m.weight) 通俗讲理论 论文提出的Xavier的主要思想: 每一层输出的方差应该尽量相等 。 前向传播 下面进行推导:

一文速览EMNLP 2020中的Transformer量化论文

怎甘沉沦 提交于 2020-11-27 09:02:37
花了几天看了三篇EMNLP 2020中关于Transformer模型量化的相关论文,快速记一下要点。 Fully Quantized Transformer for Machine Translation 这篇是华为诺亚方舟实验室和蒙特利尔大学合作的,发表在findings上面。 「论文地址:」 https://www. aclweb.org/anthology/20 20.findings-emnlp.1.pdf 方法 针对Transformer结构的计算密集型算子进行了activation量化,除了bias以外的所有weight进行了量化,这一点其实我们组也都做过了。 采用的是量化感知训练(QAT),反向传播采用的是straight-through estimator。 考虑到每个channel的分布有差异,因此针对每个channel单独学习量化的scale参数。 零值的处理:padding无需考虑,反正会被mask掉。ReLU和attention softmax之后的量化强制定义量化下界为0。量化全部加在dropout之前。 剪枝采用结构化剪枝,因为稀疏性剪枝需要硬件或库支持,比较麻烦。这里只对FFN参数进行剪枝,而且不是采用传统的百分比阈值,而是根据ReLU之后值计算出第一层FFN输出的每一列的max值,根据max值是否超过一定阈值来剪枝

一文读懂YOLO V5 与 YOLO V4

自闭症网瘾萝莉.ら 提交于 2020-11-27 05:46:55
YOLO之父Joseph Redmon在今年年初宣布退出计算机视觉的研究的时候,很多人都以为目标检测神器YOLO系列就此终结。然而在4月23日,继任者YOLO V4却悄无声息地来了。Alexey Bochkovskiy发表了一篇名为YOLOV4: Optimal Speed and Accuracy of Object Detection的文章。YOLO V4是YOLO系列一个重大的更新,其在COCO数据集上的平均精度(AP)和帧率精度(FPS)分别提高了10% 和12%,并得到了Joseph Redmon的官方认可,被认为是当前最强的实时对象检测模型之一。 正当计算机视觉的从业者们正在努力研究YOLO V4的时候,万万没想到,有牛人不服。6月25日,Ultralytics发布了YOLOV5 的第一个正式版本,其性能与YOLO V4不相伯仲,同样也是现今最先进的对象检测技术,并在推理速度上是目前最强。 从上图的结果可以看出,YOLO V5确实在对象检测方面的表现非常出色,尤其是YOLO V5s 模型140FPS的推理速度非常惊艳。 YOLO V5和V4集中出现让很多人都感到疑惑,一是YOLO V5真的有资格能被称作新一代YOLO吗?二是YOLO V5的性能与V4相比究竟如何,两者有啥区别及相似之处? 在本文中我会详细介绍YOLO V5和YOLO V4的原理,技术区别及相似之处

两层神经网络的实现(含relu激励方程的反向传播推导过程)

孤者浪人 提交于 2020-11-24 12:36:23
神经网络的典型处理如下所示: 定义可学习参数的网络结构(堆叠各层和层的设计); 数据集的制作和输入; 对输入进行处理(由定义的网络层进行处理),主要体现在网络的前向传播; 计算loss ,由Loss层计算; 反向传播求梯度; 根据梯度改变参数值,最简单的实现方式(SGD)为: weight = weight - learning_rate * gradient 使用pytorch和auto_grad(torch自动求导功能): import torch #import numpy #from torch.autograd import Variable EPOCH = 500 LEARNING_RATE = 1e - 6 N , D_in , H , D_out = 64 , 1000 , 100 , 10 # N代表的是样本个数,D_in是样本的维度,H是隐藏层的维度,D_out是输出层的维度 X = torch . randn ( N , D_in ) Y = torch . randn ( N , D_out ) # 先用随机值初始化两层神经网络的权重 w1 = torch . randn ( D_in , H , requires_grad = True ) w2 = torch . randn ( H , D_out , requires_grad = True ) ""

中国AI技术领先,是因为数学好?美国杂志直指中美数学教育差距

守給你的承諾、 提交于 2020-11-23 06:24:50
机器之心报道 参与:蛋酱、泽南 转载自公众号:机器之心 美国 CS 专业超过 64% 博士生和近 70% 的硕士生是留学生,数学博士学位有一半授予了非美国公民,中国和印度学生占大部分。 上个星期,一位华人留学生题为「亚洲人数学能力其实很差?」的视频登上了热搜。 「知其然而不知所以然,他们仅仅擅长使用而不追求真理。」这名女生认为大多数亚洲人学习数学时注重运用却不关心原理推导,论据有一定的道理,不过结论引发了不少人的吐槽。 很快,博主「他们都叫我雪姨」新发布了一个视频向大家道歉,表示个人经历不能指代群体,有关亚洲人数学很差的言论十分不正确。在应试教育为主,升学压力很大的国内,如果说学生们花费如此大的精力却不能把一门学科学明白,确实非常可怕,数学是当代高等教育最重要的基础是有目共睹的。 7 月份,2020 阿里巴巴全球数学竞赛结束 ,活动创办者马云如此评价数学的重要性。 有趣的是,在数学水平太差这件事上,大洋彼岸的美国人和我们有着同样的担忧。在亚洲人数学很差的视频在国内流行的同时,美国《国家利益杂志》刊载了一篇文章给出了完全相反的观点:因为中国人数学好,在人工智能领域里中国正在逐渐成为决定性力量。 这篇报道在开篇即提到:「忘记人工智能本身吧,它只是一个数学问题。美国没有培养出足够擅长数学的公民,因此无法保持统治地位。」 以下为美国《国家利益杂志》报道的主要内容: