Abstraction

What is an abstraction? a concept? a process? a class? Why is it a powerful idea and how pervasive is it in our lives? I hope to try and provide some food for thought.

Let me be honest, I love this idea. It is something we do all the time, but most people do not name this process explicitly. This idea is linked to concepts, classes, and notions. The concrete members of any abstraction can be called instances, illustrations, or examples.

Let us think about some examples to understand what abstraction means, consider the idea of one. What is that? A class of objects? All objects taken one at a time would each be a concrete example of one, but the abstract idea of one is much deeper than that.

Closely related is the word abstract, which can mean that something does not ontologically exist in space-time but instead is an idea. Maybe it does exist, it does seem truer than concrete objects.

Numbers

"One" is actually an idea, and it does not have any concrete form. One is the name of the trait that all these singular objects share. The fact that they are one in number, in the counting sense. Take some other number, say three. If we say there are three eggs, then we are talking about the fact that ignoring many obvious differences between these three objects, the filtered versions of these three eggs are all exactly equal, and thus we get three copies of abstract items we call eggs.

If we measured the weight, exact shape, chemical composition, temperature, rigidity, age etc then we would find differences. However in the process of abstraction, we strip away these differences and leave behind those aspects that matter to us, subjectively in that context. All three are made by the same species, they serve the same functional purpose as food, they give you approximately the same amount of nutrition, they are approximately the same shape, weight and color.

This is why we name people; we treat each person as a separate class - as an individual. It feels dehumanizing to consider people as interchangeable and mere statistics. But it is still useful to do so and we can see it being done in marketing, policy making, history etc.

One important point to note here is that this object having the property/trait called one is itself an abstractions. Reality does not have any objective boundaries. All boundaries are subjectively imposed by us humans. The boundary defined between the atoms and electrons of an egg and air might feel natual to most humans but it is still in fact subjective. The underlying object that exists in reality does not have this property of one. In fact it is an ontological question if that object exists at all.

Modelling

We just now saw what the process of abstraction was in the case of numbers. I am sure you can think of more examples around you, such as when we treat the geodesic earth as a sphere, different species as just animals, being gender and race blind and just seeing the individual as a human.

So the idea was that abstractions were actually models of a real complicated object. The world is filled with so much detail, and we can only hold in our heads, represent and manipulate in our language a coarse representation of the truth. So the question is, which parts of the truth do we strip away? What aspects of the truth do we focus on?

Depending on the context and the purpose of that model we pick different aspects to focus on when building a model. The whole point of science is to try and use logic and the least number (Occam's Razor) of self-consistent axioms to explain most things (generalize). So abstraction is fundamental to doing science, notice how physical laws are abstractions.

One thing to note here is how models of this sort at often optimized to work at certain levels of detail. Models are human-centric, and finally, it needs to be useful to understand the phenomenon or tractable to compute. However it is not just mathematical models - differential equations, probability etc, we have abstractions in the soft sciences too.

When we try to make sense of human emotions and vices, we form categories - anger, sadness, happiness, greed, sloth, lust, etc. In reality, our emotions are much more nuanced, and these words are a gross oversimplification. But we are trying to focus on the dominant feeling and strip away everything else. No human ever only feels one single emotion or is dominated by one vice.

We take all these different angry people and situations where they might have felt different types of anger tinged with other emotions and abstract away everything except anger. It is clearly useful to use these abstractions; to be able to communicate and reason about our emotional state.

In fact any word you know is a symbolic representation of a concept. An abstract idea. All words are born when we recognize a pattern in our experiences. When we have the space and time to appreciate nuance, we expand our vocabulary.

Even for our most sensitive senses, we have these fundamental abstractions - color, shapes, tastes etc. But our touch and smell don't have these kinds of natural building blocks, maybe because it is not as sensitive or being used as much.

Stereotypes are another excellent example. We abstract away all the details that make each Jew, Hindu, or African different. We form this character model or template that is, in our opinion, the quintessential member of that religion, race, or ethnicity.

Understanding

When we try to understand phenomena, we model them. We perform data compression where we try to find a common pattern linking all these phenomena and see each of them as being instances of a more general abstraction. That is exactly what physical theories like General Relativity and Quantum Mechanics end up doing. You don't need to memorize each possible trajectory of rocks for variations in weight, force, and direction thrown. Within the classical mechanics model, we can see each trajectory is just a single instance.

The depth of your understanding can in a large sense be measured by the quality of abstractions you carry with you. Knowing why, when, and how they apply is crucial to understanding.

When you learn a new concept, it helps to practice going in both directions. First, we can go from many concrete objects to the more general, powerful abstraction and then secondly try to instantiate a few instances of that abstraction. In this process, we realize exactly what the simplifying assumptions were and what details were hidden. We are also able to see how these objects are not so different after all.

It is because of how simple abstractions are that all reasoning happens in the realm of ideas. Thus, it is easy to make judgments based on simulations that run in that platonic space.

The validity of these abstractions is proven when the results from that platonic space can be brought into the real world with only an acceptable amount of error. Often the danger is when we forget we are thinking about and dealing with an abstraction. We start to become so familiar with the model that it becomes our reality. This is partly why stereotypes are hated because many people who use them fail to realize its limitations.

In the simplest way, when we use the word abstraction we are just saying "The map is not the territory", we are emphasizing that the concept we are dealing with is just an approximation and is not the complete reality.

We can also understand trust like this; we feel dissapointed when our model of someone fails. We trust that other people will take decisions according to the model we have of them. This is a way of imposing our expectations on other people and our attempt to influence their actions, often for a good cause.

We often push blame the failure of our model onto reality itself. We say "That makes no sense" and "That is so illogical" when things happen unlike anything that we predicted, this shows a common belief that our model is having higher priority compared to reality.

This is in contrast to how hackers think; instead of falling deep into the abstractions we surround ourselves with these guys question and they try to understand how the complicated nature of the system or software work. They find the exploit by realizing that the abstraction is not perfect.

"A mathematician tries to ‘see through’ a complex system’s accidental complexity up to a simpler more-abstract more-true version which can be understood & manipulated — but for the hacker, all complexity is essential, and they are instead trying to unsee the simple abstract system down to the more-complex less-abstract (but also more true) version" - gwern

What society offers as simple explanations for us to believe are also abstractions. We are able to operate effectively because all of us treat these abstractions as reality. We take complicated, diverse phenomena and group them into convenient categories. Gender as just male and female is an abstraction that is now changing. Those who are able to see through these abstractions and not just take them at face value are able to game the system. Con-men are the hackers of the social system.

What about jokes? There are many different paths to humor - incongruity (detecting mistakes is useful), signalling group membership, superiority, etc but gwern brought up one of them - puns which are really interesting. They break language norms and our expectations. Only the witty can easily see through and come up with puns. It indicates an ability to switch between layers of abstraction easily.

Puns force one to drop from the abstract semantic level to the raw syntactic level of sub-words or characters, and back up again to achieve some semantic twist — they are literally hacking language. - gwern

Even programmers need this skill of being able to easily shift between or even conceptualize these layers simultaneously.

Layers of Abstraction

By now it should be clear how strongly abstraction is related to complexity. Multiple abstractions can be thought of as being layered or nested to define a complex system. The best example of this I have seen is how computer programs work. You can choose the level of detail you are interested in and you will see that it is sitting on top of layers of details that have been abstracted away leaving only a simple model that works.

Order of abstraction in a computer
I first heard this idea from the first lecture of MIT 6.002 Circuits and Electronics

Think about how cool this is. We have reality or nature that is the ground we start building on. We figure out the most fundamental rules that seem to govern this reality and that forms a model of reality, an abstraction. Why? because these rules are actually only true in this specific context of temperature, speed, pressure, etc and within some level of measurement accuracy.

But as long as we are operating in these conditions, our physics model of reality will work just as well as the Truth. We leverage these condensed matter laws to create devices like transistors that act like one-way valves, switches, etc. This is another layer of abstraction.

The people who make gates do not need to know physics. They trust these transistors will work in the manner as the abstraction promised and they build gates, registers, etc using these devices.

We know what a NAND gate is supposed to do. We don't need to worry about how it manages to do it. Some other engineer will take care of that! We can just focus at our level of detail and make sure these logic gates work together to form the adder circuit. The engineers who use these adders to make an architecture can also ignore the details of your work.

This goes on and on and on and on. Can you imagine how much complexity is being hidden? The way a chrome tab sandboxes itself and is showing this webpage to you is build on many layers of software abstraction which is build on hardware abstractions.

You will hear this idea used when they say they want deeper reasons. Feynman brilliantly explained why questions of why can lead you both down causal chains and deeper down layers of abstraction.

Bret Victor has a brilliant post on a similar idea - the ladder of abstraction where he lets you interact with these abstractions. He goes from concrete to more abstract as he goes up the ladder, each rung corresponds to letting one more variable run free in the model.

I think there is some parallel between this idea and how to view writing, Peterson talked about how any essay can be conceptualized as a collection of letters, words, sentences, paragraphs etc depending on what level of abstraction we operate at. At the lowest level it is symbols on paper that are associated with sound, we group these symbols to form words that have a simple meaning. Then we group words to mean sentences which contain more complex meaning, group sentences to convey an even more complex/nuanced idea and so on. At the lowest levels the writing is concrete, at higher levels of abstraction the meaning depends on interpretation and thus is more free.

An essay, like any piece of writing, exists at multiple levels of resolution, simultaneously. First is the selection of the word. Second is the crafting of the sentence. Each word should be precisely the right word, in the right location in each sentence. The sentence itself should present a thought, part of the idea expressed in the paragraph, in a grammatically correct manner. Each sentence should be properly arranged and sequenced inside a paragraph, the third level of resolution.

A lot of the earliest skill we learned as kids was to automatically use our eyes or ears. So now most of us can't stare at specific shapes without seeing the letter. We can't listen to some sounds without hearing the words. We instinctively form the abstraction. Unlike abstractions in math which we can manipulate and switch between layers, here we are incapable of hearing the raw sound or seeing the raw marks of ink on paper.

Earliest abstractions

You could say that human thought started with abstractions. When we started using abstract symbols to first represent concrete objects we could sense, we started on the road to developing these cognitive skills that we now take for granted.

img
While the earliest writing is by the Sumerians around 3400 B.C.E. our ancestors seem to have been curiously consistent (across and between continents) with the symbols they used. We could have started using abstract symbols to communicate as far back as 40,000 years ago. Credit : Genevieve von Petzinger

There is something mindblowing happening here - at any instant we are bombarded with inputs from our sense organs. Our brain's main job is to decide what to ignore, what to abstract out of all that raw data into something that makes coherent sense. Any time we consciously perceive something, that is an abstraction!

Even when we play video games or read fiction, the "living beings" we strongly relate to are just simple character models. Consider when we feel intense emotions towards animated characters in an anime, these are all abstractions that we believe in. It is so cool that humans are able to associate that "representation of a human" with the "reality of a human". We are able to take abstractions seriously. That is a huge leap, to be able to imagine abstractions (which can be hypothetical situations) and treat them as seriously as any concrete occurrence.


I think this should be more than enough food for thought. I hope this post leads you to spend more time thinking about this wonderful idea - "everything is abstractions" and I am looking forward to any comment/feedback you may have, please post them below.