为什么需要神经网络?
先从过年抢票这个事开始吧,时间回到若干年前,12306网站刚推出时相信大家都在网站上抢过票。
在网站上抢票,每抢一次都需要输入一次验证码,这让用户很烦,因为有些验证码长得非常奇葩,大家识别这些验证码会经常搞错,错了又要重新输入一次,就这样来回拉锯下去,票被别人给抢走了。
正是看到了这样的用户痛点,老板找到产品经理说了一个设想,这个设想就是由软件来自动识别验证码并输入,无需人类来识别和输入,这样就可以实现用户预先下单,如果订票成功就自动出单,这样的话用户岂不很方便,先让用户形成依赖,我们再推出相应的会员及收费产品,比如只有成为付费会员之后,才能够使用自动下单的功能。
产品经理非常认同老板的想法,产品经理还觉得实现这个验证码识别挺简单的,因为当初12306的网站上的验证码还仅仅只是数字,就只是识别从0~9这10个阿拉伯数字,产品经理觉得这样一个小case就不需要去立项,直接找个开发搞定就行了,产品经理找来开发人员,大致讲解了下需求,还给了如下几张验证码图片让开发人员参考。
开发人员收到需求之后,琢磨了半天找到产品经理,说这个事情真做不到呀,产品经理满让给出原因。
开发人员说我根本没有办法把数字的识别规则给全部找出来,就以上图9530这个验证码为例来说吧,9这个数字图像有些红点,当有了这些红点之后,我写程序必须把这些红点所在的位置给罗列出来,否则程序根本无法判断这个是一个数字9,但是这些红点是12306网站随机生成的,我写程序根本不可能把这些未知的条件给出来吧,其他的数字也存在类似的情况,所以做不了。
产品经理听完开发人员的解释也觉得合情合理。没想到一个看上去很简单的数字识别,竟然无法用编程实现,老板交待的任务难道完不成了吗?
但是转念一想,不对呀,据说国外已经有这们的软件产品推出来了呀,这个情况和开发人员说了之后,开发人员说他也知道此事,据说此产品中是使用了基于神经网络的深度学习OCR识别技术搞定了验证码识别的事情,开发人员建议产品经理找算法工程师聊一聊,因为好象他是在研究这个神经网络和机器学习。
产品经理收到了开发人员的建议之后呢,就去找算法工程师,算法工程师听完了产品经理所讲解的需求之后,说这个事情呢,机器学习和深度学习都能够搞定,他们都特别擅长处理这种在人类看来有规律,且又有大量数据证明这种规律存在,但传统编程就是无法实现的事情。
听完算法工程师的讲解之后,产品经理总算放下心了,老板交待的事情总算能完成了。
此时好奇心超强的产品经理向算法工程师请教神经网络具体是怎么做到验证码识别的呢?
相信此时在看本文的童鞋也有此问,有此好奇心的童鞋欢迎下篇文章《神经网络是如何解决验证码识别问题的?》
讲到这,给大家留个思考题:深度学习、机器学习擅长解决什么问题,先决条件是什么?
有关于HCIE课程的疑问
领取专属 10元无门槛券
私享最新 技术干货