https://help.aliyun.com/zh/open-search/retrieval-engine-edition/introduction-to-inverted-indexes
倒排索引(Inverted Index)是一种数据结构,用于快速查找包含某个特定词或词语的文档。它主要用于全文搜索引擎等应用,允许用户根据关键词迅速定位相关文档。
倒排索引的基本思想是反转(倒排)文档-词语的映射关系。通常,在构建倒排索引时,会对文档集合中的每个文档进行分词,并记录每个词在哪些文档中出现。每个词都对应一个包含它的文档列表。这样,当需要搜索包含某个关键词的文档时,只需查找倒排索引中相应词的文档列表。
以下是构建倒排索引的基本步骤:
文档分词: 将每个文档进行分词,得到一组词语。
构建映射关系: 对每个词语,记录它在哪些文档中出现。
构建倒排索引: 对每个词语,建立一个索引,将其映射到包含它的文档列表。
倒排索引的优点包括:
高效的检索: 对于大规模文本数据,使用倒排索引可以快速定位包含特定关键词的文档。
省空间: 与直接存储文档之间的映射关系相比,倒排索引通常更省空间。
支持复杂查询: 可以轻松支持多关键词的布尔查询和短语查询等。
倒排索引在全文搜索引擎中被广泛应用,例如在Google、Bing等搜索引擎中,它们利用倒排索引实现了快速而准确的搜索功能。
逻辑斯蒂回归(Logistic Regression)是一种用于二分类问题的机器学习算法,尽管名字中包含“回归”一词,但它实际上是一种分类算法而非回归算法。逻辑斯蒂回归可以用于解决概率估计问题,它输出一个在0和1之间的概率值,表示样本属于某一类的可能性。
逻辑斯蒂回归的基本原理如下:
假设函数: 假设函数采用逻辑斯蒂(sigmoid)函数,它的数学表达式为:
[ h_\theta(x) = \frac{1}{1 + e{-\thetaT x}} ]
其中,(h_\theta(x)) 是样本 (x) 属于正类的概率,(\theta) 是模型的参数向量。
损失函数: 逻辑斯蒂回归使用交叉熵损失函数(Cross-Entropy Loss)来衡量模型的性能,其数学表达式为:
[ J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(h_\theta(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_\theta(x^{(i)})) \right] ]
其中,(m) 是样本数量,(y^{(i)}) 是样本 (x^{(i)}) 的实际类别标签。
参数优化: 通过最小化损失函数来优化模型的参数 (\theta)。这通常使用梯度下降等优化算法来实现。
逻辑斯蒂回归适用于线性可分的二分类问题,它对特征进行线性组合,并通过逻辑斯蒂函数将结果映射到0到1之间的概率。在实践中,逻辑斯蒂回归广泛应用于各种领域,如医学、金融和自然语言处理等。
需要注意的是,逻辑斯蒂回归虽然名字中包含“回归”,但其实质是一种分类算法,用于解决二分类问题。在处理多分类问题时,可以通过扩展为多类别逻辑斯蒂回归(Multinomial Logistic Regression)或使用其他多分类算法。
https://blog.csdn.net/weixin_39910711/article/details/81607386
在机器学习中,分类平面、曲面和超平面是描述决策边界(decision boundary)的概念,这些边界用于将不同类别的样本分开。
分类平面: 一般指的是在二维空间中的平面,用于将两个类别的数据点分开。在这种情况下,决策边界就是一个平面。分类平面用于解决简单的二分类问题,其中数据可以被直线或平面分开。
曲面: 当决策边界不能通过平面表示,而需要通过曲面来分隔不同类别的样本时,我们可以使用曲面。曲面可以是在三维空间中的曲面,也可以是在更高维度空间中的曲面。曲面常常用于解决二分类或多分类问题。
超平面: 超平面是在高维空间中的一个平面。在机器学习中,支持向量机(Support Vector Machine,SVM)等算法常常使用超平面作为决策边界。对于二分类问题,超平面是一个 (n-1) 维的平面,其中 n 是特征的维度。超平面将特征空间分成两个部分,每一部分对应一个类别。
这些概念的作用是定义了模型的决策边界,即在特征空间中,模型如何将不同类别的样本分隔开。决策边界的形状取决于模型的类型和复杂性。线性模型(如逻辑斯蒂回归、线性支持向量机)可能产生线性的决策边界(平面或超平面),而非线性模型(如核支持向量机、决策树)可能产生曲面或更为复杂的决策边界,以更好地拟合数据。
交叉熵(Cross-Entropy)和均方误差(Mean Squared Error,MSE)是用于衡量模型预测值与真实值之间差异的两种损失函数。它们在不同的任务和模型中有各自的优势和劣势。
交叉熵主要用于分类问题,特别是在神经网络中用作分类模型的损失函数。对于二分类问题,交叉熵损失函数的数学表达式如下:
优势:
劣势:
均方误差主要用于回归问题,衡量模型预测值与真实值之间的平方差的平均值。均方误差的数学表达式为:
其中,(y_i) 是真实标签,(\hat{y}_i) 是模型的预测值,(N) 是样本数量。
优势:
劣势:
在选择损失函数时,需要根据任务类型和模型特性进行合适的选择。在分类任务中,通常使用交叉熵损失函数;而在回归任务中,可以选择均方误差或其他适用的回归损失函数。
https://zhuanlan.zhihu.com/p/74874291
正则化是在机器学习模型的训练过程中为损失函数添加额外项,以避免过拟合和提高模型的泛化能力。通过正则化,可以对模型参数的大小进行限制,防止其过于复杂,减小模型对训练数据的过度拟合。
在损失函数中添加正则化项的一般形式为:
其中,(J(\theta)) 是包含正则化项的新损失函数,(\lambda) 是正则化强度的超参数,(\theta) 是模型的参数。
常用的正则化项包括 L1 正则化和 L2 正则化:
L2 正则化通过对权重的平方进行惩罚,倾向于让权重尽可能小,但不会让它们变为零。它有助于缓解特征间的共线性问题。
在机器学习中,正则化的作用有以下几点:
防止过拟合: 正则化通过限制模型的复杂度,防止模型在训练数据上过度拟合,提高对新数据的泛化能力。
特征选择: L1 正则化的特点是可以使一些特征的权重为零,从而实现特征选择,减少不重要的特征对模型的影响。
缓解共线性: L2 正则化有助于缓解特征之间的共线性问题,使模型对输入特征变化更为稳健。
在实际应用中,超参数 (\lambda) 的选择通常通过交叉验证等方法来确定。正则化在许多机器学习算法中都得到了广泛的应用,例如线性回归、逻辑斯蒂回归、支持向量机等。
L1 正则化通过在损失函数中添加 ( \lambda \sum_{i=1}^{n} |w_i| ) 项,其中 (w_i) 是模型的权重,(n) 是权重的数量。这个额外的惩罚项具有一种特殊的性质,它促使模型学习到的权重中的一些值变为零。
具体来说,L1 正则化在优化过程中,倾向于将某些特征对应的权重直接设为零。这是因为 L1 正则化的梯度在某个特征的权重等于零时不可导,而在其他地方都是可导的。因此,为了最小化损失函数,模型倾向于让一些特征的权重直接变为零,从而实现稀疏性。
对于具有大量特征的问题,L1 正则化能够帮助识别并保留对目标变量预测有贡献的关键特征,而将其他特征的权重设为零。这种特性在特征选择和解释模型中很有用。
L2 正则化通过在损失函数中添加 ( \lambda \sum_{i=1}^{n} w_i^2 ) 项,其中 (w_i) 是模型的权重,(n) 是权重的数量。相比于 L1 正则化,L2 正则化的梯度在任何地方都是可导的。
L2 正则化的效果主要表现在对权重的平方进行惩罚。这导致模型在训练过程中倾向于将权重保持较小的值,避免过度拟合训练数据。
防止过拟合的原因在于,L2 正则化通过限制权重的大小,减缓了模型对训练数据中噪声的过度拟合。较小的权重值使得模型对输入特征的小变化不敏感,从而提高了模型对新数据的泛化能力。
综合来看,L1 正则化通过产生稀疏模型,有助于特征选择和模型解释;而 L2 正则化通过控制权重的大小,有助于防止模型过拟合。在实际应用中,可以根据问题的特性选择使用 L1 正则化、L2 正则化,或者它们的组合(弹性网络 Elastic Net)。
Softmax 函数是一种常用的激活函数,特别适用于多分类问题。它将一个包含任意实数的 K 维向量,映射为一个 K 维的概率分布,其中每个元素的取值范围在 (0, 1) 之间,并且所有元素的和为 1。
Softmax 函数的性质使得它在多分类问题中特别有用,因为它可以将模型的原始输出转换为类别概率。在深度学习中,通常将 Softmax 函数作为神经网络输出层的激活函数,以便将神经网络的原始输出转换为类别概率。
Softmax 函数的特点包括:
归一性: Softmax 函数的输出是一个概率分布,因此所有元素的和等于 1,这使得它可以表示一个完整的类别分布。
连续性: Softmax 函数是光滑的,可导数的,这在梯度下降等优化算法中很有用。
转换作用: Softmax 函数对原始分数进行了指数变换,使得大的分数更大,小的分数更小,这有助于突显模型在输入上的置信度。
Softmax 函数在交叉熵损失(Cross-Entropy Loss)等多分类问题中的配合使用,使得模型能够输出概率分布,并且在训练过程中通过最小化损失函数来调整模型参数,以便更好地匹配真实的类别分布。
逻辑斯蒂回归(Logistic Regression)的输出值可以被解释为样本属于某一类别的概率,这是因为逻辑斯蒂回归使用了逻辑斯蒂函数(sigmoid函数)作为激活函数。
逻辑斯蒂函数的数学表达式为:
逻辑斯蒂函数具有以下性质:
输出范围:逻辑斯蒂函数的输出范围在 (0, 1) 之间,即对于任何实数输入,输出都在 0 到 1 之间。
单调性:逻辑斯蒂函数是单调递增的,即当 (z_1 < z_2) 时,(\sigma(z_1) < \sigma(z_2))。
饱和性:逻辑斯蒂函数在两端接近 0 或 1,但不会完全到达,因此避免了输出值严格等于 0 或 1。
由于逻辑斯蒂函数的输出在 (0, 1) 之间,并且趋向于0或1,可以将其解释为某个样本属于正类别的概率。在二分类问题中,通常设定一个阈值(例如0.5),当逻辑斯蒂函数的输出大于阈值时,将样本划分为正类别,否则划分为负类别。
这种概率的解释使得逻辑斯蒂回归在分类问题中非常有用,尤其是在需要估计概率而不仅仅是类别标签的情况下。逻辑斯蒂回归的训练过程通过最小化对数损失函数,使得模型输出的概率尽量接近真实标签的概率。