-
Notifications
You must be signed in to change notification settings - Fork 738
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
好想抛弃百度,让机器仅仅根据验证码本身来学习 #16
Comments
大体思路就是仅仅告诉机器我们12306验证码识别的游戏规则。
注意我们只是告诉它游戏规则,而它是否答对了,我们也不知道。 |
关键是我们如何定义损失函数呢。 |
以违反游戏规则来计算损失,例如:
但如果它总是说要找打字机,以及前两张就是打字机,我该如何定义这是错误的呢? |
哎,先想办法收集训练集吧。 |
绝对的端到端训练 |
你可能需要聚类 或者其他无监督的技术 目前来讲 半监督的技术(需提供部分带标签数据)可能更适合你 此外有趣的是 百度图片搜索文字得到的图片其实就可以充当训练集 |
不如这样 既然文字也是用图片做载体 那么你的网络直接输入有文字的图片和验证码图片 输出值为三项 第一项(0,1) 第二, 三项为具体位置(row: 2; column: 4) 即可 此时为三输出回归 不过可能需要换更强大的统计学家(可参考MobileNet) |
其它无监督技术我就没有尝试过了。半监督我也想了解了解,甚至听说可以给每个词标注一次就能让机器学得很好。 |
我突然开始觉得,我可能无法抛弃百度,最多叫出师。 |
如果机器说要找的是打字机,而它只要在图片中找到一个打字机我就不给它扣分,如果它不总是重复说其它全是打字机,我还在给它加点分。 loss = sum(p * mul(1 - q, axis=0)) 如果一张验证码中80张图片,且各不相同,那我是不是就无法根据验证码学习了呢? loss = sum((0.25 + p) * mul(1 - q, axis=0)) 其中:p用来表示文字的识别结果,q表示8张图的识别结果。p.shape = 80; q.shape = 8, 80 |
原来概率论是用来定义损失函数的,在深度学习中。 |
哇,画的好漂亮,我就不行啦。 我现在的思路差不多,两个输入,文字部分和图片部分(2*4),两个输出,不过都是softmax。重点是损失函数,我们没有标注后的数据集,只有验证码本身,所以我想用违反游戏规则的方式来定义损失函数。 第一个构思已经出来了,不过感觉成功率还是很低的。 嗯,我先去干活了… |
我不行啦,先降低难度,准备先抛弃相似图搜索算法,目的是学习深度学习。 |
个人理解 目前深度学习的算法需要引入标记数据才有较高精度, 这个task来说有点像两种图片的匹配并输出文字图在验证码图中的位置。 可以理解成将两个图片输入后编码为一个vector 送到后面的fc之类的层,加权平均出一个代表所需信息的vector,然后设计Loss 最小化或者最大化(用梯度下降这类的优化)。如果单依靠验证码不带任何监督信息的话,感觉有点偏向于强化学习的路线了, 设定一个agent 和 env,loss根据你说的游戏规则来定, 这样可能最后结果没有监督学习来的准确。 |
我觉得是,如果提供的信息量太少会导致凸优化很容易收敛到局部最优解,甚至根本找不到路线。 |
emmm 谷歌搜图提供的数据源与标签的吻合性要比百度的高呀,推荐谷歌 |
主观感受
|
哈哈哈555,我又买了强化深度学习相关的书籍。 |
个人经验 不收敛可以尝试增大FC, 相对来说FCNs收敛性不高。 噪声影响我感觉并没有到那么大,我之前做的项目没有单独去噪, 最后结果也是可以看的。 |
有了新的想法,如果它只会说验证码中让找的是打字机,那下次训练它只要一说要找的是打字机我就给它扣分,看它以后还敢不敢。 期望文字识别结果分散能带动图片识别的结果也分散。 哎,需要深入了解Keras,我就这点需要咋实现呀。 |
自己学找东西, 可以用Reinforcement Learning (RL)了吧 |
一致性约束和同变性约束? |
巨大而有趣的挑战再次浮出水面
The text was updated successfully, but these errors were encountered: