Page 2 of 3

Re: Multi-Kernel Self Deciding OS

Posted: Mon Nov 19, 2012 3:45 am
by gerryg400
I don't understand why you think the the 'voting' system will give a best answer to any particular question. It seems you are assigning equal weight to the opinion of each entity.

Before you do that won't you first need to prove that the chance of an entity choosing a correct answer is exactly the same as the chance of each of the other 2 entities choosing the correct answer.

How do you propose to do that ?

My feeling is that if it is found during testing that one of the entities provides the 'correct' answer more often than the others you should use its answers exclusively.

Re: Multi-Kernel Self Deciding OS

Posted: Wed Nov 21, 2012 7:30 pm
by Lionel
gerryg400:
Think of it this way, there are 3 students in a classroom, and a teacher
Lets say the teacher asks questions, and a always answers first, and b and c answers are not so good. If the teacher were to ask a specific student a question, which one would be asked? The answer is B or C, because the teacher wants them to develop to a's level.

In reality, the teacher is the kernel, and a, b and c are personalities.

Combuster: Yes

rdos: It's both. Complex logic algorithms and neural networks make up the personality of the personality (hensforth shall be known as entities), and the logic is just logic: bare C/ASM.

Brendan: Not that I know of. But mine will contain a real neural network. The problem is that I need:
a)Fast CPU for logic
b)Two TERABYTES of ram per personality (assuming the size of the average human brain)
c)Some way to organize it all.
Or: Someones brain.
Bear in mind (that I <3 bears, and) that the Computers in Evangelion had 278,632,293 TB of RAM. So I guess this one won't be as smart as I want it untill the technology catches up (6.5 TB of Ram?). And remember, mine will be a hybrid, so I guess it will inherit the pros from both sides and maybe the cons would be less?

Anyway, once I finish the design booklet, the directory structure, etc, I shall get started and get The source pushed to Github.

Thanks,
Lionel

P.S: I typed it on my phone, possible typos.

Re: Multi-Kernel Self Deciding OS

Posted: Wed Nov 21, 2012 8:30 pm
by Brendan
Hi,
Lionel wrote:Brendan: Not that I know of. But mine will contain a real neural network.
A "neural network" is just something that uses brute force to create a function. Where possible, it's always better to find out what that function should be and hard-code it, because this eliminates error (wrong function created by neural network) and avoids a massive (and pointless) performance problem.
Lionel wrote:The problem is that I need:
a)Fast CPU for logic
b)Two TERABYTES of ram per personality (assuming the size of the average human brain)
c)Some way to organize it all.
Or: Someones brain.
You need focus. You don't know what this neural network will be used for, so you're throwing everything at it in case you might find some way to justify the sheer stupidity of bothering with it in the first place.

For something like attempting to predict when a file will be used next a neural network would only need a tiny amount of RAM (maybe 10 bytes). For deciding if a page should be sent to swap, or if the current thread should be preempted, or for any actual decision that has a purpose, you only need a tiny amount of RAM. This means that using a neural network for these things is possible (even though it's also inferior).

However, the time taken by "training" (the incredibly unintelligent brute force formula finding) depends on the number of "neurons" and the number of settings per neuron. If a neuron can have one of 256 different settings; then the total number of permutations would be "256 to the power of (number of neurons)". 1 neuron = 256 possible formulas to check, 2 neurons = 65536 possible formulas to check, 3 neurons = 16 million possible formulas to check, ... 10 neurons = 1208925819614629174706176 possible formulas to check, etc. With various optimisations, a modern 80x86 might be able to handle the training for as many as 20 neurons (if you're willing to wait a full day for training).

You think you want billions of neurons for no specific purpose at all? Fine. Start by building a super computer that is a few million times faster than the current fastest super computer. Once you've built it (and programmed it) let it run for 60 years. After all that the only end result is that you might finally realise that the idea was a massive failure from the beginning.

A much simpler alternative would be to write fictional stories. You don't need to worry about practicality in that case.


Cheers,

Brendan

Re: Multi-Kernel Self Deciding OS

Posted: Sat Nov 24, 2012 1:19 am
by ACcurrent
Long time since I last visited this forum...
Anyway, I remember reading about this one "ardusat project" which used a voting system. The logic behind it was that in space radiation zaps the chips too often for a single chip to accurately compute anything, so instead this group of engineers decided to wire up many arduinos and put it into space.

Although this is different to an artificial intelligence based OS, I can see the idea of a voting system being useful in parallel computing. If you want to make an answer engine, my suggestion would be get yourself acquainted with python, pick up NLTK, pattern and some other web framework. There are loads of AI and natural language toolkits for it.

There is a reason why we humans make mistakes: Its our Neural Network.

Re: Multi-Kernel Self Deciding OS

Posted: Tue Nov 27, 2012 12:57 am
by Lionel
ACCurrent:
Welcome Back!
I'll look into Ardusat for any ideas.
I will of course start small scale with the answer engine, though I hate python. Love ruby though.

Yes, we makes lots of mistakes. But why? Because, we are "imperfect". Each one is different. That's what the voting system is supposed to fix.

Brendan:
Hello!
Well, yes I know that it will be inefficient, but: I have two solutions.
A:Real neural network AKA: Use someones brain, or a physical neural network.
B:Hardcode lots of common function, as much as I can, then leave the neural network (alot smaller) as a cushion.

I know I need focus, I need it bad.

I need the 2TB because that is how much data the brain stores. That would be data. The neural network would actually be alot less. But: This computer does small and BIG decisions. I imagine either you need a brain or a medium sized neural network to debate over something such as what happens in the interior of a black hole (though it would probably never do such ludicrous calculations). Though I do admit I am scrambling to wrap my head on how to implement it.

Wow, that's a long time.

I do, but I'll never link the account here. But, see here: I am trying the best I can to bring a work of fiction to reality.

Re: Multi-Kernel Self Deciding OS

Posted: Tue Nov 27, 2012 2:46 am
by Brendan
Hi,
Lionel wrote:Well, yes I know that it will be inefficient, but: I have two solutions.
A:Real neural network AKA: Use someones brain, or a physical neural network.
I think you need a special permit before you can hardwire someone's brain into a PCI slot... ;)
Lionel wrote:B:Hardcode lots of common function, as much as I can, then leave the neural network (alot smaller) as a cushion.
Maybe start by experimenting with one small neural network (e.g. maybe 10 neurons) as a normal application. For example, it could read a sequence of values from a file and then try to guess then next value. Then you could refine it (optimise it, make it smarter, increase the number of neurons, give it more challenging problems to solve, etc) until you've perfected it. You don't need an OS for this; and could worry about the OS part of it once you know what your neural networks are capable of.
Lionel wrote:I need the 2TB because that is how much data the brain stores. That would be data.
Just give it an internet connection to wikipedia (and some RAM for caches).
Lionel wrote:Though I do admit I am scrambling to wrap my head on how to implement it.
It's incredibly simple. First determine what a "neuron" is - I'd have 2 inputs, some sort of operation, and one output. Then define a structure or something to contain the current operation and the current output (you can get the inputs from other neuron's structures when you need them); and work out what operations a neuron supports (I'd just have "sum" and "product"; and maybe some flags to invert an input).

Next arrange your neurons in a grid (e.g. "myNeuron myBrain[x][y]"), and just assume that a neuron's first input comes form the neuron on it's right, and the neuron's second input comes from the neuron below it. This would mean that the output of the top left neuron is the output of the network; and the input to the bottom right neuron is the network's input.

Once you've got that sorted out you'd just loop through the neurons; performing each neuron's current operation.

The final step is "training". Here you just change the current operation of each neuron until you get a the right output for each input.

Of course this is just a very basic neural network. Once you've got it working you'd start playing with it. Maybe try adding support for other operations, using the current output as a third input, having some sort of "bias" value, finding a "more smarterer" way of doing training, etc.

In any case; you can probably get something capable of learning (and then correctly guessing subsequent values) for simple things with about 4 neurons and 20 lines of C code. For example (Fibonacci) you could tell it "1, 1, 2, 3, 5, 8, 13, 21" to train it, and then the neural network might start guessing "34, 55, 89, etc".


Cheers,

Brendan

Re: Multi-Kernel Self Deciding OS

Posted: Tue Nov 27, 2012 3:35 am
by bluemoon
I would use the traditional AI approach: take neutron network as example, it can be implemented with finate state machine (note, you can have more than 2 outputs per node for "smarter" AI), plus feedback loop to dynamic adjust the weight of each output pin. This is good enough for chess game, and probably good enough to adopt user preference and perhaps able to predict user (rountinely) behaviour.

Once you have one neutron network, you may create another network with slightly different rule for the feedback loop / weight distribution / or even totally different graph for the state's flow, and let them fight to each other - the good news is they can think in parallel so it's doable for future CPU with millions of core.

Re: Multi-Kernel Self Deciding OS

Posted: Tue Nov 27, 2012 7:47 am
by dozniak
Image
where yj is the output of the j th neuron, xi is the i th input neuron signal, wij is the synaptic weight between the neurons i and j, and φ is the activation function.
Is neuron model according to wikipedia. There can be a few different ways to implement it, but that's the general idea - sum weighted inputs from synapses, apply activation function, return result as output on the axon.

Re: Multi-Kernel Self Deciding OS

Posted: Tue Nov 27, 2012 8:37 am
by Combuster
for simple things with about 4 neurons (...) fibbonaci
4-bit fibonacci numbers, hmm...

Re: Multi-Kernel Self Deciding OS

Posted: Tue Nov 27, 2012 8:55 am
by Brendan
Hi,
Combuster wrote:
for simple things with about 4 neurons (...) fibbonaci
4-bit fibonacci numbers, hmm...
4 neurons, where each neuron might store a 64-bit floating point number.

For Fibbonaci you only need to store 2 values and do one addition, so... ;)
dozniak wrote:
Image
where yj is the output of the j th neuron, xi is the i th input neuron signal, wij is the synaptic weight between the neurons i and j, and φ is the activation function.
Is neuron model according to wikipedia. There can be a few different ways to implement it, but that's the general idea - sum weighted inputs from synapses, apply activation function, return result as output on the axon.
That is likely to be a more realistic model of a biological neuron. Sadly, biological neurons aren't very good. For an example, using only your biological neurons, calculate 1234*9876 and see how long it takes (and how many times you get it wrong). Now imagine a better neuron that can get basic maths right (and do it *fast*). ;)


Cheers,

Brendan

Re: Multi-Kernel Self Deciding OS

Posted: Tue Jan 15, 2013 4:51 pm
by Cadav3r
bluemoon wrote:It's difficult to work with a person with 3 personalities, so what made a computer with 3 personalities good for?
imagine this as an example:

linux build 1: test server (loaded when booting from the server-geared OS)
linux build 2: userspace (loaded when booting desktop OS)
FreeDOS build 1: ms-compatible (loaded when booting from windows-like OS)
FreeDOS build 2: POSIX-compatible (for OS geared toward running most portable and IA-32 apps)
FreeDOS build 3: no-hardware (slimmed API-only kernel for virtualizing daemons)

wouldn't be too hard to mod syslinux to let the user set a config file of which os matches which kernel
[edit: i meant in an OS where a compiler is available, of course - maybe also build a few into the app?)
then write a generic portable app to quickly compile new profiles from any OS where the host matches the target:
e.g. boot to dos and make or change a DOS kernel or macrokernel profile
or boot to linux to to make or change a unix kernel, etc
after all, if they need a kernel, i assume they know how to boot into the target OS somehow.

if im wrong anywhere, i'd love to be corrected cause I've been planning to implement something similar in my os

Re: Multi-Kernel Self Deciding OS

Posted: Tue Jan 15, 2013 8:48 pm
by gravaera
Yo:

I think this thread is similar to another one that was created a while ago where the OP was suggesting a kernel design that modeled the kernel as a goalkeeper, and the processes in userspace as being the players in a sport. He conjectured that the goalkeeper would monitor and control the processes and ensure that they don't violate a set of "rules", which would be kept by the goalie (kernel). Essentially, setting up a sort of policing policy in kernelspace which would control aspects of userspace that it really had no business trying to control.

This is because a kernel's purpose is very simple: to provide uniform, abstracted access to the hardware on the machine to the applications running on the machine in a safe manner. Your primary goal is not to deny access, but rather to allow access. The only time checks for safety come in is when an application is trying to compromise the kernel, and optionally when an application is trying to compromise another application.

The kernel's service expectation is that it will keep the machine in a sane running state which is adequate for applications to run correctly. The only reason you bother to police anything in kernel space is to ensure that the kernel itself is not compromised; or else it will not longer be able to provide organized access to hardware features to applications.

If you wish to provide extensive support for allowing userspace to police other userspace applications, you can easily provide a "Security Hook API" and let a userspace application set up policies and rules for managing other userspace applications and police them as directed by the user. However, the kernel's primary concern is keeping itself reliably running so that it can fulfil its key requirement: providing access to the hardware features exposed by the machine. From the time you stray from this, you begin adding useless features and trying to add silly things, like policing to the kernel, and you start doing nonsensical things like approaching with a "deny first" approach, instead of an "allow first" approach.

--Peace out,
gravaera

Re: Multi-Kernel Self Deciding OS

Posted: Tue Mar 05, 2013 12:02 am
by Mikemk
Brendan wrote:1234*9876 and see how long it takes
This is easy, I can do it in about 30 seconds, I have a friend who can do it in less than ten. http://math-magic.com/
Still, that's far longer than it would take a computer...

BTW, it would be

Code: Select all

   9876000 +
2*  987600 +
3*   98760 +
4*    9876
-------------
9876000
1975200
 296280  <--- I don't seem to want to align right
  39504
-------------
12186984
And there's easier ways to do it...

Re: Multi-Kernel Self Deciding OS

Posted: Tue Mar 05, 2013 2:16 am
by Brendan
Hi,
m12 wrote:
Brendan wrote:1234*9876 and see how long it takes
This is easy, I can do it in about 30 seconds, I have a friend who can do it in less than ten. http://math-magic.com/
Still, that's far longer than it would take a computer...

BTW, it would be

Code: Select all

   9876000 +
2*  987600 +
3*   98760 +
4*    9876
-------------
9876000
1975200
 296280  <--- I don't seem to want to align right
  39504
-------------
12186984
And there's easier ways to do it...
My method is faster.

Simply imagine that the first digit is 5 and all the other digits are zero ("1234*9876" becomes "5000*0000") then delete the multiplication sign in the middle ("5000*0000" becomes "50000000"). This gives an estimate that is always within an order of magnitude of the right answer, and (with a little practice) can be done very quickly (maybe only 1 billion times slower than a CPU).


Cheers,

Brendan

Re: Multi-Kernel Self Deciding OS

Posted: Tue Mar 05, 2013 7:41 am
by Mikemk
Brendan wrote:Hi,
m12 wrote:
Brendan wrote:1234*9876 and see how long it takes
This is easy, I can do it in about 30 seconds, I have a friend who can do it in less than ten. http://math-magic.com/
Still, that's far longer than it would take a computer...

BTW, it would be

Code: Select all

   9876000 +
2*  987600 +
3*   98760 +
4*    9876
-------------
9876000
1975200
 296280  <--- I don't seem to want to align right
  39504
-------------
12186984
And there's easier ways to do it...
My method is faster.

Simply imagine that the first digit is 5 and all the other digits are zero ("1234*9876" becomes "5000*0000") then delete the multiplication sign in the middle ("5000*0000" becomes "50000000"). This gives an estimate that is always within an order of magnitude of the right answer, and (with a little practice) can be done very quickly (maybe only 1 billion times slower than a CPU).


Cheers,

Brendan
me wrote: And there's easier ways to do it...