@
Richard14 #4
我举个自己的例子吧,虽然跟人家没法比,但过程是可以说一说的
我用 KNN 做一个小小小小模型,数据少于 1w ,tag 只有两个:True/False ,可以说极其简单了
这个模型基本各种参数都选定了,不用调,唯一要调整的近邻 n 的个数,可选为 4~15 ,共 12 个
然后将数据随机方式分 20 组,每组有训练样本和测试样本
将每组和 12 个可选参数,用训练样本各训练一次,然后用测试样本测试,这样共 240 次测试
最终选定 n=8 ,因为 n=8 时所有测试结果都落在 96.5~98%之间,是最稳定的
其实 96~98%并非最好的,当 n=12 时,有三组得出了 99%以上的,但是 n=12 的其他 17 组,最低还出现 88%,分布很乱;所以 n=12 是不能用的,因为用到真正产出时,结果的准确性无法预计
我想说的是,光一个仅 12 可选项的参数的调参工作,工作量就达到 240 组,多个参数可想而知,这里 KNN 的训练只是纯粹打包,几分钟而已,而有些模型的一次训练就要几小时甚至几天(视乎算力)
当然,可以只用一组作为调参测试就选定参数(只跑 12 次),但实用时的结果嘛……可能要骂娘了
然后,上述还忽略了一个重要问题:采样数据是否合理,如果不合理,前面说的所有的工作都是白搭
因为我个人能力有限,只能获得这小一万的数据,更多我就要花钱雇人帮我收集了,还不是雇一个人就能搞定的
所以我手头的这一万数据,是否有代表性,分布是否合理,这里还有采样学的分析(上面只是默认为合理)
例如我要做一个买菜意愿的模型,然后我从程序员采集了一万数据,但程序员买菜的极少,这样的数据做出的模型用在评估家庭主妇,那就是错漏百出、惨不忍睹,大概就是这个意思
例如现在的公开人脸提取模型,用于欧洲人比亚洲人更精准,就是因为采集做模型的数据欧洲人占多这个原因
你如果看过我写的其他帖子(回复帖),我说过,AI 是一个长久的工作,需要几代人努力,包括机器学习和深度学习,目前还没有一个算法能通吃不同领域的,所以做模型时还有选数学算法(或者组合算法)的步骤
目前文献还是说基础算法的实现,至于用到实处,因为不同的数学算法在不同领域表现不同,就需要做业务模型的人自己来选择并测试了,文献换个角度看就是说某个算法能把模型做出来,但结果不能打包票
例如我上面这个例子,用 CNN 或者其他也能做,只是我嫌麻烦(部分是不熟悉),所以没有用其他算法测试,说到底就是懒,96%的结果我可以接受,如果只有 70%,我可能就要硬着头皮换其他了,那样的话又是新一轮工作量了