Code Monkey home page Code Monkey logo

interactionlearner's People

Contributors

jpoeppel avatar

Watchers

 avatar  avatar

interactionlearner's Issues

RESEARCH!

Search for literature approaches to

  • world representations and formalism
  • Suitable learning approaches

Fix new Implementation

Currently there are some interesting bugs.
Also it might be possible that features do not change enough for the AC split to work properly

Rework state/case rating!

The current rating is not very successful/powerful. The current features (maybe use different ones) should not be weighted identically!

Check for missing acronyms/glossaries

Especially in the first chapters, acronyms are often hardcoded. Make sure to change them to the
acronyms so that all of them are present in the list of acronyms.

modelGate

General ticket for the gate model

  • Replace hardcoded actuator with learning model
    • Switch already implemented to use ITM instead
  • Replace hardcoded gate function with classifier
  • Move feature specifics to statespace if possible
  • Make model as general as possible

Fix distance calculation

Currently distance is only calculated to the bottom line of the block.
Easy fix: Compute distance to all edges and take closest one.

Exploration

The model should select an action in order to improve it's predictions.
-> If prediction was bad or a new abstractCase was created, try to perform a similar action (imitate goal babbling?)
-> If prediction for all Cases is satisfactory, perform random action/No action?

Try world with "constant" connection

As a "first" step for the moveToTarget-Task, it might be easier if the gripper starts in contact with the block, so that the model does not first need to find subtargets in order to establish the contact.

Fix inconsitencies with prediction description between the two models

Concept of the interaction model currently describes only that the next interaction state is predicted, whereas the gate model describes that changes are predicted and added to the current states.

This needs to be made consistend between both of them (including the figures).

Bundle description and justification for using only changes somewhere (either in concept chapter or realization)

Agenda 23.4

Create Testsuits:

  • Give target position (for block) and evaluate required number of training iterations and performance
  • Active exploration (for fixed amount of time) before prediction task etc

I should focus on the prediction and planning of actions and their effects on objects, rather than try to learn concepts or something like that.

Prepare Talk for 18.5

  • How does the current model work
  • What kind of predictions where tested -> GP, ITM, (LSTM)
  • World representation
  • Issues
    • Similarities
    • AC selection

Figure out score problem

Current PushTask Simulation based on AC sometimes does not give scores to any AC, figure out why

Try Movement/Interaction Seperation

Consider two kinds of Cases:

  1. Movement cases
  2. Interaction cases

Gripper and other objects are identical safe the ability to control the gripper
-> Movement and Interaction cases could be identical for gripper and objects
-> Potentially quicker learning

Additional Features

A list of features that could be considered if time and motivation:
Order does not indicate any priority!

  • Reduce number of required cases
  • Try GP or other regression model instead of ITM
  • Normalize metric by dividing each feature by it's average range of values
  • Visualize resulting AC's/cases etc
  • Handle outlier problem
  • Investigate implementing AC transitions (closed #25)
  • Improve AC selection (related to #24)
  • Investigate TARPIR (#22)

TODO 8.9

List of things that need to be done

  • Improve old model performance and evaluate
  • Evaluate different settings (see #32)
  • Implement exploration strategy
  • Add stuck detection to gate model
  • (Re)move hacks from gate model
  • Create images/figures for thesis
  • Rewrite thesis according to #31 and protocol of today's meeting
  • Try multiple objects (first make adjustments to allow that)
  • Try using different models for training and testing

Make model independent of feature knowledge

Ideally the model does not care what the features represent. Try to remove as much feature related information from the model. It is ok if it's in the state representation (Object/Action) since those are domain specific anyways. The interface of the State Representation should be minimal though.

Remove z coordinate from models

For the thesis, we are only going to work with 2D anyways so it does not really make sense to carry two additional features around that never change anyways (position and velocity). If anything they may only introduce some bugs.

Make model adapt threshold by itself

Try something similar to the way the ITM tries to figure out the threshold, so that the models can adapt themselves to different time intervals between updates without changes to the code

Find and fix interface bug

Sometimes, the interface does not reset the world properly or the action arrives too late. Causing strange timing errors, such as not setting the starting position in the MoveToTarget training correctly, or receiving training frames, where an action is selected, but no change happens for PushTaskSimulation.

Investigate implementing AC transitions

For finding good actions, it might be useful to know that, in order to move the block, we need contact.
Therefore if no contact is present, consider ACs that predict contact etc.

PushTaskSimulation

General ticket for things related to the pushTaskSimulation task and prediction

  • Try different regression models (#8)
  • Try with multiple objects if possible
  • Try using offline trained AC selection classifier
  • Evaluate block prediction, by ignoring all instances where only gripper moves. Otherwise gate is favoured too much

Visualisation

Find some way to visualize progress and internal structure
(e.g. graphViz)

Consider outlier problem

If in a known situation (an exact case is known for a certain situation) something unexpected happens
(e.g. Tutor moves something), be careful how the model is updated! General prediction should become tolerant against outliers with experience!

Agenda 8.4.15

Start with only 1 other object and learn interactions with it
Try to implement some sort of "smart" exploration learning that chooses actions in order to improve predictions.

Consider required features

The learner will need some kind of feature vector. What should it look like.

First idea:
List of relations between object pairs

  • not so easily extendable

Allow circle in both directions

Since circling already used hardcoded knowledge, it does not make sense to force him to make an entire round just to undo a small mistake

Evaluation

General ticket for the evaluations

Task specific things are listed in #29 (moveToTarget) and #30 (pushSim)

  • Make models as similar as possible without impacting their performance (evaluation loop, features etc)
  • Compare 10HZ vs 100HZ
  • Compare different number of (hardcoded) train runs
  • Evaluate AC selection (online with offline performance etc)
  • Evaluate effect of hardcoded parts (gate function/actuator)
  • Evaluate performance (speed/memory) with respect to the number of timesteps

Make presentation

  • Present the problem
  • Present the two concepts/models
  • Present evaluation criteria
  • Briefly mention metric problem
  • Ask about evaluation hints

MoveToTarget

General ticket for the move to target evaluation task.

  • Improve Performance (mainly AC model)
    • Try MetaNetwork for AC model
    • Improve/Retry inverse matrix (#27)
  • (Re)move "hacks" from GateModel
  • Implement active/exploration!!! (#6)
  • Make greedy metaNodes smarter, so that they choose the better of two options

Create test cases

  • PredictionError (e.g. PushTask)
    • Cummulative (Simulation), Each step error etc
  • Move Block to target position/orientation
    • initially without blocking object
    • Have chain of targets, e.g. move up and then down

Build Model

We need a model storing what we know about the world.
Scene containing objects with different properties (i.e. Position, Type)

Ideally linked to learner -> Allows predictions

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.