Showing posts with label artificial intelligence. Show all posts
Showing posts with label artificial intelligence. Show all posts

Wednesday, February 28, 2024

Frankenstein's Monster: AI's shadow

 

     Alan Turing, in 1950, released a paper called "Computing Machinery and Intelligence" while at the University of Manchester. The main gist of the paper was that if the output of a computer could not be distinguished from that of a human being then it must be considered intelligent. This has been a goal of those working on AI for a long time and it is the primary point of general acclamation that we "have achieved AI". Various AI applications can present artwork, prose, dialogs, and other such things that cannot easily be distinguished from that created by a human. In a "blind test" (where the people judging have no pre-knowledge of which output was done by a computer) it would pass judgement.

     No one is saying that AI has reached the goal of achieving human thought. AI is trained (as is true of humans) on lots of input -- lots of data from lots of sources and, iteratively, told what is right or wrong and "learns" how to do things, respond to things, and so forth. Which leads us to two of the current problems with AI. These are intellectual property laws and lack of discrimination.

     Intellectual property conflicts are the most straight-forward. In order to train, lots and lots of information must be fed in. While some of that information is data obtained from various public sources, other information is from private, proprietary, sources and other information that has been created by human minds and may be part of their livelihood as well as their career growth and reputation. That "brushstroke" done by a generative AI may be copied from an artist's work. That "narrative work of imagination" may be borrowing from the insights of dozens of writers who, justifiably, do not want their copyrighted material used without their permission. AI generated code may (and almost definitely will) make use of code that was created both for freeware as well as company proprietary code (that probably was not authorized to even be accessible via the Internet).

     Currently, an AI information gathering product can present bad information. As an AI model is being taught, it is given access to a lot of information. Hopefully, most of this information with be factual and truthful. But some of it will be misinformation (lies), disinformation (logically faulty or irrational), or declared works of fiction. Some of these can be eliminated by human monitors as the model is trained but this just leaves it in the hands of those humans.

     Humans do not have a good track record in doing the research needed to determine truthfulness of information -- they cannot be relied upon to do such for an AI model. It is conceivable that an AI model might be programmed with algorithms that will allow it to compare information, reliability of sources, and logical inconsistencies. They even would have an advantage since they do not (currently) have emotions. But AI models are NOT at that point now -- and it will depend on the accuracy of any such algorithms.

     Isaac Asimov, considered one of the best of the "classic" science fiction authors, used as part of his robot-focused novels an idea called "The Three Laws of Robotics". I'll let people investigate the evolution of the laws, direct quoting of the laws, and the interpretations as discussed within the various stories produced. Let's just say these "laws" are meant to be a "leash" to prevent robots (or AI) from hurting people. And, though the laws work pretty well in the stories, there are almost always loopholes in any "law" and the three laws are no exception.

     But current AI has no such thing as the three laws -- and no practical way in sight to create such laws and to enforce that they will be part of any, and all, AI products. While AI is monitored, and final decisions are made by humans, then the moral (and legal) responsibility for any problems will be in the hands of humans. If unmonitored and autonomous, it is unknown as to where the responsibility would lie. There are presently court cases struggling to delineate such matters in the relatively straight-forward arena of self-driving cars.

     Computers, and programs, are NOT "smart". Compared to most humans, computers can be considered rather poor in intellect. They can only do very, very simple things. Arithmetic, comparisons, actions based on values, and such are the very limited set of actions that they can perform. Computer programs eventually are split apart into these very simple "machine" instructions. BUT, computers can do these simple instructions very, very fast (and getting faster every year). This gives the illusion of great ability by the computer.

     Humans make mistakes. Computers (or their hardware and software) can make mistakes. But computers can make many more mistakes, much faster, than humans because their basic strength is speed. Plus, the more humans rely upon computers (and their hardware/software) the greater the difficulty of correcting errors because many people erroneously think that computers "cannot make mistakes". Even worse, humans are often not allowed the ability to override the decisions that come out of computer programs.

     This is particularly relevant in many of the areas of AI. People do a poor job of facial recognition. Computers can do a better job but not a perfect job. If drones are given a locate (and, perhaps, violent action) instruction autonomously then they will likely sometimes pick the wrong person. The situation is, of course, even worse if computers get to make the decisions about all-out war (such as in "WarGames", "Terminator", or many other apocalyptic films). Politicians are quite at ease in having "collateral damage" but if you, or someone you love, is part of that collateral damage then you would probably not feel as calm about it. If facial recognition is done as part of security then "doppelgangers" or others who look similar to those on no-fly lists (or other lists) will forever be fighting for their right to exist.

     Computers, their programs, and AI can be of great benefit to humans. But they should always be subordinate to humans because humans are the ones that suffer from any mistakes made. Recognition of the fallibility of computers is very important and self-regulation within AI programs is essential to reduce the escalation of errors.

Monday, May 10, 2021

AI/ML/DL/Life : Learning from Mistakes and Feedback

 

     My sons are presently in an "online only" situation for their college classes. In this, they are certainly not alone. We are fortunate that the college has had a good preventative routine that has kept on-campus infections considerably below the state average -- though we are all looking forward to being able to directly interact with teachers and classmates.

     Teachers have had a very difficult time in dealing with abruptly changed circumstances. Some have handled it well -- others not so well. All three of my younger sons have had classes (one has had three such classes) that accepts homework, quizzes, and tests -- AND DOES NOT GET ANYTHING BACK.

     Of course, I can't be certain how these teachers handled their classes when they were face-to-face. But I share in the frustrations of my sons when they have no idea what they have done right or what they have done wrong and need to correct. They cannot correct mistakes, they cannot improve and, in total, they cannot learn and the course has been rather hit-or-miss for value and the teachers, themselves, did not add any value. It would have been just as valuable, much less expensive, and much less frustrating to have taken a different online course with prerecorded content.

     Feedback is absolutely required for growth. Sometimes that feedback is direct, and physical. The old saying of letting the child burn themselves on the stove once and there won't be a second time is true (though we would all prefer that they learn before hurting themselves). Or, if you back up over a cliff while taking a selfie -- you will hopefully learn a valuable lesson if you survive. Some situations give direct feedback of a very serious nature.

     With the above example, a good teacher will cover the material on the material submitted. The best feedback is individual corrections, feedback, and (in those rare cases when it is possible) tutoring to overcome inaccuracies and problems. The next best is class coverage of the material, indicating the correct answers and, if time, how they were achieved. The largest problem with that is that, for online courses, the student may not have a copy of what they had submitted. A third, but still marginally acceptable, method of feedback is to post the questions and answers from which the student can hopefully learn.

     More often, the feedback is not direct. In this case, it must be interpreted. People start avoiding you after you have made a careless, or thoughtless, comment. Your gas mileage starts to decrease after you have neglected maintenance for too long of a period. You start panting, and wheezing, and may have chest or arm pains after years of not following a healthy, balanced, diet. There are a lot of such indirect feedback situations.

     With indirect feedback, questions and expert advice is often desirable. If your social situation has changed, ask a friend who will still talk with you and give honest feedback. If your gas mileage is dropping, take the car to a mechanic (of course, if you had done that regularly then this special visit might not have been necessary). You should have regular tests and physician checkups to make sure that your body is still on the right path for continued health.

     All of these things are necessary for people to learn, and grow. The same thing is true for all sub-specialities under the umbrella of "artificial intelligence" to one extent or other. Deep learning, which is a specialty under machine learning, tries to create its own feedback loops without human interactions.

     Some of us remember when a famous AI program competed on the quiz show "Jeopardy". If it got an answer correctly, it got it very quickly. But, if it didn't answer correctly, the answer was often totally wrong. The human audience didn't always see any correspondence between clue and answer at all (presumably the algorithms did see such). I am sure progress has been made since then but it is something to be constantly aware of when the human element is removed from the feedback loop.

      Neural networks are often used within deep learning. They are designed to work according to the way brains work -- by strengthening links between portions of data based upon usage and correlation. A correct correlation between data makes the link stronger and an incorrect correlation between data makes the link weaker. The definition of correct and incorrect is left to the designer/programmer/counselor. And the definition of correct versus incorrect may also vary depending on the status, and worldview, of the person creating the definition.

     The more interaction with a human for feedback, the better the chance of appropriate growth of an AI's ability to react -- but the greater the chance that it will adapt in the ways the human does. Somewhat a matter of creating a "clone" which thinks/reacts as the person who is giving the feedback. But, without the feedback from humans, the greater the chance of correlation between things that does not easily correlate with the real world.

     What are your thoughts? Create an autonomous system that self-corrects and brings in its own directions of feedback? This allows for faster growth and adaptation but only initial control. Or feedback from humans that slows down the process but increases relevancy and perhaps bias?

Monday, January 15, 2018

Controlled falling: how to teach a robot to walk


     Every part of growing up is a miracle in its own way. However, if you happen to be an engineer or a computer scientist, you may find yourself looking at your child in a somewhat different way than most parents. Every act is a matter of "how did they do that?" Or, a matter of "I didn't know they couldn't do that originally".
     Learning to walk is a gradual process. The first part is a matter of figuring out just how to control those wonderful muscles on purpose. For fortunate babies, they have a working nervous system and all of the appropriate muscles are there but that doesn't mean that they pop out into the world ready to do a 100-yard dash. Think of a control room with hundreds, or thousands, of unlabelled switches -- each of which cause a muscle to respond in some way. How do we use an electrical switch box which has lots of unlabelled switches? Try them out and see what they do. (And then, perhaps, label them after we notice their effects.) For a robot, this is a bit simpler as there is a specific control register (or bit within a register) that causes a specific servo-motor to work.
     Now that the child knows what muscle connects to each impulse (and I am not going to try to pretend that I know just how this really takes effect), she (or he) has to practice. This may entail kicking dad in the face a few times and laughing or hitting brother in the nose. Strength is developed as the muscles are exercised. And a special sense (not always fully present in autistic children and others) called "proprioception" starts to be better known. Proprioception is also sometimes known as "body sense" or "kinesthetic awareness". No matter what you want to call it -- it allows us to know just where our body parts are. Is my finger extended? Is my leg bent? This is important if we want to apply the right muscle at the right time.
     For a robot, this has to be done in different ways (although, once again, I do not claim to know just how body sense works within a human). One dominant method is to keep track of relative position. This works like the cursor on a screen -- when the system is powered on, a specific point is considered "home" position and the cursor is moved relative to that position. The same can be done with any servo-mechanism between the limits of its movement. However, it must start at a known location and there cannot be any exterior limit on the movement (which would cause a need for recalibration). Other methods are possible but require more active sensors (and, thus, are more expensive).
     Two more requirements exist for easy movement. These are the ability to know how hard a muscle is pushing against something (the floor, for example) and how fast it is moving. The human nervous system makes use of tactile feedback to determine how hard the muscle is straining and the body sense to know how fast it is going. With a robot, a feedback loop using torque measurement may allow the robotic arm to hold an egg -- or to crush it. Speed is determined by the rate of change of movement -- how fast position changes versus and internal clock.
     With these four aspects -- ability to move, knowing where the parts are, knowledge of amount of force, and knowledge of speed -- coordinated movement is possible. Early programming of robots tried to imitate the specific movements of human muscles within their ranges of motion. It is possible to do it this way provided that there is complete control of the environment. Nothing in the wrong place, no unexpected alterations in the footing or the locations of other relevant objects. Consider a factory line with fully repetitious movement and behaviors (until a part sticks or parts run out or a dog runs into the factory ... or) and one can relatively easily see a robot taking over the factory job. In fact, many of the jobs taken over so far have been of this nature. 100% replacement is not possible because of the many exceptions that can take place and which requires more flexibility to handle -- but a considerable reduction in human staff is possible.
     But we were talking about walking weren't we? Could we use the same methodical programming to teach a robot to walk? Barely possible but, once again, only within a highly controlled environment.
     Imagine that child learning to walk. They stretch. They pull. They start becoming caterpillars on the carpet while they both strengthen and practice their muscles. Finally, they pull themselves up. And fall down. And go up. And fall down. Then they are able to stay standing up -- but hanging on. Then they let go. And fall down. And so on.
     This is a type of programming -- but not "linear" programming. This is not "do A, followed by B and then C". It isn't even exception-handling programming "do A, followed by B, then D if condition C else do E". This is neural programming. Sequences are attempted and then, based on results, discarded or modified or increased. A goal has been set and if enough sequences are tried then, at some point, success will be reached.
     Note that a new item has now been added -- a goal. In order to have a goal there must be a way to determine if you have reached that goal. For a child that is emulating other people who are walking. For a robot, it is necessary to have goals that can be specifically quantified -- expressed as numbers -- against precise targets. For walking that might be obtaining a certain height, directional velocity, and stability. Note that balance, for a human, is obtained by the feedback from the inner ear. Tools, such as gyroscopes, are available to both help maintain, and recognize loss of, stability. Laser positioning devices can be used to indicate height. Global Positioning System (GPS) information can be used for large-scale movement for direction and a combination of position and speed tracking can be used for shorter distance velocity calculations. I am sure that other tools also exist.
     For a child, they see others walk -- and those others encourage them (and protect and guide) -- and they go through a seemingly never-ended process of trial and error. They train parts of their brain and nervous system such that the thought "walk" indicates a complex series of changes, movements, and activities. I shudder to think of trying to program that linearly.
     A robot can learn in the same manner but they have to have ALL of the correct tools -- servo-motors, proper range of motion, torque feedback, auto-recognition, or storage (with its likelihood of losing calibration), of movement, and so forth. As long as they have a goal against they can match their efforts, they can keep trying combinations until they succeed. However, there is a "secondary" aspect of this type of learning -- to keep the "winning" processes and discard the "losing" processes. Humans do this (in some way that I cannot explain) but robots have to do it also. In many ways this is even more difficult because it is unlikely that the next attempt will be EXACTLY like the one in which they previously "won".
     As a note, other types of activities can be approached in the same manner -- trial and error measured against a goal. But the less physical the more difficult the definition of the goal.
     #robotics,#AI,#NeuralProgramming

Saturday, February 11, 2017

Artificial Intelligence: Beyond the Turing test


     In 1950, the British mathematician Alan Turing gave an answer to the question -- how can you tell if a machine is intelligent? His (paraphrased) response was "if you cannot tell the difference between a human answering questions and a machine answering questions then it has achieved intelligence". This Turing Test is not universally accepted but it is probably the most widely used foundation of answering the question of what is Artificial Intelligence (AI).
     Alan Turing's test was based on the idea of an interviewer and a responder. Someone asks a question and someone answers a question. This led to a series of experiments in computer programs that simulated (or imitated) "normal" human interviewer/questioner situations. It might be between a therapist and patient or doctor and patient or a student and professor/teacher. Naturally, there had to be a way to make it impossible to physically tell whether it was a machine or not. It also had, built into the test, the requirement of equivalent skill in understanding and speaking/responding in a human language.
     In today's world, computer programs have advanced beyond simple questions and answers. We have computer programs beating humans in Chess, and Go, (and other games). The Turing Test might not be considered to apply to these situations but many people would consider this a form of AI. We have computer program/systems that make use of pattern recognition to identify potential suspects or targets of drones. So far, the final decision is still made by humans but stories/films such as The Minority Report indicate a possibility of the machines making final decisions even about what might happen.
     That is the "line in the sand" for people thinking about AI. Who makes the final decisions? Is it a human (with all of her, or his, faults and experience) or a machine (who, at heart, is still the results of a programmer's abilities and recognition of exceptions)? Isaac Asimov, in his Three Laws of Robotics, had the AI programming include self-restraints as to what the program/robot could do, or could not do, without undergoing self-destruction.
     Speed and safety. The primary reason for computer programs is NOT that they can do things that humans cannot do; the primary reason is that they do things much, much, faster (and reproducibly). So, if you design an AI that handles the coordination and operation of a nuclear reactor, you want the program to be able to respond very quickly. Putting a human into the decision path slows everything down. Who has the final responsibility?
     The same question exists within the possibility of self-driving automobiles and trucks. It is likely that AI programs can already drive as well as an average driver -- assuming that all of their sensors work properly (they can detect objects and highway lines and sounds and bouncing balls and the cars and buildings around them, ...). Certainly, in another five or ten years, AI self-driving programs will be able to control a vehicle much safer (and more rationally -- no road rage potential) than humans. But they would be making the final decision.
     If a self-driving AI makes a mistake or a necessary decision that costs lives, who has the responsibility? The programmer? The company that built the vehicle? The owner of the vehicle? What happens if the self-driving car is involved in an accident with a human-driven car? Is there presumption of innocence on the part of the self-driving car?
     In all these cases, the program and machine are taking the place of the human. If you keep them "behind the curtain" there may be no way to identify whether they are human or machine. They PASS the Turing Test. But, when the curtain is removed, what is the final verdict? Who/what has the responsibility? Who/what makes the final decision?

Smoke Gets in Your Lungs (updated)

     This is an article that I published in here on February 22, 2013. I try to make my articles “timeless” as I try to work with “foundatio...