180度転置したものが伝搬で使われるのかについてはForward And Backpropagation in Convolutional Neural Network[1]に詳しく述べられていますので、参照ください。参考サイトは英語ですが、わかりやすい数式で述べられているので、興味ある人は読めるはずです。
Singular value decomposition is just a mathematical trick for finding those two smaller matrices which minimize the resulting approximation error–specifically the mean squared error (rather convenient!).
val /= (numpy.linalg.norm( user ) * numpy.linalg.norm( pos ))
result.append([val+1, i ])
returnsorted( result, reverse=True)
def getSimilar( usv, e, dim =2):
u, s, v = usv
vv = numpy.array( numpy.matrix(v).T )
U = numpy.matrix( u[ :, 0:dim ] )
V = numpy.matrix( vv[ :, 0:dim ] )
S = numpy.matrix( numpy.diag( s[:dim] ) )
E = numpy.matrix( e )
pos = E * U * S.I
result = []
for i, user in enumerate(V):
val = float(user *pos.T)
val /= (numpy.linalg.norm( user ) * numpy.linalg.norm( pos ))
result.append( [val+1, i ])
return sorted( result, reverse=True )
def getSimilar( usv, e, dim =2):
u, s, v = usv
vv = numpy.array( numpy.matrix(v).T )
U = numpy.matrix( u[ :, 0:dim ] )
V = numpy.matrix( vv[ :, 0:dim ] )
S = numpy.matrix( numpy.diag( s[:dim] ) )
E = numpy.matrix( e )
pos = E * U * S.I
result = []
for i, user in enumerate(V):
val = float(user *pos.T)
val /= (numpy.linalg.norm( user ) * numpy.linalg.norm( pos ))
result.append( [val+1, i ])
return sorted( result, reverse=True )
正準相関分析とは、例えば2つの次元に貼っているベクトル( Va, Ua ):左上, (Vb, Ub ):左下があるとして、同じ空間(右図)に射影し、そのベクトルの相関を最大(コサイン積を最大)にするという見方もできる。上図のWa, 3次元から2次元への、Wbは2次元から2次元へのそれぞれ射影行列となる。索引:https://gregorygundersen.com/blog/2018/07/17/cca/