卷积神经网络 —— 深度学习基础

深度学习的基本思想

在这里插入图片描述
在原始的数据中,往往存在一些没用的、冗余的信息,它们在模型的训练中起到很小的作用,却占用大多的训练时间,甚至还会使得模型学习到一些不想干的特征,从而会影响到模型的性能。因此,我们需要从原始数据中选择出一些比较好的,对预测结果影响大的特征。

例如,在波士顿房价数据集中,一氧化氮的浓度、每栋住宅的平均房间数、低收入人口的比例对房价有着更加直接的影响。
在这里插入图片描述
仅选择这三个特征来预测房价,就可以得到一个比较好的结果。而其他的因素对房价的影响并不大,要注意的是,即使对于同样的数据,实现不同的任务,对于好的特征的选择也是不同的。

例如,
在这里插入图片描述
推选学习标兵,
在这里插入图片描述
就是重要的特征,其他特征则不是很重要。

选美活动,
在这里插入图片描述
就是重要的特征,其他特征则不是很重要。

原始的数据通常描述的是低级别的特征,有时候为了得到好的预测结果,我们需要从中抽象出更高层次的特征,然后把这样的经过加工的特征送入机器学习算法中去训练模型,在机器学习中,特征的选择和设计非常重要。如果使用好的特征,那么即使使用比较简单的模型,也能够得到优秀的结果。
在这里插入图片描述
在传统的机器学习中,首先通过特征工程来选择并设计出最适合当前任务的特征,然后把它们送入学习器,
在这里插入图片描述
进行分类或者回归。

特征工程对机器学习的效果起到非常关键的作用,会极大的影响结果的优劣,甚至决定整个任务的成败。

因此,特征工程往往是整个项目中的关键。需要花费大量的工作。

有人说,数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。

传统的特征工程依靠人工方式提取和设计特征,需要大量的专业知识和经验。特征的好坏在很大程度上依靠经验和运气,而且和具体的任务密切相关。

对于特定的任务,需要通过大量的工作,设计出适合该任务的特征,因此,特征的计算、调整、测试都需要大量的时间。

既然这种人工选取特征的方式十分费事费力,那么能否让机器自动的学习特征呢?

下图是我们在之前实现的鸢尾花分类的神经网络 ,
在这里插入图片描述
通过隐含层,将输入的四维数据转化为一个16维的数据,并通过 Relu 函数提取特征,然后在输出层,通过 Softmax 函数进行分类,其实,在全连接神经网络中,隐含层的作用就是提取特征。每经过一层隐含层,都可以看做是一次特征转换。因此,神经网络的隐含层也被称为特征层。
在这里插入图片描述
深度神经网络就是有着多层隐含层的神经网络。这些隐含层不断的对输入的低层特征进行组合,形成更加抽象的高层特征,最后使用一个 Softmax 分类器进行分类。
在这里插入图片描述
其实,神经网络可以看做是一种自动提取特征的方法。模型参数的初始值是随机选取的,因此,一开始提取出的特征肯定是非常不靠谱的。但是,在每次训练之后,都会逐层反向传递误差,自动调整神经网络中的模型参数。
在这里插入图片描述
这样,经过多轮训练之后,提取出的特征就越来越好了。可以正确的完成分类。

使用神经网络,特征工程就没有那么重要了,只需要对原始数据做一些必要的预处理之后,把它们直接喂入神经网络中,通过训练,自动的调整权值,使得预测的结果符合预期的要求。这种方式称为 端到端学习。
在这里插入图片描述

在一个训练好的神经网络模型中,低层隐含层的输出是更接近原始输入数据的低层特征,随着层数的增加,提取出的特征越来越抽象,表达能力也就越好。因此,神经网络中隐含层层数越多,效果也就越好,这种具有多个隐含层的深层神经网络,就是深度学习。

深度学习能够自动的从数据中学习到与任务相关的特征,从而避免了手工设计特征这项费事费力的繁琐低效的工作。但是,通过网络自动提取出的特征缺乏可解释性,不像手工设计的特征有明确的意义。

有人说,深度学习使得人工智能真正的落地,因为之前的人工智能在很多情况下,用不起来。人工设计的智能还是比较难于超越人类,而深度学习则把这一过程(人工智能)变成了数据驱动的过程,
在这里插入图片描述
目前落地的大部分人工智能产品大部分都是基于深度学习做出来的。例如,语音识别、计算机视觉等。

猜你喜欢

转载自blog.csdn.net/xuechanba/article/details/125038393