我已经阅读了很多关于 DL 的内容。我可以在一定程度上理解它的工作原理,至少在理论上,以及它在技术上与传统机器学习有何不同。但我正在寻找的更多的是“概念”含义。
假设你正在设计一个自学系统,你为什么会选择深度学习?DL 提供的主要性能优势是什么?是准确性、速度、功率效率,还是所有这些因素的结合?
我已经阅读了很多关于 DL 的内容。我可以在一定程度上理解它的工作原理,至少在理论上,以及它在技术上与传统机器学习有何不同。但我正在寻找的更多的是“概念”含义。
假设你正在设计一个自学系统,你为什么会选择深度学习?DL 提供的主要性能优势是什么?是准确性、速度、功率效率,还是所有这些因素的结合?
深度学习允许您解决复杂的问题,而不必提前为模型指定重要的“特征”或关键输入变量。
举个例子,如果历史索赔数据可能包括保单持有人及其车辆的各种属性,那么在没有深度学习的情况下可以轻松解决的问题可能是预测保险车辆索赔的频率和索赔金额。在这个例子中,模型中要指定的“特征”是保单持有人和车辆的已知属性。然后,该模型将尝试利用这些特征进行预测。
另一方面,面部识别是一个更适合深度学习算法的问题。这是因为很难手动识别哪些像素组合可能是包含在传统机器学习模型中的重要特征。然而,多层神经网络具有识别/创建重要特征本身的潜力,其中可能包括例如眼睛、鼻子和嘴巴,然后利用这些特征来识别面部和其他物体。
如今,深度学习对很多人来说意味着很多事情,它很快成为一个流行词。但到目前为止,它仍然保留了两个非常重要的概念属性:
消除了大多数特征工程工作。上面的答案中提到了这一点,但这非常重要。真的省了很多工作。
允许您最大限度地利用未标记的数据。严格来说,这对于其他方法来说是可用的,不仅仅是深度学习,而且在深度学习中,这真的很成功。通常情况下,标记的数据很难获得,而未标记的数据到处都是。去噪自动编码器和受限玻尔兹曼机之类的东西非常棒。
深度学习可以让你在不知道答案的情况下向程序提问。他们的主要好处是他们有限的能力和灵活的性质。
程序化编程解决问题的问题是你必须知道计算机需要做什么才能解决问题。
深度学习所做的是消除程序员知道如何解决问题的要求,让他们只需要知道计算机需要知道什么。
这是神经网络的全部前提。程序员为解决特定问题所需的数据点编写程序。
给计算机一个输入,它会给出一个答案。如果它的答案是错误的,它需要降低它给出的答案的可能性和正确答案的可能性。目标是让计算机始终得到正确的答案。如果计算机总是得到错误的答案,那么神经网络就太小了。
什么是深度学习,是一种深度的神经网络。要回答这个问题,您需要知道神经网络是怎样的。
神经网络基于一个神经元:
神经元可以是一个类或函数,实现真的无关紧要。每个输入的权重随着询问更多答案和验证响应而变化。
当输入和输出之间有一行神经元时,神经网络的深度是一层。当几个神经元对输入做出决定,而最后一个神经元或多个神经元做出偏向于这些神经元的决定时,两层。
当至少有四层神经元时,神经网络称为深度?(做一些研究不要相信我的话^_^
)
深度学习的缺点是它的能力是有限的。深度神经网络无法靠它自己变得比它的程序更聪明。如果不以某种方式改进,它的智能曲线类似于根时间。这导致了神经网络中的另一个问题。虽然程序员不需要知道计算机是如何做出决策的,但他们仍然需要知道需要添加哪些问题或节点。这是一个问题的原因是,如果负责的节点不在那里,程序将在奇怪的情况下出错,并且无法自行纠正。网络越大,解决这类问题就越困难。
这将导致不可避免的解决方案,通过某种类型的生成算法让计算机自我改进。这有其自身的广泛问题,好像没有正确构建可能会发展成意想不到的东西,如果它很快失败,会浪费时间和金钱,如果它看起来有效而无效,可能会有潜在的危险。
人工智能的答案将是深度神经网络、一些生成类型的编程和一些新的想法和创新的组合。
浅层网络对于处理现实世界应用程序中常见的复杂任务所需的泛化类型所必需的递归或扩展抽象能力较差。
这与近一个世纪前在模拟世界中发现的问题相同。人们可以尝试减少旧电子管收音机设计中的组件以降低其成本,但调谐和放大所需的独立操作数量最少。几十年后,基本功能都集成在一块硅片上,但没有一个晶体管可以完成全部任务。控制的外部性越复杂,控制系统就越复杂,无论它是否是一个学习系统。
在机器学习中最熟悉的基本 NN 架构中,通常,宽度由输入和输出区域的自由度驱动。深度是由近似非线性控制复杂性的需要驱动的。