Closed alyato closed 6 years ago
因為每個feature彼此之間不知道是否屬於同一個class,所以他們需要groud-truth去辨別彼此是否要聚集再一起,這不是初始值的意思,C的初始值我沒有去動它。
谢谢。
可以理解为用ground-truth来对feature进行判别,是否属于同一个class的
即代码input_target = Input(shape=(1,))
同时对第二行代码:centers = Embedding(10,2)(input_target)
,有一丝困惑。
我也看了Embedding和词向量的区别,可是不是很懂。但是就所写的代码而言,Embedding作为一个可训练矩阵,用以训练C
。
您在网站上也介绍了,the shape of centers is (?,1,2),这个可以解释一下么?因为
the shape of ip1 is (?,2)`
ip1层有2个feature,而centers中也是2个,每个feature对应centers中的一个,即中心
C
基本上就是你的特徵和聚類中心勢必要有一樣的dim,所以才會有centers = x[1][:,0]讓他的dim也化為(?,2),如此才能跟ip1做相減的動作。
至於Embedding我個人把它想成一個table,有10個dim為2的center疊在一起,你輸入某個groud-truth label他就給你該label對應的center,一個查找的概念。
谢谢。明白了。
@shamangary Thanks.
这一行代码不是很懂。 center_loss 公式中 是
C
,代码中你解释是为single value ground truth labels as inputs
C
是聚类的中心,你是将single value ground truth label 作为初始值么? 谢谢