问题标签 [unsupervised-learning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
neural-network - 自组织地图和线性矢量量化
自组织地图更适合聚类(降维)而不是分类。但是 SOM 用于线性矢量量化以进行微调。但是 LVQ 是一种有监督的学习方法。因此,要在 LVQ 中使用 SOM,应为 LVQ 提供标记的训练数据集。但是由于 SOM 只做聚类而不是分类,因此不能有标记数据,如何将 SOM 用作 LVQ 的输入?
LVQ 是否微调SOM中的集群?
在 LVQ 中使用之前,SOM 是否应该通过另一种分类算法,以便它可以对输入进行分类,以便这些标记的输入可以在 LVQ 中使用?
c - ANN:学习向量量化不起作用
我希望这里有人可以帮助我:我正在尝试实现一个神经网络来查找数据集群,即呈现为 2D 集群。我尝试遵循维基百科上描述的标准算法:我寻找每个数据点的最小距离,并更新这个神经元对数据点的权重。当总距离足够小时,我停止这样做。
我的结果是找到了大多数集群,但在视图上是错误的,虽然它计算了一个永久距离,但它不再收敛。我的错误在哪里?
initializeNetwork(...)
以 -1 和 1 范围内的随机权重启动所有神经元。
normalizeData(...)
以某种方式进行归一化,使最大值为 1。
一个例子:
如果我为网络提供大约 50 个(归一化的)数据点,这些数据点被分成 3 个集群,其余的totaldistance
保持在7.3左右。当我检查神经元的位置时,应该代表集群的中心,两个是完美的,一个在集群的边界。算法不应该把它移到更多的中心吗?我重复了几次算法,输出总是相似的(在完全相同的错误点)
speech-recognition - 如何为语音识别准备数据集
我需要训练一个双向 LSTM 模型来识别离散语音(从 0 到 9 的单个数字)我已经录制了 100 个发言者的语音。接下来我该怎么办?(假设我将它们拆分为单独的 .wav 文件,每个文件包含一个数字)我将使用 mfcc 作为网络的功能。
此外,如果我要使用支持 CTC(连接主义时间分类)的库,我想知道数据集的区别
machine-learning - 能够切换数据集的随机森林算法
我很好奇是否对随机森林进行了研究,将无监督学习与有监督学习相结合,从而允许单个算法在多个不同的数据集中找到模式并与之一起工作。我已经用谷歌搜索了所有可能的方法来找到这方面的研究,但结果都是空的。谁能指出我正确的方向?
注意:我已经在数据科学论坛上问过这个问题,但它基本上是一个死论坛,所以我来到了这里。
c++ - OpenCV kmean:如何为 COUNT 和 EPS 选择合适的值?
我正在尝试使用 OpenCV 中的 kmean 函数将 36000 个样本图像预分类为 100 多个类(以减少我为监督学习准备训练数据的工作)。在这个函数中有两个我不太了解的参数:cv::TermCriteria::EPS和 cv::TermCriteria::COUNT。
在 OpenCV 文档中,它解释说: cv::TermCriteria::EPS:迭代算法停止时所需的精度或参数变化。
cv::TermCriteria::COUNT:要计算的最大迭代或元素数。
上面的解释对我来说不是很清楚。谁能帮助解释更多并展示如何为 COUNT 和 EPS 找到好的值?非常感谢你。
python - 使用 sklearn.mixture.GMM 从 GMM 进行错误采样
我正在sklearn.mixture.GMM
用来拟合一些数据,并且无法从 GMM 对数据集中的一项进行采样。
在超过 1000 个数据实例中它工作正常,但在下面的情况下(data_not_working)我在运行以下代码时收到错误:
这会产生以下运行时错误:
所以问题在于从 GMM 采样,而不是拟合它。这是一个数据实例的示例,上面的代码可以正常工作(就像我正在使用的所有其他 1k+ 实例一样)。所有实例都具有相同的形状:
有趣的是,如果我将从 GMM 采集的样本数量减少到 10,那么它有时会起作用,但不是每次都有效!
再看一下数据,看起来 data_not_working 的组件数可能 <= 2。将 # 个组件降至 2 时它运行时没有错误。因此,尝试使用 3 个组件对此进行建模可能会导致问题。但是,我仍然不明白是什么导致了这个错误,以及它是否是库中的一个错误。
我现在也尝试在不同的系统上运行相同的代码。它似乎对某些人有效,但对其他人无效。这似乎不受 python 或库版本的影响(2 台机器运行相同的磁盘映像、python、scipy、numpy 和 sklearn 版本;1 台工作,其他没有)......非常奇怪。
我错过了一些明显的东西还是图书馆有问题?谢谢
matlab - 具有独立隐藏激活的无监督神经网络:如何实现熵或峰态惩罚?
简单来说:
如何为我的无监督神经网络的成本和反向传播(我正在使用堆叠稀疏自动编码器)实现类似 ICA 的熵或峰度惩罚项?
详细说明:
我基于 Andrew Ng 的 UFLDL 教程使用共轭梯度下降和 Wolfe 线搜索在 Matlab 中实现了稀疏自动编码器 (AE)。与使用 infomax 的独立分量分析 (ICA) 相比,这在我的数据上获得了更清晰的结果(我将我的 AE 的隐藏层激活与 eeglab 的 runica 函数的 ICA 激活进行了比较。)
然而,激活的最大独立性,就像在 ICA 中一样,对我来说也是一个基本标准。所以我想实现更高质量的 sNN 隐藏激活,但也让它们独立。换句话说,我想从稀疏性和独立性中受益。
ICA 使用熵或峰态惩罚项来最小化跨组件(激活)的互信息。
我尝试简单地应用 matlab 的 goropy 或峰度函数:如果给定隐藏层的激活矩阵 'a' 是 (outputNeurons*hiddenNeurons),我会这样做:
这给出了不好的结果并且没有独立的激活。我想我还应该计算反向传播的惩罚误差,但我不确定如何计算。我也不确定我的上述费用罚款是否正确。
有什么想法可以改进上述代码,或者只是用简单的数学术语为我指出正确的方向?
python - 小部件订单的聚类算法
我有一个表格,其中包含多个部门的小部件订单,每个部门都由其买家代表。表结构如下所示:
每行代表一个小部件顺序,因为小部件通常是单独排序的。实际表有数万行代表约 3 年的订单。大约有 100 个部门采购员,大约 1000 个小部件制造商。
我想为部门采购员提供一个订单表格,其中包含他们最常订购的小部件,以便于购买。根据以往的经验,我知道许多部门采购员都订购了类似的小部件。也就是说,部门购买者可以通过他们的小部件购买行为聚集在一起。出于这个原因,以及出于维护目的,我想创建尽可能少的表单,同时仍然为将使用该表单的部门采购员捕获最常订购的小部件。
对我来说,这似乎是一个机器学习聚类问题,但我对主题领域不够熟悉,无法在这个问题上立足。是否有解决此类问题的既定算法或库?
machine-learning - 如何训练和微调完全无监督的深度神经网络?
在场景 1 中,我有一个多层稀疏自动编码器,它试图重现我的输入,因此我的所有层都与随机启动的权重一起训练。没有监督层,在我的数据上,这并没有学习任何相关信息(代码工作正常,经过验证,因为我已经在许多其他深度神经网络问题中使用过它)
在场景 2 中,我只是在类似于深度学习的贪婪逐层训练中训练多个自动编码器(但最终没有监督步骤),每一层都在前一个自动编码器的隐藏层的输出上。他们现在将分别学习一些模式(正如我从可视化权重中看到的那样),但并不像我所期望的那样来自单层 AE。
所以我决定尝试现在连接到 1 个多层 AE 的预训练层是否可以比随机初始化的版本执行得更好。如您所见,这与深度神经网络中微调步骤的想法相同。
但在我的微调过程中,所有层的神经元似乎都迅速收敛到一个完全相同的模式,最终什么也没学到。
问题:训练完全无监督的多层重建神经网络的最佳配置是什么?首先分层,然后进行某种微调?为什么我的配置不起作用?