@CTC的理解
CTC的由来
在语音识别、OCR识别等领域广泛用到的HMM,由于其自身的一些限制,在神经网络兴起以后,被CTC+RNN所取代。
几点注意事项
几点需要注意事项:
- 语音识别过程中,音素->单词->句子的过程中,音素的声学模型在之前往往用GMM和动态弯算法进行识别;但在音素->单词的过程应该也需要前向后向算法来计算,因为不然计算量同样很大,只不过有可能是都包含在HMM中完成了。
2.CTC的本质是来避免样本的对齐工作,样本没有了对齐标注,那原有的Loss计算就无法工作,所以采用CTC来自动对齐,这样才能在没有对齐标注的样本下进行Loss计算和训练。 - 虽然是引入CTC+RNN来取代HMM,但是HMM中状态迁移概率和前向后向计算的工作实际上本质上还存在,只不过RNN来取代HMM更好的进行了上下文关联计算,而CTC则需要解决快速计算目标概率的工作,因此CTC参考着前向后向进行了相关计算,这是本质。
- CTC在前向预测时,往往用vetbi算法来计算所有可能性中的最大者,但可能并未最优,因为没有考虑其它线路在去掉重复和空格之后的累加概率。但如果用前向算法计算又太耗时间。
- 需要注意间隔重复字符和空格,和空字符是两个不同的符号。一个用来间隔Hello中两个L的,比如用-;而空字符就是空字符,表示单词之间的空白,比如用空格;