Me Myself AI

Let's reclaim our human agency by creating our own AI



Context

A lot more services will soon integrate into our daily life thanks to better connectivity, progress in the field of AR and AI. The shift in control that is taking place is about who is taking the initiative to act. We used to be in control, picking apps to help us accomplish a task. But more and more apps are becoming autonomous, reaching out to us when they have something we need. This applies to apps we've 'installed' ourself, but systems in the IoT world around us will also reach out to us.

Although we don't risk to be overwhelmed because AI will make the right choices for us based on our profiled needs, something is very wrong. The problem is that we do not control our own profile and it's not our AI that makes the decisions for us, so it's time take matters in our own hand again. It's should no longer be an external system that pro-actively thinks we need something, but we need a mechanism in which our own "API" receives offers and requests which can be handled by our own AI.

MeMyselfAI aims to work on a set-up of software modules to let this happen. By letting people collect their our own data and asking them to annotate it, it can be can be used for Machine Learning purposes. That allows them to create, enrich and control their own profile using scripts from a community of fellow DIY AI explorers. Monitoring and profiling us no longer needs to be part of every piece of software. That monopoly will be taken away from Big Tech. MeMyselfAI hopes to be a step towards a viable alternative.



Output

The output of this project will be a working set-up of a personal AI system. The aim is to create a 'proof-of-concept' implementation, but it's important to mention that this does end at a technical level only. The fore most goal is to study the viability of the concept of "DIY AI". An important step of that process is to discover which areas of AI intervention can (and should) be taken away from Big Tech.

Important questions related to that are:

  • What input data can be gathered by an individual and which meaningful outputs can their own AI provide?
  • What will be the tasks for a normal human being to control his/her own AI?
  • What kind of configuration options are needed when users are 'activating' scripts shared by a community?

Follow-up

If this implementation proves to be a step into the right direction, more effort will be put in creating two set-ups. One for people with a little bit of technical insight, and one set-up for end-users that will operate their own AI with an interface that is highly user-friendly.

Agenda

Estimated time of the first public launch is Q2 2019. On this page we'll be documenting our progress.

(Control yourself with DIY AI)

FUNCTIONAL OVERVIEW

Private cloud
The core of the MyAI set-up is a personal cloud. In this cloud users will gather all the data they generate. It will contain of raw data, data sets and the gained insights.
Data
Data can be obtained from a wearable or the data our smartphones generates about our movement and location.
Smartphone tool
To make this data useful for Machine Learning, there will be a smartphone tool to help users annotate their information. They can access the app when they think they've something to annotate to the data collection in progress, but there will also be popups with questions to answer at intervals, or when a change in circumstances is detected.
AI scripts
We'll work on an expanding set of scripts that can be installed to process the datasets. And we aim to create the mechanism in an open way so ideally there will be the possibility to create a community with people sharing their scripts.
Human API
By getting to know us and being able to properly predict our reaction in certain situations, the API starts being able to react to incoming requests. External clouds will not need to have deep understanding about how we feel or what we like, they'll be dealing with the decisions our API makes. A data structure for this kind of communication need to be designed. Services will announce their availability by specifying what they can do for us, what we will get and how much it will costs.

TODO / COMPONENTS / ACTIVITIES

Below is an overview of the status of all tasks in each of the functional areas of the set-up.

Function Tasks / decisions Status
Data collection Can we make use of MySensorData to let people control the aggregation of their data? What kind of cloud or data storage needs to be configured to collect the data? Q1 - research
Annotation Create a tool to let a user annotate key events and manage the activity of data collection. Let's check-out if Snorkel can be used to further optimize that process once it's initiated. Q1 - development
Script 'app store'
  • 'Plug-in' mechanism for users to let people enhance themselves with a selection of scripts
  • Pool of scripts: Tensorflow ML scripts and 'manual' conversion scripts
  • Define for which tasks ML is suitable and for which tasks a 'rule based' (like Cognimates) is the preferred implementation
  • Distinction between 'learning' scripts and 'replying' scripts
Q1 - implementation
Q2 - writing scripts
AI Two types of AI are needed. First one is the real-time answering of requests. Second type is the training of models, to be prepared to answer the incoming requests.

To let people work on their own AI the Ludwig project seems to be most easy to use. The aim of that project is to make working with AI easy for non-programmers.
Q2 - implementation/configuration
Cloud
  • Choose software for private storage space for sensor data and annotation data
  • Data structure for storing the newly generated insights
Q1 - local test cloud
Q2 - turn into DIY instructions
API
  • Request / reply mechanism to deal with external location-based cloud services
  • Data structure and format for requests
Q1 - define format
Q2 - specify test services


Fig. Configure yourself with components from a library of AI scripts and algorithms


Fig. Active involvement in the annotation of your data

STARTING FROM SCRATCH

Big Tech had a head start collecting data about us and generating their profiles about us. But it's time to get started with doing that ourselves. The quality of our own AI will gradually improve. At first there will not be a lot of smartness and insights will be obvious. But as soon as the data sets are processed and new conclusions are extracted from the data, these can themselves be used as new input nodes for other Machine Learning scripts. For example:

Detecting the type or meaning of a certain GPS area or location can be done with an AI script, like script A and C in the image on the right. But instead of using 'home' and 'not home' in a digital way, it might lead to better and new insights to use 'distance from home' as a variable. Such data enrichments steps can be packed into scripts such as B and D.

We will start working on a growing set of scripts for a variety of tasks. By letting people pick their scripts from a pool of available scripts, we're allowing them to customize their involvement in a personal way. It will take some effort to start DIY AI. Doing it all by ourselves will require time and attention because managing the collection of proper input data and annotating it is crucial for good AI. It will be a different situation compared to what it used to be, when there was no need to do anything relying on all the work Big Tech was invisibly doing for us on the background.



CONCLUSION / AIM

The outcome of this project could be a conclusions that it's too ambitious to let people do their own AI. In that case a hybrid set-up is needed, in which our personal AI is 'outsourced' to thrustworthy entities providing a more user-friendly interface to the scripts or even completely taking care of processing our data sets, doing so under our supervision and under our terms and conditions. Whatever our future scenario will be, starting to collect and managing all our own data, including derived and enriched data about ourselves, is the only way to get ready for an escape from the growing control of Big Tech.



We should be the 'black-box', instead of the other way around