The perfectly dumb, smart social structure

MY EDITORIAL ON YOU TUBE

I am developing directly on the mathematical model I started to sketch in my last update, i.e. in Social roles and pathogens: our average civilisation. This is an extension of my earlier research regarding the application of artificial neural networks to simulate collective intelligence in human societies. I am digging down one particular rabbit-hole, namely the interaction between the prevalence of social roles, and that of disturbances to the social structure, such as epidemics, natural disasters, long-term changes in natural environment, radically new technologies etc.

Here comes to my mind, and thence to my writing, a mathematical model that generalizes some of the intuitions, which I already, tentatively, phrased out in my last update. The general idea is that society can be represented as a body of phenomena able to evolve endogenously (i.e. by itself, in plain human lingo), plus an external disturbance. Disturbance is anything that knocks society out of balance: a sudden, massive change in technology, a pandemic, climate change, full legalization of all drugs worldwide, Justin Bieber becoming the next president of the United States etc.

Thus, we have the social structure and a likely disturbance to it. Social structure is a set SR = {sr1, sr2, …, srm} of ‘m’ social roles, defined as combinations of technologies and behavioural patterns. The set SR can be stable or unstable. Some of the social roles can drop out of the game. Just checking: does anybody among my readers know what did the craft of a town crier consist in, back in the day? That guy was a local media industry, basically. You paid him for shouting your message in one or more public places in the town. Some social roles can emerge. Twenty years ago, the social role of an online influencer was associated mostly with black public relations, and today it is a regular occupation.

Disappearance or emergence of social roles is one plane of social change, and mutual cohesion between social roles is another one. In any relatively stable social structure, the existing social roles are culturally linked to each other. The behaviour of a political journalist is somehow coherent with the behaviour of politicians he or she interviews. The behaviour of a technician with a company of fibreoptic connections is somehow coherent with the behaviour of end users of those connections. Yet, social change can loosen the ties between social roles. I remember the early 1990ies, in Poland, just after the transition from communism. It was an odd moment, when, for example, many public officers, e.g. maires or ministers, were constantly experimenting with their respective roles. That very loose coupling of social roles is frequently observable in start-up businesses, on the other hand. In many innovative start-ups, when you start a new job, you’d better be prepared to its exact essence and form taking shape as you work.

In all that story of social cohesion I essentially tap into swarm theory (see Correlated coupling between living in cities and developing science; Xie, Zhang & Yang 2002[1] ; Poli, Kennedy & Blackwell 2007[2] ; Torres 2012[3]; Stradner et al. 2013[4]). I assume that each given pair of social roles – e.g. the First Secretary of The Communist Party of China and a professional gambler in Las Vegas – can be coupled at three levels: random, fixed, and correlated. A relative loosening of social cohesion means that random coupling grows in relative importance, at the expense of the fixed, strictly ritualized coupling, and of the correlated one.

All in all, I hypothesise four basic types of social change in an established structure, under the impact of an exogenous disturbance. Scenario A assumes the loosening of cohesion between social roles, under the impact of an exogenous disturbance, with a constant catalogue of social roles in place. Scenario B implies that external stressor makes some social roles disappear, whilst scenarios C and D represent the emergence of new social roles, in two different perspectives. In Scenario C, new social roles are not coherent with the established ones, whilst Scenario D assumes such a cohesion.

Mathematically, I represent the whole thing in the form of a simple neural network, a multi-layer perceptron. I have written a lot about using neural networks as representation of collective intelligence, and now, I feel like generalising my theoretical stance and explaining two important points, namely what exactly I mean by a neural network, and why do I apply a neural network instead of a stochastic model, such as e.g. an Ito drift.

A neural network is a sequence of equations, which can be executed in a loop, over a finite sequence ER = {er1, er2, …, ern} of ‘n’ of experimental rounds, and that recurrent sequence of equations has a scalable capacity to learn. In other words, equation A takes input data, transforms it, feeds the result into equation B, which feeds into equation C etc., and, at some point, the result yielded by the last equation in the sequence gets fed into equation A once again, and the whole sequence runs another round A > B > C > …> A etc.. In each consecutive experimental round erj, equation A taps into raw empirical data, and into the result of the previous experimental round ej-1. Another way of defining a neural network is to say that it is a general, logical structure able to learn by producing many specific instances of itself and observing their specific properties. Both definitions meet in the concept of logical structure and learning. It is quite an old observation in our culture that some logical structures, such as sequences of words, have the property of creating much more meaning than others. When I utter a sequence ‘Noun + Verb + Noun’, e.g. ‘I eat breakfast’, it has the capacity to produce more meaning than a sequence of the type ‘Verb + Verb + Verb’, e.g. ‘Eat read walk’. The latter sequence leaves more ambiguity, and the amount of that ambiguity makes that sequence of words virtually useless in daily life, save for online memes.  

There are certain peg structures in the sequence of equations that make a neural network, i.e. some equations and sequences thereof which just need to be there, and which the network cannot produce meaningful results. I am going to present the peg structure of a neural network, and then I will explain its parts one by one.

Thus, the essential structure is the following: [Equation of random experimentation  ε* xi (er1)] => [Equation of aggregation  h = ∑ ε* xi (er1)] => [Equation of neural activation  NA = (a*ebh ± 1) / (a*ebh ± 1) ] => {Equation of error assessment  e(er1) = [O(er1) – NA(er1)]*c} => {[Equation of backpropagation]  [Equation of random experimentation + acknowledgement of error from the previous experimental round]  [ε* xi (erj) + e(er1)]} => {Equation of aggregation  h = ∑ [ε* xi (erj) + e(er1)]} etc.          

In that short sequential description, I combined mathematical expressions with formal logic. Brackets of different types – round (), square [] and curly {} – serve to delineate distinct logical categories. The arrowed symbols stand for logical connections, with ‘’ being an equivalence, and ‘=>’ and implication. That being explained, I can start explaining those equations and their sequence. The equation of random experimentation expresses what an infant’s brain does: it learns, by trial and error, i.e. my mixing stimuli in various hierarchies and seeing which hierarchy of importance, attached to individual pieces of sensory data, works better. In an artificial neural network, random experimentation means that each separate piece of data is being associated with a random number ε between 0 and 1, e.g. 0,2 or 0,87 etc. A number between 0 and 1 can be interpreted in two ways: as a probability, or as the fraction of a whole. In the associated pair ε* xi (erj), the random weight 0 < ε < 1 can be seen as hypothetical probability that the given piece xi of raw data really matters in the experimental round erj. From another angle, we can interpret the same pair ε* xi (erj) as an experiment: what happens when we cut fraction ε from the piece of data xi. it can be for one, or as a slice cut out of that piece of data.

Random experimentation in the first experimental round er1 is different from what happens in consecutive rounds erj. In the first round, the equation of random experimentation just takes the data xi. In any following round, the same equation must account for the error of adjustment incurred in previous rounds. The logic is still the same: what happens if we assume a probability of 32% that error from past experiments really matters vs. the probability of 86%?

The equation of aggregation corresponds to the most elementary phase of what we could call making sense of reality, or to language. A live intelligent brain collects separate pieces of data into large semantic chunks, such as ‘the colour red’, ‘the neighbour next door’, ‘that splendid vintage Porsche Carrera’ etc. The summation h = ∑ ε* xi (erj) is such a semantic chunk, i.e. h could be equivalent to ‘the neighbour next door’.

Neural activation is the next step in the neural network making sense of reality. It is the reaction to the neighbour next door. The mathematical expression NA = (a*ebh ± 1) / (a*ebh ± 1) is my own generalisation of two commonly used activation functions: the sigmoid and the hyperbolic tangent. The ‘e’ symbol is the mathematical constant e, and ‘h’ in the expression ebh is the ‘h’ chunk of pre-processed data from the equation of aggregation. The ‘b’ coefficient is usually a small integer, e.g. b = 2 in the hyperbolic tangent, and -1 in the basic version of the sigmoid function.

The logic of neural activation consists in combining a constant component with a variable one, just as a live nervous system has some baseline neural activity, e.g. the residual muscular tonus, which ramps up in the presence of stimulation. In the equation of hyperbolic tangent, namely NA = tanh = (e2h – 1) / (e2h + 1), the constant part is (e2 – 1) / (e2 + 1) = 0,761594156. Should my neural activation be the sigmoid, it goes like NA = sig = 1 / (1 + e-h), with the constant root of 1 / (1 + e-1) = 0,731058579.

Now, let’s suppose that the activating neuron NA gets excited about a stream of sensory experience represented by input data: x1 = 0.19, x2 = 0.86, x3 = 0.36, x4 = 0.18, x5 = 0.93. At the starting point, the artificial mind has no idea how important are particular pieces of data, so it experiments by assigning them a first set of aleatory coefficients – ε1 = 0.85, ε2 = 0.70, ε3 = 0.08, ε4 = 0.71, ε5 = 0.20 – which means that we experiment with what happens if x3 was totally unimportant, x4 was hardly more significant, whilst x1, x2 and x3 are really important. Aggregation yields h = 0,19*0,85 +0,86*0,70 + 0,36*0,08 + 0,18*0,71 + 0,93*0,20 = 1,10.

An activating neuron based on the hyperbolic tangent gets into a state of NA = tanh = (e2*1,10 – 1) / (e2*1,10 + 1) = 0.801620, and another activating neuron working with the sigmoid function thinks NA = sig = 1 / (1 + e-1,10) = 0,7508457. Another experiment with the same data consists in changing the aleatory coefficients of importance and seeing what happens, thus in saying  ε1 = 0.48, ε2 = 0.44, ε3 = 0.24, ε4 = 0.27, ε5 = 0.80 and aggregating h = 0,19*0,48 +0,86*0,44 + 0,36*0,24 + 0,18*0,27 + 0,93*0,80 = 1,35. In response to the same raw data aggregated in a different way, the hyperbolic tangent says NA = tanh = (e2*1,35 – 1) / (e2*1,35 + 1) = 0,873571 and the activating neuron which sees reality as a sigmoid retorts: ‘No sir, absolutely not. I say NA = sig = 1 / (1 + e-1,35) = 0,7937956’. What do you want: equations are like people, they are ready to argue even about 0,25 of difference in aggregate input from reality.

Those two neural reactions bear a difference, visible as gradients of response, or elasticities of response to a change in aggregate output. The activating neuron based on hyperbolic tangent yields a susceptibility of (0,873571 – 0,801620) / (1,35 – 1,10) = 0.293880075, which the sigmoid sees as an overreaction, with its well-pondered (0,7937956 – 0,7508457) / (1,35 – 1,10) = 0,175427218. That’s an important thing to know about neural networks: they can be more or less touchy in their reaction. Hyperbolic tangent produces more stir, and the sigmoid is more like ‘calm down’ in its ways.

Whatever the neural activation NA produces, gets compared with a pre-set outcome O, or output variable. Error is assessed as e(erj) = [O(erj) – NA(erj)]*c, where ‘c’ is na additional factor, sometimes the local derivative of NA. It just serves to put c there: it can amplify (c > 1) or downplay (c < 1) the importance of local errors and therefore make the neural network more or less sensitive to making errors.                

Before I pass to discussing the practical application of that whole logical structure to the general problem at hand, i.e. the way that a social structure reacts to exogenous disturbances, one more explanation is due, namely the issue of backpropagation of error, where said error is being fed forward. One could legitimately ask how the hell is it possible to backpropagate something whilst feeding it forward. Let’s have a look at real life. When I learn to play piano, for example, I make mistakes in my play, and I utilise them to learn. I learn by repeating over and over again the same sequence of musical notes. Repetition is an instance of feeding forward. Each consecutive time I play the same sequence, I move forward one more round. However, if I want that move forward to be really productive as regards learning, I need to review, each time, my entire technique. I need to go back to my first equation and run the whole sequence of equations again. I need to backpropagate my mistakes over the whole sequence of behaviour. Backpropagating errors and feeding them forward calls two different aspects of the same action. I backpropagate errors across the logical structure of the neural network, and I feed them forward over consecutive rounds of experimentation.   

Now, it is time to explain how I simulate the whole issue of disturbed social structure, and the four scenarios A, B, C, and D, which I described a few paragraphs earlier. The trick I used consists in creating a baseline neural network, one which sort of does something but not much really, and then making mutants out of it, and comparing the outcomes yielded by mutants with that produced by their baseline ancestor. For the baseline version, I have been looking for a neural network which learns lightning fast on the short run but remains profoundly stupid on the long run. I wanted quick immediate reaction and no capacity whatsoever to narrow down the error and adjust to it. 


The input layer of the baseline neural network is made of the set SR = {sr1, sr2, …, srm} of ‘m’ social roles, and one additional variables representative for the hypothetical disturbance. Each social role sri corresponds to a single neuron, which can take values between 0 and 1. Those values represent the probability of occurrence in the social role sri. If, for example, in the experimental round e = 100, the input value of the social role sri is sri(e100) = 0.23, it means that 23% of people manifest the distinctive signs of that social role. Of course, consistently with what I perceive as the conceptual acquis of social sciences, I assume that an individual can have multiple, overlapping social roles.

The factor of disturbance RB is an additional variable in the input layer of the network and comes with similar scale and notation. It takes values between 0 and 1, which represent the probability of disturbing occurrence in the social structure. Once again, RB can be anything, disturbing positively, negatively, or kind of we have no idea what it is going to bring about.

Those of you who are familiar with the architecture of neural networks might wonder how I am going to represent the emergence of new social roles without modifying the structure of the network. Here comes a mathematical trick, which, fortunately enough, is well grounded in social sciences. The mathematical part of the trick consists in incorporating dormant social roles in the initial set SR = {sr1, sr2, …, srm}, i.e. social roles assigned with arbitrary 0 value, i.e. zero probability of occurrence. On the historically short run, i.e. at the scale of like one generation, new social roles are largely predictable. As we are now, we can reasonably predict the need for new computer programmers, whilst being able to safely assume a shortage of jobs for cosmic janitors, collecting metal scrap from the terrestrial orbit. In 20 years from now, that perspective can change – and it’d better change, as we have megatons of metal crap on the orbit – yet, for now, it looks pretty robust.

Thus, in the set SR = {sr1, sr2, …, srm}, I reserve k neurons for active social roles, and l neurons for dormant ones, with, of course, k + l = m. All in all, in the actual network I programmed in Excel, I had k = 20 active social roles, l = 19 dormant social roles, and one neuron corresponding to the disturbance factor RB.            

Now, the issue of social cohesion. In this case, we are talking about cohesion inside the set SR = {sr1, sr2, …, srm}. Mathematically, cohesion inside a set of numerical values can be represented as the average numerical distance between them. Therefore, I couple the input layer of 20k + 19l + RB = 40 neurons is coupled with a layer of meta-input, i.e. with a layer of 40 other neurons whose sole function is to inform about the Euclidean distance between the current value of each input neuron, and the values of the other 39 input neurons.

Euclidean distance plays the role of fitness function (see Hamann et al. 2010[1]). Each social role in the set SR = {sr1, sr2, …, srm}, with its specific probability of occurrence, displays a Euclidean distance from the probability of occurrence in other social roles. The general idea behind this specific mathematical turn is that in a stable structure, the Euclidean distance between phenomena stays more or less the same. When, as a society, we take care of being collectively cohesive, we use the observation of cohesion as data, and the very fact of minding our cohesion helps us to maintain cohesion. When, on the other hand, we don’t care about social cohesion, then we stop using (feeding forward) this specific observation, and social cohesion dissolves.

For the purposes of my own scientific writing, I commonly label that Euclidean distance as V, i.e. V(sri; ej) stands for the average Euclidean distance between social role sri, and all the other m – 1 social roles in the set SR = {sr1, sr2, …, srm}, in the experimental round ej. When input variables are being denominated on a scale from 0 to 1, thus typically standardized for a neural network, and the network uses (i.e. feeds forward) the meta input on cohesion between variables, the typical Euclidean distance you can expect is like 0,1 ≤ V(sri; ej) ≤ 0,3. When the social structure loses it, Euclidean distance between phenomena starts swinging, and that interval tends to go into 0,05 ≤ V(sri; ej) ≤ 0,8. This is how the general idea of social cohesion is translated into a mathematical model.

Thus, my neural network uses, as primary data, basic input about the probability of specific social roles being played by a randomly chosen individual, and metadata about cohesion between those probabilities. I start by assuming that all the active k = 20 social roles occur with the same probability of 0,5. In other words, at the starting point, each individual in the society displays a 50% probability of endorsing any of the k = 20 social roles active in this specific society. Reminder: l = 19 dormant social roles stay at 0, i.e. each of them has 0% of happening, and the RB disturbance stays at 0% probability as well. All is calm. This is my experimental round 1, or e1. In the equation of random experimentation, each social role sri gets experimentally weighed with a random coefficient, and with its local Euclidean distance from other social roles. Of course, as all k = 20 social roles have the same probability of 50%, their distance from each other is uniform and always makes V = 0,256097561. All is calm.

As I want my baseline AI to be quick on the uptake and dumb as f**k on the long-haul flight of learning, I use neural activation through hyperbolic tangent. As you could have seen earlier, this function is sort of prone to short term excitement. In order to assess the error, I use both logic and one more mathematical trick. In the input, I made each of k = 20 social roles equiprobable in its happening, i.e. 0,50. I assume that the output of neural activation should also be 0,50. Fifty percent of being anybody’s social role should yield fifty percent: simplistic, but practical. I go e(erj) = O(erj) – NA(erj) = 0,5 – tanh = 0,5 – [(e2h – 1) / (e2h + 1)], and I feed forward that error from round 1 to the next experimental round. This is an important trait of this particular neural network: in each experimental round, it experiments adds up the probability from previous experimental round and the error made in the same, previous experimental round, and with the assumption that expected value of output should be a probability of 50%.

That whole mathematical strategy yields interesting results. Firstly, in each experimental round, each active social role displays rigorously the same probability of happening, and yet that uniformly distributed probability changes from one experimental round to another. We have here a peculiar set of phenomena, which all have the same probability of taking place, which, in turn, makes all those local probabilities equal to the average probability in the given experimental round, i.e. to the expected value. Consequently, the same happens to the internal cohesion of each experimental round: all Euclidean distances between input probabilities are equal to each other, and to their average expected distance. Technically, after having discovered that homogeneity, I could have dropped the whole idea of many social roles sri in the database and reduce the input data just to three variables (columns): one active social role, one dormant, and the disturbance factor RB. Still, I know by experience that even simple neural networks tend to yield surprising results. Thus, I kept the architecture ’20k + 19l + RB’ just for the sake of experimentation.

That whole baseline neural network, in the form of an Excel file, is available under THIS LINK. In Table 1, below, I summarize the essential property of this mathematical structure: short cyclicality. The average probability of happening in each social role swings regularly, yielding, at the end of the day, an overall average probability of 0,33. Interesting. The way this neural network behaves, it represents a recurrent sequence of two very different states of society. In odd experimental rounds (i.e. 1, 3, 5,… etc.) each social role has 50% or more of probability of manifesting itself in an individual, and the relative cohesion inside the set of social roles is quite high. On the other hand, in even experimental rounds (i.e. 2, 4, 6, … etc.), social roles become disparate in their probability of happening in a given time and place of society, and the internal cohesion of the network is low. The sequence of those two states looks like the work of a muscle: contract, relax, contract, relax etc.

Table 1 – Characteristics of the baseline neural network

Experimental roundAverage probability of input  Cohesion – Average Euclidean distance V in input  Aggregate input ‘h’  Error to backpropagate
1           0,5000 0,25011,62771505-0,4257355
2           0,0743 0,03720,029903190,47010572
3           0,5444 0,27231,79626958-0,4464183
4           0,0980 0,04900,051916330,44813027
5           0,5461 0,27321,60393868-0,4222593
6           0,1238 0,06190,093201450,40706748
7           0,5309 0,26561,59030006-0,4201953
8           0,1107 0,05540,071570250,4285517
9           0,5392 0,26981,49009281-0,4033418
10           0,1359 0,06800,113017960,38746079
11           0,5234 0,26181,51642329-0,4080723
12           0,1153 0,05770,062083680,43799596
13           0,5533 0,27681,92399208-0,458245
14           0,0950 0,04760,036164950,46385081
15           0,5589 0,27961,51645936-0,4080786
16           0,1508 0,07550,138602510,36227827
17           0,5131 0,25671,29611259-0,3607191
18           0,1524 0,07620,122810620,37780311
19           0,5302 0,26521,55382594-0,4144146
20           0,1158 0,05790,063916620,43617027
Average over 3000 rounds0,33160,16590,81130,0000041
Variance0,04080,01020,53450,162
Variability*0,60920,60920,901297 439,507

*Variability is calculated as standard deviation, i.e. square root of variance, divided by the average.

Now, I go into the scenario A of social change. The factor of disturbance RB gets activated and provokes a loosening of social cohesion. Mathematically, it involves a few modifications to the baseline network. Activation of the disturbance RB involves two steps. Firstly, numerical values of this specific variable in the network needs to take non-null values: the disturbance is there. I do it by generating random numbers in the RB column of the database. Secondly, there must be a reaction to disturbance, and the reaction consists in disconnecting the layer of neurons, which I labelled meta-data, i.e. the one containing Euclidean distances between the raw data points.

Here comes the overarching issue of sensitivity to disturbance, which goes across all the four scenarios (i.e. A, B, C, and D). As representation of what’s going on in social structure, it is about collective and individual alertness. When a new technology comes out into the market, I don’t necessarily change my job, but when that technology spreads over a certain threshold of popularity, I might be strongly pushed to reconsider my decision. When COVID-19 started hitting the global population, all levels of reaction (i.e. governments, media etc.) were somehow delayed in relation to the actual epidemic spread. This is how social change happens in reaction to a stressor: there is a threshold of sensitivity.

When I throw a handful of random values into the database, as values of disturbance RB, they are likely to be distributed under a bell-curve. I translate mathematically the social concept of sensitivity threshold as a value under that curve, past which the network reacts by cutting ties between errors input as raw data from previous experimental rounds, and the measurement of Euclidean distance between them. Question: how to set this value so as it fits with the general logic of that neural network? I decided to set the threshold at the absolute value of the error recorded in the previous experimental round. Thus, for example, when error generated in round 120 is e120 = -0.08, the threshold of activation for triggering the response to disturbance is ABS(-0,08) = 0,08. The logic behind this condition is that social disturbance becomes significant when it is more prevalent than normal discrepancy between social goals and the actual outcomes.

I come back to the scenario A, thus to the hypothetical situation when the factor of disturbance cuts the ties of cohesion between existing, active social roles. I use the threshold condition ‘if RB(erj) > e(erj-1), then don’t feed forward V(erj-1)’, and this is what happens. First of all, the values of probability assigned to all active social roles remain just as uniform, in every experimental round, as they are in the baseline neural network I described earlier. I know, now, that the neural network, such as I designed it, is not able to discriminate between inputs. It just generates a uniform distribution thereof. That being said, the uniform probability of happening in social roles sri follows, in scenario A, a clearly different trajectory than the monotonous oscillation in the baseline network. The first 134 experimental rounds yield a progressive decrease in probability down to 0. Somewhere in rounds 134 ÷ 136 the network reaches a paradoxical situation, when no active social role in the k = 20 subset has any chance of manifesting itself. It is a society without social roles, and all that because the network stops feeding forward meta-data on its own internal cohesion when the disturbance RB goes over the triggering point. Past that zero point, a strange cycle of learning starts, in irregular leaps: the uniform probability attached to social roles rises up to an upper threshold, and then descends again back to zero. The upper limit of those successive leaps oscillates and then, at an experimental round somewhere between er400 and er1000, probability jumps just below 0,7 and stays this way until the end of the 3000 experimental rounds I ran this neural network through. At this very point, the error recorded by the network gets very close to zero and stays there as well: the network has learnt whatever it was supposed to learn.

Of course, the exact number of experimental rounds in that cycle of learning is irrelevant society-wise. It is not 400 days or 400 weeks; it is the shape of the cycle that really matters. That shape suggests that, when an external disturbance switches off internal cohesion between social roles in a social structure, the so-stimulated society changes in two phases. At first, there are successive, hardly predictable episodes of virtual disappearance of distinct social roles. Professions disappear, family ties distort etc. It is interesting. Social roles get suppressed simply because there is no need for them to stay coherent with other social roles. Then, a hyper-response emerges. Each social role becomes even more prevalent than before the disturbance started happening. It means a growing probability that one and the same individual plays many social roles in parallel.

I pass to scenario B of social change, i.e. the hypothetical situation when the exogenous disturbance straightforwardly triggers the suppression of social roles, and the network keeps feeding forward meta-data on internal cohesion between social roles. Interestingly, suppression of social roles under this logical structure is very short lived, i.e. 1 – 5 experimental rounds, and then the network yields an error which forces social roles to disappear.

One important observation is to note as regards scenarios B, C, and D of social change in general. Such as the neural network is designed, with the threshold of social disturbance calibrated on the error from previous experimental round, error keeps oscillating within an apparently constant amplitude over all the 3000 experimental rounds. In other words, there is no visible reduction of magnitude in error. Some sort of social change is occurring in scenarios B, C, and D, still it looks as a dynamic equilibrium rather than a definitive change of state. That general remark kept in mind, the way that the neural network behaves in scenario B is coherent with the observation  made regarding the side effects of its functioning in scenario A: when the factor of disturbance triggers the disappearance of some social roles, they re-emerge spontaneously, shortly after. To the extent that the neural network I use here can be deemed representative for real social change, widely prevalent social roles seem to be a robust part of the social structure.

Now, it is time to screen comparatively the results yielded by the neural network when it is supposed to represent scenarios C and D of social change: I study situations when a factor of social disturbance, calibrated in its significance on the error made by the neural network in previous experimental rounds, triggers the emergence of new social roles. The difference between those two scenarios is in the role of social cohesion. Mathematically, I did it by activating the dormant l = 19 social roles in the network, with a random component. When the random value generated in the column of social disturbance RB is greater than the error observed in the previous experimental round, thus when RB(erj) > e(erj-1), then each of the l = 19 dormant social roles gets a random positive value between 0 and 1. That random positive value gets processed in two alternative ways. In scenario C, it goes directly into aggregation and neural activation, i.e. there is no meta-data on the Euclidean distance between any of those newly emerging social roles and other social roles. Each new social role is considered as a monad, which develops free from constraints of social cohesion. Scenario D establishes such a constraint, thus the randomly triggered probability of a woken up, and previously dormant social role is being aggregated, and fed into neural activation with meta-data as for its Euclidean distance from other social roles.    

Scenarios C and D share one important characteristic: heterogeneity in new social roles. The k = 20 social roles active from the very beginning, thus social roles ‘inherited’ from the baseline social network, share a uniform probability of happening in each experimental round. Still, as probabilities of new social roles, triggered by the factor of disturbance, are random by default, these probabilities are distributed aleatorily. Therefore, scenarios C and D represent a general case of a new, heterogenous social structure emerging in the presence of an incumbent rigid social structure. Given that specific trait, I introduce a new method of comparing those two sets of social roles, namely by the average probability attached to social roles, calculated over the 3000 experimental rounds. I calculate the average probability of active social roles across all the 3000 experimental rounds, and I compare it with individual, average probabilities obtained for each of the new social roles (or woken up and previously dormant social roles) over 3000 experimental rounds. The idea behind this method is that in big sets of observations, arithmetical average represents the expected value, or the expected state of the given variable.

The process of social change observed, respectively, in scenarios C and D, is different. In the scenario C, the uniform probability attached to the incumbent k = 20 social roles follows a very calm trend, oscillating slightly between 0,2 and 0,5, whilst the heterogenous probabilities of newly triggered l = 19 social roles swing quickly and broadly between 0 and 1. When the network starts feeding forward meta-data on Euclidean distance between each new social role and the others, it creates additional oscillation in the uniform probability of incumbent social roles. The latter gets systematically and cyclically pushed into negative values. A negative probability is logically impossible and represents no real phenomenon. Well, I mean… It is possible to assume that the negative probability of one phenomenon represents the probability of the opposite phenomenon taking place, but this is really far-fetched and doesn’t really find grounding in the logical structure of this specific neural network. Still, the cycle of change where the probability of something incumbent and previously existing gets crushed down to zero (and below) represents a state of society, when a new phenomenon aggressively pushes the incumbent phenomena out of the system.

Let’s see how those two processes of social change, observed in scenarios C and D, translate into expected states of social roles, i.e. into average probabilities. The first step in this analysis is to see how heterogeneous are those average expected states across the new social roles, triggered out of dormancy by the intrusion of the disturbance RB. In scenario C, new social roles display average probabilities between 0,32 and 0,35. Average probabilities corresponding to each individual, new social role differs from others by no more than 0.03, thus by a phenomenological fringe to be found in the tails of the normal distribution. By comparison, the average uniform probability attached to the existing social roles is 0,31. Thus, in the absence of constraint regarding social cohesion between new social roles and the incumbent ones, the expected average probability in both categories is very similar.

In scenario D, average probabilities of new social roles oscillate between 0,45 and 0,49, with just as little disparity as in scenario C, but, in the same time, they push the incumbent social roles out of the nest, so to say. The average uniform probability in the latter, after 3000 experimental rounds, is 0.01, which is most of all a result of the ‘positive probability – negative probability’ cycle during experimentation.

It is time to sum up my observations from the entire experiment conducted through and with a neural network. The initial intention was to understand better the mechanism which underlies one of my most fundamental claims regarding the civilizational role of cities, namely that cities, as a social contrivance, serve to accommodate a growing population in the framework of an increasingly complex network of social roles.

I am focusing on the ‘increasingly complex’ part of that claim. I want to understand patterns of change in the network of social roles, i.e. how can the complexity of that network evolve over time. The kind of artificial behaviour I induced in a neural network allows identifying a few recurrent patterns, which I can transform into hypotheses for further research. There is a connection between social cohesion and the emergence/disappearance of new social roles, for one. Social cohesion drags me back into the realm of the swarm theory. As a society, we seem to be evolving by a cycle of loosening and tightening in the way that social roles are coupled with each other.      

Discover Social Sciences is a scientific blog, which I, Krzysztof Wasniewski, individually write and manage. If you enjoy the content I create, you can choose to support my work, with a symbolic $1, or whatever other amount you please, via MY PAYPAL ACCOUNT.  What you will contribute to will be almost exactly what you can read now. I have been blogging since 2017, and I think I have a pretty clearly rounded style.

In the bottom on the sidebar of the main page, you can access the archives of that blog, all the way back to August 2017. You can make yourself an idea how I work, what do I work on and how has my writing evolved. If you like social sciences served in this specific sauce, I will be grateful for your support to my research and writing.

‘Discover Social Sciences’ is a continuous endeavour and is mostly made of my personal energy and work. There are minor expenses, to cover the current costs of maintaining the website, or to collect data, yet I want to be honest: by supporting ‘Discover Social Sciences’, you will be mostly supporting my continuous stream of writing and online publishing. As you read through the stream of my updates on https://discoversocialsciences.com , you can see that I usually write 1 – 3 updates a week, and this is the pace of writing that you can expect from me.

Besides the continuous stream of writing which I provide to my readers, there are some more durable takeaways. One of them is an e-book which I published in 2017, ‘Capitalism And Political Power’. Normally, it is available with the publisher, the Scholar publishing house (https://scholar.com.pl/en/economics/1703-capitalism-and-political-power.html?search_query=Wasniewski&results=2 ). Via https://discoversocialsciences.com , you can download that e-book for free.

Another takeaway you can be interested in is ‘The Business Planning Calculator’, an Excel-based, simple tool for financial calculations needed when building a business plan.

Both the e-book and the calculator are available via links in the top right corner of the main page on https://discoversocialsciences.com .


[1] Hamann, H., Stradner, J., Schmickl, T., & Crailsheim, K. (2010). Artificial hormone reaction networks: Towards higher evolvability in evolutionary multi-modular robotics. arXiv preprint arXiv:1011.3912.

[1] Xie, X. F., Zhang, W. J., & Yang, Z. L. (2002, May). Dissipative particle swarm optimization. In Proceedings of the 2002 Congress on Evolutionary Computation. CEC’02 (Cat. No. 02TH8600) (Vol. 2, pp. 1456-1461). IEEE.

[2] Poli, R., Kennedy, J., & Blackwell, T. (2007). Particle swarm optimization. Swarm intelligence, 1(1), 33-57.

[3] Torres, S. (2012). Swarm theory applied to air traffic flow management. Procedia Computer Science, 12, 463-470.

[4] Stradner, J., Thenius, R., Zahadat, P., Hamann, H., Crailsheim, K., & Schmickl, T. (2013). Algorithmic requirements for swarm intelligence in differently coupled collective systems. Chaos, Solitons & Fractals, 50, 100-114.

Leave a Reply