1.5 AI技术路线
AI的常用开发框架包括scikit-learn、谷歌的TensorFlow、Facebook的Torch、微软的CNTK等,这些框架都是开源软件。
scikit-learn简称为sklearn,是针对Python编程语言的开源软件机器学习库。它具有各种分类、回归和聚类算法,包括支持向量机、随机森林、梯度提升、k均值和DBSCAN。sklearn是GitHub上最受欢迎的机器学习库之一。sklearn与许多其他Python库很好地集成在一起,例如matplotlib和plotly用于绘图,NumPy用于数组矢量化,Pandas数据帧等。作为专门面向机器学习的Python开源框架,sklearn实现了各种各样成熟的算法,容易安装和使用,样例丰富,而且教程和文档也非常详细。sklearn的性能表现也是非常不错的。当然,sklearn也有缺点,例如它不支持深度学习和强化学习,而它们在今天已经是应用非常广泛的技术。此外,它不支持Python之外的语言,对GPU的使用并不高效。本书的前面6章的例子都是基于sklearn实现的。
2015年,谷歌发布第二代人工智能系统TensorFlow,并宣布将其开源。TensorFlow包括很多常用的深度学习技术、功能和例子的框架,本书用3章内容详细介绍TensorFlow。2013年,卷积神经网络发明者Yann LeCun加入Facebook,带领公司在图像识别技术和自然语言处理技术方面得到大幅提升。Facebook的深度学习框架是在之前的Torch基础上实现的,于2015年12月开源。表1-2列出了各个公司所提供的AI开源平台。
表1-2 AI开源平台列表
除了上述的AI开源平台和框架之外,AWS推出了SageMaker,Apache有Spark MLlib。Spark MLlib是一个具有高度拓展性的机器学习库,在Java、Scala、Python甚至R语言中都非常有用,因为它使用Python和R中类似NumPy这样的程序包,能够进行高效的交互。MLlib可以很容易地插入Hadoop工作流程中。它提供了机器学习算法,如分类、回归、聚类等。这个强大的库在处理大规模的数据时,速度非常快。Spark MLlib的官网地址是https://spark.apache.org/mllib/。Spark MLlib的优点是,对于大规模数据处理来说,非常快,可用于多种语言。缺点是,陡峭的学习曲线,仅Hadoop支持即插即用。