Monthly Archives: October 2019

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
  • Added step
  • 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:

Evolver

  • 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:

Evolver50

  • 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:

Stats

  • 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

Crap – It’s October already!

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:

variance

    • 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 🙂