2016年AlphaGo掀起人工智能热潮。作为程序员,我们更关心:如何在软件中应用AI?
核心认知:AI的目标是增强智能(IA),而非替代人类。 AI并非新概念,早年受限于算力,近年云计算与大数据让其可用性大增。但图像、语音识别的突破只是让机器更聪明,远未达到人类水平,作为智能助手更合适。
概念关系:AI是让机器像人思考的大概念;机器学习是实现AI的方法,用算法解析数据、做出预测;深度学习是机器学习的一种,模拟神经网络,用海量数据训练;统计学是机器学习的基础。应用AI是计算机、统计、知识工程与行业知识的交叉。处理结构化数据优先用统计学方法,非结构化数据(图像、视频、文本)优先用深度学习。入门需补线性代数、数理统计与Python。
增强智能的三个层面:
机械智能:事先设定规则,让计算机完成重复计算,以规则为核心。
实现意图智能:人知道结果,但不告诉计算机规则,通过数据训练让其自己找规则,计算机成为黑盒。
创造意图智能:让计算机自己发现人未知的新知识,这是最向往的场景。
实践需思维转变:不能再用制定规则的方式指挥计算机,而要训练它自己找规律。例如我们梳理数据架构时,用字段特征向量与相关系数自动查找外键关系,替代人工遍历,通过数据训练找到合适模型与算法。
从智能连接入手:软件架构分而治之带来集成挑战,集成复杂度影响系统研发。我们可从数据+连接方向探索AI应用:大数据团队用知识图谱实现数据自服务,移动团队用深度学习实现UI智能化开发。前者通过自然语言处理建立知识图谱,梳理技术元数据,建立映射关系;后者通过图像识别设计稿组件,生成一致代码,并配合强化学习提升工程化能力。