A machine can never ever surpass human intelligence

Strong AI is impossible

on fundamental matters such as existence, knowledge, values, reason, mind and ethics.

Moderators: kiore, Blip, The_Metatron

Re: A machine can never ever surpass human intelligence

#541  Postby SpeedOfSound » May 23, 2015 3:00 pm

scott1328 wrote:
SpeedOfSound wrote:heuristic
Code: Select all
package heur

object session {
   def abs(x:Double) = if(x>=0) x else -x    //> abs: (x: Double)Double
   def count = 0                             //> count: => Int
   
  def sqrtIter(guess: Double, x: Double): Double =
     if( isGoodEnough(guess, x) ) guess
     else sqrtIter( improve( guess, x), x)     //> sqrtIter: (guess: Double, x: Double)Double
     
   def isGoodEnough(guess:Double, x: Double) =
      abs(guess * guess - x)/x < 0.000001
                                                  //> isGoodEnough: (guess: Double, x: Double)Boolean
   
   def improve(guess: Double, x:Double): Double =
      (guess + x / guess) / 2           //> improve: (guess: Double, x: Double)Double
      
      
   def sqrt(x: Double) = sqrtIter(1.0, x)    //> sqrt: (x: Double)Double
   
   sqrt(2)                                   //> res0: Double = 1.4142135623746899
   sqrt(4)                                   //> res1: Double = 2.0000000929222947
   
   }


Could be adapted to order from a menu.

I would not call that a heuristic, it is an algorithm that applies Newton's method to calculate a square root. In this particular case it doesn't matter what the I initial estimate for the square root is, it will converge very rapidly and could be carried on to arbitrary precision.

I would say Newton's method is itself a heuristic.

As for picking items from a menu. it would serve very poorly for that purpose,


I think it qualifies. The algorithm takes it upon itself to 'go see'. It can be made to go see for any arbitrarily long period of time. It isn't calculating the answer it is applying a rule that gets arbitrarily closer to the answer. Much like I would walk further toward the object to figure it.

Now I did say could be adapted to pick from a menu. good_enough() would be some measure of my emotional reaction to the current selection. A random pick in the menu would start the process. I may back up to a former pick and reconsider by measuring against picks that followed it's original reading. I actually do this when I order at a restaurant. It's an algorithm I am familiar with. I usually end up with prime rib. And then I hate myself.
User avatar
SpeedOfSound
RS Donator
 
Posts: 32093
Age: 73
Male

Kyrgyzstan (kg)
Print view this post

Re: A machine can never ever surpass human intelligence

#542  Postby scott1328 » May 23, 2015 3:04 pm

SpeedOfSound wrote:
scott1328 wrote:
SpeedOfSound wrote:heuristic
Code: Select all
package heur

object session {
   def abs(x:Double) = if(x>=0) x else -x    //> abs: (x: Double)Double
   def count = 0                             //> count: => Int
   
  def sqrtIter(guess: Double, x: Double): Double =
     if( isGoodEnough(guess, x) ) guess
     else sqrtIter( improve( guess, x), x)     //> sqrtIter: (guess: Double, x: Double)Double
     
   def isGoodEnough(guess:Double, x: Double) =
      abs(guess * guess - x)/x < 0.000001
                                                  //> isGoodEnough: (guess: Double, x: Double)Boolean
   
   def improve(guess: Double, x:Double): Double =
      (guess + x / guess) / 2           //> improve: (guess: Double, x: Double)Double
      
      
   def sqrt(x: Double) = sqrtIter(1.0, x)    //> sqrt: (x: Double)Double
   
   sqrt(2)                                   //> res0: Double = 1.4142135623746899
   sqrt(4)                                   //> res1: Double = 2.0000000929222947
   
   }


Could be adapted to order from a menu.

I would not call that a heuristic, it is an algorithm that applies Newton's method to calculate a square root. In this particular case it doesn't matter what the I initial estimate for the square root is, it will converge very rapidly and could be carried on to arbitrary precision.

I would say Newton's method is itself a heuristic.

As for picking items from a menu. it would serve very poorly for that purpose,


I think it qualifies. The algorithm takes it upon itself to 'go see'. It can be made to go see for any arbitrarily long period of time. It isn't calculating the answer it is applying a rule that gets arbitrarily closer to the answer. Much like I would walk further toward the object to figure it.

Now I did say could be adapted to pick from a menu. good_enough() would be some measure of my emotional reaction to the current selection. A random pick in the menu would start the process. I may back up to a former pick and reconsider by measuring against picks that followed it's original reading. I actually do this when I order at a restaurant. It's an algorithm I am familiar with. I usually end up with prime rib. And then I hate myself.

I would not apply the label heuristic to any algorithm that always arrives unerringly and efficiently at the provably correct result.

By your definition all numerical methods for approximating real-valued functions are heuristics. Even those that have calculated the expansion pi to billions of digits.
User avatar
scott1328
 
Name: Some call me... Tim
Posts: 8849
Male

United States (us)
Print view this post

Re: A machine can never ever surpass human intelligence

#543  Postby GrahamH » May 23, 2015 5:25 pm

One of the benefits of heuristic algorithms is that they can get you a good enough answer when there is no provably correct one.
A heuristic menu selection algorithm would learn what constitutes a good enough selection.
Why do you think that?
GrahamH
 
Posts: 20419

Print view this post

Re: A machine can never ever surpass human intelligence

#544  Postby SpeedOfSound » May 23, 2015 8:09 pm

So much for abstraction.

Give me a concrete design for a heuristic algorithm that finds square roots.
User avatar
SpeedOfSound
RS Donator
 
Posts: 32093
Age: 73
Male

Kyrgyzstan (kg)
Print view this post

Re: A machine can never ever surpass human intelligence

#545  Postby SpeedOfSound » May 23, 2015 8:35 pm

Granted the pop definition of heuristics is non-algorithmic. But as a computer professional I don't know what the fuck that really means. I suspect it's fluff-doodle as par. I also strongly suspect that these discussions about AI are never cleared because of this exact putrid fluff.
User avatar
SpeedOfSound
RS Donator
 
Posts: 32093
Age: 73
Male

Kyrgyzstan (kg)
Print view this post

Re: A machine can never ever surpass human intelligence

#546  Postby newolder » May 23, 2015 8:44 pm

The square root of X can be written as X1/2 (as long as X > 0) and has 'plus' and 'minus' solutions.
Let Z = X1/2
Then ln (Z) = 1/2 ln (X) and therefore Z = (plus or minus) exp(0.5 * ln(X)) is a suitable algorithm (its not a heuristic tho') and requires a math library with functions for exponentiation and taking logarithms. :dunno:
I am, somehow, less interested in the weight and convolutions of Einstein’s brain than in the near certainty that people of equal talent have lived and died in cotton fields and sweatshops. - Stephen J. Gould
User avatar
newolder
 
Name: Albert Ross
Posts: 7876
Age: 3
Male

Country: Feudal Estate number 9
Print view this post

Re: A machine can never ever surpass human intelligence

#547  Postby SpeedOfSound » May 23, 2015 11:59 pm

newolder wrote:The square root of X can be written as X1/2 (as long as X > 0) and has 'plus' and 'minus' solutions.
Let Z = X1/2
Then ln (Z) = 1/2 ln (X) and therefore Z = (plus or minus) exp(0.5 * ln(X)) is a suitable algorithm (its not a heuristic tho') and requires a math library with functions for exponentiation and taking logarithms. :dunno:

So what kind of code do we find in a heuristic program?
User avatar
SpeedOfSound
RS Donator
 
Posts: 32093
Age: 73
Male

Kyrgyzstan (kg)
Print view this post

Re: A machine can never ever surpass human intelligence

#548  Postby newolder » May 24, 2015 12:06 am

A quick search on - heuristic program -, brought this:
A branch of artificial intelligence, which uses heuristics -- common-sense rules drawn from experience -- to solve problems. This is in contrast to algorithmic programming, which is based on mathematically provable procedures. Heuristic programming is characterized by programs that are self-learning; they get better with experience. Heuristic programs do not always reach the very best result but usually produce a good result. Many expert systems use heuristic programming.
I am, somehow, less interested in the weight and convolutions of Einstein’s brain than in the near certainty that people of equal talent have lived and died in cotton fields and sweatshops. - Stephen J. Gould
User avatar
newolder
 
Name: Albert Ross
Posts: 7876
Age: 3
Male

Country: Feudal Estate number 9
Print view this post

Re: A machine can never ever surpass human intelligence

#549  Postby scott1328 » May 24, 2015 12:08 am

SpeedOfSound wrote:So much for abstraction.

Give me a concrete design for a heuristic algorithm that finds square roots.

for very large integers X

Arrange arrange X blocks into a square array. When finished count the number of blocks on edge, then on the other edge. Take the average of the two edge counts. That is an approximation of the square root of X
User avatar
scott1328
 
Name: Some call me... Tim
Posts: 8849
Male

United States (us)
Print view this post

Re: A machine can never ever surpass human intelligence

#550  Postby GrahamH » May 24, 2015 2:40 am

Genetic algorithms and simulated annealing are examples of heuristic algorithms.
Why do you think that?
GrahamH
 
Posts: 20419

Print view this post

Re: A machine can never ever surpass human intelligence

#551  Postby SpeedOfSound » May 24, 2015 4:04 am

scott1328 wrote:
SpeedOfSound wrote:So much for abstraction.

Give me a concrete design for a heuristic algorithm that finds square roots.

for very large integers X

Arrange arrange X blocks into a square array. When finished count the number of blocks on edge, then on the other edge. Take the average of the two edge counts. That is an approximation of the square root of X


How do you get a computer to arrange the blocks?
User avatar
SpeedOfSound
RS Donator
 
Posts: 32093
Age: 73
Male

Kyrgyzstan (kg)
Print view this post

Re: A machine can never ever surpass human intelligence

#552  Postby SpeedOfSound » May 24, 2015 4:16 am

newolder wrote:A quick search on - heuristic program -, brought this:
A branch of artificial intelligence, which uses heuristics -- common-sense rules drawn from experience -- to solve problems. This is in contrast to algorithmic programming, which is based on mathematically provable procedures. Heuristic programming is characterized by programs that are self-learning; they get better with experience. Heuristic programs do not always reach the very best result but usually produce a good result. Many expert systems use heuristic programming.


So we have data drawn from our experience and fed into a computer algorithm to give some answer. In the scala code above the 'guess' can be construed as such data. The improve function is a convergent algorithm.

If we had pure heuristics we would have a table of the right answers. Input from somewhere else. I just don't see a foundational difference between heuristics and algorithm. Other than that we have removed the solution and error quantification from the computer and assigned them to some nebulous procedures outside the program. We can always imagine a nebulous outside. Much like we imagine that our minds do some magical and nebulous thing outside of our detailed understanding to pick an item from a menu.

So what I am getting at is that when these discussions of the human vs machine intelligence come up the group that insists it isn't possible are just deferring to god of the gap arguments. If I pick an item from a menu my limbic system is the goodenough function, the menus item placement and colors are the guess, and my reading skills are the improve function. I see no difference of substance here.
User avatar
SpeedOfSound
RS Donator
 
Posts: 32093
Age: 73
Male

Kyrgyzstan (kg)
Print view this post

Re: A machine can never ever surpass human intelligence

#553  Postby scott1328 » May 24, 2015 4:22 am

SpeedOfSound wrote:
scott1328 wrote:
SpeedOfSound wrote:So much for abstraction.

Give me a concrete design for a heuristic algorithm that finds square roots.

for very large integers X

Arrange arrange X blocks into a square array. When finished count the number of blocks on edge, then on the other edge. Take the average of the two edge counts. That is an approximation of the square root of X


How do you get a computer to arrange the blocks?

I am unsure why you would want to. We've gone long way from ordering from a menu at this point.

Arranging blocks in a square is easy for humans or computer.

Block 1 at 0,0
Block 2 at 0,1
Block 3 at 1,1
Block 4 at 1,0, square incomplete
Block 5 at 0,2
Block 6 at 1,2
Block 7 at 2,2
Block 8 at 2,1
Block 9 at 2,0, square complete
Block 10 at 0,3
Block 11 at 1,3
Block 12 at 2,3
Block 13 at 3,3
Block 14 at 3,2
Block 15 at 3,1
Block 16 at 3,0 square complete
User avatar
scott1328
 
Name: Some call me... Tim
Posts: 8849
Male

United States (us)
Print view this post

Re: A machine can never ever surpass human intelligence

#554  Postby GrahamH » May 24, 2015 8:47 am

Arranging blocks can take many forms. A pixel flood fill would be one example. A particle physics simulation would be another.
Why do you think that?
GrahamH
 
Posts: 20419

Print view this post

Re: A machine can never ever surpass human intelligence

#555  Postby GrahamH » May 24, 2015 8:49 am

It seems to me there is a distinction that can be drawn between an algorithm that implements a heuristic (rule of thumb procedure humans have learned by experience), and an algorithm that constructs heuristics (learning algorithm that finds solutions not known to a human programmer).

The first is barely relevant to GI. The second is key.
Why do you think that?
GrahamH
 
Posts: 20419

Print view this post

Re: A machine can never ever surpass human intelligence

#556  Postby newolder » May 24, 2015 9:48 am

SpeedOfSound wrote:
newolder wrote:A quick search on - heuristic program -, brought this:
A branch of artificial intelligence, which uses heuristics -- common-sense rules drawn from experience -- to solve problems. This is in contrast to algorithmic programming, which is based on mathematically provable procedures. Heuristic programming is characterized by programs that are self-learning; they get better with experience. Heuristic programs do not always reach the very best result but usually produce a good result. Many expert systems use heuristic programming.


So we have data drawn from our experience and fed into a computer algorithm to give some answer. In the scala code above the 'guess' can be construed as such data. The improve function is a convergent algorithm.

If we had pure heuristics we would have a table of the right answers. Input from somewhere else. I just don't see a foundational difference between heuristics and algorithm. Other than that we have removed the solution and error quantification from the computer and assigned them to some nebulous procedures outside the program. We can always imagine a nebulous outside. Much like we imagine that our minds do some magical and nebulous thing outside of our detailed understanding to pick an item from a menu.

So what I am getting at is that when these discussions of the human vs machine intelligence come up the group that insists it isn't possible are just deferring to god of the gap arguments. If I pick an item from a menu my limbic system is the goodenough function, the menus item placement and colors are the guess, and my reading skills are the improve function. I see no difference of substance here.

Well, I'm no expert in any of these matters but I was under the impression that the difference between algorithms and "what humans do" is neatly summed up in Turing's Halting problem. Algorithms that sum terms like 2-p, increment p and continue until p halts (the oddly named Chaitin's constant) are undecidable by the algorithm (incrementing p does not cause it to halt and so it continues for ever) but not by the human (who knows that p never halts). I've no idea how to implement a heuristic to solve this problem but perhaps it is already achieved. :dunno:
I am, somehow, less interested in the weight and convolutions of Einstein’s brain than in the near certainty that people of equal talent have lived and died in cotton fields and sweatshops. - Stephen J. Gould
User avatar
newolder
 
Name: Albert Ross
Posts: 7876
Age: 3
Male

Country: Feudal Estate number 9
Print view this post

Re: A machine can never ever surpass human intelligence

#557  Postby GrahamH » May 24, 2015 11:01 am

What examples do we have of HPs that humans can solve and algorithms cannot?

Earlier we had the chessboard & domino problem that can be solved by spotting a pattern. 2x1 dominoes must cover one white and one black square. Excluding two white or two black squares on a chessboard makes this impossible, so the tiling problem has no solution.

It doesn't seem inconceivable that an algorithm could discover such patterns and correspondences.

Much of 'what humans do' seems to be spotting patterns and correspondences and making connections between domains. Most algorithms are highly domain specific, probably because those are the problems we humans can manage to solve algorithmically.
Why do you think that?
GrahamH
 
Posts: 20419

Print view this post

Re: A machine can never ever surpass human intelligence

#558  Postby SpeedOfSound » May 24, 2015 11:02 am

A brilliant answer from stackoverflow:
An algorithm is the description of an automated solution to a problem. What the algorithm does is precisely defined. The solution could or could not be the best possible one but you know from the start what kind of result you will get. You implement the algorithm using some programming language to get (a part of) a program.

Now, some problems are hard and you may not be able to get an acceptable solution in an acceptable time. In such cases you often can get a not too bad solution much faster, by applying some arbitrary choices (educated guesses): that's a heuristic.

A heuristic is still a kind of an algorithm, but one that will not explore all possible states of the problem, or will begin by exploring the most likely ones.

Typical examples are from games. When writing a chess game program you could imagine trying every possible move at some depth level and applying some evaluation function to the board. A heuristic would exclude full branches that begin with obviously bad moves.

In some cases you're not searching for the best solution, but for any solution fitting some constraint. A good heuristic would help to find a solution in a short time, but may also fail to find any if the only solutions are in the states it chose not to try.

http://stackoverflow.com/questions/2334 ... -algorithm

My square root program above is clearly like this in the abstract. It does iterate but only with guesses and answer checking. no different than any knowledge based expert system.

On abstraction the only difference I see is the reliance on data statistic structure outside of the program and complexity. The former is actually present in any program to some degree. A servo is intelligent in this fashion. I've no idea what the fuss is here.

But! As usual we can clear it all up by coming up with a CONCRETE example of heuristic code to contrast with the code I provided. Naming programs is not a concrete example. The square block method is a one-iter that would require relaxing good enough considerably.

Lets' say we have this small computer that we program and then imagine we hook it up to this much bigger computer called World that someone else programmed. See what I did there?
User avatar
SpeedOfSound
RS Donator
 
Posts: 32093
Age: 73
Male

Kyrgyzstan (kg)
Print view this post

Re: A machine can never ever surpass human intelligence

#559  Postby GrahamH » May 24, 2015 11:09 am

SpeedOfSound wrote:But! As usual we can clear it all up by coming up with a CONCRETE example of heuristic code to contrast with the code I provided. Naming programs is not a concrete example. The square block method is a one-iter that would require relaxing good enough considerably.


You can't have a 'concrete example of a heuristic code'. That's why it's call heuristic, the code you can write does not define the solutions it might produce.

You could look at the code for a deep learning ANN and it won't tell you much at all about how it discriminates cats from elephants.
How does Watson know the answer to the Jeopardy question about the third US president? You can't find that by just looking at the code. You have to look at the 'experience' of the Watson system, to see what it has 'learned' and how it 'reasons'.
Why do you think that?
GrahamH
 
Posts: 20419

Print view this post

Re: A machine can never ever surpass human intelligence

#560  Postby SpeedOfSound » May 24, 2015 11:20 am

GrahamH wrote:
SpeedOfSound wrote:But! As usual we can clear it all up by coming up with a CONCRETE example of heuristic code to contrast with the code I provided. Naming programs is not a concrete example. The square block method is a one-iter that would require relaxing good enough considerably.


You can't have a 'concrete example of a heuristic code'. That's why it's call heuristic, the code you can write does not define the solutions it might produce.

...

Let me rephrase for a deeper understanding. SHOW ME the code! Even heuristic programs have code right? Or are we actually talking about servos?
User avatar
SpeedOfSound
RS Donator
 
Posts: 32093
Age: 73
Male

Kyrgyzstan (kg)
Print view this post

PreviousNext

Return to Philosophy

Who is online

Users viewing this topic: No registered users and 2 guests