构建机器学习算法

2022-09-04 21:40:13 浏览数 (1)

激活所有的深度学习算法都可以被描述为一个相当简单的配方:特定的数据集、代价函数、优化过程和模型。例如,线性回归算法由以下部分组成,xy构成的数据集,代价函数:

J(w, b)=-E_{x, y sim hat{p}_{text {data }}} log p_{text {model }}(y mid x)

模型是p(y mid x)=Nleft(y ; x^{T} w b, 1righ ,在大多数情况下,优化算法可以定义为求解代价函数梯度为零的正规方程。意识到可以替换独立于其他组件的大多数组件,因此我们能得到很多不同的算法。通常代价函数至少含有一项使学习过程进行统计估计的成分。最常见的代价函数是负对数似然,最小化代价函数导致的最大似然估计。

代价函数也可能含有附加项,如正则化项。例如,我们可以将权重衰减加到线性回归的代价函数中:

J(w, b)=lambda|w|_{2}^{2}-E_{x, y sim hat{p}_{text {data }}} text { logp }_{text {model }}(y mid x)

该优化仍然有闭解。

如果我们将该模型变成非线性的,那么大多数代价函数不再能通过闭解优化。这就要求我们选择一个迭代数值优化过程,如梯度下降等。

组合模型、代价和优化算法的配方同时适用于监督学习和无监督学习。线性回归示例说明了如何适用于监督学习的。无监督学习时,我们需要定义一个只包含X的数据集。一个合适的无监督代价和一个模型。例如,通过指定如下损失函数可以得到PCA第一个主向量:

J(w)=E_{x sim hat{p}_{text {data }}}|x-r(x ; w)|_{2}^{2}

模型定义为重构函数r(x)=w^{T} x w ,并且w有范数为1的限制。

在某些情况下,由于计算原因,我们不能实际计算代价函数。在这种情况下,只要有近似梯度的方法,那么我们仍然可有使用迭代数值优化近似最小化目标。尽管有时候不明显,那么通常需要使用特殊的优化方法进行求解。有些模型,如决策树或k-均值,需要特殊的优化,因为它们的代价函数有平坦的区域,使其不适合通过基于梯度的优化去最小化。在认识到大部分机器学习算法可以使用上述配方描述之后,我们可以将梯度的优化去最小化。在认识到大部分机器学习算法可以使用上述配方描述之后,我们可以将不同算法视为出于相同原因解决相关问题的一类方法,而不是一长串各个不同的算法。

0 人点赞