AI要比自动化复杂多了。自动化是利用一个过程的可重复性、可预测性,借助电脑和机器提高效率,没有能力处理意外的情况。一旦有意外,那就不仅仅是个技术问题,还很可能牵涉法律、保险责任、道德等。严格意义上的AI,with intelligence,应该可以学习新的不是预先设定的东西,或者(并且)可以做具有随机性的但又合乎常理的决定。AI的学习,确保一定能学会就很难(convergence with certainty),学得快更不容易(convergence within finite amount of time)。打个比方,让毛毛虫学中文,就未必学得会;再加班加点,也未必能在化蝶之前学得成。AI做随机而又合理的决定,由谁来负责是一个大问题。法律上还没有“机器人三定律”的影儿,是因为AI还差得远。
大型复杂系统的运算,电脑算出来的结果,是包涵和积累了很多不确定性的,怎么证明结果是正确的,是个大难题。如果电脑算出个逆矩阵,拿原矩阵一乘,归一了,就胆敢做结论说运算正确,就等着开路吧。非线性系统的线性近似,同样道理。
大型软件工程的整合跟调试,远比开发过程更难。一百个码农研讨仨月,编码仨月,而整合调试需要一年,不算稀奇。讨论得再清楚,编码再严格,一百码农的码,堆在一起,也不可能“码”到成功。容易的bug,第一个月就发现解决了;等过了deadline,甚至上了架还没解决的,就非老将出马不可了。
学CS、CE,跟任何一行都一样:学得好,考得好,跟用得好根本不是一回事儿。所谓行行出状元,行行有笨蛋。
祝大家新年快乐!