2 ms·
Understanding is a form of compression, but not all compression is understanding, at least in the way I would describe it. Given an arbitrary function, you coul
by janalsncm 4y ago
Understanding is a form of compression, but not all compression is understanding, at least in the way I would describe it. Given an arbitrary function, you could simply compress some number of inputs and outputs, giving a lossy mapping between the two. Maybe you would interpolate between the two closest points in the range for unknown values.
Or, you could store the function itself.
To see the difference, compare for yourself what would happen for very large or very small inputs in both types of “understanding”.
- bottlepalm 4y agoI agree understanding would be a subset of compression, reducing massive amounts of data into ‘meaning’ that can be applied effectively to new arbitrary sets of data.
- int_19h 4y agoIf you treat "understanding" as a scale rather than binary, then your example of storing the function itself is "perfect understanding", which does not preclude other techniques (e.g. storing a much simpler function that approximates the original one) that could also be reasonably called "understanding", just imperfect. Directly mapping likely inputs and outputs is still a form of that, albeit obviously way too primitive to be interesting.
- janalsncm 4y agoActually understanding a function means that it can be computed to arbitrary precision. Memorizing inputs and outputs only allows you to interpolate between values you’ve already seen. That breaks down quickly for anything somewhat chaotic. You can try the following function in ChatGPT yourself: f(x) = x * (sin(sin(x)))^2 Ask it to give you the values of f for integers of x between -10 and 10. I tried it 5 times and it was never close. I chose this for several reasons. One, it’s very unlikely that it’s memorized the answers somewhere on the internet. Two, it’s pretty chaotic if you look at a graph of it, so interpolation won’t work. (It is bounded by x and 0 for all values but for large absolute values of x it varies wildly.) And three, memorizing values won’t get you anywhere since it becomes much more chaotic as x increases. I also disagree that approximations are simpler. As you can see, the actual function is only sine and multiplication. To approximate this function would be far harder.
- int_19h 4y agoIt's not exactly a secret that GPT is bad at processing math in inputs, which seems to have something to do with the token representation being poorly suited for it, for starters. But I thought we were talking more generally about functions mapping inputs to outputs - the "perfect understanding" function is the one that captures all the relationships between the entities in the input and thus can always give a perfect answer to the extent that training data contains it, while an approximated "partial understanding" function internally has a much simpler model of those entities and their relationships (which can still turn out to be still good enough). Mapping inputs to outputs is an especially simple model, but it's still a model and an approximation. And yes, in your example, of course it's simpler to just store the function itself - provided that you know in advance what it is, which, to remind, GPT does not. But when we're dealing with f(question)=answer of chatbots, the function that GPT ends up approximating is decidedly not simple.
- foldr 4y agoMore accurate would be “understanding sometimes enables compression”. If you understand the underlying regularities in some dataset, and if those regularities themselves have a compact representation (which is in no way guaranteed - an equation can be bigger than any given finite data set which it describes), then you can use your understanding to compress the data. But the implications of that banal observation for AI are roughly nil. It certainly doesn’t imply any identity relation between compression and understanding. A realistic example might be the Mod/RM byte in x86 instruction encoding. There are underlying regularities, but a lookup table could quite possibly be smaller than the code required to generate the correct Mod/RM byte given operands. So you can understand the Mod/RM encoding without thereby being able to compress anything.