07-怎么教计算机认小狗?
你好,我是悦创。
上一集,我给你说的是计算机是怎么看懂颜色,怎么从颜色上给我们进行美颜的。这一讲,我要来给你说说计算机是怎么思考的,它是怎么辨认咱们的眼睛、鼻子、嘴巴的呢?
当然了,计算机能识别的不仅仅是咱们的五官,比如你可能听说过一些分辨动物植物的软件,只要用手机拍张照片,软件就能告诉你照片上的花花草草,或者小狗小猫是什么品种。还有些购物软件,能直接识别照片里的东西,然后给你找出一大堆和它相似的商品。

那你有没有想过,软件是怎么分辨出来你拍的到底是什么呢?万一你家的狗长得特别像拖把,比如音频封面上显示的这种,那计算机还能分辨出来吗?在辨认的时候,它又是怎么思考的呢?

首先,我必须告诉你,以咱们现在的技术,并不能造出一颗真正有思考能力的大脑,我们只能让计算机简单模仿我们思考问题的方法。所以,要搞清楚计算机是怎么思考的,咱们必须先了解我们人类是怎么思考的。
思考这件事咱们整天都在干,比如想一道数学题、想妈妈晚上会做什么好吃的,虽然思考的事情种类千差万别,但是咱们的思考方式大致可以总结成两种,一种叫做归纳法,一种叫做演绎法。
咱们先说归纳法吧,归纳法说白了就是总结规律。
举个例子吧,如果我问你,苹果是什么颜色的,你可能会说红色、黄色或者是绿色的,对吧?但你是怎么知道这件事的呢?其实你在不知不觉间用了归纳法。
假如你去水果店买水果,发现店里所有的苹果都是红色和黄色的,诶,你就根据看到的情况作出了一个假设,苹果是红色和黄色的。
那这个假设对不对呢?你可以去其他水果店验证,要是看到的苹果也都是黄色和红色的,那说明这个假设可靠,你就知道,苹果是红色或者是黄色的了。
可是有一天,你去别的苹果店,发现还有绿色的青苹果。这时候,前面的假设就不对了,但这会不会是苹果店老板的恶作剧呢?是老板故意把苹果涂绿了?

这时候,你就带着“苹果还有绿色的”这个假设,去别的水果店验证,如果发现其他很多水果店里也有,那就说明这应该不是恶作剧,你对苹果颜色的认识也就增加了。
万一哪天你又看见一颗紫色的苹果呢?就继续用这个办法去确认,不断完善自己的结论,这就是归纳法。
那计算机也能总结规律做判断吗?当然可以了。假设,咱们现在就要设计一个新软件,能够识别出你拍到的小动物是不是狗。你之前见过许许多多的小动物,早就知道什么样的动物是狗了,但咱们的软件从没见过呀,该怎么办呢?
你可能想到了,咱们可以弄一大堆狗狗的照片,让软件自己去看,看完之后,软件自己就会总结出一套规律了,下次再看到新的照片,软件就可以按照自己总结的规律判断了。
当然了,为了保证软件能够总结出靠谱的规律,你也要给它提供特别全面的狗狗照片,什么哈士奇呀、金毛呀、柯基呀,都得有。听起来有点麻烦对吧?

但是这还没完,软件自己发现的规律有可能是错的,这可怎么办呢?
别着急,你可以回忆一下,咱们在总结苹果颜色的时候,还有一个特别重要的环节,那就是去别的水果店里验证,一旦发现原来还有绿色的苹果,那我们就要调整之前的假设。这样,我们总结出的规律才靠谱。
对软件来说也是一样,如果你想让软件自己总结出靠谱的规律,不光要给它看足够多的照片,还得在它作出判断的时候告诉它对或者不对,好让它不断调整自己的评价方法,变得越来越可靠。
那听到这,相信你也能理解咱们上一集提到的问题了吧?计算机是怎么知道一张照片上哪里是眼睛,哪里是嘴巴的呢?
没错,科学家们会先给软件看好多好多照片,并且告诉它哪些地方是眼睛,哪些地方是嘴巴。然后拿新的照片给软件看,让软件做判断,如果对了,那当然最好。如果错了呢,科学家们就会告诉软件正确的答案,软件就会调整自己的判断方法。随着看的照片越来越多,它识别得也就越来越准确了。
那除了归纳法,还有一种思考方式叫演绎法。演绎法也很容易理解,打个比方吧,就像是你先给计算机定一个判断标准,让它拿着去做判断。
咱们还是以狗狗识别软件为例吧,你可以告诉计算机狗有四条腿。这个狗有四条腿就成了它的判断标准了,两条腿的鸡鸭、六条腿的蚂蚁、八条腿的蜘蛛,在它看来都不是狗。
但你要是拿一头牛的照片给它看,诶,牛也是四条腿啊,那这个软件可能会觉得这也是狗,这就不对了吧?
那怎么办呢?很简单,我们可以继续告诉软件,“狗有四条腿,但是又不太大,大概10-40斤重,头上没有犄角,同时还会汪汪叫。”
诶,加上这个标准,软件又能判断得更准确了。当然了,你还可以把所有品种狗狗的特征都告诉它,你描述得越详细,软件判断得也就越准确。
但是,狗狗的种类太多了,你要是少说了一点,软件都可能会搞错。比如,你要是忘了告诉它柯基的特征,它可能就会把柯基当成别的动物,因为在它看来柯基的腿太短了。

了解演绎法和归纳法,咱们就可以设计出聪明的程序了。另外,在了解这两种思考方式之后,我还想请你思考一个问题,你可能会觉得,学校里每天都要学那么多知识,真是太烦了,能不能不学呢?
你看,咱们在用演绎法的时候,需要有一个靠谱的前提,这个前提可不是天然长在你脑子里的,而是需要不断学习新的知识,才能获得的,而且,你学到的知识越多,你进行演绎推理的结果也就越准确。
那归纳法呢,你可能觉得归纳法不就是找规律吗?学那么多知识有什么用呢?
我给你举个例子吧,比如告诉你1、2两个数字,让你猜接下来的数字是几。假如你只学过加减法,你可能只能作出一种假设,后面一个数字是3。
但你要是学了乘法,你还能作出另一种假设,1×2等于2,所以后面一个数字还可能是2×2,就是4。但等你高中学了指数函数,还可以找到其他的假设。所以呀,看到相同的东西,你的知识越丰富,能作出的假设越多,就越有可能找到正确的规律。
你看,编程思维不仅能用在设计程序上,对咱们的生活也有启发作用。那么,你还能在生活或者学习里,找到自己使用归纳法和演绎法的例子吗?在留言区里跟我说说吧。
那这两讲,咱们说的是计算机怎么看见世界,下一讲,我就给你说说计算机是怎么听见世界的,咱们下集见。
更新日志
84e98
-于