Introducing: Guardia-NN

At Hacktech 2019, I intend to build a functioning prototype of the Guardia-NN system.

The hardware prototype system consists of the following:

A hardware device that features a huge button (representing “I DON’T WANT TO SEE THIS”) and an indicator (representing “YOU SAID YOU DON’T LIKE STUFF LIKE THIS”).

The device solves two problems at once: Firstly, people don’t like to see things that offend/traumatize them. But secondly, people generally don’t like being told by others (who may not share the same views and values) what is and is not offensive or triggering.

In other words, the machine serves as a guardian, using neural networks (hence the name Guardia-NN) — and replaces the almost universally reviled trope of the overly politically-correct “social justice warrior” with a machine. Now that’s automation we can all get behind!

It performs this task by picking up on user-defined trigger warnings (text tags that indicate that content will cause distress, offend, or otherwise bother the user), and relies on neural networks (large chains of decision making procedures) in order to learn from from repeated use what the end-user does and does not want to see. The device warns users that content ahead may trigger them, and allows them to navigate around said content with minimal exposure.

Because of its limited computational power, and reliance upon user interaction, it does not represent a feasible means of censoring others’ internet use. Rather, its intended use is to allow people to have a warning sign before exposure to content that may cause psychological harm and thus mitigate their exposure, akin to an allergen warning system.

Tutorial: Machine Learning Data Set Preparation, Part 4

In this one, I want to talk about the output of data. How we frame the output of an algorithm is as delicate as the original choice of algorithm itself. The informal cycle I have been working with has been data sourcing and preparation, followed by processing (applying statistical methods and machine learning algorithms), and then presenting that in a form that people can understand.

In each of these procedural points, decisions have to be made.

Take a gander at the following two charts:

They look different. But they also look the same. What accounts for this? In the second chart, a great deal of empty space up top evokes some kind of downward, negative pressure. Assuming that the viewer is a native user of a language that reads left-to-right, top-to-bottom, one might be inclined to say that the first graph shows good performance, and the second indicates worse performance.

On closer examination, however, there is no actual difference in the graph. The differences are in the y-axis. In the second chart, the y-axis begins at 200 (rather than 0), and goes all the way up to 1000. The peak, just before 2008, remains just over 700 in both graphs. Both charts use and represent the same data without any distortion. So the manipulation is at the framing-level.

Future installments will cover some sneakier ways to present data. The source code for this example can be found here on my github.