# Phil 10.16.19

7:00 – ASRC GOES

• Listening to Rachel Maddow on City Arts and Lectures. She’s talking about the power of oil and gas, and how they are essentially anti-democratic. I think that may be true for most extracting industries. They are incentivised to take advantage of the populations that are the gatekeepers to the resource. Which is why you get corruption – it’s cost effective. This also makes me wonder about advertising, which regards consumers as the source to extract money/votes/etc from.
• Dissertation:
• Something to add to the discussion section. Primordial jumps are not just on the parts of an individual on a fitness landscape. Sometimes the landscape can change, as with a natural disaster. The survivors are presented with an entirely new fitness landscape,often devoid of competition, that they can now climb.
• This implies that sustained stylistic change creates sophisticated ecosystems, while primordial change disrupts that, and sets the stage for the creation of new ecosystems.
• Had a really scary moment. Everything with \includegraphics wouldn’t compile. It seems to be a problem with MikTex, as described here. The fix is to place this code after \documentclass:
\makeatletter
\def\set@curr@file#1{%
\begingroup
\escapechar\m@ne
\xdef\@curr@file{\expandafter\string\csname #1\endcsname}%
\endgroup
}
\def\quote@name#1{"\quote@@name#1\@gobble""}
\def\quote@@name#1"{#1\quote@@name}
\def\unquote@name#1{\quote@@name#1\@gobble"}
\makeatother
• Finished the intro simulation description and results. Next is robot stampedes, then adversarial herding
• Evolver
• Check on status
• Write abstract for GSAW if things worked out
• Meetings

# Phil 10.15.19

7:00 – ASRC GOES

• Well, I’m pretty sure I missed the filing deadline for a defense in February. Looks like April 20 now?
• Dissertation – More simulation. Nope, worked on making sure that I actually have all the paperwork done that will let me defend in February.
• Evolver? Test? Done! It seems to be working. Here’s what I’ve got
• Ground Truth: Because the MLP is trained on a set of mathematical functions, I have a definitive ground truth that I can extend infinitely. It’s simple a set of ten sin(x) waves of varying frequency:

• All Predictions: If you read back through my posts, I’ve discovered how variable a neural network can be when it has the same architecture and training parameters. This variation is based solely on the different random initialization  of the weights between layers.
• I’ve put together a genetic-algorithm-based evolver to determine the best hyperparameters, but because of the variation due to initialization, I have to train an ensemble of models and do a statistical analysis just to see if one set of hyperparameters is truly better than another. The reason is easy to see in the following image. What you are looking at is the input vector being run through ten models that are used to calculate the statistical values of the ensemble. You can see that most values are pretty good, some are a bit off, and some are pretty bonkers.

• Ensemble Average: On the whole though, if you take the average of all the ensemble, you get a pretty nice result. And, unlike the single-shot method of training, the likelihood that another ensemble produced with the same architecture will be the same is much higher.

• This is not to say that the model is perfect. The orange curve at the top of the last chart is too low. This model had a mean accuracy of 67%. I’ve just kicked off a much longer run to see if I can find a better architecture using the evolver over 50 generations rather than just 2.
• Work on AI paper
• Good chat with Aaron – the span of approaches to the “model brittleness problem” can be described using three scenarios:
• Military: Models used in training and at the start of a conflict may not be worth much during hostilities
• Waste, Fraud, and Abuse. Clever criminals can figure out how not to get caught. If they know the models being used, they may be able to thwart them better
• Facial recognition and protest. Currently, protesters in cultures that support large-scale ML-based surveillance try to disguise their identity to the facial recognizers. Developing patterns that are likely to cause errors in recognizers and classifiers may support civil disobedience.
• Solving Rubik’s Cube with a Robot Hand (openAI)
• To overcome this, we developed a new method called Automatic Domain Randomization (ADR), which endlessly generates progressively more difficult environments in simulation. This frees us from having an accurate model of the real world, and enables the transfer of neural networks learned in simulation to be applied to the real world.

# Phil 10.14.19

7:00 – 7:00 School

• Dissertation
• Starting on the simulation section. Smoother going. Up to Detecting Emergent Group Behavior
• Rachel’s defense!
• Did you vary the cognitive load of the radio message. Acknowledgement vs. math problems? Garbled? How did you decide on the type of radio message?
• Audio message icon instead of visual (in-layer inhibition)
• Are ambient displays better for this type of activity? Acute displays are bad? Tesla experience
• ML Seminar
• Meeting with Aaron M

### Doctoral Degree

• Application for Admission to Candidacy for the Degree of Doctor of Philosophy [DOC | PDF]
• 5 Year Rule Extension Request [PDF]
• Nomination of Members for the Final Doctoral Dissertation Examination Committee [DOC | PDF]
• Due 6 months prior to defense
• Online Application for Diploma [Info | Apply]
• 4 Year Rule Extension Request [PDF]
• Certification of Readiness to Defend the Doctoral Dissertation [DOC | PDF]
• Due 2 weeks prior to defense
• PhD Defense Announcement [DOC | PDF]
• Due 2 weeks prior to defense
• Approval Sheet [DOC | PDF]
• Thesis and Dissertation Electronic Publication form [DOC | PDF]
• Due November 30; April 30; July 31 (Fall, Spring, Summer)
• Ph.D. Exit Survey [ Info ]

# Phil 10.11.19

7:00 – 5:00 ASRC

• Got Will’s extractor working last night
• A thought about how Trump’s popularity appears to be crumbling. Primordial jumps don’t have the same sort of sunk cost that stylistic change has. If one big jump doesn’t work out, try something else drastic. It’s the same or less effort than hillclimbing out of a sinking region
• Dissertation. Fix the proposal sections as per yesterday’s notes
• Evolver
• Write out model files as eval_0 … eval_n. If the new fitness is better than the old fitness, replace best_0 … best_n
• Which si turning out to be tricky. Had to add a save function to save at the right time in the eval loop

# Phil 10.10.19

7:00 – 4:00 ASRC GOES

• The Daily has an episode on how to detach from environmental reality and create a social reality stampede
• Dissertation, working on finishing up the “unexpected findings” piece of the research plan
• Tie together explore/exploit, the Three Patterns, and M&R three behaviors.
• Also, set up the notion that it was initially explore OR exploit, with no thought given to the middle ground. M&R foreshadowed that there would be, though
• Registered for Navy AI conference Oct 22
• Get together with Vadim to see how the physics are going on Tuesday?
• More evolver
• installed the new timeseriesML2
• The test run blew up with a tensorflow/core/framework/op_kernel.cc:1622] OP_REQUIRES failed at cwise_ops_common.cc:82 error. Can’t find any direct help, though maybe try this?
• Reduce your Batchsize of datagen.flow (by default set 32 so you have to set 8/16/24 )
• Figured it out – I’m saving models in memory. Need to write them out instead.
• Swing by campus and check on Will

# Phil 10.9.19

7:00 – 5:00 ASRC

Dissertation – more work on the research design section. Adding unexpected results

FAA

• Call

GOES

• Adding the storing of step and model to the genome
• While working on adding data, I realized that I was re-calculating fitness for genomes that had already been tested. Added skip function if there was already a population’s worth of data
• AI/ML meeting -showed the current work with the evolver and the motivation for ensembles
• AIMS/A2P meeting

# Phil 10.8.19

7:00 – 5:00 ASRC GOES

• Had a really good discussion in seminar about weight randomness and hyperparameter tuning
• Got  Will to show me the issue he’s having with the data. The first element of an item is being REPLACED INTO twice, and we’re not seeing the last one
• Chat with Aaron about the AI/ML weapons paper.
• He gave me The ethics of algorithms: Mapping the debate to read
• In information societies, operations, decisions and choices previously left to humans are increasingly delegated to algorithms, which may advise, if not decide, about how data should be interpreted and what actions should be taken as a result. More and more often, algorithms mediate social processes, business transactions, governmental decisions, and how we perceive, understand, and interact among ourselves and with the environment. Gaps between the design and operation of algorithms and our understanding of their ethical implications can have severe consequences affecting individuals as well as groups and whole societies. This paper makes three contributions to clarify the ethical importance of algorithmic mediation. It provides a prescriptive map to organise the debate. It reviews the current discussion of ethical aspects of algorithms. And it assesses the available literature in order to identify areas requiring further work to develop the ethics of algorithms.
• An issue that we’re working through is when an inert object like a hammer becomes something that has a level of (for lack of a better term) agency imbued by the creator, which creates a mismatch in the user’s head as to what should happen. The more intelligent the system, the greater the opportunity for mismatch. My thinking was that Dourish, in  Where the Action Is had some insight (pg 109):
• This aspect of Heidegger’s phenomenology is already known in HCI. It was one of the elements on which Winograd and Flores (1986) based their analysis of computational theories of cognition. In particular, they were concerned with Heidegger’s distinction between “ready-to-hand” (zuhanden) and “present-at-hand” (vorhanden). These are ways, Heidegger explains, that we encounter the world and act through it. As an example, consider the mouse connected to my computer. Much of the time, I act through the mouse; the mouse is an extension of my hand as I select objects, operate menus, and so forth. The mouse is, in Heidegger’s terms, ready-to-hand. Sometimes, however, such as when I reach the edge of the mousepad and cannot move the mouse further, my orientation toward the mouse changes. Now, I become conscious of the mouse mediating my action, precisely because of the fact that it has been interrupted. The mouse becomes the object of my attention as I pick it up and move it back to the center of the mousepad. When I act on the mouse in this way, being mindful of it as an object of my activity, the mouse is present-at-hand.
• Dissertation – working on Research Design. Turns out that I had done the pix but only had placeholder text.
• Left the evolver cooking last night. Hopefully results today, then break up the class and build the lazy version. Arrgh! Misspelled variable. Trying a short run to verify.
• That seems to work nicely:

• The mean improves from 57% to 68%, so that’s really nice. But notice also that the range from min to max on line 5 is between 100% and 20%. Wow.
• Here’s 50 generations. I need to record steps and best models. That’s next:

• Waikato meeting tonight. Chris is pretty much done. Suggested using word clouds to show group discussion markers

# Phil 10.7.19

AmeriSpeak® is a research panel where members get rewards when they share their opinions. Members represent their communities when they answer surveys online, through the AmeriSpeak App, or by phone. Membership on the AmeriSpeak Panel is by invitation only. Policymakers and business leaders use AmeriSpeak survey results to make decisions that impact our lives. Tell us your thoughts on issues important to you, your everyday life, and topics in the news such as health care, finance, education, technology, and society.

Commission launches call to create the European Digital Media Observatory The European Commission has published a call for tenders to create the first core service of a digital platform to help fighting disinformation in Europe. The European Digital Media Observatory will serve as a hub for fact-checkers, academics and researchers to collaborate with each other and actively link with media organisations and media literacy experts, and provide support to policy makers. The call for tenders opened on 1 October and will run until 16 December 2019.

ASRC GOES 7:00 – 7:00

• Expense Report!
• Call Erikson!
•  Dissertation
• Change safe to low risk
• Tweaking the Research Design chapter
• Evolver
• See if the run broke or completed this weekend – IT restarted the machine. Restarted and let it cook. I seem to have fixed the GPU bug, since it’s been running all day. It’s 10,000 models!
• Look into splitting up and running on AWS
• Rather than explicitly gathering ten runs each time for each genome, I could hash the runs by the genome parameters. More successful genomes will be run more often.
• Implies a BaseEvolver, LazyEvolver, and RigerousEvolver class
• Neural Network Based Optimal Control: Resilience to Missed Thrust Events for Long Duration Transfers
• (pdf) A growing number of spacecraft are adopting new and more efficient forms of in-space propulsion. One shared characteristic of these high efficiency propulsion techniques is their limited thrust capabilities. This requires the spacecraft to thrust continuously for long periods of time, making them susceptible to potential missed thrust events. This work demonstrates how neural networks can autonomously correct for missed thrust events during a long duration low-thrust transfer trajectory. The research applies and tests the developed method to autonomously correct a Mars return trajectory. Additionally, methods for improving the response of neural networks to missed thrust events are presented and further investigated.
• Ping Will for Thursday rather than Wednesday done – it seems to be a case where the first entry is being duplicated
• Arpita’s presentation:
• Information Extraction from unstructured text
• logfile analysis
• Why is the F1 score so low on open coding with human tagging?
• Annotation generation slide is not clear

# Phil 10.4.19

7:00 – 2:00 ASRC GOES

# 10.3.19

7:00 – 10:00 ASRC FAA

• Dissertation – working on evolved vs. designed
• Meeting in Boston – I think it was a “making friends” process. Silas says that you need to meet f2f seven times before business really starts to happen. Surprising traction for simulation, though

# Phil 10.2.19

ASRC GOES 7:00 – 5:00

• Dissertation. Working on the differences between designed and evolved systems
• Status report
• Add statistical tests to the evolver.
• based on this post, starting with the scikit-learn resample(). Here are the important bits:
def calc_fitness_stats(self, resample_size:int = 100):
boot = resample(self.population, replace=True, n_samples=resample_size, random_state=1)
s = pd.Series(boot)
conf = st.t.interval(0.95, len(boot)-1, loc=s.mean(), scale= st.sem(boot))
self.meta_info = {'mean':s.mean(), '5_conf':conf[0], '95_conf':conf[1], 'max':s.max(), 'min':s.min()}
self.fitness = s.mean()
• And the convergence on the test landscape looks good:

• Added check that the same genome doesn’t get re-run, since it will be run for n times to produce a distribution:
# randomly breed new genomes with a chance of mutation
while len(self.current_genome_list) < self.num_genomes:
g1i = random.randrange(len(self.best_genome_list))
g2i = random.randrange(len(self.best_genome_list))
g1 = self.best_genome_list[g1i]
g2 = self.best_genome_list[g2i]
g = self.breed_genomes(g1, g2, crossover_rate, mutation_rate)
match = False
for gtest in self.all_genomes_list:
if g.chromosome_dict == gtest.chromosome_dict:
match = True
break
if not match:
self.current_genome_list.append(g)
self.all_genomes_list.append(g)

# Phil 10.1.19

7:00 – 4:00 ASRC GOES

• Unsupervised Thinking – a podcast about neuroscience, artificial intelligence and science more broadly
• Dissertation
• Cleanup of most of the sections up to and through the terms part of the Theory section.
• Fix problem with the fitness values? Also,  save the best chromosome always. Fixed I think. Testing.
• So there’s a big problem, which I kind of knew about. The random initialization of weights makes a HUGE difference in the performance of the model. I discovered this while looking at the results of the evolver, which saves the best of each generation and saves them out to a spreadsheet:

• If you look at row 8, you see a lovely fitness of 0.9, or 90%. Which was the best value from the evolver runs. However, after sorting on the parameters so that they were grouped, it became obvious that there is a HUGE variance in the results. The lowest fitness is 30%, and the average fitness for those values is actually 50%. I tried running the parameters on multiple trained models and got results that agree. These values are all over the place (the following images are 20%, 30%, 60%, and 80% accuracy, and all using the same parameters):

• To adress this, I need to be able to run a population and get the distribution stats (number of runs, mean, min, max, variance) and add that to the spreadsheet. Started by adding some randomness to the demo data generating function, which should do the trick. I’ll start on the rest tomorrow.
• Yikes! I’m going to try installing the release version of TF. it should be just pip install tensorflow-gpu. Done! Didn’t break anything 🙂