5
$\begingroup$

I'm not sure if this is a right question for this community or not and if not forgive me.

I have this ANN model which gets an input and gives an output. The output is an action which interacts with the environment and changes the input accordingly. The network has a desired environment state which in any turn decides the desired response and trains the network on that basis.

Currently, the network works in discrete time. How can I make this network work in continous manner? Can you provide some resources and links if there is any past or current reasearch on continous AI?

--Edit--

Thanks for the guys who commented. I don't know the math to formally define continuous time AI (I'm an engineer not a computer scientist!) but, what I mean by that I shall put it in scenarios maybe you can help me then.

The system starts with current environment state. For example [1 1 1] then produces an output. In current system the next step takes the final state of the system as input for example [1 2 2] but we know that such a thing doesn't happen in physical world and the system goes from [1 1 1] to for example [1 1 2] and then to [1 2 2] and that middle step is something that a discreet time AI can't figure out.

The very case that I'm working on is the simulation for an autopilot cart which the model is incapable to take subtle things like "the maximum speed that you can turn the steering wheel" into consideration. I don't want to add these complexities to the model since if the model is perfect then the result is deterministic and there is no need for AI! I want the AI to be able to make a decision in each step based on a current state of the system in continuous time.

Hope I don't go into too much unnecessary details :)

$\endgroup$
  • $\begingroup$ Won't everything run on a computer work in discrete time? What exactly do you want? $\endgroup$ – BlindKungFuMaster Apr 8 '17 at 18:35
  • $\begingroup$ Can you clarify the question a bit more. Like, how the algorithm is working in a discrete manner now, and how exactly you want it to work in a continuous manner. $\endgroup$ – Ugnes Apr 9 '17 at 3:39
  • $\begingroup$ @ShivamSinghSengar Thank you for your comment. Please see the edit. $\endgroup$ – Emad Apr 9 '17 at 5:36
  • $\begingroup$ @BlindKungFuMaster Thank you for your comment. Please see the edit. $\endgroup$ – Emad Apr 9 '17 at 5:37
  • $\begingroup$ Can those who up-voted for the question tells why!!!! Supervised and Unsupervised learning questions are not right fit here,when it comes to implementation. $\endgroup$ – quintumnia Apr 9 '17 at 16:25
2
$\begingroup$

By the way you have explained things above, it seems more like a problem with your code and not the something to do with the environment. The term discrete and continuous is used to define, how the outside environment is acting, rather than how your code is taking its steps. These are some lines from the book, Artificial Intelligence: A Modern Approach:

The discrete/ continuous distinction applies to the state of the environment, to the way time is handled, and to the percepts and actions of the agent. For example, the chess environment has a finite number of distinct states (excluding the clock). Chess also has a discrete set of percepts and actions. Taxi driving is a continuous state and continuous-time problem: the speed and location of the taxi and of the other vehicles sweep through a range of continuous values and do so smoothly over time. Taxi-driving actions are also continuous (steering angles, etc.). Input from digital cameras is discrete, strictly speaking, but is typically treated as representing continuously varying intensities and locations.

So, continuous or discrete is not something that should be talked about as a problem of the code. It is basically, what an environment is. Your concern with the device is regarding the code. I will suggest that you upload the code on git and ask people to improve it.

I hope this helps!

$\endgroup$
  • $\begingroup$ Thank you, I accept the answer since it has strong reference and I've read the book already which is a great book. I think that as you and others in this thread said the mechanics of the agent is discrete even for us humans we have an internal clock speed. Thanks to you and everyone else. $\endgroup$ – Emad Apr 13 '17 at 20:17
1
$\begingroup$

I don't think transformation of [1 1 1] into [1 2 2] needs a middle step. actuators can work simultaneously and they do not have to wait for each other to complete their job. I must even note that if your next output is [1 2 2] then performing [1 1 2] is so wrong in the case of following a trajectory (if it's your case). so I guess the middle step in your example is [1 1.5 1.5]. think of a line segmentation. When you segment a line, you still have your slope, and you do not create "steps". So what you are following in your neural network based controller is exactly the pattern you need. Your problem is probably the closed loop frequency of your controller. better NN performance leads to quicker response and then better actuation.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.