![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
深度学习
文章平均质量分 94
对机器学习深度学习相关进行整理。注:供学习用,侵权删!
BoCong-Deng
翻过这座山,别人就能听到你的故事!
展开
-
打造一个能够在线部署的深度学习对话系统--开源更新中!
一个能够在线部署的全流程对话系统,项目地址:[nlp-dialogue](https://github.com/DengBoCong/nlp-dialogue)。本项目的目标是奔着构建一个能够在线部署、执行、应用的全流程对话系统,即包含语料处理、训练、评估、推断、部署、Web服务的从头到尾的UI化系统功能。项目中计划同时包含开放域和面向任务型两种对话系统,模型的思路来源即为针对相关模型进行复现(论文阅读笔记放置在另一个项目:[nlp-paper](https://github.com/DengBoCong/原创 2021-02-16 12:43:46 · 1488 阅读 · 0 评论 -
深度学习中眼花缭乱的Normalization学习总结
对于深度学习而言,正则化方法就是“通过把一部分不重要的复杂信息损失掉,以此来降低拟合难度以及过拟合的风险,从而加速了模型的收敛”,而本篇文章我们要讲的Normalization方法的目的就是让分布稳定下来(降低各维度数据的方差),不同的正则化方法的区别只是操作的信息维度不同,即选择损失信息的维度不同。原创 2021-01-16 23:50:47 · 873 阅读 · 0 评论 -
NLP中遇到的各类Attention结构汇总以及代码复现
我们所熟知的encoder和decoder结构中,通常采用RNN结构如GRU或LSTM等,在encoder RNN中将输入语句信息总结到最后一个hidden vector中,并将其作为decoder的初始hidden vector,从而利用decoder的解码成对应的其他语言中的文字。但是这样的结构会出现一些问题,比如老生常谈的长程梯度消失的问题,对于较长的句子很难寄希望于将输入的序列转化为定长的向量而保存所有的有效的信息,所以随着输入序列的长度增加,这种结构的效果就会显著下降。因此这个时候就是Attent原创 2020-12-26 15:19:33 · 2347 阅读 · 1 评论 -
利器:TTS Frontend 中英Text-to-Phoneme Converter,附代码
NLP的语音合成中,有一种关键技术是将文字拆解成音素,再去语音库里匹配相同音素的语音片段,来实现文字转换语音。音素是给定语言的语音,如果与另一个音素交换,则会改变单词的含义,同时,音素是绝对的,并不是特定于任何语言,但只能参考特定语言讨论音素。由于音素的特性,非常适合用于语音合成领域。原创 2020-12-15 16:31:59 · 1380 阅读 · 0 评论 -
关于RNN理论和实践的一些总结
本篇文章主要总结我在学习过程中遇到的RNN、其相关变种,并对相关结构进行说明和结构图展示。内容包括RNN、RecNN、多层、双向、RNNCell等等,同时包括在计算框架(TensorFlow及PyTorch)API层面的一些理解记录。本篇文章不进行深入推导和底层原理介绍,仅做总结记录,感兴趣者可自行根据内容详细查阅资料。原创 2020-12-14 10:40:20 · 720 阅读 · 0 评论 -
有必要了解的Subword算法模型
在NLP领域,对语料进行预处理的过程中,我们需要进行分词和生成词典。很多时候用多了框架的API,觉得分词和生成字典就是调用的事情,不过事情并没有那么简单,比如其中涉及到的未登录词的问题,就对任务性能影响很大。一种很朴素的做法就是将未见过的词编码成#UNK ,有时为了不让字典太大,只会把出现频次大于某个阈值的词丢到字典里边,剩下所有的词都统一编码成#UNK 。原创 2020-12-05 19:48:49 · 1518 阅读 · 0 评论 -
搞定检索式对话系统的候选response检索--使用pysolr调用Solr
模型结构和训练至关重要,但是检索候选回复也是使得整个对话流程实现闭环的关键。我们了解了检索的目的和整体流程,那我们从何实现?方式有很多,可以自行编写一个脚本从数据集中生成一个索引候选数据集(这个是我最开始用的方法,但毕竟没专门研究过检索,所以写的很粗糙,勉强验证功能可以,用作正式使用就不行了),还有一种就是使用现有的检索工具,比如Lucene、Solr、ElasticSearch等等。所以这篇文章就是来讲解部署solr和使用python实现检索原创 2020-11-19 00:19:41 · 1220 阅读 · 1 评论 -
深度学习矩阵乘法的终极奥义einsum,结合多个计算框架上的使用
einsum以一种优雅的方式,表示各种矩阵运算,好处在于你不需要去记和使用计算框架中(TensorFlow|PyTorch|Numpy)点积、外积、转置、矩阵-向量乘法、矩阵-矩阵乘法的函数名字和签名。从某种程度上解决引入不必要的张量变形或转置运算,以及可以省略的中间张量的现象。不仅如此,einsum有时可以编译到高性能代码,事实上,PyTorch最近引入的能够自动生成GPU代码并为特定输入尺寸自动调整代码的张量理解(Tensor Comprehensions)就基于类似einsum的领域特定语言。此外,可原创 2020-11-09 21:09:43 · 2688 阅读 · 0 评论 -
损失函数理解汇总,结合PyTorch和TensorFlow2
本文打算讨论在深度学习中常用的十余种损失函数,结合PyTorch和TensorFlow2对其概念、公式及用途进行阐述,希望能达到看过的伙伴对各种损失函数有个大致的了解以及使用。本文对原理只是浅尝辄止,不进行深挖,感兴趣的伙伴可以针对每个部分深入翻阅资料。原创 2020-11-02 15:30:14 · 1721 阅读 · 1 评论 -
Embedding和Word2vec的理解
Embedding就是用一个低维的向量表示一个物体,这个Embedding向量的性质是能使距离相近的向量对应的物体有相近的含义,正是因为Embedding能够用低维向量对物体进行编码还能保留其含义的特点,所以其非常适合用于深度学习。由于我们熟知的one hot encoding、multi hot encoding是一种稀疏向量的编码方式,所以不适合用来深度学习进行特征表示,相反Embedding概括而言,就是一种高效的低维稠密的操作。原创 2020-10-28 00:05:46 · 2540 阅读 · 2 评论 -
提高模型性能的几种值得尝试的方法
在我们进行模型训练时,如果你只是想要让模型具有不错的性能,那么盲目地尝试网络架构足以达到目的。而在本文中, 我们将为你提供一套用于构建最先进深度学习模型的必备技术的快速指南,从而让模型由“具有不错的性能”上升到“性能卓越且满足我们的一些需要”。本文的叙述以及代码的编写时基于TensorFlow中Keras来进行表述的。原创 2020-07-23 12:44:04 · 2249 阅读 · 0 评论 -
处理文本数据的一些思路
文本是最常用的序列数据之一,可以理解为字符序列或单词序列,但最常见的是单词级处理。深度学习序列处理模型都可以根据文本生成基本形式的自然语言理解,并可用于文档分类、情感分析、作者识别甚至问答(QA,在有限的语境下)等应用。当然,目前我所接触的这些深度学习模型都没有像人类一样真正地理解文本,而只是映射出书面语言的统计结构,但这足以解决许多简单的文本任务。原创 2020-07-21 12:54:17 · 1422 阅读 · 0 评论 -
RNN的一些高级用法-以温度预测问题为例
RNN的神奇用的人都说话,不过在使用RNN的时候,还是需要知道一些技巧,有利于我们实现更符合预期的模型,本文将会介绍以下三种技巧。循环dropout(recurrent dropout)。这是一种特殊的内置方法,在循环层中使用dropout 来降低过拟合。堆叠循环层(stacking recurrent layers)。这会提高网络的表示能力(代价是更高的计算负 荷)。双向循环层(bidirectional recurrent layer)。将相同的信息以不同的方式呈现给循环网原创 2020-07-21 12:33:35 · 6578 阅读 · 4 评论 -
卷积神经网络实现数字识别
卷积神经网络接收形状为 (image_height, image_width, image_channels) 的输入张量(不包括批量维度)。本例中设置卷积神经网络处理大小为 (28, 28, 1) 的输入张量, 这正是 MNIST 图像的格式。我们向第一层传入参数 input_shape=(28, 28, 1) 来完成此设置。 我们来看一下目前卷积神经网络的架构。原创 2020-07-18 22:12:07 · 2569 阅读 · 0 评论 -
机器学习的通用工作流程
介绍一种可用于解决任何机器学习问题的通用模板。这一模板将问题定义、评估、特征工程和解决过拟合等概念串在一起原创 2020-07-18 22:07:56 · 336 阅读 · 0 评论 -
基于TensorFlow实现预测房价--回归问题
分类问题的目标是预测输入数据点所对应的单一离散的标签。另一种常见的机器学习问题是回归问题,它预测一个连续值而不是离散的标签,例如,根据气象数据 预测明天的气温,或者根据软件说明书预测完成软件项目所需要的时间。原创 2020-07-17 17:46:17 · 1530 阅读 · 0 评论 -
新闻分类--多分类问题,使用TensorFlow实现
构建一个网络,将路透社新闻划分为46 个互斥的主题。因为有多个类别,所以 这是多分类(multiclass classification)问题的一个例子。因为每个数据点只能划分到一个类别, 所以更具体地说,这是单标签、多分类(single-label, multiclass classification)问题的一个例 子。如果每个数据点可以划分到多个类别(主题),那它就是一个多标签、多分类(multilabel, multiclass classification)问题。原创 2020-07-17 17:33:25 · 2148 阅读 · 0 评论 -
使用TensorFlow解决电影评论分类--二分类问题
二分类问题可能是应用最广泛的机器学习问题。在这个例子中,你将学习根据电影评论的 文字内容将其划分为正面或负面。本节使用IMDB 数据集,它包含来自互联网电影数据库(IMDB)的50 000 条严重两极分 化的评论。数据集被分为用于训练的 25 000 条评论与用于测试的 25 000 条评论,训练集和测试 集都包含 50% 的正面评论和 50% 的负面评论。再此之前,先说说相关的流程定义。相关代码基于TensorFlow实现,你也可以只用Keras实现,整个项目就是围绕Keras进行开发的。原创 2020-07-17 17:27:57 · 1691 阅读 · 0 评论 -
神经网络的相关数据表示 - 概念说明
数据存储在多维Numpy 数组中,也叫张量(tensor)。一般来说,当前所有机器学习系统都使用张量作为基本数据结构。张量对这个领域非常重要,重要到Google 的 TensorFlow 都以它来命名。那么什么是张量? 张量这一概念的核心在于,它是一个数据容器。它包含的数据几乎总是数值数据,因此它是数字的容器。你可能对矩阵很熟悉,它是二维张量。张量是矩阵向任意维度的推广(这里要特别提一下, 张量的维度(dimension)通常叫作轴(axis))。原创 2020-07-16 00:00:02 · 992 阅读 · 0 评论 -
用三张图理解深度学习的工作原理
为了给出深度学习的定义并搞清楚深度学习与其他机器学习方法的区别,我们首先需要知道机器学习算法在做什么。我们有个大致的认识,给定包含预期结果的示例,机器学习将会发现执行一项数据处理任务的规则。原创 2020-07-15 22:42:07 · 1306 阅读 · 0 评论 -
统计学习方法-感知机概括和补充
本章中涉及到向量内积,有超平面的概念,也有线性可分数据集的说明,在策略部分有说明损关于失函数的选择的考虑。原创 2020-07-10 20:15:53 · 3125 阅读 · 0 评论 -
统计学习方法的概括和补充
关于机器学习三要素,也有另外一种的解读:`模型,学习准则,优化算法`。这个定义比较接近代码。以Tensorflow为例。通常会定义一个网络(模型),定义Loss(学习准则),定义优化算法(Optimizer),然后开Session,不停的把数据带入用Opitmizer去最小化Loss原创 2020-07-08 22:22:48 · 1473 阅读 · 0 评论 -
玩PyTorch?你不得不看的PyTorch资源大列表
写在前面强烈安利,拿走不谢,顺手留个关注和点个赞,嘿嘿嘿PyTorch我就不多说了吧,我搞CV平时也就用PyTorch和TensorFlow,不过最近更喜欢用PyTorch 了,因为TensorFlow的API真的搞的我头疼,不过因为我有时候用C++写算法的话,还是会用TensorFlow的。PyTorch 能在短时间内被众多研究人员和工程师接受并推崇是因为其有着诸多优点,如采用 Python...原创 2020-02-29 18:16:32 · 17981 阅读 · 1 评论