如何使用TensorFlow实现人工智能?.doc
《如何使用TensorFlow实现人工智能?.doc》由会员分享,可在线阅读,更多相关《如何使用TensorFlow实现人工智能?.doc(5页珍藏版)》请在三一文库上搜索。
1、如何使用TensorFlow实现人工智能?电信营业厅 APP 作为中国电信在线服务的入口级应用,我们的开发团队通过 TensorFlow 与人工智能 AI 技术有了亲密的接触。人工智能这个领域我们以前从未探索过,甚至参与项目开发的工程师都是由 Android 开发转型而来,所以本文将以机器学习小白的视角谈一谈我们如何使用 TensorFlow 实现人工智能,以及我们的心路历程。为了提升体验,让用户在充值这个最常用功能中感受一下所谓的黑科技,我们在 2016 年启动了充值卡扫描项目,希望用户打开摄像头对准充值卡密码轻松一扫即可完成充值。其核心 OCR 识别算是比较古老的研究领域,充值卡密码是数字
2、加空格的组合,想想应该不难。我们当时使用的方案,大概如下图的过程:最终效果当然是不太理想,充值卡与名片文档不同,密码区域刮开的大小因人而异、噪点非常不规则、扫描时手的抖动会增加错误的发生等等因素,加上我们没有在 OCR 领域的经验积累,最终没能达到良好的用户体验而不得不搁浅。但是在随后的日子里,我们与 TensorFlow 结下了不解情缘。在 2017 年谷歌开发者大会上我们了解到,谷歌人工智能底层的技术已经开源化,TensorFlow 的推出是为了让普通开发者将关注点从 “如何造轮子” 转移到 “轮子的花纹和样式” 上来,现场由谷歌工程师 Anna 全程用中文为大家介绍这个框架,她的演讲很赞
3、,为了不错过每一个细节我听得很仔细很投入。从大会回来之后,我们推翻重来并改变了思路:搭建一个神经网络让它学会认识电信充值卡。end2end learning:神经网络思想给我们带来了彻底的改变,所谓 end2end 模型是要通过这个模型输入图片直接获得结果数字。这种方式,不再需要手工处理图片的特征,任何部分的误差,都作为整体的一部分,通过神经网络的反向传播都能得到修正。seq2seqlearning:seq2seq 是一种 EncoderDecoder 结构的网络,它的输入是一个序列,输出也是一个序列, Encoder 中将一个可变长度的信号序列变为固定长度的向量表达,Decoder 将这个固
4、定长度的向量变成可变长度的目标的信号序列。这种结构的神经网络常用于语音识别,也可以用于不定长文字的 OCR 识别。对于我们的项目而言 Encoder 输入是 200*30 大小的图像,Decoder 是可变长度的数字加空格组合。神经网络搭建:CNN+LSTM+CTC这是个成熟且先进的神经网络架构,我们在分析学习了许多科学界论文后选定了这个方案,CNN 卷积神经网络负责抓取图片特征,LSTM 长短期记忆网络负责对字符的识别,CTC 算法对结果进行对齐优化。这个方案有很多优秀的TF项目可以参考,使用 TF 实现其网络结构也非常方便,这使我们更快更容易的着手开发工作。在我们刚接触神经网络的时候,看到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何 使用 TensorFlow 实现 人工智能
链接地址:https://www.31doc.com/p-3421520.html