4 ms·
Thanks, but I don't think so. On one hand, feature spaces in machine learning are usually not conceptual vector spaces (e.g. in a tall/short classification, it
by The_suffocated 8y ago
Thanks, but I don't think so. On one hand, feature spaces in machine learning are usually not conceptual vector spaces (e.g. in a tall/short classification, it doesn't make sense to add two "tall"s together or multiply a "tall" by a scalar). In general, features have different data types: some booleans, some integers, some real numbers. We only lump them together, cast them into a homogeneous data type and store them in a multidimensional array solely for interpolation purpose.
On the other hand, since you come from a math background, I suppose you know the concept of "free vector space" (which is usually introduced along with the universal mapping property of tensor product). As said in a previous comment, technically every object can be viewed as a vector, and hence a tensor. A duck is a tensor, a bird that quacks like a duck is a tensor, a Java SimpleBeanFactoryAwareAspectInstanceFactory is a tensor, a Neo Armstrong Cyclone Jet Armstrong Cannon is a tensor, a red-black tree is a tensor. But we don't call them tensors, because normally we don't do anything tensorial to them.
Then why shall we treat multidimensional arrays differently? Apart from the mere fact that a tensor in physics/mathematics can be stored numerically as a multidimensional array, my impression is that (please correct me if I'm wrong) the coinage of the term in machine learning libraries is a complete disregard for the original physical or mathematical concept. Is "multidimensional array" a name so hard to understand that we need a new name? Does the new name in any way enhance one's understanding of machine learning that the old name cannot? I wonder.
- kevinventullo 8y agoSo I would disagree that the machine learning terminology was coined without regard to the mathematical concept. I would argue that multi-dimensional arrays are very naturally thought of as concrete realizations of tensors, just like how floating point numbers are concrete realizations of real numbers. It's true that you can take the "free vector space" on any set under the sun, but I disagree with the statement "every object can be viewed as a vector." Rather, you can construct a vector space and associate to each object an element of that vector space, but the object itself is not a vector. As opposed to an array of floats, which really itself looks like and is fruitful to think about as a vector. Edit: Oh, also regarding the heterogeneous type stuff. I think most would agree that calling a bag of ints, floats, bools, and strings a "tensor" would not make much sense.