News:

Welcome to the Astral Pulse 2.0!

If you're looking for your Journal, I've created a central sub forum for them here: https://www.astralpulse.com/forums/dream-and-projection-journals/



Transhumanism, superintelligence and a global change

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Blackstream

Btw, one thing you might bring up.  A lot of people consider God to be eternal and unchanging.  If this is true, then under my current definition, God isn't intellegent as he can't learn or change at all.

The only thing I can think of to argue is that God wouldn't need to learn as he knows all already, or that a timeless expanse nulls out my definition as my definition requires time to be true.... but I dunno.
There is no spoon

beavis

QuoteMost likely, a programmer is not going to purposely design his code so that it's so obscure that a few lines of code are widely separated by many lines of code that don't have an obvious way of optimizing.

Many programmers care only that it works and not if its 20% faster. They want their paychecks and their boss to shut up. I disagree. Code is often written, ignoring even obvious possible faster ways of writing it.

QuoteThis is a mostly theoretical discussion anyways, since neither of us are really privy to top end optimizing algorithms, afaik.

I dont know which "end" you're judging by, but I'm in a college class for optimizing compilers at the assembly level.

QuoteI thought that computers have ways of setting blocks of data all at once, as opposed to setting bit by bit. Which is why memset was prefered. I can't find anything about it so I think I'm prolly wrong on that.

Some do and some dont. Thats why we leave it to the compilers to choose. Some have 64-byte sections they can write to in a lot less than 64/4 instructions (many normal instructions are 4 bytes).

But it never goes past a LINEAR increase in speed. To add 2 32-bit hardware numbers, you must start at the lowest bits, and potentially have to carry 31 1s up. If you're on a really weird parallel machine, it might be able to add 8 numbers at once, but theres still some small limit to how many things it can do at once. The main advantage, when there is an advantage, is it doesnt have to keep setting up the same operation many times.

QuoteNot useful you say, but what if for example it was an algorithm for sorting polygons from back to front in order to draw them from back to front. You may be sorting thousands or even millions of polygons, and if you are trying to do this 60 frames a second, you can see why an optimization like that would be nice.

I said it wasnt much useful because most programmers know its faster to use a more complex sort for bigger things to sort. For such a big sort, if the programmer was stupid enough to use bubble sort, let him/her be doomed to work at burger king forever!

QuoteIf your language has a grammar, then it should be fairly simple to come up with a simple way to turn it into assembly.

More than speed, I want it to be compatible with most types of computers.

Assembly must be for only 1 type of computer. I wont reduce it that much.

The java code optimizers will convert it to good enough assembly.

QuoteIf one has to use creativity and can not come up with rules to turn your language into assembly, then what you have is most likely an inexact language such as pseudo code.

I wanted an inexact language. Programming languages are so formal and rigidly syntactic. I want something where interpretation is allowed, but logic is still king.

I dont see the relevance of assembly here. The low-level systems are only there to let smarter things run. I've started giving it the ability to convert itsself to java, and that would necessarily lead to converting to machine code, because java already converts itsself to machine code. There is little point in reinventing the low-level wheel.

QuoteIt's by luck that the computer program was created. Obviously once it's created, it'll keep doing what it does best, nicely optimize programs. It's not like the rules are being randomly rolled every time it compiles. I still attribute the result to luck and not intellegence, because the computer didn't figure it out, it was just given the ability.

I'll not debate evolution here, but you were given your abilities by the ancestors of monkeys. You were given the ability. You did not earn it. You are little more than your genetics.

QuoteTheoretically, someone smart enough could examine all the nodes of a NN and figure out exactly what it'll do at any given instance. However, the NN is still learning and growing and improving itself, and thus I consider that intellegence.

As I see it, genetic/evolution agorithms are far above neural networks in intelligence, and the difference will be most noticable when the problem is harder.

But both these methods are pathetic and need to be severely redesigned.

QuoteI've never heard of that.. although it's not like I really read much into these things. Is this theorem trying to say that if I use a mathematical proof to prove a program produces the correct outputs, that my program and my proof are competely worthless since both are within the realm of mathematics?

No. Godel proposed a computer system where any statement (whether true or false) could be stated as a whole/integer number.

It naturally followed that statements could be produced from other statments, and the system could redesign itsself.

The short version, I think, is that Humans proved there were some mathematical truths that were true but his system (while appearing to be the perfect model of generality) could never prove true, specificly a statement trying to prove things about itsself.

-lines-

Quote from: beavisMany programmers care only that it works and not if its 20% faster. They want their paychecks and their boss to shut up. I disagree. Code is often written, ignoring even obvious possible faster ways of writing it.

If it is faster to write it one way than the other, it'd be easier for the programmers to write. You'd think that they'd enjoy taking the easy way out, and if it's faster for the computer to run, then it's all the better.
- Skeptical until proven otherwise -

Blackstream

I managed to accidently delete my reponse just as it was nearing completion so please pardon me if something is missing >_<;

QuoteMany programmers care only that it works and not if its 20% faster. They want their paychecks and their boss to shut up. I disagree. Code is often written, ignoring even obvious possible faster ways of writing it.

It's still natural to write like code together.  What you are discribing takes more effort to do than it would take to be lazy and just code the thing.  Occasionally I guess you'll see that kind of thing pop up, but I'm sure a human could still catch those things, even if it was just through pure pattern matching.  

QuoteI dont know which "end" you're judging by, but I'm in a college class for optimizing compilers at the assembly level.
So what kind of algorithms have you guys been discussing?  Anything that involves lines of code and thousands of variables separted by 300 lines of code?

QuoteSome do and some dont. Thats why we leave it to the compilers to choose. Some have 64-byte sections they can write to in a lot less than 64/4 instructions (many normal instructions are 4 bytes).

But it never goes past a LINEAR increase in speed. To add 2 32-bit hardware numbers, you must start at the lowest bits, and potentially have to carry 31 1s up. If you're on a really weird parallel machine, it might be able to add 8 numbers at once, but theres still some small limit to how many things it can do at once. The main advantage, when there is an advantage, is it doesnt have to keep setting up the same operation many times.
I'm just going to say that I'm wrong here and that I gave you a bad example.

QuoteI said it wasnt much useful because most programmers know its faster to use a more complex sort for bigger things to sort. For such a big sort, if the programmer was stupid enough to use bubble sort, let him/her be doomed to work at burger king forever!
You mean the same programmers that just write code to shut their bosses up and get their paychecks?  It's much faster to write bubble sort than quicksort, and if programmers can get away with it and are as lazy as you say, then I'd expect to see quite a few bubble sorts popping up.

QuoteMore than speed, I want it to be compatible with most types of computers.

Assembly must be for only 1 type of computer. I wont reduce it that much.

The java code optimizers will convert it to good enough assembly.

Grammars don't break it all the way down to the assembly level.  They do however break it down to a level where it's pretty much trivial to turn it into whatever assembly is used for that particular system.  With a grammar, your language is universal across all systems, as long as the systems have all the features your language uses (jmps, movs, maybe pushs and pops, although a stack can be simulated if needed).  

Also, if your code can be reduced to java, and java can be (and is) reduced to a machine code exe, then logically, your code can be reduced to a machine code exe.  The creativity comes in figuring out what rules you need to turn your code into a machine code, not actually following the rules.  Maybe if you made a program that had to figure out how to turn a language into machine code, you could claim your program used intellegence to compile.  

QuoteI wanted an inexact language. Programming languages are so formal and rigidly syntactic. I want something where interpretation is allowed, but logic is still king.

I may have misunderstood your project then.  How is your code turned into java?  Is it through a compiler you have written or is it hand written or what?  At any rate, even if you have a language that takes creativity to compile, it doesn't change the fact that today's professional compilers that compile languages like C++  just follow rules instead of using intellegence or should I say instead of learning how to compile the program. I would argue that any compiler that learns and improves at compiling has at least a rudimentary intellegence.

QuoteI dont see the relevance of assembly here. The low-level systems are only there to let smarter things run. I've started giving it the ability to convert itsself to java, and that would necessarily lead to converting to machine code, because java already converts itsself to machine code. There is little point in reinventing the low-level wheel.
The assembly discussion came from where you argued that compilers used intellegence to compile code to assembly, and I counted by saying that it was mere gruntwork, that it was just following rules and that there was no room for intellegence.  We diverged a bit from that, but the heart of the argument is still the same, and I think I'll sum what we disagree about at the end.

QuoteI'll not debate evolution here, but you were given your abilities by the ancestors of monkeys. You were given the ability. You did not earn it. You are little more than your genetics.

Yes, but I still learn and change, which is how I was defining intellegence.  A NN learns and changes, which is why I said it was at least somewhat intellegent.  A standard compiler does not learn or change, thus I don't claim it's intellegent either.  Yes, I got here by a lot of dice rolling, but I wasn't born with my knowledge either, I had to obtain it.  This is what I call intellegence.  Knowledge is not what I consider intellegence, they are 2 different things.  Otherwise I'd have to consider a physics book smarter than me.

QuoteAs I see it, genetic/evolution agorithms are far above neural networks in intelligence, and the difference will be most noticable when the problem is harder.
I'm kind of curious as to why you say this.  Do you have any examples or reasoning, or is this more of a hunch?

QuoteBut both these methods are pathetic and need to be severely redesigned.
I'm REALLY curious as to why you say this.  Didn't we as humans come from a GA and run with a NN?  Or do you think that there's something missing?

QuoteNo. Godel proposed a computer system where any statement (whether true or false) could be stated as a whole/integer number.

It naturally followed that statements could be produced from other statments, and the system could redesign itsself.

The short version, I think, is that Humans proved there were some mathematical truths that were true but his system (while appearing to be the perfect model of generality) could never prove true, specificly a statement trying to prove things about itsself.

So, if I'm reading this right, while I can't validate my own intellegence (and really, how can I prove to myself that my whole life isn't scripted, including the parts where I think "I must be intellegent"?), I can potentially validate something elses existance.  Thus I can look at a program and say "This must be intellegent", although it itself can't look at itself and say "I am intellegent" (As I can write a program where all it does is say, "I think I'm intellegent!  Therefore I am!").


EDIT
Okay, here is what I think our discussion is hinging on.

I'm claiming that for something to be intellegent, that it HAS to be able to learn and change and improve.  I'm further claming that knowledge alone is not proof of intellegence, as they are separate things.

I believe you are saying that something doesn't have to do that to be intellegent, that it just needs ability and knowledge.   I could be wrong tho.
There is no spoon

CaCoDeMoN

Quote
Not useful you say, but what if for example it was an algorithm for sorting polygons from back to front in order to draw them from back to front. You may be sorting thousands or even millions of polygons, and if you are trying to do this 60 frames a second, you can see why an optimization like that would be nice.
I use a Z-buffer in such situation :)
MEAT=MURDER.

Blackstream

Quote from: CaCoDeMoN
Quote
Not useful you say, but what if for example it was an algorithm for sorting polygons from back to front in order to draw them from back to front. You may be sorting thousands or even millions of polygons, and if you are trying to do this 60 frames a second, you can see why an optimization like that would be nice.
I use a Z-buffer in such situation :)

Well, it's true that zbuffers are better, but the sorting method is a wee bit faster I believe.  You will still get display probablems with sorting polygons though on the occasion, so I prefer the zbuffer too :p
There is no spoon

beavis

QuoteMany programmers care only that it works and not if its 20% faster. They want their paychecks and their boss to shut up. I disagree. Code is often written, ignoring even obvious possible faster ways of writing it.


If it is faster to write it one way than the other, it'd be easier for the programmers to write. You'd think that they'd enjoy taking the easy way out, and if it's faster for the computer to run, then it's all the better.

I'm talking about 2 different kinds of speed, time to make the code, and efficiency of the code. There are usually ways to make code more efficient, and most of them result in more code written.

QuoteSo what kind of algorithms have you guys been discussing? Anything that involves lines of code and thousands of variables separted by 300 lines of code?

"Common subexpression elimination" can find
X = 2 + A*B;
and
Y = A*B + 1 + 1;
separated by any distance, try to prove A and B have the same value at both places, and replace the second line with
Y = X;
Might take hours for thousands of lines, but it could find a lot of things to replace.

QuoteAlso, if your code can be reduced to java, and java can be (and is) reduced to a machine code exe, then logically, your code can be reduced to a machine code exe.

Over half of it can be reduced to java, and that would be useful for evolving new parts, but some things (like the operators that modify other code) are too complex to hard-code into a new java class file (other than the class files that already contain them). Simple things like + and * can be easily converted to a string of java code.

QuoteThe creativity comes in figuring out what rules you need to turn your code into a machine code, not actually following the rules. Maybe if you made a program that had to figure out how to turn a language into machine code, you could claim your program used intellegence to compile.

Im not trying to make it smart enough to change its low level parts. It should not be able to see past the language I made, which is only high-level. It will have enough things to learn there, without the added complexity of trying to do java's job.


QuoteI may have misunderstood your project then. How is your code turned into java? Is it through a compiler you have written or is it hand written or what?

I did not mean the syntax changes. Its got a simple syntax, example
list(
=(&(x) max(1 2) )
if(-0.3 x -(x))
)
The list object returns -2. Or "-2()", a number operator containing nothing. I think its a very logical syntax.

My own small compiler changes strings of code to java objects. They run in a java program. Its "interpreted".

Theres no intelligence in that compiling. Its a simple deterministic algorithm and makes the objects exactly as they're written, no optimization.

If it wants to optimize, that would be done after it becomes objects, since it was designed to modify itsself in that form. The strings of code are only there so Humans can use it. Earlier versions of my language had no string version, and was used completely as objects.

QuoteAs I see it, genetic/evolution agorithms are far above neural networks in intelligence, and the difference will be most noticable when the problem is harder.

I'm kind of curious as to why you say this. Do you have any examples or reasoning, or is this more of a hunch?

The only AI I've heard of that reinvented old patents (including the design of efficient weird shaped antennas)
used evolution.

Quote
But both these methods are pathetic and need to be severely redesigned.

I'm REALLY curious as to why you say this. Didn't we as humans come from a GA and run with a NN? Or do you think that there's something missing?

The "dna" of a GA is often the end result, like the value of a variable, instead of growing it indirectly. They dont simulate molecules bending in the dna to build other molecules.

Neural networks lack at least 30 chemicals used for short-term-memory, emotions, etc. Most of them have electric charge, strength of connection to other neurons, and thats it.

QuoteSo, if I'm reading this right, while I can't validate my own intellegence (and really, how can I prove to myself that my whole life isn't scripted, including the parts where I think "I must be intellegent"?), I can potentially validate something elses existance.

No. Only something that has been proven absolutely true, can prove other things absolutely true. Humans arent completely logical, so Godel's proof does not apply to them.

QuoteEDIT
Okay, here is what I think our discussion is hinging on.

I'm claiming that for something to be intellegent, that it HAS to be able to learn and change and improve. I'm further claming that knowledge alone is not proof of intellegence, as they are separate things.

I believe you are saying that something doesn't have to do that to be intellegent, that it just needs ability and knowledge. I could be wrong tho.

An optimizing compiler is not much intelligent, but it is some, because it does remember things and use them to choose which optimizations to do in which places and in what order. Different order of optimizing can result in different code. Some optimizations undo others, so there is interpretation of which to keep.

But its still made of rules!! Doesnt matter. The "Searle's Chinese Room" argument explains why logical rules (a computer program) can be intelligent.
http://www.psych.utoronto.ca/~reingold/courses/ai/cache/searle.html

Blackstream

Quote from: beavis"Common subexpression elimination" can find
X = 2 + A*B;
and
Y = A*B + 1 + 1;
separated by any distance, try to prove A and B have the same value at both places, and replace the second line with
Y = X;
Might take hours for thousands of lines, but it could find a lot of things to replace.
This is something a human could potentially do, even if it took them much longer.  Might take them years though.


Your program uses intellegence I'd say (or will anyways), although I'm still a bit confused about how your programs run if you don't compile all your code to java, so I'll just accept that your program/compiler may use intellegence.

QuoteThe only AI I've heard of that reinvented old patents (including the design of efficient weird shaped antennas)
used evolution.

That's pretty impressive.  I would think that NNs would have their own area that they would excel at, like maybe the ability to learn, although GA was responsible for making evolving creatures that could walk across the landscape.

QuoteThe "dna" of a GA is often the end result, like the value of a variable, instead of growing it indirectly. They dont simulate molecules bending in the dna to build other molecules.
How would you simulate something like this, and how would it be helpful anyways?

QuoteNo. Only something that has been proven absolutely true, can prove other things absolutely true. Humans arent completely logical, so Godel's proof does not apply to them.

Isn't this a catch 22?  How can you prove something true, if you can only prove something true with something else proven true?  If you start from base 0 where nothing has been proven true yet, it's completely impossible to prove that anything is true, since you don't have anything proven true to prove something else is proven true.

QuoteBut its still made of rules!! Doesnt matter. The "Searle's Chinese Room" argument explains why logical rules (a computer program) can be intelligent.
http://www.psych.utoronto.ca/~reingold/courses/ai/cache/searle.html

I'm not so sure about that last arguement there.  The response that the guy in the box can break down the walls and talk to the programmers to learn chinese is a bit hokey.  I don't know about your program, but my program isn't jumping out of my computer any time soon to discuss with me what exactly "return true;" means, nor does it have the ability.  There are also no other brains living in my computer (except for mine indirectly) that somehow understand the code being passed to it.
There is no spoon

beavis

QuoteI'm still a bit confused about how your programs run if you don't compile all your code to java, so I'll just accept that your program/compiler may use intellegence.

I didnt say mine did "common subexpression elimination". Thats a different program.

It doesnt have to become java code. At any time, I can ask either form (java object or string code) to become the other.
MyOneObjectType javaObject = new Add();
javaObject.addParameter(new NumberOperator(3.5));
javaObject.addParameter(new NamedVariable("y"));
Or I could type "+(3.5 y)".
Either way, its all made of java objects running in a java program.

It would combine a tree of objects into one less-flexible java function.

QuoteHow would you simulate something like this, and how would it be helpful anyways?

Uses physics equations to calculate new atom positions etc in short time increments. Simulation of protein-folding as it grows is a huge expensive research.

QuoteIsn't this a catch 22? How can you prove something true, if you can only prove something true with something else proven true? If you start from base 0 where nothing has been proven true yet, it's completely impossible to prove that anything is true, since you don't have anything proven true to prove something else is proven true.

You can start with some obvious truths, as Godel did.
X = X.
X + 1 > X.
X * (X + 1) = X*X + X.

Lack of ability to prove somethings truth doesnt mean its false, but doesnt mean its probable enough to consider either.

QuoteI'm not so sure about that last arguement there. The response that the guy in the box can break down the walls and talk to the programmers to learn chinese is a bit hokey.

Maybe I linked to the wrong page to explain it. The whole purpose of searle's argument is that the rules are intelligent. It doesnt matter how they were created. Could be randomly, by other rules, or by a human, but you cant ask questions to them because you dont know if whatever built it can understand your questions.

Blackstream

Quote from: beavisI didnt say mine did "common subexpression elimination". Thats a different program.

Uh... you got my 2 paragraphs mixed together.  There was my reply to your common subexpression thing, and then there was my reply to your program, separated by about 3 newlines.  I just didn't want to quote your entire speel as it was rather big.

QuoteUses physics equations to calculate new atom positions etc in short time increments. Simulation of protein-folding as it grows is a huge expensive research.
I never knew that.  Have they gotten anywhere AI wise with this yet?

QuoteYou can start with some obvious truths, as Godel did.
X = X.
X + 1 > X.
X * (X + 1) = X*X + X.
Even if you accept mathematics as a self proving truth, how can you get to abstract concepts like intellegence?  I'd think that to prove intellegence, you'd need a hard and solid defintion for it.  For me that definition is the ability to learn and change, but even that is pretty broad and not complete.  Even if you came up with such a defintion, I'm not sure how one can bridge over to it.  I'm guessing that there is an answer and that it's overly mathematical.

QuoteMaybe I linked to the wrong page to explain it. The whole purpose of searle's argument is that the rules are intelligent. It doesnt matter how they were created. Could be randomly, by other rules, or by a human, but you cant ask questions to them because you dont know if whatever built it can understand your questions.
I dunno, I can't really see how something like pure abstract rules can be considered intellegence.  I don't look at the laws of physics and think "Wow, my solar system is pretty smart, rotating like that", nor do I consider a law book to be intellegent.

A computer program is at heart a series of rules though, so even if you consider rules to be considered intellegence, you either have to define all computer programs as intellegent, and everything for that matter that operates under some set of rules (Like the laws of physics), or come up with some kind of reasoning as to what rules denote intellegence.

Which leads me to ask, what exactly do you consider intellegence?  Even your simple compiler which doesn't optimize should be considered intellegent under your argument so far, because it still operates through rules as far as I can see.
There is no spoon