知识框架图如下
- 人工智能、机器学习、深度学习三者之间的关系 随着深度学习方法在众多邻域的快速研究和应用,人工智能的发展又迎来了一次高峰。在人工智能提出后,我们希望通过人工智能系统模仿人类的处理不同事物的一些列动作与行为,如准确地识别出图片上出现的内容信息,理解一段文章的含义与情感。然而,在实现人工智能的道路上,人类面临着一些机遇与挑战,其中深度学习对人工智能的发展有着巨大的影响。下图1描述了人工智能、机器学习、深度学习三者之间的关系。
- 机器学习方式介绍 从上图1中可以看出,机器学习也是实现人工智能的一个分支,事实上也是人工智能领域发展最快的一个分支。简单地理解,机器学习是计算机程序如何随着经验的积累而自动提高性能,使系统自我完善的过程。根据机器学习应用场景和学习方式的不同,可以简单地分为三类学习方式:无监督学习、半监督学习和有监督学习。
2.1 无监督学习
无监督学习和其他两种学习方法的主要区别在于无监督学习不需要提前知道标签数据集的类别标签。无监督学习算法使用场景通常为聚类和降维,如使用k-means聚类、系统聚类、密度聚类等算法进行数据聚类,使用主成分分析、流形降维等算法减少数据的特征数量。
2.2 半监督学习
半监督学习是一种介于有监督学习和无监督学习之间的学习算法,半监督学习的特点就是利用极少量的标签数据和大量的无标签数据进行学习,通过学习得到的经验对无标签的测试数据进行预测。
2.3 有监督学习
有监督学习的主要特性是使用大量有标签的训练数据来建立模型,以预测新的未知标签的数据。用来指导模型建立的标签可以是类别数据、连续数据等。如果标签是可以分类的,如0~9手写数字识别,则称这样的有监督学习为分类,如果标签是连续的数据,如身高、年龄、股票等,则称其为回归。
- 深度学习与传统机器学习的差异 3.1 深度学习迅速发展的必然性 深度学习是一种机器学习方法,与传统的机器学习方法一样,都可以根据输入的数据进行分类或者回归。但随着数据量的增加,传统的机器学习方法表现得不尽人意,而随着数据量的积累和计算机性能的提升,利用更深的网络挖掘数据信息的深度学习表现出淋漓尽致的性能,迅速受到学术界和工业界的重视。尤其在2010年之后,各种深度学习框架的开源和发布,更进一步的促进了深度学习算法的发展。
3.2 深度学习算法与传统机器学习算法的差异
深度学习算法和传统的机器学习算法相比,其最大的特点是端到端的学习,在进行学习之前无须进行特征提取等操作,可以通过深层的网络结构自动从原始数据中提取有用的特征。两者的学习过程的差异性如下图2所示。
从图中可以看出,在传统的机器学习过程中,需要更多的人为干预,尤其是在特征提取阶段,需要使用者具备足够的图像处理相关知识,才能够找到有效的数据特征,这给建模难度和预测效果增加了不确定性。相比之下,深度学习的方法由于具有端到端的特性,可以直接从原始数据中找到有用的信息,在预测时只使用对预测目标有用的内容,增强了其预测能力,而且不需要过多的人为干预,提高了预测结果的稳定性。
- 深度学习的主流研究框架 随着深度学习的大发展,各种深度学习框架也在快速被高效和研究机构发布和开源。近两年来,很多科技公司如Goole、Facebook、Microsoft等都开源了自己的深度学习框架,供学习者学习研究,常用的学习框架如下图3所示。
在众多深度学习框架当中,PyTorch是基于动态图计算的深度学习框架,也是非常年轻的深度学习框架之一,在2017年1月18日,PyTorch由Facebook发布,凭借着其易用性和生态完整性的特点,迅速引起学术界和工业界的关注,并且在2018年12月发布了稳定的1.0版本。
PyTorch主要有两大特点:一是可以非常好的使用Numpy,而且可以使用GPU加速;二是使用动态图计算使网络更加灵活,并且可以构建基于自动微分系统的深度神经网络。下表1给出了常见集中流行框架的比较。
表1 常用深度学习框架比较
- 总结 在本篇文章中,主要介绍了机器学习与深度学习之间的差异和相关应用场景,以及常用的深度学习框架,对这些框架进行了对比,其中重点介绍了PyTorch在深度学习中的优势。