1.6 人工智能在海量数据处理中不可替代的原因
人工智能的精髓在于从人类的经验中学习,通过反思调整,由学习的内容不断改善接下来的行动,完善系统的参数,以便表现得更好。
机器学习的定义。从构建人工智能框架和开发人工智能应用程序的角度,这个定义是最适合的:基于经验来自我调整,更好地改进处理现实中事情的能力。可能有时候调整需要一些依据,这是监督学习的内容,可能有时候也没什么依据,需要通过机器学习找出一些规律,这是非监督学习的内容。非监督学习是推荐系统的核心。深度学习自动编码技术都是以非监督学习的方式去发现一些规律,然后做推荐。
机器学习的经典步骤。无论是普通的机器学习算法还是深度学习算法,基本上都采用以下步骤实现:
(1)获取数据。从各种终端获取数据,例如手机、汽车终端等。
(2)数据预处理。对获取的数据进行预处理。
(3)选择模型。根据业务的需要选择适合的模型。框架通常都提供了算法作为支撑,如果框架没有提供相应的算法,则需手动实现算法。
(4)模型训练。构建一个损失函数,输入训练集样本,通过前向传播算法得到预测值,将预测值与实际值比较计算损失度,然后通过反向传播算法更新权重参数,不断迭代直到损失度很小,使准确率达到一个理想值。
(5)模型评估。对于回归、分类问题采用不同的模型评估方法。例如,对于回归模型可采用拟合度、改进的拟合度进行性能评估;对分类模型可以采用混淆矩阵、准确率、累积精度曲线进行性能评估。
(6)参数调优,例如学习率的调整。参数调优的根本在于对算法模型的理解。
深度学习的美妙之处在于给它一批数据,它能自动找出数据之间的规律,且进化的速度特别快,找出规律的速度也特别快,而不需要人从海量的数据中去找规律,因为人的体力、智力、记忆力都是有限的。
为了应对海量的数据,人类必须借助人工智能的方式来处理数据。目前,只有人工智能能面对现在和未来数据爆发式增长的挑战。所以,作为IT人才,要在今后二年有大的作为,必须要进行人工智能研发。另外,由于人工智能本身的特点,传统的编程方式可能会被人工智能取代,因为无论什么行业,无论什么编程语言,是用于前端、后端还是移动端等,编程都是基于框架,流程都很标准化,如果数据的产生过程实现了标准化,那么传统的编程不再需要开发工程师。
技术背后的技能是可以转移的,从技术的角度,开发安卓软件和做人工智能或大数据没什么区别,只不过使用的架构是从不同的角度去处理数据。做安卓软硬件集成的时候,处理数据是由最底层驱动,然后依次是Linux内核、HAL、Service、服务框架、安卓应用层,按垂直顺序处理用户的数据;做社交网络时是通过服务端,提供J2EE版本及Linux PHP+MySQL处理数据;做大数据时是以分布式计算处理数据;做人工智能也是通过各种算法处理数据。处理数据时,一是要回到最原始的状态,就是面向CPU、GPU、内存、磁盘及网络,这是最基本的;二是起决定性作用的。例如人工智能,我们实现的盘古人工智能框架,是一个真正可以应用而且效果还不错的人工智能框架,它底层起决定性因素的是前向传播算法和反向传播算法。