GNG
理解矢量量化(https://blog.csdn.net/qq_16234613/article/details/79991191)
概念:信号压缩方法:将若干个标量数据组构成一个矢量,然后在矢量空间给以整体量化,从而压缩了数据而不损失多少信息。
难点:难点在于它要要解决一个多维积分(multi-dimensional integration)的问题
例子:
二维为例:
| 我们用蓝色实线将这张图划分为16个区域。任意的一对数(也就是横轴x和纵轴y组成的任意的一个坐标点(x, y))都会落到上面这张图中的某一特定区域。然后它就会被该区域的红星的点近似。这里有16块不同区域,就是16个红星点。然后这16个值就可以用4位的二进制码来编码表示(2^4=16)。因此,这是个2-dimensional, 4-bit VQ,它的速率同样是2bits/dimension。上面这些红星点就是量化矢量,表示图中的任意一个点都可以量化为这16个矢量中的其中一个。
|
设计问题(写出优化目标)
优化准则
LBG算法(迭代)
论文阅读(A Growing Neural Gas Network Learns Topologies)、
摘要
输入:一组向量
输出:向量的拓扑结构
学习方式:类似于赫布理论的学习方式
算法步骤
0 初始化两个结点
1 输入一个信号
2 找到最近的结点k和次近的结点p
3 最近结点的边的年龄增加1
4 计算最近点k和输入信号的距离误差
5 将结点k和k的邻居向输入信号的方向移动
6 如果k,p有边,令边的年龄为0;没有边创建边
7 删除超过年龄最大值的边;并且删除度为0的结点
8 生成新的结点r
a 设置输入多少数据产生新的结点;找到累计误差最大的结点q
b 在结点q和q的邻居(f误差最大)插入一个结点r
c 创建新的结点,并且连接边,删除原来的边
d 减小结点q和f的误差(乘上参数)
9 减小所有的结点误差(乘上参数)
10 设置循环结束的条件可以是数据的轮数,也可是结点的大小
模型的参数如下:
e_b=0.1, e_n=0.006, a_max=10, l=200, a=0.5, d=0.995, passes=8,num_node=100
| e_b表示获胜的神经元移动的学习率
| e_n表示获胜的神经元的邻居移动的学习率
| a_max表示神经元连接的年龄
| l表示什么时候增加新的units
| a减少误差变量
| d减小所有unit误差变量
| passes训练次数
| num_node网络结点的个数
|