过去那一段时间,直到感受做不出明确的实作成果,和夥伴才意识到题目有问题。
经验整理一下,或许可以用几个面向来决定我们的题目:
连续型资料v.s离散型资料
这取决於你想要的是一个数值结果,还是Yes or No 的答案。
数值的结果基本上会是一种连续型的资料,譬如说预测老板明天会几点进办公室,可能9:01分,可能九点02分,或者9点03分。
更精准的数值,也许是9:01:00,也许是9:01:01,甚至9:01:01.234等等,换而言之这就不会有标准答案,我们只需要的一个可以接受范围内的答案。
或者预测房屋总价,假设有个物件在800万上下,802万,805万,820万等等其实意义不大,我们只是需要个大概的价钱。
一方面,因为是数学公式运算,得到的解若非精准一模一样,在数学上就是不正确,因此这种题目的答案可以说一开始就没有完美解答,只有误差范围在一定的程度之下的答案。
离散型的答案,譬如说对/错、是/否、猫/狗辨识等等,彼此个体差异有明确的界线,比起数值的加减乘除,你在意的是能够分界的参数。
这两种不同性质的结果,会影响到参数的取用,以及模型的选定。
范围越大,问题会越复杂,所需要的参考参数也会越多,甚至会需要因应不同的情境而调整(换句说问题复杂到考虑各种情境)。
而一个参数,就可以想像成一个维度,试想人类生活在3维空间,感受到4维的流动(时间),4维以上已经无法用图像表示模型的运作处理,只能用数学表示,可知道对於理解的直觉上会有诸多不便。
因此题目的大小,一方面可以用需要选用参数多寡,作为检视题目难易的一种参考依据。
题目可以是开放式的问题,或者天马行空的想像,不过答案越肯定与切确越好,最好每个人听到这个问题都有共同的认知与定义,ML才越有机会做下去。
举例来说,题目定义「抓出违反交通规则的行为」,什麽是违反交通规则?答案无法在短时间得出,而且有模糊边界,答案基本上有分歧的状况之下,这个题目有非常高的复杂度。
但是题目简化一下,变成「抓出闯红灯的行为」,问题简单多了吧?不过也因此我们当初太大意了,认为这样的题目已经简略到可以处理,其实却还是太过拢统。
闯红灯也许是汽车、机车、脚踏车、行人、甚至一只狗、另外是不是要排除救护车、警车、消防车的通过,通过两个直线的红灯才是我们关心的问题,或者违规在红灯时回转,也是我们关心的问题呢?
诸如此类,题目能够精简,入门的障碍在开始之前就能够排除一大堆。
当然就会开始碰到现实面的问题,太简单的问题,对商业产出是否有意义呢?是否能够说服你的老板进行项目?
以猫狗辨识来说,这世界上有猫有狗,进行ML就不太困难。
但你要预测世界有没有外星人,或者经过几年後,我们会跟外星人有一次清楚的文明交流,问题就相当困难。
现实层面上,你要预测电商每天会有多少订单量,比起预测明年双11办活动的时候,会有多少订单量还来得容易。
每天的订单量在你每次训练完模型,或者参数调整完,马上就可以验证与调整。
办活动的订单量却在明年活动结束之前,都不知道结果如何。
我们常说机器学习,就是一直在训练模型,所谓「训练」真的不是随便说说而已,需要反覆进行无数次的调整,要怎麽调整又是基於前次的不好而改变,如果不知道结果好坏,又该如何调整?
所以基於成本效益,能够短时间验证我们训练结果的题目才是好题目,如果没办法确定的事情,就先放一边去吧。
又譬如说你想要做一个侦测骇客攻击的AI模型,除非团队有能力自行制造情境,否则你怎麽知道骇客什麽时候会来攻击系统,好验证你的训练模型呢?
以上大概是这阵子来的血泪心得,我们的题目在前两次都选择不够好。
这个分享适合刚入门STM32的新手,快速了解STM32的开发生态 我昨天最後讲到我个人建议从标准库学...
还有一种类型的切版,是EDM切版, EDM切版是什麽呢? 指的就是信里面看到的版面,像是下面这个就是...
manageGaugeVisibility方法 bitmapHeight方法 bitmapWidth...
第三? 第二道墙那边,没什麽变化啊... 真是奇怪,R呢? R走到了灯塔的另外一边,另一边有什麽吗...
Charts 官方网站 https://github.com/danielgindi/Charts ...