Welcome, Guest. Please login or register. Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - lolz123

Pages: 1 2 [3] 4 5 ... 18
SFML projects / Re: My AI Collection Using SFML for Visualization
« on: September 25, 2014, 08:02:48 pm »
@exploiter: Wow! Thank you so much! I will merge it as soon as possible! I didn't think I would see so much interest in this project  ;D

By the way, I made a Reddit post on my ambitions with a particular agent in this repository, HTMRL: http://www.reddit.com/r/MachineLearning/comments/2hdc59/my_attempt_at_outperforming_deepminds_atari/

It is probably the most powerful agent in the repository right now, but also the most complicated!

SFML projects / Re: My AI Collection Using SFML for Visualization
« on: September 25, 2014, 03:52:27 am »
@zsbzsb: Yes I know, I got lazy :P . Unlike my ERL project (where I set up a cross-platform build system and all that properly), it isn't really intended to build on its own; rather, it makes more sense to pick out the agent you want to use/modify and modify/include the source in your own project for that agent. It's not really a library, more of a reference  ;).

SFML projects / My AI Collection Using SFML for Visualization
« on: September 24, 2014, 04:54:14 am »

As some of you may know, I am really into AI, especially reinforcement learning.
I use SFML to set up experimentation environments and to visualize them.
So, I thought I should post here about what is now a rather large collection of reinforcement learning agents.
I am still using the same cart-pole balancing simulation and mountain car problems, but I recently also added a maze.

Perhaps some of you find it useful for a game or research!

Link to repository: https://github.com/222464/AILib

Here is the list of available agents and components of the agents, as of 9/23/2014:
  • APSSC - ant colony optimization based labeler
  • Evolved CTRNN - a second-order recursive neural network used for evolution
  • ConvNet - 2D convolutional neural network for feature extraction using restricted boltzmann machiness
  • Autoencoder - unsupervised learning and feature compression
  • DBN - deep belief network (stacked RBM)
  • DSOM - deep self-organizing map for massive feature reduction
  • FA- function approximator (standard multi-layer perceptron)
  • FERL - free-energy based reinforcement learner. Simplest learner in this library
  • RBM - generic restricted boltzmann machine
  • DNF - dynamic neural field reinforcement learner (hebbian based)
  • Elman - simple Elman network implementation
  • TDFalcon - ART (adaptive resonance theory) based reinforcement learning
  • HTM - hierarchical temporal memory
  • HTMRL - continuous action and state POMDP reinforcement learner
  • HTMRLDiscreteAction - discrete action and continuous state POMDP reinforcement learner
  • Bayesian Optimizer - simple implementation
  • HyperNet - proto-ERL
  • LSTMG - generalized LSTM implementation
  • LSTMActorCritic - actor-critic using LSTMG
  • LSTMRL- simpler version of LSTM discrete action reinforcement learner
  • ActorCriticAgent - backprop critic, hebbian actor
  • CACLA - continuous actor-critic learning automaton
  • MemoryActor - actor portion only with hebbian learning and memory cells
  • MultiQ - simple Q learner with function approximation and discrete actions
  • NCPSOAgent - no critic particle swarm optimization agent
  • PSOAgent - critic included particle swarm optimization agent
  • QAgent - continuous state and action Q learner using iterative policy derivation
  • RLLSTMAgent - simplified LSTM continuous action and state reinforcement learner
  • SOM - simple Kohonen self-organizing map
  • SOMQAgent - SOM-based state discretizing Q learner
  • TabularQ - simplest possible discrete state and action Q learner
  • RAAHN - real-time autoencoder augmented hebbian network

General discussions / Re: SFML 3 - What is your vision?
« on: September 06, 2014, 04:08:48 am »
@zsbzsb: I think his suggestion was perfectly valid. A video player should exist for the same reasons that the audio module exists in my opinion. You say we should only suggest things that cannot be built on top of SFML, but then really what is SFML? It's not a multimedia library anymore. Since graphics, audio, networking are relatively independent, you can always just use another library and add on functionality. They are not so intertwined that you cannot have one without the other. SFML in my eyes is supposed to be a collection of easy to use interfaces to multimedia functionality, and video playback falls under this just like audio playback does.

So, I am for MW2TopTenWORLD's idea.

SFML projects / Re: d3d (Deferred 3D) - A 3D Engine Using SFML
« on: August 21, 2014, 10:51:55 pm »
I already had real-time ray traced global illumination, but I recently also added a lighter option, something I call SSRGI (screen space reflections and global illumination). It's much faster than the full blown technique, but not quite as pretty. But overall I think it still looks quite nice. Here is an example of ambient vs SSRGI:


SSRGI off (ambient only):

Short answer: You can't. Render to a special "composition" texture that is part of the GBuffer, and then blit to the main framebuffer.

Long answer: Depth testing only works when rendering to the framebuffer to which it is bound. Since you cannot bind a custom depth buffer to the main framebuffer, you cannot simply switch the depth buffer over to the main framebuffer as an attachment.
You could do manual depth testing in a shader if you want to, but this is slow. So the best solution is the render to a "composition" attachment part of the GBuffer, and when you are done with all rendering, blit that to the main framebuffer.

General / Re: Problem with uniform in GLSL shader
« on: August 07, 2014, 05:03:16 pm »
Try using CodeXL. It tells you all GL/CL/C++ errors, and you can pause the execution at any time and see what is going on in the framebuffers, and what the uniforms are actually set to.

Some errors may "disappear" when you use glGetError, depending on when you call the function. But CodeXL will break immediately on it if you set it to break on all GL errors.

My guess is that you are not binding the shader before setting the uniform. That or the uniform location is wrong. I think you can use layout qualifiers to guarantee that the uniforms are at a certain index.

SFML projects / Re: Unnamed "Tug-Of-War" Strategy Game
« on: August 07, 2014, 04:54:44 pm »
@Peteck: Nothing too interesting, just some under the hood networking stuff and menu systems.

I have mostly been working on ERL recently, since I was at the AGI-14 conference (artificial general intelligence conference). Hopefully though this project will end up using ERL!

Here is how the options menu looks like:

SFML projects / Re: d3d (Deferred 3D) - A 3D Engine Using SFML
« on: July 25, 2014, 07:47:39 pm »
@IngloriousTom: Examples and tutorials will come! If you cannot wait though, I can walk you through how to use it on Skype if you want to (PM me!)

@FRex: Yeah I know, I was struggling choosing a name  ::) The engine is unique in how it defers updates and then does them all in parallel, and also has a heavy focus on deferred shading, so I called it "Deferred 3D". Perhaps I will rename it at some point  ;)

SFML projects / Re: d3d (Deferred 3D) - A 3D Engine Using SFML
« on: July 18, 2014, 11:30:36 pm »

It's been a while since I updated this, but d3d is still under active development. I have added .3dw (3D World Studio) level loading, real-time global illumination, OpenCL, and added CMake support.

Check the original post for the repository link! It has moved!

SFML projects / Re: ERL
« on: July 06, 2014, 04:27:50 am »
Do you mean this? http://eplex.cs.ucf.edu/papers/pugh_alife14.pdf

I have a working version of it, with some enhancements, if you want to check it out.

SFML projects / Re: ERL
« on: July 06, 2014, 01:06:05 am »
Are you saying that ERL searches for the correct algorithm and/or topology that solves a given learning task like vision or auditory recognition?
Yes. ERL doesn't just evolve a network, it evolve the rules that govern the dynamics of the network. So it is not like NEAT or HyperNEAT, whose networks are static once evolved. ERL actually uses CPPNs evolved by NEAT under the hood (not HyperNEAT, it is inappropriate for this task).

This is gonna sound a bit weird, but we went to the same high school
I think I remember. I am glad to see that you have become interested in AI as well!

Anyway have you applied ERL to do any cool learning tasks other the three you listed on github?
So far it hasn't been applied to anything yet, since it isn't done yet ;)

I told you it would eventually be released
Yep, you were right! It looked dead at the time though, you have to admit ;)

SFML projects / ERL
« on: July 01, 2014, 06:54:01 am »

I have yet another AI project that uses SFML to share with you!
It is still in very early stages, but I thought I should post early, in case some of you want to help with the development  ;)

ERL stands for Evolved Reinforcement Learner. It is a attempt at creating large scale artificial general intelligence. ERL follows a different philosophy from existing AGI approaches. Instead of trying to study the brain and re-create it, it uses evolution to evolve a brain from scratch that is hopefully better suited for computer simulation.

ERL essentially sets up a "brain sandbox", in which vast numbers of different learning algorithms and architectures can exist. It then evolves to find the individual that maximizes cumulative reward on a set of experiments. So, it evolves a reinforcement learning (reward-seeking) agent, giving it its name.

In order to speed things up, ERL uses OpenCL for executing the brain in parallel.

ERL uses SFML (or will use, it is still early on  ::) ) to display information on the AI itself, a plot of the gathered reward, and the experiments that are being run. Depending on how complicated it ends up getting, we may use something like SFGUI to help out with the interface. If any of you SFML coders out there would like to lend a hand and help develop the visualization system, please let me know!

ERL was conceived in an AGI discussion group. It has around 70 members. If you would like to join the group, PM me! (we use Slack for chat)

For more technical details on how ERL works as well as access to the source, see the GitHub project: https://github.com/222464/ERL (the readme has a more in-depth description of how ERL works)

The following features have been implemented so far:
  • OpenCL framework
  • Compositional pattern producing network generation, evolution, and CL code generation
  • Brain Genotype and corresponding OpenCL kernel compiler
  • CMake support

ERL uses OpenCL meta-programming to support genetic programming (evolved code). Here is some example generated code:


Generated OpenCL kernel

// Dimensions of field
constant int fieldWidth = 10;
constant int fieldHeight = 10;
constant float fieldWidthInv = 0.100000;
constant float fieldHeightInv = 0.100000;

// Connection offsets
constant char2 offsets[25] = {
        (char2)(-2, -2), (char2)(-2, -1), (char2)(-2, 0), (char2)(-2, 1), (char2)(-2, 2),
        (char2)(-1, -2), (char2)(-1, -1), (char2)(-1, 0), (char2)(-1, 1), (char2)(-1, 2),
        (char2)(0, -2), (char2)(0, -1), (char2)(0, 0), (char2)(0, 1), (char2)(0, 2),
        (char2)(1, -2), (char2)(1, -1), (char2)(1, 0), (char2)(1, 1), (char2)(1, 2),
        (char2)(2, -2), (char2)(2, -1), (char2)(2, 0), (char2)(2, 1), (char2)(2, 2)

// Connection update rule
void connectionRule(float input0, float input1, float input2, float* output3) {
        *output3 = sin(-3.295338 * input0 + 5.266167 * input1 + -3.366515 * input2 + 1.680196);

// Activation update rule
void activationRule(float input0, float input1, float input2, float* output3) {
        *output3 = sigmoid(-3.536474 * input0 + 4.128592 * input1 + 2.613249 * input2 + 3.062753);

// Data sizes
constant int nodeAndConnectionsSize = 78;
constant int connectionSize = 3;
constant int nodeSize = 3;

// The kernel
void kernel nodeUpdate(global const float* source, global float* destination, read_only image2d_t randomImage, float2 randomSeed) {
        int nodeIndex = get_global_id(0);
        int nodeStartOffset = nodeIndex * nodeAndConnectionsSize;
        int connectionsStartOffset = nodeStartOffset + nodeSize;
        int2 nodePosition = (int2)(nodeIndex % fieldWidth, nodeIndex / fieldHeight);
        float2 normalizedCoords = (float2)nodePosition * float2(fieldWidthInv, fieldHeightInv);

        // Update connections
        float responseSum0 = 0;

        for (int ci = 0; ci < numConnections; ci++) {
                int2 connectionNodePosition = nodePosition + offsets[ci]

                // Wrap the coordinates around
                connectionNodePosition.x = connectionNodePosition.x % fieldWidth;
                connectionNodePosition.y = connectionNodePosition.x % fieldHeight;
                connectionNodePosition.x = connectionNodePosition.x < 0 ? connectionNodePosition.x + fieldWidth : connectionNodePosition.x;
                connectionNodePosition.y = connectionNodePosition.y < 0 ? connectionNodePosition.y + fieldHeight : connectionNodePosition.y;

                int connectionNodeIndex = connectionNodePosition.x + connectionNodePosition.y * fieldWidth;
                int connectionNodeStartOffset = connectionNodeIndex * nodeAndConnectionSize;
                int connectionStartOffset = connectionsStartOffset + ci * connectionSize;

                float response0;

                connectionRule(source[connectionStartOffset + 0], source[connectionStartOffset + 1], read_imagef(randomImage, connectionNodePosition + nodePosition).x, &response0);

                // Add response to sum and assign to destination buffer
                destination[connectionNodeStartOffset + 0] = response0;

                // Accumulate response
                responseSum0 += response0;

                // Assign recurrent values to destination buffer

        float output0;

        activationRule(responseSum0, source[nodeStartOffset + 1], read_imagef(randomImage, nodePosition + int2(-1, -1)).x, &output0);

        // Assign to destination buffer
        destination[nodeStartOffset + 0] = output0;

        // Assign recurrent values to destination buffer

SFML projects / Re: NEAT Visualizer
« on: June 13, 2014, 08:52:27 am »
It has been a while, but I finally made a new version (3.0) of the NEAT algorithm and its associated visualization system.

I made this new version mostly since I need it for a new AI experiment I am working on  ::)

I have mostly just updated the code to use more modern C++.

Download link is in the original post.

I will probably eventually release a large AI library with various techniques I have come up over the years, but for now here is NEAT standalone.

General / Re: Problem with SFML & OpenGL integration
« on: June 06, 2014, 02:59:51 am »
You have to call glewInit before using OpenGL functions.

Pages: 1 2 [3] 4 5 ... 18