我正在接受Andrew NG的视频讲座。我很想知道回归方法是否被广泛使用。是否经常使用神经网络?我只是想知道安德鲁是否正在解释关于回归作为介绍材料。我想听听在现场使用机器学习的人。
答案 0 :(得分:0)
此问题与任何编码问题无关,因此它可能更适合其他StackExchange社区,例如DataScience或CrossValidated。这就是说,让我们尝试在线性分类器与神经网络主题中加入一些见解。引用DeepLearningBook,第168页:
了解前馈网络的一种方法是从线性模型开始 并考虑如何克服其局限性。线性模型,例如逻辑回归和线性回归,具有吸引力,因为它们可以有效且可靠地拟合,无论是封闭形式还是凸面优化。线性模型也存在明显的缺陷,即模型容量仅限于线性函数,因此模型无法理解任何两个输入变量之间的相互作用。为了扩展线性模型来表示x的非线性函数,我们可以将线性模型应用于x本身,而不是应用于变换后的输入φ(x),其中φ是非线性变换。
我强烈建议阅读该部分(该书可在线获取为HTML)。但总结一下,扩展线性模型有两种主要方法:
将输入映射到一个非常通用的高维空间,并在那里执行线性分类(kernel machines的方法,就像你在课程中看到的SVM一样)。
让您的模型学习映射! 这是神经网络的方法:它放弃了凸性,但更灵活,性能更好(至少现在如此)。
实际考虑:方法1的优点是,它不需要太多配置就可以在任何通用问题上运行得相当好。请注意,在大多数应用程序中,目前第二种方法(基本上是深度学习)表现更好,但需要大量domain specific knowledge来实现该性能,有时候没有足够的时间和/或资源。
技术注意事项:请注意,通过封闭式训练线性模型至少需要O(n^2)
次操作,n为训练集的大小。运行推理可以是O(n)
。另一方面,用随机梯度下降训练的神经网络“可以说是O(1)
”。
并从DLB第5章支持这一肯定:
在深度学习出现之前,学习非线性模型的主要方法是将核心技巧与线性模型结合使用。许多内核学习算法需要构造m×m矩阵
G_i,j = k (x(i), x(j))
。构造这个矩阵的计算成本为O(m ^ 2),对于数十亿个例子的数据集来说,这显然是不可取的。内核机器的一个主要缺点是评估决策函数的成本在训练样例的数量上是线性的,因为第i个示例为决策函数提供了术语
α_i k(x , x(i))
。支持向量机能够通过学习主要包含零的α向量来缓解这种情况。有人可以说,使用SGD训练模型的渐近成本是
O(1)
m
(训练集大小)的函数。
总而言之,线性模型(主要使用内核技巧)对于不需要最先进性能或大量配置的通用任务仍然是合理的现成选择。但是如果你有足够的数据,GPU能力和正确调整模型的可能性,深度神经网络将在大多数问题中提供更好的渐近复杂度的更好结果。缺点是你放弃了大部分的可解释性,你对问题的假设变得更难以明确表达,而你的设置通常变得高度经验。
这至少是大多数消息来源(如我引用的DLB)似乎观察到的一般趋势。希望这有帮助!
干杯,
安德烈
答案 1 :(得分:-1)
在我看来,回归和神经网络应该同时使用。我们不知道哪种模型运行良好,因此我们需要尽可能多地构建模型。此外,在建立模型之后,我们可以使用给定的评估统计数据来比较或评估我们的模型。