深度学习
黄鑫huangxin
深度学习,多媒体分析与理解
知乎专栏:https://www.zhihu.com/people/mu-xi-jin-39/columns
Github: https://github.com/BonnieHuangxin
展开
-
cross-entropy loss(softmax) 与hinge loss(SVM)
原创 2018-08-22 17:06:32 · 561 阅读 · 0 评论 -
ELMo模型的理解与实践(2)
预训练好的词向量已经released,这里介绍一下,如何直接获取ELMo词向量。在pytorch里可以通过AlenNLP包使用ELMo。一、环境配置1) 在conda中创建allennlp环境:conda create -n allennlp python=3.62) 安装allennlppip install allennlp二、下载训练好的参数和模型参数下载:...原创 2018-12-18 13:59:56 · 2026 阅读 · 3 评论 -
Google BERT理解
论文:《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》一、模型介绍BERT采用了双向Transformer Encoder来作为语言模型(《Attention is all you need》论文中的transformer结构),采用了两种预训练方法:1)Masked L...原创 2018-12-18 14:02:54 · 1230 阅读 · 0 评论 -
《Rethinking ImageNet Pre-training》理解
论文:何恺明《Rethinking ImageNet Pre-training》在许多计算机视觉任务中,包括目标检测、图像分割、行为检测等,一般使用在ImageNet上预训练再进行微调。而在这篇论文中,作者任务在ImageNet上预训练是并不必要的,随机初始化也可以达到同样的效果,只需要:1)使用合适的正则化优化方法2)足够长的训练时间,即多次迭代训练论文中的走势图,我们可以观察到...原创 2018-12-18 14:20:39 · 354 阅读 · 0 评论 -
CoNLL 2018:基于人类注意力的序列分类
论文《Sequence classification with human attention》代码:https://github.com/coastalcph/Sequence_classification_with_human_attention这篇论文提出利用视觉跟踪语料库中的人类注意力,作为训练注意力模型时的一个归纳偏置(Inductive bias),也就是用human atte...原创 2019-03-06 19:51:32 · 1231 阅读 · 0 评论 -
基于Pytorch的MLP模块实现
MLP分类效果一般好于线性分类器,即将特征输入MLP中再经过softmax来进行分类。具体实现为将原先线性分类模块:self.classifier = nn.Linear(config.hidden_size, num_labels)替换为:self.classifier = MLP(config.hidden_size, num_labels)并且添加MLP模块: ...原创 2019-03-04 12:06:06 · 14036 阅读 · 3 评论 -
Pytorch在NLP中的简单应用
因为之前在项目中一直使用Tensorflow,最近需要处理NLP问题,对Pytorch框架还比较陌生,所以特地再学习一下pytorch在自然语言处理问题中的简单使用,这里做一个记录。一、Pytorch基础首先,第一步是导入pytorch的一系列包import torchimport torch.autograd as autograd #Autograd为Tensor...原创 2019-03-07 12:22:43 · 2263 阅读 · 0 评论 -
Pytorch的模型结构可视化(tensorboard)
在pytorch中,可以导入tensorboard模块,可视化网络结构及训练流程。下面通过“CNN训练MNIST手写数字分类”的小例子来学习一些可视化工具的用法,只需要加少量代码。一、tensorboardX的安装pip install tensorboardpip install tensorflowpip install tensorboardX二、导入tensorboa...原创 2019-03-12 00:19:50 · 11757 阅读 · 1 评论 -
AAAI 2018: 基于强化学习的文本分类
看这篇论文前,建议先了解一下policy gradient RL,就更很容易理解论文思想了。论文:《Learning Structured Representation for Text Classification via Reinforcement Learning》代码:http://coai.cs.tsinghua.edu.cn/publications/一、论文原理这...原创 2019-04-26 11:10:55 · 2075 阅读 · 5 评论 -
【NLP】OpenAI GPT算法理解
论文《Improving Language Understanding by Generative Pre-Training》Pytorch代码实现:huggingface/pytorch-openai-transformer-lm一、论文原理GPT的核心思想是先通过无标签的文本去训练生成语言模型,再根据具体的NLP任务(如文本蕴涵、QA、文本分类等),来通过有标签的数据对模型进行...原创 2019-04-23 19:18:08 · 6221 阅读 · 1 评论 -
中文分词综述
一、中文分词根据实现原理和特点,主要分为以下2个类别:1、基于词典分词算法(字符串匹配分词算法) 按照一定的策略将待匹配的字符串和一个已建立好的“充分大的”词典中的词进行匹配,若找到某个词条,则说明匹配成功,识别该词。 常见的基于词典的分词算法分为以下几种:正向最大匹配法、逆向最大匹配法和双向匹配分词法等。 2、基于统计的分词方法 基于统计的分词方法是在给定大量已经分...原创 2019-06-04 19:22:59 · 2213 阅读 · 0 评论 -
自然语言预训练模型总结(PPT版)
这是我个人的总结,参考了张俊林这篇很好的文章,请感兴趣看以下链接~张俊林:放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较一、简介自然语言处理中的预训练技术发展历程——从Word Embedding到Bert Neural language models Word Embedding Pretrained l...原创 2019-06-04 19:33:00 · 2070 阅读 · 0 评论 -
TextRank算法提取文本关键词
TextRank算法是由 Google 搜索的核心网页排序算法 PageRank 改编而来,利用图模型来提取文章中的关键词,首先介绍一下 PageRank 排序算法一、PageRank 算法PageRank通过网页之间的超链接来确定页面的重要性,它将整个互联网可以看作是一张有向图,网页是图中的节点,网页之间的链接就是图中的边。根据重要性传递的思想,如果一个大型网站A含有一个超...原创 2019-06-04 19:38:02 · 7869 阅读 · 0 评论 -
ICMR 19:Temporal Activity Localization by Language
介绍一下我之前在校,独立完成的一项工作,已被ACM ICMR 2019 接收为oral paper论文:《Cross-Modal Video Moment Retrieval with Spatial and Language-Temporal Attention》代码:https://github.com/BonnieHuangxin/SLTA一、论文任务Examples:...原创 2019-06-04 19:56:46 · 1671 阅读 · 3 评论 -
ELMo模型的理解与实践(1)
论文:2018 NAACL 《Deep Contextualized Word Representations》一、优点1.学习单词的复杂特征,包括语法、语义2.学习在不同上下文下的一词多义二、模型1.Bidirectional language models(BLM)首先给定N个单词的序列, 1)前向语言模型,已知前k-1个单词 ,预测第k个单词 的概率:2...原创 2018-12-18 13:56:43 · 3835 阅读 · 0 评论 -
Skip-Thought词向量模型实现Sent2Vec
一、原理skip-thought模型结构借助了skip-gram的思想。在skip-gram中,是以中心词来预测上下文的词;在skip-thought同样是利用中心句子来预测上下文的句子,其数据的结构可以用一个三元组表示(st−1,st,st+1) ,输入值st,输出值(st−1,st+1),具体模型结构如下图: 二、实践使用预训练好的Skip-Thought提取文本特...原创 2018-11-10 12:19:38 · 3787 阅读 · 1 评论 -
labelme自己制作目标检测数据集
Labelme windows安装包在我的github里:https://github.com/BonnieHuangxin/Fast-RCNN-pytorch打开这个然后就可以打标签了打完标签的图片再用fast rcnn训练模型。...原创 2018-09-30 21:26:19 · 3342 阅读 · 1 评论 -
记录caffe下配置bottom up attention (py-faster-rcnn)环境配置遇到的坑
bottom up attention为py-faster-rcnn在 Visual Genome 数据集预训练的模型,官方py-faster-rcnn在COCO数据集预训练下仅识别80个class,bottom up attention可识别1600个object class以及400个属性class论文地址:http://www.panderson.me/up-down-attention...原创 2018-10-12 19:27:49 · 1683 阅读 · 4 评论 -
NMS—非极大值抑制算法的理解
一、概念在目标检测中,得到多个候选框及其置信度得分。非极大值抑制算法(NMS)对多个候选框,去除重合率大的冗余候选框,得到最具代表性的结果,以加快目标检测的效率。二、实例以下图人脸检测为例,目标:消除重合率大且多余的候选框,保留某个区域的一个最优的候选框。非极大值抑制算法(NMS)抑制冗余的框, 抑制的过程是一个迭代-遍历-消除的过程。1)将所有框的得分排序,选中最高分及其...原创 2018-10-13 13:33:03 · 4021 阅读 · 0 评论 -
GloVe模型的理解及实践(1)
一、GloVe模型的理解1) 原理功能:基于语料库构建词的共现矩阵,然后基于共现矩阵和GloVe模型对词汇进行向量化表示输入:语料库 输出:词向量2)与Skip-Gram、CBOW模型比较例如:句子为"dog barked at the mailman" ,目标单词为'at'Skip-gram模型:Skip-gram模型只关注单个输入/输出元组中的目标词和上下文中的单个单...原创 2018-11-03 10:03:42 · 4590 阅读 · 0 评论 -
GloVe模型的理解及实践(2)
一、运行环境Ubuntu16.04 + python 3.5二、安装gensim两种安装方式1)打开终端sudo easy_install --upgrade gensim2)打开终端pip install gensim三、Git官方GitHub代码https://github.com/stanfordnlp/GloVe四、生成词向量1.在gl...原创 2018-11-03 10:11:35 · 4000 阅读 · 1 评论 -
Stanford-corenlp 英文词性标注
一、环境配置1.下载官网的NLP相关包将下载下来的stanford-corenlp-full-2018-02-27解压并将下载英文的jar文件stanford-english-corenlp-2018-02-27-models.jar放到该目录下。网址:https://stanfordnlp.github.io/CoreNLP/index.html2.确保电脑里要已经安装j...原创 2018-11-03 10:19:22 · 4201 阅读 · 3 评论 -
TensorFlow之CNN卷积神经网络的实现
下载MNIST数据集(28*28,输入维度为784)import tensorflow as tf#下载MNIST数据集(28*28,输入维度为784)from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets('MNIST_data', one_hot=Tr...原创 2018-11-03 10:28:30 · 411 阅读 · 2 评论 -
TensorFlow之MNIST 分类以及Dropout的使用
一、简单的一层神经网络import tensorflow as tf#下载MNIST数据集(28*28,输入维度为784)from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets('MNIST_data', one_hot=True)#构建简单的一层神...原创 2018-11-03 10:36:39 · 763 阅读 · 0 评论 -
TensorFlow之入门基础知识
一、Session会话控制定义两个常量矩阵a,b(tf.constant)a = tf.constant([[1.0,2.0]],name = 'a')b = tf.constant([[2.0], [3.0]],name = 'a')product = tf.matmul(a,b)要输出相加得到的结果,不能直接输出result,需要先生成一个会...原创 2018-11-03 10:41:50 · 392 阅读 · 0 评论 -
Stanford CoreNLP 提取句子名词
一、环境配置Stanford CoreNLP 工具包的使用我的另一篇博客:https://zhuanlan.zhihu.com/p/44180488二、实例1.导入已经下载的工具包from stanfordcorenlp import StanfordCoreNLPimport nltkfrom nltk.tree import Tree as nltkTreenlp...原创 2018-11-06 20:24:14 · 4153 阅读 · 2 评论 -
文本相似度算法总结
文本匹配算法主要用于搜索引擎,问答系统等,是为了找到与目标文本最相关的文本。例如信息检索可以归结成查询项和文档的匹配,问答系统可以归结为问题和候选答案的匹配,对话系统可以归结为对话和回复的匹配。一、传统模型基于字面匹配字面距离:字符串有字符构成,只要比较两个字符串中每一个字符是否相等便知道两个字符串是否相等,或者更简单一点将每一个字符串通过哈希函数映射为一个哈希值,然后进行比较。...原创 2019-06-04 20:12:06 · 28633 阅读 · 1 评论