I love this idea so much. 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 the abstraction can be called instances, members, or concrete 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 rather is an idea.
"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. But 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 seperate class - as an individual. It feels dehumanizing to consider people as interchangable and mere statistics. But it is still useful to do so and we can see it being done in marketing, policy making etc.
We just now saw what the process of abstraction was in 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 neutral 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 also abstractions. But 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. We get exposed to more.
Even for our most sensitive senses we have these basic 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 ethinicity.
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 direction. 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. It is easy to make judgements based on simulations that run in that platonic space.
The validity of these abstractions are 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 familar 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.
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 tries 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 is 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.
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 lot 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 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 congnitive skills that is now taken for granted.
Even when we play video games or read fiction, the "living beings" we strongly relate to are just simple character models or when we feel intense emotions towards animated characters in an anime, these are all abstractions that we believe in. It 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 conceptualize 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 and I am looking forward to any comments you may have.