神经网络

NLP三大特征提取器全梳理:RNN vs CNN vs Transformer

血红的双手。 提交于 2020-08-19 11:12:35
  机器之心原创    编辑:陈萍    在进行 NLP 模型训练前,请先选择一个好的特征提取器。      在上一篇文章中我们介绍了自然语言处理的基础问题——文本预处理的常用步骤。本文将进阶讲述特征提取方面的相关算法。   如果用一句话总结目前 NLP 在特征提取方面的发展趋势,那就是「RNN 明日黄花,正如夕阳产业,慢慢淡出舞台;CNN 老骥伏枥,志在千里,如果继续优化,还可能会大放异彩;Transformer 可谓如日中天,在特征提取方面起着中流砥柱的作用」。至于将来,又会有什么算法代替 Transformer,成为特征提取界的新晋宠儿。我想一时半会儿可能不会那么快,毕竟算法开发可是个很漫长的过程。   现在我们就来探究一下,在 NLP 特征提取方面,算法是怎样做到一浪更比一浪强的。    RNN(循环神经网络)   RNN 与 CNN(卷积神经网络)的关键区别在于,它是个序列的神经网络,即前一时刻的输入和后一时刻的输入是有关系的。    RNN 结构   下图是一个简单的循环神经网络,它由输入层、隐藏层和输出层组成。      RNN 的主要特点在于 w 带蓝色箭头的部分。输入层为 x,隐藏层为 s,输出层为 o。U 是输入层到隐藏层的权重,V 是隐藏层到输出层的权重。隐藏层的值 s 不仅取决于当前时刻的输入 x,还取决于上一时刻的输入。权重矩阵 w

推荐题

风流意气都作罢 提交于 2020-08-19 05:49:57
未完待续 校内OJ上出现过的,过水的,大家基本都做过的不在推荐范围内 星级仅代表个人对题目的评价,不完全代表题目难度,仅供参考 把大家所有人的推荐题开了题单QAQ 洛谷上开的题单A 洛谷上开的题单B 组题不易给波收藏吧QAQ Tarjan Grass Cownoisseur G \({\color{#8B0000} \bigstar}{\color{#8B0000} \bigstar}{\color{#8B0000} \bigstar}\) 嗅探器 \({\color{#8B0000} \bigstar}{\color{#8B0000} \bigstar}\) Trick or Treat on the Farm G \({\color{#8B0000} \bigstar}\) 拓扑排序 菜肴制作 \({\color{#8B0000} \bigstar}{\color{#8B0000} \bigstar}\) 车站分级 \({\color{#8B0000} \bigstar}{\color{#8B0000} \bigstar}\) 神经网络 \({\color{#8B0000} \bigstar}{\color{#8B0000} \bigstar}\) 二分 路标设置 \({\color{#8B0000} \bigstar}\) 跳石头 \({\color{#8B0000}

GAN网络从入门教程(二)之GAN原理

十年热恋 提交于 2020-08-19 05:30:12
在一篇博客 GAN网络从入门教程(一)之GAN网络介绍 中,简单的对GAN网络进行了一些介绍,介绍了其是什么,然后大概的流程是什么。 在这篇博客中,主要是介绍其数学公式,以及其算法流程。当然数学公式只是简单的介绍,并不会设计很复杂的公式推导。如果想详细的了解GAN网络的原理,推荐去看李宏毅老师的课程。B站和Youtube上面都有。 概率分布 生成器 首先我们是可以知道真实图片的分布函数 \(p_{data}(x)\) ,同时我们把假的图片也看成一个概率分布,称之为 \(p_g = (x,\theta)\) 。那么我们的目标是什么呢?我们的目标就是使得 \(p_g(x,\theta)\) 尽量的去逼近 \(p_{data}(x)\) 。在GAN中,我们使用神经网络去逼近 \(p_g = (x,\theta)\) 。 在生成器中,我们有如下模型: 其中 \(z \sim P_{z}(z)\) ,因此 \(G(z)\) 也是一个针对于 \(z\) 概率密度分布函数。 判别器 针对于判别器,我们有 \(D(x,\theta)\) ,其代表某一张z图片 \(x\) 为真的概率。 目标函数 在 Generative Adversarial Nets 论文中给出了以下的目标函数,也就是GAN网络需要优化的东西。 \[\begin{equation}\min _{G} \max _{D} V(D,

macz 软件测评|6月值得推荐的9款小众软件

时光毁灭记忆、已成空白 提交于 2020-08-19 05:27:53
刚刚过去的6月份,有哪些好用的Mac软件? 经过macz软件测评,给大家分享9款Mac小众软件,没有那么大名气,特色的功能却总能让人眼前一亮。比如,效果不错却比PS更容易上手的去水印软件Teorex Inpaint,极简设计的全屏时钟简黑时钟 for mac,可以将图片超分辨率的无损放大的WaiFu2x Mac版等等。 话不多说,让我们一起来看看吧!9款特色的Mac小众软件,总有一款是你喜欢的! 一、简黑时钟 for mac—自定义全屏时钟 简黑时钟Mac版是一款功能齐全、极简设计、极致省电、轻量高效的时钟app。简黑时钟Mac版拥有自定义颜色和标语功能,包含倒计时、番茄钟、调色板、倒计时、秒表等,您还可以自定义标语、日期、日夜模式和字体大小等。 二、Cisdem AppCrypt Mac版—给你的软件、网站加密保护 想要阻止别人不通过你的同意访问你的应用程序?Cisdem AppCrypt是一款优秀的应用程序和网站加密工具,只需要设置一个密码,加入你想锁定的应用程序,就没有人能够访问受保护的应用程序,除非他们有正确的密码,最大限度的保护了你的应用程序和网站! 三、WaiFu2x Mac版—照片无损放大 WaiFu2x Mac版采用卷积神经网络算法,可以将图片超分辨率的无损放大,支持批量图像处理。 四、AirServer 7 Mac版—苹果Mac电脑专用iOS投屏工具

深度学习论文翻译解析(八):Rich feature hierarchies for accurate object detection and semantic segmentation

送分小仙女□ 提交于 2020-08-19 05:27:36
论文标题:Rich feature hierarchies for accurate object detection and semantic segmentation   标题翻译:丰富的特征层次结构,可实现准确的目标检测和语义分割 论文作者:Ross Girshick Jeff Donahue Trevor Darrell Jitendra Mali 论文地址: http://fcv2011.ulsan.ac.kr/files/announcement/513/r-cnn-cvpr.pdf RCNN的GitHub地址 : https://github.com/rbgirshick/rcnn 参考的RCNN翻译博客:https://blog.csdn.net/v1_vivian/article/details/78599229 声明:小编翻译论文仅为学习,如有侵权请联系小编删除博文,谢谢! 小编是一个机器学习初学者,打算认真研究论文,但是英文水平有限,所以论文翻译中用到了Google,并自己逐句检查过,但还是会有显得晦涩的地方,如有语法/专业名词翻译错误,还请见谅,并欢迎及时指出。 摘要   过去几年,在权威数据集PASCAL上,物体检测的效果已经达到了一个稳定水平。效果最好的方法是融合了多种低维图像特征和高维上下文环境的复杂融合系统。在这篇论文里

【OCR技术系列之三】大批量生成文字训练集

谁说胖子不能爱 提交于 2020-08-19 04:26:52
放假了,终于可以继续可以静下心写一写OCR方面的东西。上次谈到文字的切割,今天打算总结一下我们怎么得到用于训练的文字数据集。如果是想训练一个手写体识别的模型,用一些前人收集好的手写文字集就好了,比如中科院的 这些数据集 。但是如果我们只是想要训练一个专门用于识别印刷汉字的模型,那么我们就需要各种印刷字体的训练集,那怎么获取呢?借助强大的图像库,自己生成就行了! 先捋一捋思路,生成文字集需要什么步骤: 确定你要生成多少字体,生成一个记录着汉字与label的对应表。 确定和收集需要用到的字体文件。 生成字体图像,存储在规定的目录下。 适当的数据增强。 第三步的生成字体图像最为重要,如果仅仅是生成很正规的文字,那么用这个正规文字集去训练模型,第一图像数目有点少,第二模型泛化能力比较差,所以我们需要对字体图像做大量的图像处理工作,以增大我们的印刷体文字数据集。 我总结了一下,我们可以做的一些图像增强工作有这些: 文字扭曲 背景噪声(椒盐) 文字位置(设置文字的中心点) 笔画粘连(膨胀来模拟) 笔画断裂(腐蚀来模拟) 文字倾斜(文字旋转) 多种字体 做完以上增强后,我们得到的数据集已经非常庞大了。 现在开始一步一步生成我们的3755个汉字的印刷体文字数据集。 一、生成汉字与label的对应表 这里的汉字、label映射表的生成我使用了pickel模块,借助它生成一个id

基于 ONNX 在 ML.NET 中使用 Pytorch 训练的垃圾分类模型

对着背影说爱祢 提交于 2020-08-19 04:26:08
ML.NET 在经典机器学习范畴内,对分类、回归、异常检测等问题开发模型已经有非常棒的表现了,我之前的 文章 都有过介绍。当然我们希望在更高层次的领域加以使用,例如计算机视觉、自然语言处理和信号处理等等领域。 图像识别是计算机视觉的一类分支,AI研发者们较为熟悉的是使用TensorFlow、Pytorch、Keras、MXNET等框架来训练深度神经网络模型,其中会涉及到CNN(卷积神经网络)、DNN(深度神经网络)的相关算法。 ML.NET 在较早期的版本是无法支持这类研究的,可喜的是最新的版本不但能很好地集成 TensorFlow 的模型做 迁移学习 ,还可以直接导入 DNN 常见 预编译模型 :AlexNet、ResNet18、ResNet50、ResNet101 实现对图像的分类、识别等。 我特别想推荐的是,ML.NET 最新版本对 ONNX 的支持也是非常强劲,通过 ONNX 可以把众多其他优秀深度学习框架的模型引入到 .NET Core 运行时中,极大地扩充了 .NET 应用在智能认知服务的丰富程度。在 Microsoft Docs 中已经提供了一个基于 ONNX 使用 Tiny YOLOv2 做对象检测的例子。为了展现 ML.NET 在其他框架上的通用性,本文将介绍使用 Pytorch 训练的垃圾分类的模型,基于 ONNX 导入到 ML.NET 中完成预测。

数据集暴增压力下,微信「扫一扫」识物训练如何优雅破局?

夙愿已清 提交于 2020-08-19 03:19:39
微信“扫一扫”识物上线一段时间,由前期主要以商品图(鞋子/箱包/美妆/服装/家电/玩具/图书/食品/珠宝/家具/其他)作为媒介来挖掘微信内容生态中有价值的信息,扩张到各种垂类领域的识别,包括植物/动物/汽车/果蔬/酒标/菜品/地标识别等,识别核心依托于深度学习的卷积神经网络模型。随着每天千万级的增长数据和越来越多的模型参数量,深度学习训练一次时间大概需要一周左右。如何能够快速训练优化模型并上线,成为我们亟待解决的问题。 一、引言 如今,依托强大的GPU算力,深度学习得到迅猛发展。在图像处理、语音识别领域掀起了前所未有的一场革命。相较于传统的方法,以卷积神经网络(CNN)为代表的深度学习方法可以高度地重点学习数据的特性,在图像处理领域已经取得了统治地位。 随着扫一扫识物日调用量的持续增加,图片数据正以每天千万级的量级增长,在这个争分夺秒的时代里,得数据者得天下。同时,神经网络的复杂性呈爆炸式增长,像15年微软提出图像分类的ResNet模型有7 ExaFLOPs/6千万个参数,17年谷歌的神经网络机器翻译模型有100 ExaFLOPS/87亿个参数。 在大部分场景下,模型可以在一台GPU服务器上,使用一个或者多个GPU进行训练。但随着数据集的增大,训练时间也相应增长,有些时候训练需要一周甚至更长时间。因此,如何能够快速迭代优化深度学习模型,成为我们算法开发者亟须解决的问题。

被称为“Google 最大黑科技”,开发谷歌大脑,这位 AI 掌门人到底有多牛?

|▌冷眼眸甩不掉的悲伤 提交于 2020-08-19 01:07:31
作者 | 年素清 责编 | 王晓曼 出品 | 程序人生(ID:coder_life) 在很多人眼中,杰夫·迪恩(Jeff Dean)就是谷歌技术的代名词,谷歌今天的强大离不开他的付出,他是MapReduce、BigTable、Spanner、TensorFlow 等谷歌众多知名软件的重要贡献者,这些成果不仅奠定了他在谷歌的地位,也为他在业界赢得了无数的崇拜者。 高中为父亲写软件 迪恩于 1968 年 7 月出生在美国夏威夷,他的父亲是一位热带病学研究员,母亲则是一名通晓六种语言的医学人类学家,良好的家境往往意味着良好的教育环境。 读小学时,迪恩和父亲共同对一台 IMSAI 8080 计算机进行编程探索,他们将升级程序焊接在机器上,并深入研究了这台设备的构造和运行原理。 因为父亲的职业缘故,他们不得不经常搬家。十三岁时候的迪恩提前结束了自己八年级的学业,随父母一同来到索马里西部的某难民营。 迪恩在读高中时,曾为父亲和其同事们编写了一款叫做“Epi Info”的程序,用于收集病理相关的数据,后来这款软件成为流行病专家们在野外工作的标配工具,推出了十几种语言的版本,用户数量达十几万。 1990年,迪恩以最优等的成绩从明尼苏达大学计算机与经济学系取得学士学位。 之后进入华盛顿大学,攻读计算机科学博士学位。 在此期间,他曾为世界卫生组织的爱滋病全球方案开发软件,在HIV传播的统计建模

PyTorch实现用于文本生成的循环神经网络

三世轮回 提交于 2020-08-19 01:05:15
作者|DR. VAIBHAV KUMAR 编译|VK 来源|Analytics In Diamag 自然语言处理(NLP)有很多有趣的应用,文本生成就是其中一个有趣的应用。 当一个机器学习模型工作在诸如循环神经网络、LSTM-RNN、GRU等序列模型上时,它们可以生成输入文本的下一个序列。 PyTorch提供了一组功能强大的工具和库,这些工具和库为这些基于NLP的任务增添了动力。它不仅需要较少的预处理量,而且加快了训练过程。 在本文中,我们将在PyTorch中训练几种语言的循环神经网络(RNN)。训练成功后,RNN模型将预测属于以输入字母开头的语言的名称。 PyTorch实现 这个实现是在Google Colab中完成的,其中的数据集是从Google驱动器获取的。所以,首先,我们将用Colab Notebook安装Google驱动器。 from google.colab import drive drive.mount('/content/gdrive') 现在,我们将导入所有必需的库。 from __future__ import unicode_literals, print_function, division from io import open import glob import os import unicodedata import string import