tensorflow中crf模块函数解析

        这篇博客主要想解释一下tensorflow中crf模块的几个函数的输入输出是什么意思。作为预备知识,建议英文好的同学先看下这篇博客,这篇博客有8个小节,前5个小节比较通俗易懂,后3个小节感觉不太理解。当然我也会先讲一下bilstm+crf的基本原理,主要讲一下模型的损失函数。

一、预备知识

        首先说一下crf的输入是什么,crf的输入就是bilstm的输出,是一个三维矩阵,[batch_size,max_seq_len,num_tags],其中num_tags是命名实体识别中的标签个数。也就是每个sequence中的每个单词都会输出一个未经归一化的概率向量,向量长度是num_tags。

        再说一下crf层的参数是什么,crf层的参数是一个状态转移矩阵(num_tags*num_tags),矩阵中的每个元素代表标签之间转移的概率。

        最后说一下模型的损失函数,模型的损失函数就是由bilstm输出的三维矩阵P和状态转移矩阵A计算得到。公式如下。
公式1:
在这里插入图片描述
公式2:
在这里插入图片描述
s代表由sequence输入经过模型计算,得到某个标签序列的概率,最小化损失函数就是为了最大化真实标签序列的概率。

二、tensorflow中crf模块函数解析

<函数输入的解释>
tag_indices:[batch_size, max_seq_len],真实的标签序列;
sequence_lengths:[batch_size],每个序列的长度;
transition_params:[num_tags, num_tags] ,状态转移矩阵;
inputs/potentials:[batch_size, max_seq_len, num_tags],bilstm的输出,同时也是crf层的输入;

<函数的输入输出解释>
crf_binary_score(二元概率):
输入:tag_indices, sequence_lengths, transition_params
输出:[batch_size],向量中的每个元素是一个sequence中所有的转移概率加和,公式1中红色方框中的公式;

crf_unary_score(一元概率):
输入:tag_indices, sequence_lengths, inputs
输出:[batch_size],向量中的每个元素是一个sequence中所有的真实标签概率加和,公式1中绿色方框中的公式;

crf_sequence_score:
输入:inputs,tag_indices,sequence_lengths,transition_params
输出:[batch_size],向量中的每个元素是一个sequence的真实标签概率加和+所有的转移概率加和,即:crf_unary_score+crf_binary_score,公式2中红色方框中的公式;

crf_log_norm: 这个函数的实现比较复杂,tensorflow中的实现原理可参考这里,有兴趣的同学可以看一下。
输入:inputs,sequence_lengths,transition_params
输出:[batch_size],公式2中绿色方框中的公式;

crf_log_likelihood:
输入:inputs,tag_indices,sequence_lengths,
输出:
log_likelihood:[batch_size],向量中的每个元素为图二中红色方框中的公式减去绿色方框中的公式,也就是-logloss;
transition_params:[num_tags, num_tags] ,状态转移矩阵;

crf_decode: 这个函数用到了维特比算法。
输入:potentials,transition_params,sequence_length
输出:
decode_tags:[batch_size, max_seq_len],所有可能的输出序列中概率最大的那个序列;
best_score:[batch_size] ,概率最大的序列对应的序列概率;

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值