Machine Cognition Blog

Why Not Use the Computer 's Power
to Help Write the Program

   The original computers were programmed in machine code and then assembler (BAL). This was a very tedious and slow job, that could only be performed by highly trained programmers. John Backus at IBM first created Speedcoding computer language, and then with a team created FORTRAN (from Formula translator) in order to let mathematicians and scientists write their own programs. The first version reduced the statement count by a factor of 20, reduced debugging time greatly, and it actually ran faster than programs written in assembler.
   This allowed mathematicians and scientists to not only write their own programs but also to review and verify that the code was actually solving the desired problem.

The Full Story

    This is today no different that comparing people who insist on using C/C++ versus those who would like to use Fortran 2008 (a matrix language), R, Maxima, Octave, or any other high powered mathematics language for programming. It saves programming and debugging time, runs fast, and allows proper V&V to ascertain that it is solving the correct problem. Who needs a type III error? (Right answer to the wrong problem). Think of the time and money savings. I just do not understand the requirement of C/C++ on job requisitions.>

Hiring Practices are Keeping American Companies
from Being as Successful as They Could Be

  Have you ever gone looking for a job? It is not like it used to be. You are now relegated to being a pair of hands on a warm body. No longer are you the highly skilled person at a specific job. You are a commodity, another warm body.

  The hiring process is truly indicative of this. The hiring manager imagines what he needs and then writes up a list. He gives this to the HR department who then puts together a posting for the internet. You then go looking on the internet, and IF you happen to find this posting, you then apply by inputting your resume.

  Does this resume totally reflect who you are and what you can do? Could that even be done in 1 or 2 pages? They ask if you know a specific computer program or language. They never ask if you could learn this, but you do have the underlying skill and education that takes years to master.

  At this time, your resume has never been seen by a human being. A computer program analyzes it, and the odds are that you will be rejected, and that is the end of the story. With this kind of process, Edward Teller, John von Neuman, Stan Ovshinsky, and Albert Einstein would have all been unemployed.

And then we wonder why we buy everything " Made In China "

Why Every Company Needs a Decision Scientist, Even Radar Signal Processing

  A decision scientist not only looks at probability of a wrong decision, but also the cost of one. If is radar identification of an approaching object, properly identifying the actual re-entry vehicle(s) (RV) can have serious costs if misidentified in the form of human casualties.

 In the biological world, we do not just look at the signal that our eyes return to our brain when Identifying an object. We use multiple sources of information as well as various processes to utilize and extract knowledge. Many are subconscious and we do not even realize that we are doing so many things at once to identify some one or thing.

  Multidimensional decision making is using a variety of information along various dimensions in order to make a decision. Mathematically, as soon as we add even a second dimension to our decision-making process, we have greatly increased our accuracy. This is why we are so adept at pattern generalizability. Even in different lighting, from various distances and angles, and in different clothes we can still recognize our friends and family.

A radar digital signal processing engineer is not eliminated, as this skill generates a very important input to the decision-making process. But we can not forget that this is a complex task and other information and skills are needed when making critical decisions.

Target Recognition VS
Target Identification

  From a pure definition perspective, recognition is a connection being made between a previously encountered stimulus and a new encounter with the same or similar stimulus. Identification is defined as finding out who or what something is (Merriam-Webster.com)

  Therefore, recognition is a subset of identification. Identification is more general, since it also includes making inferences about stimuli which have never been seen before. Recognition is closer to the perceptual side of the spectrum from perception to cognition, while identification is more cognitive.

  Therefore while looking at an object, and using the best DSP with the sensors, a stimulus or object might be overlooked or miss-classified. An opponent might disguise their object to look like something from the Rose Bowl Parade and it would never be identified as what it really is.

 In biologically inspired computing, the concept of pattern generalizability is discussed as it refers to recognizing something known, but it is now at a different angle and/or with different lighting, and/or some other minor changes (e.g. a different color shirt).

  The problem can be even more difficult as an opponent would be trying to disguise the object, and it is possibly something that has not been seen before, or not in this context. This introduces a new concept: cognitive identification, identifying something using knowledge, reasoning, logic, mod/sim, sensor data, context, and flow of information.

Autonomy & Collaboration
in the Machine Environment

 While they seem like two opposing concepts, each has its advantages and there are times when both are needed. An additional component is collective intelligence, which means sharing the knowledge between the various team members. Not only sharing, but working together in such a way as to maximize effectiveness of the joint objective.

 Autonomy has been defined as independence in one's thoughts or actions A degree or level of freedom and discretion allowed to an employee or machine over accomplishing the task. Autonomy can become important because of time restrictions. Consider a space vehicle that is out at some distant planet. A problem arises and they radio back to Earth. Since radio waves propagate in space at the speed of light, it might take a week for the question to get to Earth HQ. Experts then have an answer in 10 minutes and it is then transmitted back to the space ship. The total time for this sequence is 2 weeks and 10 minutes. Whatever the emergency was, the answer came too late. There are other instances, where the time required for the answer is much shorter or an answer is needed immediately. This is a place where autonomy is required in our systems.

 There is also the situation where there is a large number of objects operating at one time. The number of people required to control this large group would be excessive. If these were all operating in a relatively confined space, then these would also need to collaborate so that there would be no collisions and all would work together with the goal of a successful mission.

 Collective intelligence can be very helpful. If one unit makes a mistake, the knowledge can be shared among the others so that they can learn and not make the same mistake. In the same vane, when a correct choice was made, reinforcement learning will help the others to be smarter.

 In building a system like this one major theme is decision making. Every action is the result of a decision being made. Intelligent decision-making is a mandatory component of such a system. A set of heuristics is the beginning but there always seems to be something that was not considered when these rules were created. Two approaches to solving this dilemma are; 1) a large number of simulations with a system that learns; and 2), a system that is truly cognitive and thinks to produce a solution. A combination of both would be best because if it had learned some new rules while going through simulations, it would react more quickly than if it had to think and devise a rule or solution. If it had not seen the scenario in a simulation, then it could think and not sit there dead in the water helpless not knowing what to do. Intelligent decision-making is definitely the key to success.



Should Architects Code?

 An architect is someone who designs buildings and in many cases also supervises their construction [Google definition]. There is no mention of this role actually doing any of the physical construction. In the UK, this word is protected and may only be used by someone licensed to design buildings and homes.

 This word has recently been redefined for application in the computer world. Wiktionary has the above as the first definition and “A person who plans, devises or contrives the achievement of a desired result” as the second definition. Again, the architect is not the laborer who is doing the actual work.

 Code is a system of signals used to represent letters or numbers in transmitting messages. This applies to a computer as instructions and data are converted into the form that the computer requires to function. As a verb, it means the act of converting information into the required form. This includes Morse Code, cryptography, and now computers.

 In economics the principle of comparative advantage discusses the ability of any given economic actor to produce goods and services at a lower opportunity cost than other economic actors. Applying this concept to requiring a computer solutions architect to “code” would be in violation of this economic principle as an educated and experience architect is far more expensive than someone who writes computer code. Requiring an architect to code also reduces the time available for designing.

 Furthermore, it is possible that an architect is not as skilled, educated, or experienced as someone who is a professional coder. Then, requiring the architect to code would be a poor decision as he/she might not be as able and would certainly be more expensive. For example, consider the famous architect Frank Lloyd Wright. Would one think that one would find Mr Wright out on a job site pounding nails or sawing wood? Absolutely not!



Created by Brad Morantz