OCR记录

  1. lstm

    时间轴: t=1 t=2 t=3 ... t=T

    输入: x₁ ---> x₂ ---> x₃ ---> ... ---> x_T

    ↓ ↓ ↓ ↓

    L1: h₁¹ ---> h₂¹ ---> h₃¹ ---> ... ---> h_T¹

    ↓ ↓ ↓ ↓

    L2: h₁² ---> h₂² ---> h₃² ---> ... ---> h_T²

LSTM的数据流动大概如上所示

LSTM单元的设计核心是如下4点,每个单元都有自己的细胞状态

  1. 遗忘门(Forget Gate) - "该忘记什么?"
    公式:f_t = σ(W_f · [h_{t-1}, x_t] + b_f)

作用:决定从上一细胞状态C_{t-1}中丢弃多少信息

理解:看当前输入x_t和上一隐藏状态h_{t-1},为C_{t-1}的每个维度输出0-1之间的值

0 = "完全忘记这个信息"

1 = "完全保留这个信息"

  1. 输入门(Input Gate) - "该记住什么新信息?"
    公式:i_t = σ(W_i · [h_{t-1}, x_t] + b_i)
    候选细胞状态:C̃_t = tanh(W_C · [h_{t-1}, x_t] + b_C)

作用:

i_t:决定哪些新信息值得存储

C̃_t:候选的新信息(经过tanh归一化到-1到1)

理解:先产生新信息候选,然后用输入门筛选哪些存入长期记忆

  1. 细胞状态更新 - "实际更新"
    公式:C_t = f_t * C_{t-1} + i_t * C̃_t

这是LSTM最核心的公式!

理解:细胞状态更新 = 遗忘旧信息 + 添加新信息

加法操作是关键:避免了梯度消失(梯度直接流过加法)

  1. 输出门(Output Gate) - "该输出什么?"
    公式:

o_t = σ(W_o · [h_{t-1}, x_t] + b_o)

h_t = o_t * tanh(C_t)

作用:基于细胞状态C_t,决定当前时间步输出什么到隐藏状态h_t


可以看到,lstm单元的设计思路是把每个单元当成一个细胞,不同时间步上每个细胞有自己的状态,这是第一个元素,而每个细胞要受上一个细胞状态的影响,所以需要计算出上一个细胞状态的相关权重,在lstm单元的设计里称之为遗忘门,决定从上一个细胞状态设计多少东西。同理,对当前的输入,也要有加权,因此还有一道输入门决定当前输入的权重,在实现的时候被拆分成了先求得当前细胞候选状态。最后就是输出门,输出每个细胞得隐藏状态和当前细胞输出。

一共四个元素,遗忘门决定上一个细胞状态得加权,输入门决定当前输入的加权,然后更新当前细胞状态(细胞状态也是一个要素),最后输出门输出当前细胞输出和隐藏状态


一层lstm网络实际只有一个lstm单元也就是四个参数在起作用循环使用

这种循环使用使得其可以接受不定长的输入而不会有问题。

考虑过这样共享参数网络能力会不会比较弱实际上的试验结论是不会,而且如果一层铺多个lstm单元会导致需要定长的输入序列了。

另一个问题是,因为每层网络支持不定长输入,所以批数据和批之间不用统一长度,只用批内部统一到最长长度即可。


还一个要注意的点是,每一层网络的输出是一层各时间步的隐藏状态,而每一层的每时间步输入会对应上一层的前一时间步输出,也就是层间是交织的,不是简单层间串联


双向lstm

因为一个时间顺序的lstm层只能建模一个顺序的依赖,而语言中很多时候依赖是既要上文的依赖也要下文的依赖

所以增加了一个把输入句子反向传递的lstm层,然后两个lstm层的隐藏层输出进行合并

相关推荐
AI人工智能+5 天前
CNN+CRNN+NER:如何实现食品经营许可证秒级结构化信息提取?
深度学习·ocr·食品经营许可证识别
摆烂小白敲代码5 天前
腾讯云智能结构化OCR在物流行业的应用
大数据·人工智能·经验分享·ocr·腾讯云
开开心心就好9 天前
免费音频转文字工具,绿色版离线多模型可用
人工智能·windows·计算机视觉·计算机外设·ocr·excel·语音识别
开开心心_Every10 天前
全屏程序切换工具,激活选中窗口快速切换
linux·运维·服务器·pdf·ocr·测试用例·模块测试
2401_8362358610 天前
名片识别产品:技术要点与应用场景深度解析
人工智能·科技·深度学习·ocr
njsgcs12 天前
glm-ocr ollama使用 python
ocr
开开心心就好12 天前
轻松鼠标连, 自定义区域模仿人手点击
人工智能·windows·物联网·计算机视觉·计算机外设·ocr·excel
littleshimmer12 天前
基于 C++ + Qt6 实现一款本地离线 OCR 工具(SnapOCR)
ocr
AI周红伟14 天前
周红伟:企业大模型微调和部署, DeepSeek-OCR v2技术原理和架构,部署案例实操。RAG+Agent智能体构建
大数据·人工智能·大模型·ocr·智能体·seedance
kongba00716 天前
如何在本地创建一个OCR工具,帮你识别文档,发票,合同等细碎的内容,并将结果给大模型整理格式输出。 经验工作流。给大模型生成代码就能直接跑。
大数据·ocr