nikoleta-v3 / thesis Goto Github PK
View Code? Open in Web Editor NEWA reposity for my PhD thesis
License: MIT License
A reposity for my PhD thesis
License: MIT License
Draft is with Tamsin now. I replied to hear email she just got confused with the
marked-diff.pdf
but I replied her and did not have to chance anything.
Have written two blog posts:
and the justification for the Facebook conference: https://docs.google.com/document/d/14jsYlBvGXiPTtqDlEFd1xD4Q-GhEHzgvLHHCCwzmNzc/edit?usp=sharing.
Slides: https://github.com/Nikoleta-v3/talks/blob/earth_science_talk/talks/2017-10-29-PyConUK/main.pdf
currently writing ...
Four sections
Purely random study has finished and I am currently working on reactive strategies.
The reactive strategies study lead to be looking at the differentiation of quadratic forms to get create our
Notes one the topic: https://goo.gl/photos/LyriaHJJuhsUqRG6A
Links for differentiating quadratics and the possible connection with ring theory:
It was also decided to look at the problem from numerical solutions. Just for the sake of argument.
Keep collecting data from Raven.
Literature review goes hand to hand with Arcas. When hacking on Arcas new examples for Arcas examples will be ideas to implement on the data set I have for the IP.
The data set has been updated for 2017, re-run script when I get back.
Get the implementation for analysis ideas for both literature and tournament data
Get my talks together:
Finishing touches on blog:
Axelrod hackday
Rhino work:
A list of articles/blog posts to look at:
Here is a list of things we've discussed:
@Nikoleta-v3 (ignore this)
(Not sure they consider iteration, have only scan read)
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1743922/pdf/v013p00461.pdf
From links they come my way.
Restructuring the paper for submission to The American Naturalist
. The guidelines are here: http://www.journals.uchicago.edu/journals/an/instruct
The branch with the new structure is here: https://github.com/drvinceknight/Evolutionary-game-theoretic-Model-of-Rhino-poaching/tree/american-naturalist
I will walk you through the changes. Though I have a very detailed commit message: Nikoleta-v3/Evolutionary-game-theoretic-Model-of-Rhino-poaching@fa7dfdc.
Also created a markdown file for the submission: https://github.com/drvinceknight/Evolutionary-game-theoretic-Model-of-Rhino-poaching/blob/american-naturalist/submission.md
On the same note.
Here is the most updated version of the paper: https://github.com/Nikoleta-v3/Literature-Article/tree/re-structure
It's almost ready for you to read (and tear apart 'jk') but I would like to finish some plots tonight before our meeting tomorrow. I need to add legends to the network graphs and I got some example code from Geraint today.
I am working on the resultants. I am currently reading and codding over this paper: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.39.3370&rep=rep1&type=pdf
which is a very good overview of the multivariate resultants and also compares the methods. π
#2016-2017
Keep an eye on PyData London: london.pydata.org/
Keep an eye on www.gametheorysociety.org/
(possibly become member).
Following our discussion and the comment on the PR
:
working_article
: Nikoleta-v3/bibliometric-study-of-the-prisoners-dilemma#11re-structure
where I am working on the new structure as we have discussed. https://github.com/Nikoleta-v3/Literature-Article/tree/re-structureWorking on Resultant Theory. I have looked at several articles including,
So far I have read about Sylvester's resultant, Bezout's, Dixon's, Macaulay u -resultant and GCP.
Macaulay u -resultant is the most common used in literature.
For the FaceTAV event: https://docs.google.com/document/d/1CXIcxGCFHUA54PKJicVlAFebfDFAfW2i_GqbYaD2FGA/edit?usp=sharing
We have discovered that writing to file is breaking due to the multiprocessing. This can be fixed by queuing before writing to file (axelrod does something similar: https://github.com/Axelrod-Python/Axelrod/tree/master/axelrod).
For now the data have been cleaned (the broken rows have been removed) and everything is in a huge HDF5 file. Still, the multi processing could be fixed and I can re - run the script.
The following analysis has to be held now:
Because the numerator and denominator and the utility function itself is not convex we will move towards reactive strategies. (2. prove and write all the above).
Now we have the reactive strategies because there are only two variables we can 3. plot stuff.
reactive reference: Comparing reactive and memory-one strategies of direct reciprocity 2016
30 % of my point so be focus on this. Reading and writing.
Fill in literature review for Moran article. Mainly I will focus on ZD beginning, Nowak's memory, The art of war.
Restructure my work similar to Vince's : https://github.com/Axelrod-Python/axelrod-moran
Fix branches: Nikoleta-v3/Evolutionary-game-theoretic-Model-of-Rhino-poaching#30.
Discuss next step.
Finished implementing the resultant, not the two methods of extracting the solutions. These are:
GCP
RSC
Talk to you about issue with determinant of big tables.
Re-writing the network analysis chapter. The structure I have decided to go with is:
I will walk you through this.
Scholar is the winner.
title, authors, year, abstract, keywords, subject, etc
Work on: Axelrod-Python/Axelrod#225
Following our last discussion:
Only a few things on notebook looking at the Sylvester's and Bezout's resultants. I found the definition
of resultants πΆοΈ.
The structure I aim for is this:
.
|--- src/axelrod-dojo
|--- archetypes
|--- ann_evolve.py
|--- fsm.py
|--- fsm_evolve.py
|--- hmm_evolve.py
|--- lookup_evolve.py
|--- pso_evovle.py
|--- init.py
|---optimisation_algorithms
|--- genetic_algorithm.py
|--- swarm_algorithm.py
|--- analyze_data.py
|--- archetype.py # contains the class for the archetypes
|--- __init__.py
|--- utils # contains several function which are being used by the evolutionary algorithms
|--- version.py
|--- tests
|--- test_archetypes
|--- test_ann_evolve.py
|--- test_fsm.py
|--- test_fsm_evolve.py
|--- test_hmm_evolve.py
|--- test_lookup_evolve.py
|--- test_pso_evovle.py
|--- test_optimisation_algorithms
|--- test_genetic_algorithm.py
|--- test_swarm_algorithm.py
|--- unit
|--- test_archetype.py
|--- test_utils.py
|--- integration
|--- LICENSE.txt
|--- lookup_tables.csv
|--- README.md
|--- requirements.txt
|--- setup.py
Note that fsm
and fms_evolve
will be squashed together at the end.
I moved everything and made sure that the old testes were running. For tomorrow
all the archetypes are tested.
This to discuss:
parse_repr
functions.pso_algorithm
Reading the paper on the truck scheduling and your work to familiarise myself with
cooperative game theory. me doing literature review
I have 4 talks/lightning talks coming up:
I worked on my talks and made some slides that were needed.
Did we discuss NATCOR.
Here are the dates for 2017:
Stochastic Modelling
3rd - 7th April 2017
Simulation
10th - 14th July 2017
Combinatorial Optimisation
4th - 8th September 2017
There is a discussion about funding at the moment, I am thinking that I'd like you to attend all of them (they're as useful/less as anything else...). If you were to only do 2, which one would you want to drop?
Looking at the overall data set for any interesting results and taking the
analysis on the strategy level a bit further down: https://github.com/Nikoleta-v3/axlml/tree/nick/src
It would be interesting to give a talk here. I could talk about:
Link : http://www.theorsociety.com/Pages/Conferences/YOR20/YOR20.aspx
Links for all the PRs.
I have opened this issue for PyCon Namibia(https://github.com/Nikoleta-v3/Applications/issues/15) and I am currently writing the proposals.
Opening an issue for this conference to discuss/take notes/etc...
A list of links to go through, either for simple visualization or data analysis.
All using python:
(old ones)
We are now moving to tex. 1. move all the introduction stuff to text. structure can be found here: https://github.com/drvinceknight/Optimisation-of-Memory-One-strategies/issues/5
2. Look at simulation vs analytical. All the work that we have done, defining the utility function etc, has been done analytically following the work of Press and Dyson. Because we have in hands Axelrod, a simulation tool, we will test our results comparing to the simulation. Thus, 3. create plots and tables with the difference.
Once we have shown that our formulation holds, we move to the next chapter. Because our function is non convex/concave, in order to understand it we are looking at the following cases:
Now we are focusing on the purely random players utility. 4. identify the cases that the plots indicate, do that by summarising everything we have talked with Vince and the carry the same work to the quadratic.
Try to prove that for our limits [0, 1] the cost function is always quadratic ?
Things need to be read: Everything
Things need to be written:
*Let's impress Vince π *
Run parameter sweep.
Results with the following parameters (number of q, p 5, lambda 20) ended up being enormous. Currently, the script is being run again with the parameters (number of q, p 4, lambda 5).
From the results, which functions (give p) are convex should be identified. To do that writing a
1. function that returns certain, correct, plots.
The functions that are convex should be save in a different 2. convex data frame.
p | convex | min_diff |
---|
Once we know which functions are convex investigate 4. why are they convex.
Run the parameters sweep 5. for only the give p that the function is convex.
Write first draft.
Create a 1. new main
notebook which will be the draft of the article. Thus, the old one
should be 2. rename. The rest of the notebooks (apart from the new main
) are Appendices.
3. Rename to A.0.1 why symbolic. Continue writing.
No all issues have been addressed from previous Agenda #26. (1. close issue)
Moving forward, the same plots should be looked at 2. four tournament type level.
1. Continue reading and writing.
Perform 2. supervised machine learning. I have identified 3 trends within the list of articles:
Working on the literature review article. This branch is up to date: https://github.com/Nikoleta-v3/Literature-Article/tree/working_article. Apart from the Stability Section
the rest are ''well'' written.
As for the data collection. I will rerun the script to collect 2017
articles and do the preliminary analysis for the new data set. Then start moving on with the analysis and writing.
Workshop proposal: https://docs.google.com/document/d/1OFITgrJYDvqDKqASFq0wzH2Ox1EmYlqHdB5dgzYgWhY/edit?usp=sharing
Poster. There are two poster competitions that are going on this year. The SIAM I told you and the STEM. Here is a proposal: https://docs.google.com/document/d/1UYBBVNkIt8ukPwtvX7PjefeRnOrojaYIuk0k2dg_zp0/edit?usp=sharing
Let's talk over this. See if I should submit or not etc.
SSI accepted my funding request for FaceTAV.
never again will I mention the rhino work
We now have almost 9000 results. I re-run the initial analysis and fix the notebooks a bit.
The to_C_rates
are interesting. Nikoleta-v3/meta-analysis-of-prisoners-dilemma-tournaments#7
Euroscipy: https://docs.google.com/document/d/1j-eYBuNEH9-0pie57c9IHAbJWwaR6kDD50FYsLDLGpM/edit?usp=sharing
Papers: https://docs.google.com/document/d/1AxycZBffMVLd25OueDGahv149IDLWlqK1dM4ZAHX_B4/edit?usp=sharing
Preparations for my Webinar talk were made!
Two things we need to discuss about the rhino work.
My talk with Martina and a conference to look out for (she will be attending): https://www.esmtb.org/news/140-ecmtb-conference-2018
Natcor Collaboration with lecturer from Hamburg? I need to read this: http://www.sciencedirect.com/science/article/pii/S1366554516300801
I have re factored the dojo in such way that now an algorithms
folder exists.
pso
algorithm is now a file within the folder and does not contain any ofgambler
was implemented as an archetype.pso
can now run for the fsm
archetype.The code can be found here: https://github.com/Nikoleta-v3/axelrod-dojo/tree/creating-algorithms
An update since our last meeting:
pso
at it works the way we expected. https://github.com/Nikoleta-v3/axelrod-dojo/blob/creating-algorithms/tests/algorithms/test_particle_swarm_optimization.pyfsm
to be a decision variable as well (we forgot about that).Problems
Multiprocessing is failing with the following error:
AttributeError: Can't pickle local object 'PSO.swarm.<locals>.objective_function'
.
I tried a few things but I am not sure what is causing the error.
looking at the chances through overleaf is a huge pain. I will cheat and use tig.
The syntax of all APIs has been doubled checked. All APIs apart from PLOS (we will discuss about that) have been implemented and tested. Tests contain hypothesis testing now as well.
Pull request: https://github.com/Nikoleta-v3/Arcas/pull/12
I have set up the read docs. https://screencloud.net/v/6tC5
and I am working locally for now: https://screencloud.net/v/s8l1
Axelbib now has a scraping folder. Within the folder a script to get articles and push to data base has been
implemented. The script spits out a report file (with the keys, url and status error). A notebook to check that each articles has been successfully pushed at least ones is here: https://github.com/Nikoleta-v3/Axelbib/blob/arcas-axelbi/scraping/Analysis%20of%20Results/Status%20Error.ipynb
And a validation fail file. Which write's down the url of the articles that did not pass the validation.
Furthermore, some analysis is located in this notebook (the one I showed you): https://github.com/Nikoleta-v3/Axelbib/blob/arcas-axelbi/scraping/Analysis%20of%20Results/Analysis%20%26%20Ploting.ipynb
I am currently writing the documentation and I want to do some writing (applications etc) for the next hours. I will make the script run when I get to my office from that computer and will do the analysis again for the data for tomorrow.
Fix the virtual environments and python that seems to be having an issue in Batman.
?
France was a great experience and I seriously believe it will benefit my research. I summarised
the notes I had and put everything together in a notebook. Also I wrote a blog post: https://docs.google.com/document/d/1qKM7PNrEZfdmn4bzebO2i_o-Nfw1hk2f_qLFOO4S-ps/edit?usp=sharing
Following the blog. My website is ready but I have not launched it yet. (I might need your help with something).
The main is here: https://github.com/Nikoleta-v3/Nikoleta-v3.github.io
and then I transformed by Talks
repo to a site itself: Nikoleta-v3/talks#15
Not so much progress was done with Arcas. I made this pull request but there are several
things I still need to hack before the new release: ArcasProject/Arcas#31
I did the corrections to the Annual Report
.
Now that the corrections were made the Optimisation
report was also updated. Now I started working on
the reactive strategies. Yeeey
This mean:
Lets chat about this. But the meetings with Tamsin were really good!
She is currently working on the stability of
evolutionary stability of
I cleaned the overleaf project a bit.
I moved! π π π
Here is the pull request: Nikoleta-v3/meta-analysis-of-prisoners-dilemma-tournaments#4
I addressed the code efficiency comments you gave me.
Concerning the analysis:
Bins and Violin plots: https://github.com/Nikoleta-v3/axlml/blob/nick/src/Bins%20at%20Strategies%20Level.ipynb
Not much information is given from here. We have to play around with the number of bins a bit.
Hexbins (Geraint and his great ideas for plotting): https://github.com/Nikoleta-v3/axlml/blob/nick/src/Hexbin%20at%20Strategies%20Level.ipynb
The scatter plot you have seen before: https://github.com/Nikoleta-v3/axlml/blob/nick/src/Scatter%20Plots%20at%20Strategies%20Level.ipynb
Some visualisation at the tournament level: https://github.com/Nikoleta-v3/axlml/blob/nick/src/Tournament%20Level.ipynb
Keeping an eye on the society.
This the Europian Society: https://www.esmtb.org/
Maybe become a member? Lets discuss about the money.
Look into this journal: https://twitter.com/natureecoevo?lang=en
and keep an eye on Mathematical Models in Ecology and Evolution. It happens every 2 years. Last on
was in London 2017: Mathematical Models in Ecology and Evolution
I followed everything on twitter.
Additions to script:
Keep track of the stable states. In particular the stable states of p, q1, q2, lambda*q1, (1 - lambda)*q2.
This will be implemented by writing a function for each stable state and then added the required ones to the list with what we are writing to file.
Do not run the same parameters. If files exists then read the csv in (read_in() function).
Make the lists to sets and before passing arguments to worker check that they are not in the sets.
One the script has been implemented run the file and get as much data as possible. Plot for each give p
the mean, max and min diff.
3 Sections need to be implemented here. Notebook Relationship between rank & cooperation rating (link once pushed) contains information for each section.
The literature review is broken into 3 parts.
Two main fixes before the CW.
In order to clean the data I have done the following:
None
were replaced manually.Tit for Tat
and Memory One
Keeping the structured we agreed on. Here is an notebook which pings the rest frame work and spits the
json files into a pandas data frame. (https://github.com/Nikoleta-v3/Axelbib/blob/scraping/scraping/Analysis%20of%20Results/Retrieving%20Data.ipynb)
A notebook containing the initial analysis. I do have some inline comments. Notebook: https://github.com/Nikoleta-v3/Axelbib/blob/scraping/scraping/Analysis%20of%20Results/Initial%20Analysis.ipynb
Furthermore the things that stand out to me are:
If and only if you have time at any point. My slides for the irregular meeting:
Came to this paper after reading that paper for James' work. In this paper they give a nice list of papers that train strategies in different representations:
I think this is a good place to start your literature review. :)
Currently working on optimisation for reactive. Anything I come across is implemented
as a function. Solving the equation for the partial derivatives is kind of tricky after all (needs discussion).
I am now looking at the bounds of the solution set.
I did write the section for the mixed population.
For the evolutionary part, none of the strategies seems to be evolutionary stable.
Moving forward we all need to agree on example that we will perform and write down the results.
Also I need to write down the evolutionary section.
Data are coming down nicely. Currently at 1,300.
ml-paper. I read over it. I do have some comments we can discuss if you don't mind me raising my humble opinion. Overall is a really nice piece of work. Personally, I would love to have such summary of strategies and tournaments when I started.
testing. I had a very interesting conversation with a fellow PhD student here at Natcor. I have a few questions I would like to clarify with you.
On a different note
Perform an analysis based on the four tournament types. Initially, 1.create separate data frames with a line for each tournament. The data will include information such:
To perform the analysis also write *3. plotting functions.
Write a little 2. note, where we are, what have we done and what we expect to do once we get back to this analysis.
Turn the huge 1. csv - hdf5 file. 2. Re-run with float.
3. perform the analysis, meaning get the plots, identify convex function and do a deep search. 4. Make sense from a game theory perspective and importantly look at 5. literature on quadratic forms optimisation (see issue for list: #28).
Keep reading, labelling and writing.
Once I have reached 200 articles perform as a supervised machine learning algorithm.
We now have 12.265 tournaments
Tit for Tat 1987 post: https://docs.google.com/document/d/1yFzzNHXMx-lDISUakobcXY4iV2Hh2u1P9trFFVRUDkE/edit
I will publish it on Tuesday.
I have worked on,
Era of strategies
section,Software
section.I did a lot of reading regarding the spatial tournaments and the concept of evolution. I believe I
am seeing how Nowak's work evolved. (I think I will buy his textbook)
I found an article that spoke about artificial neural networks in 1996!
The branch I am working on. https://github.com/Nikoleta-v3/Literature-Article/tree/working_article
https://www.udacity.com/course/deep-learning--ud730
How many hours is it?
Might be worth doing after the coursera one...
(My road to suicide in tribute of team 6)
I have created a script for reading in the files (Nikoleta-v3/meta-analysis-of-prisoners-dilemma-tournaments#4), I opened
PR.
After timing the script and looking at the memory usage I believe csv is a suitable file format.
The were a few things to do for mo-opt. I have clean the main.py and have written some of the
theory. I went as far as verifying the claim of Press and Dyson about A & B. (https://github.com/Nikoleta-v3/Optimisation-of-Memory-One-strategies/blob/nick/main.ipynb)
For checking the difference for the cost and the normalised score I have worked in the following notebook: https://github.com/Nikoleta-v3/Optimisation-of-Memory-One-strategies/blob/nick/cost.ipynb
, also verify the results using Axelrod.
For checking whether the cost function is convex I have written the following script: https://github.com/Nikoleta-v3/Optimisation-of-Memory-One-strategies/blob/nick/convex.py
which is currently running on raven.
For all the above a tools.py was written to handle functions between notebooks. PR is here: https://github.com/drvinceknight/Optimisation-of-Memory-One-strategies/pull/1
I am studying Nowak's text book and I have put a little something (pdf) together.
Looking at minimising the propriety measure for k- means.
To finally achieve the clusters and see the keywords for each.
The idea is to use recurrent neural networks to train strategies. This will build
upon Toby's work.
Useful links:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.