Human Intelligence
What really is human intelligence? I am not a fan of lifting other peoples definitions unless they resonate with me. People can make definite statements of certain things like in physics where we know that the definition of force is given by the equation F = MA, which is not revocable no matter how you contest it. It is a fact stated in math. It’s a fact as strong as 2 + 2 = 4. You cannot create another answer for 2 + 2 = 4 using the standard understanding of the basic arithmetic operators. You can create another operator that defines addition in a different way but the basic arithmetic operator cannot be changed.
What really is human intelligence? I am not a fan of lifting other peoples definitions unless they resonate with me. People can make definite statements of certain things like in physics where we know that the definition of force is given by the equation F = MA, which is not revocable no matter how you contest it. It is a fact stated in math. It’s a fact as strong as 2 + 2 = 4. You cannot create another answer for 2 + 2 = 4 using the standard understanding of the basic arithmetic operators. You can create another operator that defines addition in a different way but the basic arithmetic operator cannot be changed.
This does not apply to definitions in non-systematic natural languages like the English language. In English, a word usually stands for certain things, but certain words can stand for many things, this ambiguity of natural languages makes it difficult to ascertain exactly what is a fact because in many cases one person’s fact is not usually that of another person. People hear the same word and imagine many things.
This doesn’t mean that there are no English words that are not definite in what they mean, like the word red means the red colour. It can mean a lot of other things but anyone who hears the word"red" is apt to think of some red object.
There are more facts in mathematics because mathematics is a definite and systematic language. The world of mathematics is finite, it is defined by axiom systems and all mathematical truths or fact must be derived from these basic axiom systems. When a mathematical statement is made in a theorem, a proof of it can be derived in the axiom system of mathematics. The proof, to be correct, must mean what it means, that is it cannot mean another thing. Once a statement is true, it is true in the axiom systems of mathematics, it is a fact.
Although the field of mathematics has its contradictions like the one exposed by Kurt Godel, in the majority of cases, mathematical results are unequivocally true and as such are a solid fact.
Closer to mathematics is the field of physical science known as physics. Physics explores the physical laws of nature and states its results in a factual form called an equation. An equation explicates the relationships between physically measurable variables represented with symbols. Science is the systematic exploration of knowledge and physics is the language where facts can be easily obtained through experimentation and verification of theories, thus we have facts in physics. These facts have further backing that they are written in the language of science which is mathematics.
When we move to the biological science and eventually to the social sciences we find that getting definite equations for the behaviour of these systems becomes very difficult, making it increasingly difficult to derive facts that hold in all situations like we are used to in physics. Thus in something like the social sciences we have few facts and lots of conventions because we are dealing with elements whose nature cannot always be known to a high degree of accuracies like in physics or chemistry.
When we step out of systematic languages like mathematics and enter the mushy world of human languages, we are faced with increasing difficulties and it becomes very hard to make definite descriptions of facts. We now tend to rely more on convention than on hard facts as can be observed in the sciences.
This chapter deals with human intelligence, one of the most misunderstood topics in the world right now. We never really thought seriously about the nature of human intelligence until the advent of the modern computer. Philosophers of all ages had contemplated the issue of human intelligence like they had contemplated other things some of which includes the nature of God, the Universe, Life, etc.
When faced with some physical object like a stone, if we ask the question, what is a stone? Without science, we can describe what a stone is by the actions we know it to perform such: A stone is a small piece of rock that we throw at things or just leave there. But with our science we can define a stone as a rock, then include information about how it was formed, what type of rock it is and it's chemical composition. This is what we call scientific knowledge. We reduce things to what we can objectify.
When thinking about things we cannot objectify our brains rely on its faculty for speculation using its knowledge base much more freely than when we are dealing with an objective fact. The nature of the development of our brains, its structure and the history of our experiences will determine the kinds of speculations we arrive at.
This work is not an exploration of the nature of human intelligence itself, that is a huge topic for psychology and philosophy. What I am interested in is in the question of Artificial intelligence. How should we go about it in the most efficient of ways?
If we cannot appropriately define the word intelligence at least as it occurs in humans, we cannot build a machine that encodes that intelligence. The problem with artificial intelligence is not lack of human ingenuity to solve the problem, it is more of the problem of not defining the problem properly. How can we define our intelligence using our intelligence? What do we code?
Natural language understanding
The problem with natural language is that it is so ambiguous that if we take the title of this subtopic “natural language understanding” we find out that I used a word “understanding” without properly describing what the word "understanding" means. My attempt to describe what the word "understanding" means will require that I employ more words which might not have one meaning and thus various connotations.
This is one of the biggest problems we face in the world: The fact that we think and speak in a natural language most of the time. You must have glanced over those few words with the assumption that you understood what it meant but if I ask you what understanding really meant you will definitely maybe reach for a dictionary and produce some definition or define it based on your memory of the word as it is defined in the dictionary which uses other words too whose meaning we cannot really understand in a formal definite way.
If it is difficult to get a definite understanding of what the words “understanding” means, then what do we mean by “meaning”?
When natural language is used to represent things that can be easily observed in the physical world, like an apple, it is very useful. We use the suitcase word apple to represent that distinct piece of the physical environment which we can identify separately as an apple. But when we start using natural language to talk about concepts that we cannot point a finger at, the world of mushiness begins.
In human interactions, this mushiness can be tolerated. We are social animals and have the need to communicate. When this communication is about physically observable things, it is direct and efficient. But when we start having concepts for which you cannot point a finger at, natural language must then rely on conventions or accepted definitions.
Science would not be possible without the definite systematic language of mathematics. An objective way to symbolize the things we observe in the physical world, things that can move a needle on some kind of measuring device. If asked what is a force? Since we cannot point at it, without mathematics such concepts will be difficult to define. With natural language, we can go on to use other words, which will still not give a person some direct contact with the concept of force. But with the language of mathematics, we can narrow down the general statement force to some specific kind of force, maybe physical force that interacts with a gross object or electrical force that interacts with an electron. Either way, we can state what we mean using an equation and that will suffice for the definition of force. In physical force we can say force is the mass of an object multiplied by the acceleration it is moving at, symbolized by F = MA, where F denotes force, M denotes mass and A stands for the acceleration. This is a statement of fact! Executable when we put actual values to represent the variables represented in this equations with the symbols F, M and A.
This is the kind of definite thinking that has lead to all the progress in the physical sciences and technology. We don’t think about the qualities of an object as such, we focus on the quantitative aspects. If you want to define the colour red in a natural language you will have to resort to red objects, like a red apple since redness without some objectification is hard to describe. But in science, we know that red is part of the colour spectrum with a wavelength between 620 and 750 nanometers. This is a definite fact and can be measured and will stay true all the time.
Without the language of mathematics, science will be very impossible because English words don’t provide definite meanings and are filled with conventions that not all people share.
The biggest problem in artificial intelligence is not the artificial part of the phrase, which simply means “made by man”, but the intelligence part for which, depending on who you ask you will always get a different explanation.
Natural language is such a handicap that thinking in terms of it alone will not lead us to demonstrable fact and we have to rely on mathematics in the sciences.
Computer languages
With the need to automate calculations we invented computers, which needed to be programmed to perform their tasks so we invented computer languages as a way to specify the instructions on how to perform our calculations with the computer.
Computer languages evolved, by human effort from the machine language used in the earliest of computers, to the high-level languages that gave us our desktop/mobile applications. It did this by a continuous process of abstraction where a lower level language was used to build a higher level language. This abstraction ladder has peaked out of recent with no new layers being built atop the very high-level language like Python, JavaScript and the knowledge-based language Wolfram.
The reason for the break in building abstractions is due to the fact that once we were able to build languages with functions, there was no need to build a layer above the very high-level languages anymore. We could build any required abstractions using the functions that were already within the languages. The Class in object-oriented programming is such an abstraction where a bundle of functions called methods and some data are bundled together and given a name so they function as a unit. With some extra mechanisms attached to the class, we can build higher mountains of abstractions to encode the solutions to any programming problem we can encounter. In reality, the Class abstraction is just extra padding to ease large scale software development and some other special programming scenarios but it is hardly a major generalization and so therefore not fundamental to the task of computation.
Computer languages enabled us to automate calculations and also provided us with a tool far more expressive than regular mathematics. In mathematics, you are only allowed to explore that which follows the axiom systems of mathematics, while in programming you are able to create and explore any kind of system you want to explore.
Computer programming is more general than mathematics, it is also as systematic as mathematics and enables us to make factual statements about things the same way you will do with mathematics. The reason why computer programming is as powerful as mathematics is that no matter what you say in it, it must, first of all, conform to the syntax of the language in which you are coding on and produce a result that determines the meaning of the program. If the meaning is what you want then the program is correct.
There are other issues about proofs of correctness in programs, but this only becomes relevant for sufficiently large programs. For small programs, you can say definitely that what you see as the output of the program confirms that the program is correct if the output is what you expect.
There are ways of using testing tools in programming to assure program correctness, these tools enable you to write tests, further validating your output. In programming, the proof is in the pudding.
The need for a symbolic discourse language
As we have seen earlier, natural language is too mushy to rely on for hard reasoning. Many people have thought logic will supersede natural language but they too found out that logic is too limited in expression to contain all the vicissitudes of human thinking. Programming eventually came out as the most powerful way to systematically express ideas about computing, and now also in artificial intelligence.
Programming in its current form is complete as a means of instructing computers, but if we are to be able to express our thoughts systematically then we have to build a layer of abstraction on top of the already built abstraction hierarchy of programming languages.
A symbolic discourse language, just like mathematics has done for science and programming is doing for computational thinking and traditional software engineering will enable us to express all kinds of thoughts and ideas, that we would normally have expressed in natural language, so definitely that they will be capable of being executed automatically by a computer.
If you are able to express the concept of intelligence in this kind of language, you will be able to automatically create a software image of exactly what this intelligence is and this software image if executed will probably possess the feats of intelligence that you have described.
Imagine a scenario where you are trying to use natural language to communicate the idea of what intelligence is to a friend. As you mention the words containing your ideas, the friend will have certain images and ideas come up in their minds. Now take this a step further. Imagine a symbolic discourse language. The exact form it will take is something completely alien to my understanding, but theoretically, let's say we have some language that produces some output such that if we expressly define the colour red in this language it is able to give us some executable data that will put out red on the screen, maybe a red disk. Forgive me these lines of thought are so alien to me we must enter sci-fi mode to make explanations clearer because I am going to create technologies that don’t yet exist.
Now back to red again. If we have some global computer infrastructure that has access to matter at the atomic level, such that if you describe something like a red apple you could see one in your hand! Directly synthesized from the atoms in your vicinity. Now for a tamer form of this technology, you can imagine that if you type red apple in some symbolic discourse language it will display one on the screen, synthesized from the computers operating systems, or if you type red, it will fill the screen with red. Now back to the one able to affect nature. Now lets say that after passing some regulatory agency in the hypothetical future you can be allowed to deploy the soft copy of your program which has been tested in a simulated environment to the real world, you would just take your program, maybe expressing the description of an apple tree with fruits including all sorts of details like the GPS location of where you want to deploy your code and including maybe your land right document also as code in this SDL (symbolic discourse language), you could run the code and boom! Out of the matter available, you have an apple tree, of course with red fruits.
Now in this world, if you wanted to create an AI, you would just describe the attributes of the AI in the SDL, and run it in the simulation and you would have an AI agent may be embodied in a human being or other object may be a crystal shape existing in this world. You could then test it, debug it like you would do a normal program. Then if given permission by regulation you could deploy it in the physical world. If you do not embody it in some object, and you just want the code, the output of the SDL will then be computer code in a normal programming language like a machine language and you could deploy your code from the simulated environment into the physical environment in a standard computer and you would have an artificially intelligent software.
In my opinion, this is a very valid path for AI development. The SDL will allow us to describe in a definite language as powerful as mathematics, what we think intelligence is. We don’t even need to know what human intelligence really is, we can just fill in the effects we have observed and described as intelligence and with the definiteness of this language, once we encode the ideas in the SDL, just like executable computer code or mathematics, the ideas are real and exist because they can be executed and have some kind of output.
The SDL itself will define the rules of combination of the ideas and will be as full-fledged as any modern programming language with I think a lot more features or less depending on how this will be conceptualized.
For clarity I will repeat, the thing we are describing with the SDL are the things themselves, not information about the things. If we describe red in the SDL and execute it in the sandbox simulated environment, it might just fill the screen with red. If we say red apple, it will produce a red apple on the screen. If we say red apple on a tree it will go further to put the apple on a real tree. If we say instantiate in the real world, and include the GPS location and other information, after passing approval by the future world team regulating atomic manifestation, it will appear fully formed in the location of our choosing.
Now if we forget physical objects like apples for a while, and focus on concepts like AI software, then we can describe AI and then execute and it will generate from all it knows the concept that we encoded in the SDL automatically. If the AI looks like what we want and passes our test, then we can instantiate it in the physical world and it will produce some machine code that we can run on some practical computer!
This doesn’t mean that there are no English words that are not definite in what they mean, like the word red means the red colour. It can mean a lot of other things but anyone who hears the word"red" is apt to think of some red object.
There are more facts in mathematics because mathematics is a definite and systematic language. The world of mathematics is finite, it is defined by axiom systems and all mathematical truths or fact must be derived from these basic axiom systems. When a mathematical statement is made in a theorem, a proof of it can be derived in the axiom system of mathematics. The proof, to be correct, must mean what it means, that is it cannot mean another thing. Once a statement is true, it is true in the axiom systems of mathematics, it is a fact.
Although the field of mathematics has its contradictions like the one exposed by Kurt Godel, in the majority of cases, mathematical results are unequivocally true and as such are a solid fact.
Closer to mathematics is the field of physical science known as physics. Physics explores the physical laws of nature and states its results in a factual form called an equation. An equation explicates the relationships between physically measurable variables represented with symbols. Science is the systematic exploration of knowledge and physics is the language where facts can be easily obtained through experimentation and verification of theories, thus we have facts in physics. These facts have further backing that they are written in the language of science which is mathematics.
When we move to the biological science and eventually to the social sciences we find that getting definite equations for the behaviour of these systems becomes very difficult, making it increasingly difficult to derive facts that hold in all situations like we are used to in physics. Thus in something like the social sciences we have few facts and lots of conventions because we are dealing with elements whose nature cannot always be known to a high degree of accuracies like in physics or chemistry.
When we step out of systematic languages like mathematics and enter the mushy world of human languages, we are faced with increasing difficulties and it becomes very hard to make definite descriptions of facts. We now tend to rely more on convention than on hard facts as can be observed in the sciences.
This chapter deals with human intelligence, one of the most misunderstood topics in the world right now. We never really thought seriously about the nature of human intelligence until the advent of the modern computer. Philosophers of all ages had contemplated the issue of human intelligence like they had contemplated other things some of which includes the nature of God, the Universe, Life, etc.
When faced with some physical object like a stone, if we ask the question, what is a stone? Without science, we can describe what a stone is by the actions we know it to perform such: A stone is a small piece of rock that we throw at things or just leave there. But with our science we can define a stone as a rock, then include information about how it was formed, what type of rock it is and it's chemical composition. This is what we call scientific knowledge. We reduce things to what we can objectify.
When thinking about things we cannot objectify our brains rely on its faculty for speculation using its knowledge base much more freely than when we are dealing with an objective fact. The nature of the development of our brains, its structure and the history of our experiences will determine the kinds of speculations we arrive at.
This work is not an exploration of the nature of human intelligence itself, that is a huge topic for psychology and philosophy. What I am interested in is in the question of Artificial intelligence. How should we go about it in the most efficient of ways?
If we cannot appropriately define the word intelligence at least as it occurs in humans, we cannot build a machine that encodes that intelligence. The problem with artificial intelligence is not lack of human ingenuity to solve the problem, it is more of the problem of not defining the problem properly. How can we define our intelligence using our intelligence? What do we code?
Natural language understanding
The problem with natural language is that it is so ambiguous that if we take the title of this subtopic “natural language understanding” we find out that I used a word “understanding” without properly describing what the word "understanding" means. My attempt to describe what the word "understanding" means will require that I employ more words which might not have one meaning and thus various connotations.
This is one of the biggest problems we face in the world: The fact that we think and speak in a natural language most of the time. You must have glanced over those few words with the assumption that you understood what it meant but if I ask you what understanding really meant you will definitely maybe reach for a dictionary and produce some definition or define it based on your memory of the word as it is defined in the dictionary which uses other words too whose meaning we cannot really understand in a formal definite way.
If it is difficult to get a definite understanding of what the words “understanding” means, then what do we mean by “meaning”?
When natural language is used to represent things that can be easily observed in the physical world, like an apple, it is very useful. We use the suitcase word apple to represent that distinct piece of the physical environment which we can identify separately as an apple. But when we start using natural language to talk about concepts that we cannot point a finger at, the world of mushiness begins.
In human interactions, this mushiness can be tolerated. We are social animals and have the need to communicate. When this communication is about physically observable things, it is direct and efficient. But when we start having concepts for which you cannot point a finger at, natural language must then rely on conventions or accepted definitions.
Science would not be possible without the definite systematic language of mathematics. An objective way to symbolize the things we observe in the physical world, things that can move a needle on some kind of measuring device. If asked what is a force? Since we cannot point at it, without mathematics such concepts will be difficult to define. With natural language, we can go on to use other words, which will still not give a person some direct contact with the concept of force. But with the language of mathematics, we can narrow down the general statement force to some specific kind of force, maybe physical force that interacts with a gross object or electrical force that interacts with an electron. Either way, we can state what we mean using an equation and that will suffice for the definition of force. In physical force we can say force is the mass of an object multiplied by the acceleration it is moving at, symbolized by F = MA, where F denotes force, M denotes mass and A stands for the acceleration. This is a statement of fact! Executable when we put actual values to represent the variables represented in this equations with the symbols F, M and A.
This is the kind of definite thinking that has lead to all the progress in the physical sciences and technology. We don’t think about the qualities of an object as such, we focus on the quantitative aspects. If you want to define the colour red in a natural language you will have to resort to red objects, like a red apple since redness without some objectification is hard to describe. But in science, we know that red is part of the colour spectrum with a wavelength between 620 and 750 nanometers. This is a definite fact and can be measured and will stay true all the time.
Without the language of mathematics, science will be very impossible because English words don’t provide definite meanings and are filled with conventions that not all people share.
The biggest problem in artificial intelligence is not the artificial part of the phrase, which simply means “made by man”, but the intelligence part for which, depending on who you ask you will always get a different explanation.
Natural language is such a handicap that thinking in terms of it alone will not lead us to demonstrable fact and we have to rely on mathematics in the sciences.
Computer languages
With the need to automate calculations we invented computers, which needed to be programmed to perform their tasks so we invented computer languages as a way to specify the instructions on how to perform our calculations with the computer.
Computer languages evolved, by human effort from the machine language used in the earliest of computers, to the high-level languages that gave us our desktop/mobile applications. It did this by a continuous process of abstraction where a lower level language was used to build a higher level language. This abstraction ladder has peaked out of recent with no new layers being built atop the very high-level language like Python, JavaScript and the knowledge-based language Wolfram.
The reason for the break in building abstractions is due to the fact that once we were able to build languages with functions, there was no need to build a layer above the very high-level languages anymore. We could build any required abstractions using the functions that were already within the languages. The Class in object-oriented programming is such an abstraction where a bundle of functions called methods and some data are bundled together and given a name so they function as a unit. With some extra mechanisms attached to the class, we can build higher mountains of abstractions to encode the solutions to any programming problem we can encounter. In reality, the Class abstraction is just extra padding to ease large scale software development and some other special programming scenarios but it is hardly a major generalization and so therefore not fundamental to the task of computation.
Computer languages enabled us to automate calculations and also provided us with a tool far more expressive than regular mathematics. In mathematics, you are only allowed to explore that which follows the axiom systems of mathematics, while in programming you are able to create and explore any kind of system you want to explore.
Computer programming is more general than mathematics, it is also as systematic as mathematics and enables us to make factual statements about things the same way you will do with mathematics. The reason why computer programming is as powerful as mathematics is that no matter what you say in it, it must, first of all, conform to the syntax of the language in which you are coding on and produce a result that determines the meaning of the program. If the meaning is what you want then the program is correct.
There are other issues about proofs of correctness in programs, but this only becomes relevant for sufficiently large programs. For small programs, you can say definitely that what you see as the output of the program confirms that the program is correct if the output is what you expect.
There are ways of using testing tools in programming to assure program correctness, these tools enable you to write tests, further validating your output. In programming, the proof is in the pudding.
The need for a symbolic discourse language
As we have seen earlier, natural language is too mushy to rely on for hard reasoning. Many people have thought logic will supersede natural language but they too found out that logic is too limited in expression to contain all the vicissitudes of human thinking. Programming eventually came out as the most powerful way to systematically express ideas about computing, and now also in artificial intelligence.
Programming in its current form is complete as a means of instructing computers, but if we are to be able to express our thoughts systematically then we have to build a layer of abstraction on top of the already built abstraction hierarchy of programming languages.
A symbolic discourse language, just like mathematics has done for science and programming is doing for computational thinking and traditional software engineering will enable us to express all kinds of thoughts and ideas, that we would normally have expressed in natural language, so definitely that they will be capable of being executed automatically by a computer.
If you are able to express the concept of intelligence in this kind of language, you will be able to automatically create a software image of exactly what this intelligence is and this software image if executed will probably possess the feats of intelligence that you have described.
Imagine a scenario where you are trying to use natural language to communicate the idea of what intelligence is to a friend. As you mention the words containing your ideas, the friend will have certain images and ideas come up in their minds. Now take this a step further. Imagine a symbolic discourse language. The exact form it will take is something completely alien to my understanding, but theoretically, let's say we have some language that produces some output such that if we expressly define the colour red in this language it is able to give us some executable data that will put out red on the screen, maybe a red disk. Forgive me these lines of thought are so alien to me we must enter sci-fi mode to make explanations clearer because I am going to create technologies that don’t yet exist.
Now back to red again. If we have some global computer infrastructure that has access to matter at the atomic level, such that if you describe something like a red apple you could see one in your hand! Directly synthesized from the atoms in your vicinity. Now for a tamer form of this technology, you can imagine that if you type red apple in some symbolic discourse language it will display one on the screen, synthesized from the computers operating systems, or if you type red, it will fill the screen with red. Now back to the one able to affect nature. Now lets say that after passing some regulatory agency in the hypothetical future you can be allowed to deploy the soft copy of your program which has been tested in a simulated environment to the real world, you would just take your program, maybe expressing the description of an apple tree with fruits including all sorts of details like the GPS location of where you want to deploy your code and including maybe your land right document also as code in this SDL (symbolic discourse language), you could run the code and boom! Out of the matter available, you have an apple tree, of course with red fruits.
Now in this world, if you wanted to create an AI, you would just describe the attributes of the AI in the SDL, and run it in the simulation and you would have an AI agent may be embodied in a human being or other object may be a crystal shape existing in this world. You could then test it, debug it like you would do a normal program. Then if given permission by regulation you could deploy it in the physical world. If you do not embody it in some object, and you just want the code, the output of the SDL will then be computer code in a normal programming language like a machine language and you could deploy your code from the simulated environment into the physical environment in a standard computer and you would have an artificially intelligent software.
In my opinion, this is a very valid path for AI development. The SDL will allow us to describe in a definite language as powerful as mathematics, what we think intelligence is. We don’t even need to know what human intelligence really is, we can just fill in the effects we have observed and described as intelligence and with the definiteness of this language, once we encode the ideas in the SDL, just like executable computer code or mathematics, the ideas are real and exist because they can be executed and have some kind of output.
The SDL itself will define the rules of combination of the ideas and will be as full-fledged as any modern programming language with I think a lot more features or less depending on how this will be conceptualized.
For clarity I will repeat, the thing we are describing with the SDL are the things themselves, not information about the things. If we describe red in the SDL and execute it in the sandbox simulated environment, it might just fill the screen with red. If we say red apple, it will produce a red apple on the screen. If we say red apple on a tree it will go further to put the apple on a real tree. If we say instantiate in the real world, and include the GPS location and other information, after passing approval by the future world team regulating atomic manifestation, it will appear fully formed in the location of our choosing.
Now if we forget physical objects like apples for a while, and focus on concepts like AI software, then we can describe AI and then execute and it will generate from all it knows the concept that we encoded in the SDL automatically. If the AI looks like what we want and passes our test, then we can instantiate it in the physical world and it will produce some machine code that we can run on some practical computer!
Comments
Post a Comment