Open huanghao opened 7 years ago
实现上有两个注意的地方:
1)网络结构,前面是conv layers + fc layers,上层再分成几个独立的分类器,例如论文里的6个,1个长度预测加5个数字预测。 论文里的6个分类器,1个7维的L(代表长度的7中情况),5个10维的Si(5个数字,每个0-9)。 可以看成6个输出,也可以看成是一个57维的输出。这两种形式是一样的。把神经元的连接图画出来就能见到。最后一层需要4096 (7 + 5 10) 个参数。
2)loss函数的写法。论文中说最大化P(S|X) = P(L|X) P(S1|X) ... P(S5|X) 这个函数。这个函数里需要包含ground truth和prediction。举个例子。 真值为序列“175”,那这个函数应该返回
s, l = "175", 3
loss(S, L, s, l) = log L[3] + log S[1] + logS[2] + logS[3]
这个函数计算的部分可能包含条件
ICLR14: I Goodfellow: Multi-digit Number Recognition from Street View Imagery using ConvNets
https://www.youtube.com/watch?v=vGPI_JvLoN0
这个文章使用了SVHN数据集,通过一个网络,识别出最多包含5个数字的房屋号码。通过一个特殊的目标函数,不但给出数字长度L,还给出整个数字序列,并且数据集比验证码更复杂。