- PyTorch深度学习与企业级项目实战
- 宋立桓 宋立林
- 1375字
- 2024-12-31 19:17:13
1.4 机器学习和深度学习
1.4.1 什么是机器学习
要说明什么是深度学习,首先要知道机器学习(Machine Learning,ML)、神经网络、深度学习之间的关系。
众所周知,机器学习是一种通过利用数据训练出模型,然后使用模型预测的方法。与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练”的,通过各种算法从数据中学习如何完成任务。举个简单的例子,当我们浏览网上商城时,经常会出现商品推荐的信息。这是商城根据你往期的购物记录和冗长的收藏清单识别出其中哪些是你真正感兴趣的,并且愿意购买的产品。这样的决策模型可以帮助商城为客户提供建议并鼓励产品消费。
机器学习是人工智能的子领域,机器学习理论主要是设计和分析一些让计算机可以自动学习的算法。
举个例子,假设要构建一个识别猫的程序。传统上,如果我们想让计算机进行识别,需要输入一串指令,例如猫长着毛茸茸的毛、顶着一对三角形的耳朵等,然后计算机根据这些指令执行下去。但是,如果我们对程序展示一只老虎的照片,程序应该如何反应呢?更何况通过传统方式要制定全部所需的规则,而且在此过程中必然涉及一些较难定义的概念,比如对毛茸茸的定义。因此,更好的方式是让机器自学。我们可以为计算机提供大量的猫的照片,系统将以自己特有的方式查看这些照片。随着实验的反复进行,系统会不断学习更新,最终能够准确地判断出哪些是猫,哪些不是猫。
我们不给机器规则,取而代之,我们“喂”给机器大量的针对某一任务的数据,让机器自己学习,继而挖掘出规律,从而具备完成某一任务的智能。机器学习是通过算法,使用大量数据进行训练,训练完成后会产生模型,将来有新的数据进来能够进行准确的分类或预测。
机器学习的常用方法主要分为监督学习(Supervised Learning)和无监督学习(Unsupervised Learning)。
1.监督学习
监督学习需要使用有输入和预期输出标记的数据集。例如,指定的任务是使用一种图像分类算法对男孩和女孩的图像进行分类,那么男孩的图像需要带有“男孩”标签,女孩的图像需要带有“女孩”标签。这些数据被认为是一个训练数据集,通过已有的训练数据集(即已知数据及其对应的输出)来训练得到一个最优模型,这个模型就具备了对未知数据进行分类的能力。它之所以被称为监督学习,是因为算法从训练数据集学习的过程就像是一位老师正在监督学习。在我们预先知道正确的分类答案的情况下,算法对训练数据不断进行迭代预测,然后预测结果由“老师”进行不断修正。当算法达到可接受的性能水平时,学习过程才会停止。
在人对事物的认知中,我们从小就被大人教授这是鸟,那是猪,那是房子,等等。我们所见到的景物就是输入数据,而大人对这些景物的判断结果(是房子还是鸟)就是相应的输出。当我们见识多了以后,脑子里就慢慢地得到了一些泛化的模型,这就是训练得到的那个(或者那些)函数,从而不需要大人在旁边指点的时候,我们也能分辨出来哪些是房子,哪些是鸟。
2.无监督学习
无监督学习(也叫非监督学习)则是另一种研究得比较多的学习方法,它与监督学习的不同之处在于我们事先没有任何训练样本,需要直接对数据进行建模。这听起来有些不可思议,但是在我们认识世界的过程中很多地方都用到了无监督学习。比如我们去参观一个画展,我们对艺术一无所知,但是欣赏完多幅作品之后,也能把它们分成不同的派别(比如哪些更朦胧一点,哪些更写实一些,即使我们不知道什么叫作朦胧派,什么叫作写实派,但是至少能把它们分为两个类别)。