Skip to content

"The son of Ram is Amminadab." Amminadab can significantly improve Samu's learning by using the Liv-Zempel-Welch dictionary tree to narrow the scope of selecting Q-actions.

License

Notifications You must be signed in to change notification settings

rydergaming/amminadab

 
 

Repository files navigation

amminadab

"The son of Ram is Amminadab." Amminadab uses the Liv-Zempel-Welch tree to narrow the scope of selecting Q-actions. See also the page Family Robotics - Deep Q-learning with Samu

Genealogy of Amminadab

  1. Samu The main purpose of this project is to allow the evaluation and verification of the results of the paper entitled "A disembodied developmental robotic agent called Samu Bátfai", http://arxiv.org/abs/1511.02889. It is our hope that Samu will be the ancestor of developmental robotics chatter bots that will be able to chat in natural language like humans do.
  2. Isaac "The son of Samu is Isaac." The project called Isaac is a case study of using deep Q learning with neural networks for predicting the next sentence of a conversation.
  3. Jacob "The son of Isaac is Jacob." The project called Jacob is an experiment to replace Isaac's (GUI based) visual imagination with a character console.
  4. Judah "The son of Jacob is Judah." In the project called Judah we equip Jacob with a text-based user interface.
  5. Super-Judah
  6. Perez "The son of Judah is Perez." The project called Perez allows to perform experiments to test several parameter settings. Here each experiment is implemented as a separate git branch.
  7. Hezron "The son of Perez is Hezron." The project called Hezron gives the opportunity to experiment with different arrangements of SPO triplets in the visual imagery.
  8. Ram "The son of Hezron is Ram." The project called Ram allows to experiment with different deep Q learning algorithms to express feelings when he is talking.
  9. Amminadab "The son of Ram is Amminadab." In project called Amminadab we can significantly improve Samu's learning by using the Liv-Zempel-Welch dictionary tree to narrow the scope of selecting Q-actions.

Installation of Amminadab

Building Samu (Amminadab), uncomment the appropriate lines in the file CMakeLists.txt. For example, if you have CUDA installed on your system Samu may be built with CUDA support,

set(CUDA_LAYERS ON)
#set(CUDA_LAYERS OFF)

Or, if you want to use TUI you need uncomment the following line:

set(DISP_CURSES ON)
#set(DISP_CURSES OFF)

After finishing the edit of the CMakeLists.txt type cmake .

nbatfai@orchmach:~/GitHubRepos/judah$ cmake .
-- Found CUDA: /usr/local/cuda-7.0 (found version "7.0") 
-- Found Curses: /usr/lib/x86_64-linux-gnu/libcurses.so  
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Try OpenMP CXX flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Found OpenMP: -fopenmp  
-- Boost version: 1.55.0
-- Found the following Boost libraries:
--   date_time
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8") 
-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found suitable version "1.2.51", minimum required is "1.2.9") 
-- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.5.2") 
-- Found PNGwriter: /home/nbatfai/NLP/pngwriter/lib/libpngwriter.so;/usr/lib/x86_64-linux-gnu/libpng.so;/usr/lib/x86_64-linux-gnu/libz.so;/usr/lib/x86_64-linux-gnu/libfreetype.so (found version "0.5.4") 
-- Link Grammar  found.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/nbatfai/GitHubRepos/judah

If cmake . finishes without problems you can run the make command to build Samu.

Running

To run Samu (Ram), type the following command

./samu 2>out

If you use ncurses you will see something like this:

hezrontui2

In another terminal window, run the command

tail -f out|grep iter

to see Samu's "training curve".

See the project's wiki page for further information.

Samu

One of the purpose of the original Samu project was only to allow the evaluation and verification of the results of the paper entitled "A disembodied developmental robotic agent called Samu Bátfai", http://arxiv.org/abs/1511.02889. This paper presents Q learning with neural networks approximators used by Samu. It is our hope and goal that Samu will be the ancestor of developmental robotics chatter bots that will be able to talk and read in natural language like humans do. At this moment Samu is the generic name of rapid prototypes that facilitate achieving this goal.

Highlights of Samu

Samu

  1. directly implements the definition of machine consciousness (such as the definitions of conscious and intuitive computer programs) introduced in the paper entitled Conscious Machines and Consciousness Oriented Programming.
  2. corresponds the principles of Developmental Robotics, Some Basic Principles of Developmental Robotics.
  3. applies Q learning with neural networks approximators
  4. uses multilayer perceptrons for approximation of the Q function, it is a deep Q learning feature, Human-level control through deep reinforcement learning

About

"The son of Ram is Amminadab." Amminadab can significantly improve Samu's learning by using the Liv-Zempel-Welch dictionary tree to narrow the scope of selecting Q-actions.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 81.8%
  • CMake 8.3%
  • Java 4.6%
  • Cuda 3.2%
  • C 1.8%
  • QMake 0.3%