支持向量机(SVM)是一种重要的机器学习算法。
在深度学习的发展历程中,尽管取得了一些进展,但在特定时期,如人工智能寒冬期间,用于神经网络研究的资金很少,人工智能领域发展受到一定限制。在此期间,Cortes 和 Vapnik 于 1995 年开发的支持向量机表现突出,使得一些重要进展如 Hochreiter 和 Schmidhuber 在 1997 年为递归神经网络开发的长短期记忆(LSTM)被忽视。后来随着计算机性能提升,神经网络逐渐与支持向量机相竞争,且在相同数据量下能获得更好结果,同时神经网络在有更多训练数据时会持续改进。
在算法学习中,支持向量机属于强学习器。强学习器通常具有高准确率,能很好地泛化到新数据上,例如深度神经网络或支持向量机,能够捕捉数据中的复杂模式。而弱学习器准确率仅略高于随机猜测,通常是简单的模型,如决策树桩。
尽管取得了这些成功,但用于神经网络研究的资金仍然很少。[在人工智能寒冬](https://developer.nvidia.com/blog/deep-learning-nutshell-history-training/#ai-winter)期间,人工智能一词近乎成为伪科学的代名词,该领域仍需一段时间才能恢复。这一时期取得了一些重要的进展,例如,Hochreiter和Schmidhuber在1997年为递归神经网络开发的长短期记忆(LSTM),但是这些进展在Cortes和Vapnik于1995年开发的支持向量机(VCM)面前相形见绌,因此大多数被人们所忽视。下一个重大转变的契机出现在静待计算机变得更快,和接下来引入的图形处理单元(GPU)。仅等待更快的计算机和GPU就可以在10年内将计算速度提高1000倍。在这期间,神经网络逐渐开始与支持向量机相竞争。与支持向量机相比,神经网络可能会慢一些,但是在相同数量的数据下可以获得更好的结果。与简单算法不同,神经网络在有更多训练数据时会持续改进。此时的主要障碍是训练大型、深层的网络,这些网络因遭受梯度消失问题,无法学习早期层的特征,因为没有学习信号到达这些层。
AdaBoost(Adaptive Boosting),即自适应增强算法,是一种集成学习算法,主要用于分类问题,也可以用于回归问题。它通过组合多个弱学习器(通常是决策树桩)来构建一个强学习器,以提高模型的预测性能。弱学习器(Weak Learner)弱学习器是集成学习中的一个概念。在机器学习中,学习器通常被分类为强学习器(Strong Learner)和弱学习器。两者的基本区别有:强学习器:强学习器通常指的是具有高准确率的模型,能够很好地泛化到新的数据上。它们可能是复杂的模型,比如深度神经网络或支持向量机,能够捕捉数据中的复杂模式。弱学习器:弱学习器的准确率仅略高于随机猜测。例如,在二分类问题中,如果随机猜测的准确率是50%,那么弱学习器的准确率可能只是略高于50%,比如51%。弱学习器通常是简单的模型,比如决策树桩(Decision Stumps),它们只考虑单个特征的阈值来做出预测。(比如月收入高于30k,就有可能购买一个空气净化器)
LLM需要一个稳定的长期记忆来保存状态并解决上下文窗口的问题,这由向量数据库来处理。目前,Pinecone是与生成式人工智能群体最成熟和最受欢迎的向量存储库。话虽如此,我们希望为所有用例和偏好提供支持,因此我们还在存储库中包含了对Supabase的[pg-vector](https://supabase.com/docs/guides/database/extensions/pgvector)的支持。将Pinecone与Langchain.js一起使用的示例代码。您还可以[在此处](https://github.com/a16z-infra/ai-getting-started/blob/fc74d00552c7bdfdd504f98b0c7d362f8e5933c0/src/app/api/qa-pg-vector/route.ts)找到有关使用Supabase pg-vector的[示例](https://github.com/a16z-infra/ai-getting-started/blob/fc74d00552c7bdfdd504f98b0c7d362f8e5933c0/src/app/api/qa-pinecone/route.ts).