On Wed, 2010-07-14 at 07:48 -0700, Matt Mahoney wrote: > Actually, Fibonacci numbers can be computed without loops or recursion. > > int fib(int x) { > return round(pow((1+sqrt(5))/2, x)/sqrt(5)); > } ;) I know. I was wondering if someone would pick up on it. This won't prove that brains have loops though, so I wasn't concerned about the shortcuts. > unless you argue that loops are needed to compute sqrt() and pow(). > I would find it extremely unlikely that brains have *, /, and even more unlikely to have sqrt and pow inbuilt. Even more unlikely, even if it did have them, to figure out how to combine them to round(pow((1 +sqrt(5))/2, x)/sqrt(5)).
Does this mean we should discount all maths that use any complex operations ? I suspect the brain is full of look-up tables mainly, with some fairly primitive methods of combining the data. eg What's 6 / 3 ? ans = 2 most people would get that because it's been wrote learnt, a common problem. What 3456/6 ? we don't know, at least not from the top of our head. > The brain and DNA use redundancy and parallelism and don't use loops because > their operations are slow and unreliable. This is not necessarily the best > strategy for computers because computers are fast and reliable but don't have > a > lot of parallelism. The brains "slow and unreliable" methods I think are the price paid for generality and innately unreliable hardware. Imagine writing a computer program that runs for 120 years without crashing and surviving damage like a brain can. I suspect the perfect AGI program is a rigorous combination of the 2. > > -- Matt Mahoney, matmaho...@yahoo.com > > > > ----- Original Message ---- > From: Michael Swan <ms...@voyagergaming.com> > To: agi <agi@v2.listbox.com> > Sent: Wed, July 14, 2010 12:18:40 AM > Subject: Re: [agi] What is the smallest set of operations that can > potentially > define everything and how do you combine them ? > > Brain loops: > > > Premise: > Biological brain code does not contain looping constructs, or the > ability to creating looping code, (due to the fact they are extremely > dangerous on unreliable hardware) except for 1 global loop that fires > about 200 times a second. > > Hypothesis: > Brains cannot calculate "iterative" problems quickly, where calculations > in the previous iteration are needed for the next iteration and, where > brute force operations are the only valid option. > > Proof: > Take as an example, Fibonacci numbers > http://en.wikipedia.org/wiki/Fibonacci_number > > What are the first 100 Fibonacci numbers? > > int Fibonacci[102]; > Fibonacci[0] = 0; > Fibonacci[1] = 1; > for(int i = 0; i < 100; i++) > { > // Getting the next Fibonacci number relies on the previous values > Fibonacci[i+2] = Fibonacci[i] + Fibonacci[i+1]; > } > > My brain knows the process to solve this problem but it can't directly > write a looping construct into itself. And so it solves it very slowly > compared to a computer. > > The brain probably consists of vast repeating look-up tables. Of course, > run in parallel these seem fast. > > > DNA has vast tracks of repeating data. Why would DNA contain repeating > data, instead of just having the data once and the number of times it's > repeated like in a loop? One explanation is that DNA can't do looping > construct either. > > > > On Wed, 2010-07-14 at 02:43 +0100, Mike Tintner wrote: > > Michael: We can't do operations that > > require 1,000,000 loop iterations. I wish someone would give me a PHD > > for discovering this ;) It far better describes our differences than any > > other theory. > > > > Michael, > > > > This isn't a competitive point - but I think I've made that point several > > times (and so of course has Hawkins). Quite obviously, (unless you think > > the > > brain has fabulous hidden powers), it conducts searches and other > > operations > > with extremely few limited steps, and nothing remotely like the routine > > millions to billions of current computers. It must therefore work v. > > fundamentally differently. > > > > Are you saying anything significantly different to that? > > > > -------------------------------------------------- > > From: "Michael Swan" <ms...@voyagergaming.com> > > Sent: Wednesday, July 14, 2010 1:34 AM > > To: "agi" <agi@v2.listbox.com> > > Subject: Re: [agi] What is the smallest set of operations that can > > potentially define everything and how do you combine them ? > > > > > > > > On Tue, 2010-07-13 at 07:00 -0400, Ben Goertzel wrote: > > >> Well, if you want a simple but complete operator set, you can go with > > >> > > >> -- Schonfinkel combinator plus two parentheses > > >> > > > I'll check this out soon. > > >> or > > >> > > >> -- S and K combinator plus two parentheses > > >> > > >> and I suppose you could add > > >> > > >> -- input > > >> -- output > > >> -- forget > > >> > > >> statements to this, but I'm not sure what this gets you... > > >> > > >> Actually, adding other operators doesn't necessarily > > >> increase the search space your AI faces -- rather, it > > >> **decreases** the search space **if** you choose the right operators, > > >> that > > >> encapsulate regularities in the environment faced by the AI > > > > > > Unfortunately, an AGI needs to be absolutely general. You are right that > > > higher level concepts reduce combinations, however, using them, will > > > increase combinations for "simpler" operator combinations, and if you > > > miss a necessary operator, then some concepts will be impossible to > > > achieve. The smallest set can define higher level concepts, these > > > concepts can be later integrated as "single" operations, which means > > > using "operators than can be understood in terms of smaller operators" > > > in the beginning, will definitely increase you combinations later on. > > > > > > The smallest operator set is like absolute zero. It has a defined end. A > > > defined way of finding out what they are. > > > > > > > > > > > >> > > >> Exemplifying this, writing programs doing humanly simple things > > >> using S and K is a pain and involves piling a lot of S and K and > > >> parentheses > > >> on top of each other, whereas if we introduce loops and conditionals and > > >> such, these programs get shorter. Because loops and conditionals happen > > >> to match the stuff that our human-written programs need to do... > > > Loops are evil in most situations. > > > > > > Let me show you why: > > > Draw a square using put_pixel(x,y) > > > // loops are more scalable, but, damage this code anywhere and it can > > > potentially kill every other process, not just itself. This is why > > > computers die all the time. > > > > > > for (int x = 0; x < 2; x++) > > > { > > > for (int y = 0; y < 2; y++) > > > { > > > put_pixel(x,y); > > > } > > > } > > > > > > opposed to > > > /* The below is faster (even on single step instructions), and can be > > > run in parallel, damage resistant ( ie destroy put_pixel(0,1); and the > > > rest of the code will still run), is less scalable ( more code is > > > required for larger operations) > > > > > > put_pixel(0,0); > > > put_pixel(0,1); > > > put_pixel(1,0); > > > put_pixel(1,1); > > > > > > The lack of loops in the brain is a fundamental difference between > > > computers and brains. Think about it. We can't do operations that > > > require 1,000,000 loop iterations. I wish someone would give me a PHD > > > for discovering this ;) It far better describes our differences than any > > > other theory. > > > > > > > > >> A better question IMO is what set of operators and structures has the > > >> property that the compact expressions tend to be the ones that are useful > > >> for survival and problem-solving in the environments that humans and > > >> human- > > >> like AIs need to cope with... > > > > > > For me that is stage 2. > > > > > >> > > >> -- Ben G > > >> > > >> On Tue, Jul 13, 2010 at 1:43 AM, Michael Swan <ms...@voyagergaming.com> > > >> wrote: > > >> > Hi, > > >> > > > >> > I'm interested in combining the simplest, "most derivable" operations > > >> > ( eg operations that cannot be defined by other operations) for > > >> > creating > > >> > seed AGI's. The simplest operations combined in a multitude ways can > > >> > form extremely complex patterns, but the underlying logic may be > > >> > simple. > > >> > > > >> > I wonder if varying combinations of the smallest set of operations: > > >> > > > >> > { ">" , memory ("=" for memory assignment), "==", (a logical way to > > >> > combine them), (input, output), () "brackets" } > > >> > > > >> > can potentially learn and define everything. > > >> > > > >> > Assume all input is from numbers. > > >> > > > >> > We want the smallest set of elements, because less elements mean less > > >> > combinations which mean less chance of hitting combinatorial explosion. > > >> > > > >> > ">" helps for generalisation, reducing combinations. > > >> > > > >> > memory(=) is for hash look ups, what should one remember? What can be > > >> > discarded? > > >> > > > >> > "==" This does a comparison between 2 values x == y is 1 if x and y are > > >> > exactly the same. Returns 0 if they are not the same. > > >> > > > >> > (a logical way to combine them) Any non-narrow algorithm that reduces > > >> > the raw data into a simpler state will do. Philosophically like > > >> > Solomonoff Induction. This is the hardest part. What is the most > > >> > optimal > > >> > way of combining the above set of operations? > > >> > > > >> > () brackets are used to order operations. > > >> > > > >> > > > >> > > > >> > > > >> > Conditionals (only if statements) + memory assignment are the only > > >> > valid > > >> > form of logic - ie no loops. Just repeat code if you want loops. > > >> > > > >> > > > >> > If you think that the set above cannot define everything, then what is > > >> > the smallest set of operations that can potentially define everything? > > >> > > > >> > ------------------------------------------------------------------ > > >> > Some proofs / Thought experiments : > > >> > > > >> > 1) Can ">", "==", (), and memory define other logical operations like & > > >> > ("AND" gate) ? > > >> > > > >> > I propose that "x==y==1" defines "x&y" > > >> > > > >> > x&y x==y==1 > > >> > 0&0 = 0 0==0==1 = 0 > > >> > 1&0 = 0 1==0==1 = 0 > > >> > 0&1 = 0 0==1==1 = 0 > > >> > 1&1 = 1 1==1==1 = 1 > > >> > > > >> > It means "&" can be completely defined using "==" therefore "&" is not > > >> > one of the smallest possible general concepts. "&" can be potentially > > >> > "learnt" from "==". > > >> > > > >> > ----------------------------------------------------------------- > > >> > > > >> > 2) Write a algorithm that can define "1" using only >,==, (). > > >> > > > >> > Multiple answers > > >> > a) "discrete 1 could use" > > >> > x == 1 > > >> > > > >> > b) "continuous 1.0 could use this rule" > > >> > For those not familiar with C++, "!" means "not" > > >> > (x > 0.9) && !(x > 1.1) expanding gives ( getting rid of "!" and > > >> > "&&") > > >> > (x > 0.9) == ((x > 1.1) == 0) == 1 note "!x" can be defined in terms > > >> > of "==" like so x == 0. > > >> > > > >> > (b) is a generalisation, and expansion of the definition of (a) and can > > >> > be scaled by changing the values "0.9" and "1.1" to fit what others > > >> > would generally define as being 1. > > >> > > > >> > > > >> > > > >> > > > >> > ------------------------------------------- > > >> > agi > > >> > Archives: https://www.listbox.com/member/archive/303/=now > > >> > RSS Feed: https://www.listbox.com/member/archive/rss/303/ > > >> > Modify Your Subscription: https://www.listbox.com/member/?& > > >> > Powered by Listbox: http://www.listbox.com > > >> > > > >> > > >> > > >> > > > > > > > > > > > > ------------------------------------------- > > > agi > > > Archives: https://www.listbox.com/member/archive/303/=now > > > RSS Feed: https://www.listbox.com/member/archive/rss/303/ > > > Modify Your Subscription: > > > https://www.listbox.com/member/?& > > > Powered by Listbox: http://www.listbox.com > > > > > > > > > > ------------------------------------------- > > agi > > Archives: https://www.listbox.com/member/archive/303/=now > > RSS Feed: https://www.listbox.com/member/archive/rss/303/ > > Modify Your Subscription: https://www.listbox.com/member/?& > > Powered by Listbox: http://www.listbox.com > > > > ------------------------------------------- > agi > Archives: https://www.listbox.com/member/archive/303/=now > RSS Feed: https://www.listbox.com/member/archive/rss/303/ > Modify Your Subscription: > https://www.listbox.com/member/?& > Powered by Listbox: http://www.listbox.com > > > > ------------------------------------------- > agi > Archives: https://www.listbox.com/member/archive/303/=now > RSS Feed: https://www.listbox.com/member/archive/rss/303/ > Modify Your Subscription: https://www.listbox.com/member/?& > Powered by Listbox: http://www.listbox.com ------------------------------------------- agi Archives: https://www.listbox.com/member/archive/303/=now RSS Feed: https://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: https://www.listbox.com/member/?member_id=8660244&id_secret=8660244-6e7fb59c Powered by Listbox: http://www.listbox.com