1.2 神经网络的应用
神经网络是一种自动的特征提取器,神经网络可以自动从原始数据中提取重要的特征,无须手动设计特征工程,这使得神经网络在图像、语音、自然语言处理等领域中表现出色。
神经网络在模式识别方面表现突出,特别是在语音、视觉和控制系统中,能够识别和分类对象或信号等。此外,神经网络还可以用于执行时序预测和建模任务。神经网络在通信、军事探测、生物医学工程、地震勘探、计算机视觉等领域都有广泛的应用。例如,电力公司可利用神经网络准确预测电网上的负载,以确保可靠性,并优化发电机的效率。又如自动取款机通过读取支票上的账号和存款金额,以可靠的方式接受银行存款。再如病理学家依靠癌症检测应用的指导,根据细胞大小的均匀度、肿块密度、有丝分裂及其他因素将肿瘤分类为良性或恶性。
传统的图像处理方法通过对图像的亮度、纹理和对比度等信息进行处理,提取到相关的特征,则可对图像的内容进行判断,从而达到设计分类器或检测器的目的。而这个过程中需要设计者拥有关于图像领域的专业知识,甚至需要较强的数学知识。因此,使用传统方法进行特征工程往往耗时费力,且效果有限。相比之下,将特征工程与分类器合并起来并用神经网络替代这两个步骤,可以大大降低工作量。设计者只需要提前确定三个问题:神经网络的神经元数量、它们的连接方式以及输入数据后如何自动学习连接强度。其余任务皆可交由神经网络自动完成,从而大大减少人工成本。
神经网络可以根据层次的数量分为浅层神经网络和深层神经网络,无论是浅层神经网络还是深层神经网络,都是一种通过直接输入数据来进行学习的机器学习技术。所以实际上深度学习技术也可以看作对函数y=fθ(x)的模拟过程。将x作为输入,再利用参数θ去学习x的特征,对于神经网络而言,不再通过人工设计的特征工程去提取特征,而是通过自动学习得到特征,即特征工程的自动化。这也是神经网络和传统方法在视觉问题上的一个重要差别。
与传统的机器学习相比,神经网络具有如下优势。
• 特征提取的高效性。
机器学习算法要求事先确定特征,在特征工程上需要花费大量时间和精力。而神经网络方法不需要大量的特征工程,可以直接通过训练自动学习特征,进行自我“修正”。
• 数据格式的简易性。
神经网络对数据格式的要求相对简单,在传统的机器学习分类问题中,通常需要对数据进行归一化、格式的转化等数据预处理工作,而在神经网络中则不一定需要,例如神经网络可以直接将图片的原始数据作为输入,而不做任何额外的处理。在设计者不知道怎么做数据预处理的情况下,直接将数据输入神经网络,也能得出一个相对不错的结果。
• 学习能力强。
神经网络可以在复杂、大量数据中学习,由于其内部有大量参数,所以神经网络的表示能力很强。对于复杂数据,传统的方法可能无法有效地学习和表示数据。
• 具有一定的迁移性。
在相近的任务上,神经网络具有一定的迁移性。比如在图像分类任务上,可以把在基准数据集上训练得到的网络迁移到当前任务,只需要在当前数据上进行微调便可得到所需的模型。
思考
既然神经网络这么强大,那么是不是任何任务都可以用神经网络来完成,不需要其他方法了?
首先,神经网络需要数据才能进行学习,因此第一个需要考虑的问题是数据的来源及获取数据的成本问题,有一些方法不需要使用大量数据,而是基于人类智慧的结晶,把智慧蕴含在方法中,这些方法本身可能非常简便易行。因此,在实际问题中,当需要解决任务时,设计者的第一反应应该是不一定要使用神经网络,而是先考虑利用相应的知识结构和储备来设计一些简单而高效的方法,也许不需要进行学习,就能够达到任务的要求。
其次,在实际应用中,神经网络是一种模糊技术。神经网络在实际应用中具有许多优势。例如,对于扫地机器人这类应用,若采用传统的控制方式,需要编写大量的if…then…语句,并对环境建模同时进行大量的精确控制。而采用神经网络则可以通过在扫地机器人前端设置碰撞传感器,当检测到前方可能有障碍物时,进行模糊计算并得出一个概率,然后根据这个概率做出模糊决策,来决定是否需要前进。此外,有时还会通过碰撞进行信息的反馈,然后经过多次撞击后学会避障行走,这也是神经网络的优势之一。但需要注意的是,在需要精确控制的应用中,神经网络并不是一个好的选择,例如手术机器人的操作。在这种情况下,必须使用精确控制来完成任务。
因此神经网络并不适合所有任务。它只是解决问题的一种工具,实际中还有许多其他工具可以使用,不一定仅仅使用神经网络来解决问题,有时用其他工具结合神经网络一起使用可能会得到更好的结果。