最近一段时间,一直在琢磨更好的AutoML,像我这样的懒人,当然希望能最大限度的发挥自动化的威力。
从决策树到随机森林,从支持向量机到神经网络,从遗传算法到强化学习,我发现他们都只是解决了数据转换和模式发现的问题,并未解决智能的问题。
如何让算法更智能?一有时间,我就会到互联网上去搜刮,可是截止到目前,并没有找到让我眼前一亮的新思路。
直到我读了一本书《怪诞脑科学:战胜焦虑、混乱、拖延的自控术》,颇有心得,遂记录下来,以便日后查阅
可能有人会觉得奇怪了,一本并非计算机科学领域的书,怎么能给人工智能的设计带来启示呢?我觉得好奇的朋友也可以看看,微信阅读上就能看到(涉嫌免费打广告了 ;-))
1."克鲁机"(kluge)
这是什么鬼?作者在文中大量使用了“克鲁机”这个词语,反复的强调了一个观点:不要把人脑看的过于神秘,人脑只不过是漫长进化的产物,而进化过程中难免会有失败的作品(比如盲肠等),所以人脑也是类似的(小脑和脑干也很原始),人的身体中充斥着各种“克鲁机”。
虽然没办法找到确凿的证据,但我总感觉“克鲁机”的观点似乎好有道理。所以,我觉得在机器学习模型设计上,不能仅仅只是一味的去探索和模仿人脑,而更应该用抽象思维去分析人脑处理信息的过程,所以更应该审慎的去看待目前火热的深度学习模型(深度学习方向真的正确吗?还是我们只是找到了一个筛子)
而目前的决策树和集成树模型,从原理的角度看,似乎更科学一些(只不过数据处理和加工需要投入更大的精力)
2.真正的智慧
这是作者给出的结论,我认为每条结论对个人的成长都有借鉴的价值,而更重要的是,能时刻正确分辨“智能”发展的方向:
2.1 尽可能考虑有无其他可行的选项
作者在这里列出了冷静思维、反向思维、虚拟思维的重要性,而这些是目前主流人工智能算法框架欠缺的,往往都是数据分析和建模人员的主观劳动。
举一个具体的例子,GAN生成对抗网络采用了“反向思维”的思想,结果大获成功,不得不说,这些思想就是人类智慧的宝藏,里面还有很多东西可挖
2.2 重新界定问题
这个思想不必过多介绍,在我们的软件开发、系统架构、数据分析、模型设计中其实都已经普遍采纳,尤其是在项目的需求分析阶段,重新界定问题关系到系统的成败。怀疑一切、再三思考、更换思路、逆向思维、更换问题,是这个环节的重要套路
2.3 相关不等于因果
这是数据分析和特征工程工程中最容易犯错的地方,即使是一个经验老道的数据分析师,也会在这个环节犯错,必须对这个推断陷阱始终保持警惕。而目前的神经网络模型在鉴伪方面,明显存在不足,例如DeepFake产生的伪造人脸视频,很多模型设计的细节就是错把相关关系变成了因果关系。所以我个人觉得这个方面还有很大的提升空间
2.4 控制样本大小
我们目前的机器学习模型,绝大部分都是建立在统计学基础上,样本越大,结论才会越准确。而我们在做数据分析和模型设计时,往往容易主观忽视这一点,尤其是目前的很多Meta learn和RL的最新研究成果,往往都只是在少量数据集上进行了实验,而实际使用时,就会发现完全经不起考验
2.5 预知冲动并事先约束
每个人本质上都是有偏见的,都受限于自身的认知和欲望。而数据分析的结论和机器学习模型也是有偏见的,取决于数据分析师和建模人员。所以我觉得,在人工智能模型设计环节,应该采取更开放和谨慎的态度去架构,对于没有开放源码、难以复现的研究成果,不要因为个人的欲望就去拼命专研,而应该谨慎的保持关注
2.6 始终要有备选方案
这也是人工智能中最让人头疼的地方,我们使用了决策树,我们研究了运筹学和博弈论,但我们设计的智能程序却总是“一根筋”,这是系统设计中最忌讳的,备选方案会提高系统的“智能”和“友好”水平。
以上6点都是对智能设计有借鉴的地方,当然作者还有很多其他建议:
不要在疲惫的时候做决定
始终不断权衡收益和代价
设想他人抽查你的决定
和自己保持距离
当心生动化的谣言
挑选重点
尽量理性
这些对个人发展都是很有益的,只是目前在“智能”的设计上可能不会太相关。
以上就是我个人理解的人工智能启示,也推荐大家看看这本书。
最后附上一张数据分析生命周期图,结合数据分析的流程加强消化理解,也时刻提醒自己
当然,我的认知肯定也是片面的,欢迎大佬们来怼!