tensorflow - 使用随机分布初始化自组织图和使用网络的第一个输入进行初始化有什么区别吗?
问题描述
当使用随机分布初始化 SOM 时,网络可能会正确收敛,但在使用输入初始化时则不会。为什么 ?
解决方案
权重初始化不佳会导致神经元纠缠,并在拓扑映射中成为问题。问题是当两个应该相距很远的神经元最终代表同一个输入数据集群时。
使用您的第一个输入作为初始化可能会导致此问题。然而,一个相对简单的检查是使用 Sammon Mapping 将聚类节点的维度减少为彼此之间距离的二维表示。这可以被可视化为具有连接相邻对的线的节点。然后可以从折叠自身的 Sammon 映射中辨别出不稳定的学习过程。
这并不意味着使用输入数据初始化权重是一个坏主意,但是我建议使用随机输入数据作为初始化,并使用 numpy.random.seed() 之类的东西,因为使用输入数据可以加快学习速度过程。
推荐阅读
- macos - 如何在 macOS 中使 App 提示屏幕捕获权限
- r - 为什么我会收到“错误:指定的算法无效”?
- mongodb - setFeatureCompatibilityVersion 是否需要在配置服务器上运行?
- python - 我在 discord.py 中制作了一个机器人,我使用 client.remove_command 删除了默认创建的帮助 cmd,但它不起作用。下面的代码:
- python - 将包装好的 ode 类模型传递给积分器 (swig)
- java - 如何访问 oauth2 访问令牌和用户信息
- sql - SQL根据日期连接两个表
- react-native - 表情符号在本机反应中旋转动画
- python - Python:在正则表达式条件下循环字典键和值
- javascript - 如何在 Python 中编写 Javascript recipe.components.sort((a, b) => (a.components ? 1 : 0) - (b.components ? 1 : 0))?