{"data":{"site":{"siteMetadata":{"title":"Spencer Corwin's Blog","author":"Spencer Corwin"}},"markdownRemark":{"id":"556e123d-ece3-5dd5-8844-e07c37e658b7","excerpt":"“A computer would deserve to be called intelligent if it could deceive a human into believing that it was human.” — Alan Turing In my first…","html":"<p>“A computer would deserve to be called intelligent if it could deceive a human into believing that it was human.” — Alan Turing</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/blog/static/eb04547d90821e01a6168c97b43d90a7/b805f/book-cover.jpeg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 263px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 152.0912547528517%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAeABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAIBAwQF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB7aNSaiQEZSwgP//EABwQAAICAgMAAAAAAAAAAAAAAAABAhEQEhMgIf/aAAgBAQABBQKU1E5Beqdi2voynj//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAaEAACAgMAAAAAAAAAAAAAAAAQEQAgITFB/9oACAEBAAY/AjhOcVtj/8QAHhAAAgICAgMAAAAAAAAAAAAAAAERYRAxIUFRoeH/2gAIAQEAAT8h2EiXtWNA/Jxe4j4AVDoUz3hG9OC7j//aAAwDAQACAAMAAAAQs8QM/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPxAf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPxAf/8QAHxABAAICAgIDAAAAAAAAAAAAAQARMVEhQRDRYZGh/9oACAEBAAE/EFEKqsG79Tv4pQG2ufUEEQF05gBWNrrKYwRbG3ga+NXiAAAAYCXraLh/XhQVp0dwtt+w9QxzP//Z'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"How to Create a Mind book cover\"\n        title=\"\"\n        src=\"/blog/static/eb04547d90821e01a6168c97b43d90a7/b805f/book-cover.jpeg\"\n        srcset=\"/blog/static/eb04547d90821e01a6168c97b43d90a7/29a00/book-cover.jpeg 148w,\n/blog/static/eb04547d90821e01a6168c97b43d90a7/b805f/book-cover.jpeg 263w\"\n        sizes=\"(max-width: 263px) 100vw, 263px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>In my first blog post I discussed why I decided to quit my job as a banker and become a software engineer. The primary reason was a shift in my thinking that was caused by Ray Kurzweil’s latest book <em>How to Create a Mind</em>, which was published in 2012. I read this book in mid-2017 and it completed changed the way I saw the future. Before reading this book I was under the mistaken impression that the ship had sailed on information technology. I thought it was essentially too late to get into the world of computers because by the time I would have “caught up” with the rest of the industry in terms of knowledge and skill it would be too late for me to make any real impact, so therefore there was little point in making such a transition. In my mind computers were cool and all, but it was just too late. I thought I might as well try to find another way to make an impact. Reading <em>How to Create a Mind</em> shattered that way of thinking for me and opened my eyes to the infinite potential that still exists in information-based technologies (ie. computers and software). In this book Kurzweil specifically tackles the human brain, how it works, how we will succeed in reverse-engineering it, and how our understanding of it is enabling us to create artificial intelligence. As AI has has begun to enter the mainstream it appears that we are on the verge of an explosion of applications that utilize AI for awesome new applications. It is this new “revolution” that caught my attention and inspired me to enter the field of software.</p>\n<h2>Ray Kurzweil and the Law of Accelerating Returns</h2>\n<p>Whenever I discuss my story with anyone I have to first ask if they’ve heard of Kurzweil and his ideas, because he is a somewhat polarizing figure to anyone who is familiar with his work. He is famous for his many predictions of when certain technological benchmarks will be met. Nearly every one of his predictions sound impossibly rediculous at the time he makes them, yet most of them have come true. But before I get to Kurzweil’s wildest predictions I should say that Kurzweil is not a professional theorist. He writes a lot of books and has spoken at many conferences, but his day job is as an inventor, entrepreneur, and Direct of Engineering at Google. It’s easy to make predictions, but it’s an entirely other thing to use your understanding of technological trends to succesfully invent and sell amazing products, which is what Kurzweil has done. The best example of this is a company started by Kurzweil called Kurzweil Computer Products, which he started in 1974 to develop the first optical character recognition system, which was then used for a text-to-speech synthesizer to allow blind people to understand written text by having a computer read it to them aloud. Eventually the company became Nuance Speech Technologies, which developed the technology that is now Apple’s Siri.</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/blog/static/4088670e400ff679340b3823844bcddd/e60c5/ray.jpeg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 590px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 66.66666666666666%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBP/EABYBAQEBAAAAAAAAAAAAAAAAAAMBAv/aAAwDAQACEAMQAAABxWRGtjSNj//EABsQAAICAwEAAAAAAAAAAAAAAAECABEDEhMh/9oACAEBAAEFAlFNQ6cplJVa3ijz/8QAFhEBAQEAAAAAAAAAAAAAAAAAABFB/9oACAEDAQE/AcV//8QAGBEAAwEBAAAAAAAAAAAAAAAAAAECEiH/2gAIAQIBAT8Bq2r4aZ//xAAaEAACAgMAAAAAAAAAAAAAAAAAIQERAxAx/9oACAEBAAY/AomkNXzSMbHNn//EABsQAQADAQADAAAAAAAAAAAAAAEAESExQVFh/9oACAEBAAE/IbowfMQ0PijrsMNOPSCYaXZcUO/3P//aAAwDAQACAAMAAAAQYC//xAAWEQEBAQAAAAAAAAAAAAAAAAAAAXH/2gAIAQMBAT8QlNP/xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQIBAT8Q1YhTW//EABwQAQADAAIDAAAAAAAAAAAAAAEAESExUXGRwf/aAAgBAQABPxBSeg0MTxFgqlHBFQ0zkY98+ogGrCzqI+RoHFW/YGN3is6n/9k='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Ray Kurzweil\"\n        title=\"\"\n        src=\"/blog/static/4088670e400ff679340b3823844bcddd/f8fb9/ray.jpeg\"\n        srcset=\"/blog/static/4088670e400ff679340b3823844bcddd/e8976/ray.jpeg 148w,\n/blog/static/4088670e400ff679340b3823844bcddd/63df2/ray.jpeg 295w,\n/blog/static/4088670e400ff679340b3823844bcddd/f8fb9/ray.jpeg 590w,\n/blog/static/4088670e400ff679340b3823844bcddd/85e3d/ray.jpeg 885w,\n/blog/static/4088670e400ff679340b3823844bcddd/d1924/ray.jpeg 1180w,\n/blog/static/4088670e400ff679340b3823844bcddd/9452e/ray.jpeg 1770w,\n/blog/static/4088670e400ff679340b3823844bcddd/e60c5/ray.jpeg 2496w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>In Kurzweil’s first book, <em>The Age of Intelligent Machines</em>, written in the mid-1980s (published 1990), he predicted that a computer would take the world chess championship by 1998. IBM’s chess supercomputer Deep Blue famously defeated the reigning human world chess champion, Garry Kasparov in 1997, thereby fulfilling one of Kurzweil’s most famous predictions. In <em>The Age of Intelligent Machines</em> Kurzweil also predicted the emergence in the mid to late 1990s of a vast worldwide web of communications tying together people around the world to one another and to all human knowledge. Kurzweil has made many more predictions in past books and still has predictions outstanding, for example his prediction that a computer will pass the Turing test by 2029 (which would signal it has intelligence on par with a human). As Ray tells it in <em>How to Create a Mind</em>, ”<em>The Age of Spiritual Machines</em> included hundreds of predictions for specific decades (2009 , 2019 , 2029 , and 2099). For example, I made 147 predictions for 2009 in <em>The Age of Spiritual Machines</em>, which I wrote in the 1990s. Of these, 115 (78 percent) are entirely correct as of the end of 2009; the predictions that were concerned with basic measurements of the capacity and price/performance of information technologies were particularly accurate. Another 12 (8 percent) are “essentially correct.” A total of 127 predictions (86 percent) are correct or essentially correct. (Since the predictions were made specific to a given decade, a prediction for 2009 was considered “essentially correct” if it came true in 2010 or 2011.) Another 17 (12 percent) are partially correct, and 3 (2 percent) are wrong.”</p>\n<p>Kurzweil’s predictions are based on his theory called the Law of Accelerating Returns, which states that fundamental measures of information technology follow predictable and exponential trajectories. This concept is beyond the scope of this blog post, but can be pretty well explained visually with the chart below. The most dramatic example of the LOAR is the remarkably predictable exponential growth in the capacity and price/performance of computers. The evolutionary process of technology led invariably to the computer, which has in turn enabled a vast expansion of our knowledge base, permitting extensive links from one area of knowledge to another.</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/blog/static/a6371cc55890cbf33fa1275699fca0b2/db559/exponential-computing.jpg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 590px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 85.31249999999999%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAARABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAQF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAGmmarNhGplgA//xAAcEAACAgIDAAAAAAAAAAAAAAACAwABBBIQERT/2gAIAQEAAQUCx0gSvOqNANkHVK3GMse+f//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABURAQEAAAAAAAAAAAAAAAAAABEg/9oACAECAQE/AWP/xAAdEAACAQQDAAAAAAAAAAAAAAAAARECICEyIjGh/9oACAEBAAY/ApqWTX04pHaNkKGrP//EABwQAQACAwADAAAAAAAAAAAAAAEAERAxQSGx4f/aAAgBAQABPyEPYs9jv9kGClXITEm3wsftwYafHDvH/9oADAMBAAIAAwAAABCgxzz/xAAVEQEBAAAAAAAAAAAAAAAAAAARIP/aAAgBAwEBPxAj/8QAFxEBAAMAAAAAAAAAAAAAAAAAAREgMf/aAAgBAgEBPxBg5T//xAAcEAACAgMBAQAAAAAAAAAAAAABEQAxIUFRYfD/2gAIAQEAAT8QNvIAlhRiZYx8XNnCM8syuQIjfsKAx9xi+AZq6bW4ZZBU/9k='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Exponential growth of computing\"\n        title=\"\"\n        src=\"/blog/static/a6371cc55890cbf33fa1275699fca0b2/f8fb9/exponential-computing.jpg\"\n        srcset=\"/blog/static/a6371cc55890cbf33fa1275699fca0b2/e8976/exponential-computing.jpg 148w,\n/blog/static/a6371cc55890cbf33fa1275699fca0b2/63df2/exponential-computing.jpg 295w,\n/blog/static/a6371cc55890cbf33fa1275699fca0b2/f8fb9/exponential-computing.jpg 590w,\n/blog/static/a6371cc55890cbf33fa1275699fca0b2/db559/exponential-computing.jpg 640w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<h2>The Pattern Recognition Theory of the Mind</h2>\n<p><em>How to Create a Mind</em> seeks to understand precisely how the human brain works, and then to use those methods to create even more intelligent machines.</p>\n<p>In his book, Kurzweil presents a thesis called the Pattern Recognition Theory of Mind (PRTM), which describes the basic algorithm of the neocortex (the region of the brain responsible for perception, memory, and critical thinking). Kurzweil uses his own thought experiments, as well as neuroscience research to create his PRTM.</p>\n<p>Kurzweil argues that the neocortex is composed of a highly repetitive structure, allowing humans to create arbitrarily complex structures of ideas. We are capable of hierarchical thinking, of understanding a structure composed of diverse elements arranged in a pattern, representing that arrangement with a symbol, and then using that symbol as an element in a yet more elaborate configuration. This capability takes place in a brain structure called the neocortex, which in humans has achieved a threshold of sophistication and capacity such that we are able to call these patterns ideas. Through an unending recursive process we are capable of building ideas that are ever more complex.</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/blog/static/e2c8d38f40fbea1205c82f6ede754ed9/3b84f/neocortex.jpeg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 590px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMBBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAelSuFQf/8QAGRAAAwEBAQAAAAAAAAAAAAAAAQIDABIT/9oACAEBAAEFAqX5adfQZkDBJqg3/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGBABAAMBAAAAAAAAAAAAAAAAAQAQESH/2gAIAQEABj8CwvpMCv/EABoQAQACAwEAAAAAAAAAAAAAAAERMQAQIVH/2gAIAQEAAT8hlyOe5MJZemwDJeBRhr//2gAMAwEAAgADAAAAEPfP/8QAFxEBAAMAAAAAAAAAAAAAAAAAEQEQQf/aAAgBAwEBPxAgdr//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAaEAEAAwEBAQAAAAAAAAAAAAABABEhgTFB/9oACAEBAAE/ELja6V/alQQUAGc2GhcfXUWNOwWg7vZ5P//Z'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Human brain diagram\"\n        title=\"\"\n        src=\"/blog/static/e2c8d38f40fbea1205c82f6ede754ed9/f8fb9/neocortex.jpeg\"\n        srcset=\"/blog/static/e2c8d38f40fbea1205c82f6ede754ed9/e8976/neocortex.jpeg 148w,\n/blog/static/e2c8d38f40fbea1205c82f6ede754ed9/63df2/neocortex.jpeg 295w,\n/blog/static/e2c8d38f40fbea1205c82f6ede754ed9/f8fb9/neocortex.jpeg 590w,\n/blog/static/e2c8d38f40fbea1205c82f6ede754ed9/3b84f/neocortex.jpeg 720w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>The human neocortex contains about 300 million pattern recognizer modules, arranged in a hierarchy. For example, to recognize a written word there might be several pattern recognizers for each different letter stroke: diagonal, horizontal, vertical or curved. The output of these recognizers would feed into higher level pattern recognizers, which look for the pattern of strokes which form a letter. Finally a word-level recognizer uses the output of the letter recognizers. All the while signals feed both “forward” and “backward”. For example, if a letter is obscured, but the remaining letters strongly indicate a certain word, the word-level recognizer might suggest to the letter-recognizer which letter to look for, and the letter-level would suggest which strokes to look for. This is a single sentence summarization of the pattern recognizer that Kurzweil discusses at length in his book.</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/blog/static/5fb6f401566e267beac4a4b1a2b036dd/c2adc/apple-input.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 590px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 69.45169712793734%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAAAsSAAALEgHS3X78AAABl0lEQVQ4y22TW4vCQAyF+/8f/DWCb6L4IAgiKwrer+ClIt5bL9Vsv+zGnZ0aCNMkM2dOzqSBOPZ6vdxQHo+HHI/HjzXscrnI7Xb7lwt8MNY4juX5fEqSJBJFkQLf73c9fL1eJUrrGLU4jTlDnXMZQIB2u510u12p1+vSarVkOp3KeDyWMAyVMUC1Wk36/b7M53P5ajZ15cKPDMPNRiqVilSrVWm329LpdKRUKino6XRSp1Yul6XRaEixWJRer/cHCIgLCAv0gS3twuh8PutKnhU5aHG/36sMgLEncMF8wU03QE1Hc8sbGN9c8mZIACO+2bRarX4Ypvnk16mRc90ImQfGzmUAoLFwV0D9EfK7C9g4HA5VXNoEDC1ms5nG6HQ4HGQ0Gr11dcEyDAHM5/OSy+Vku90qk8FgoLnJZKLsAC8UCrJJX9/Y4+5DvhkyAowDMwUgLwjAYrHQ1WI0ZdZ8/TKANsgc4FaMUViv19o6Rn25XCq4bxkNEdpEtzZoyx6JCy1mn69ZhqGNi/275pYDyK3bo3yaXewb3BA7iT0D8MwAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Visual for inputs of strokes to letters to words\"\n        title=\"\"\n        src=\"/blog/static/5fb6f401566e267beac4a4b1a2b036dd/fb8a0/apple-input.png\"\n        srcset=\"/blog/static/5fb6f401566e267beac4a4b1a2b036dd/1a291/apple-input.png 148w,\n/blog/static/5fb6f401566e267beac4a4b1a2b036dd/2bc4a/apple-input.png 295w,\n/blog/static/5fb6f401566e267beac4a4b1a2b036dd/fb8a0/apple-input.png 590w,\n/blog/static/5fb6f401566e267beac4a4b1a2b036dd/c2adc/apple-input.png 766w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<h2>How To Create a Mind</h2>\n<p>So how would PRTM be repeated in computers? Kurzweil suggests that the best results will come from using hierarchical hidden Markov models and genetic algorithms, especially since he used all three successfully in his speech recognition work.</p>\n<p>We would start with the pattern recognizer module. Make as many copies of the recognizer as we have memory and computational resources to support. Each recognizer computes the probability that its pattern has been recognized. In doing so, it takes into consideration the observed magnitude of each input (in some appropriate continuum) and matches these against the learned size and size variability parameters associated with each input. The recognizer triggers its simulated axon if that computed probability exceeds a threshold. This threshold and the parameters that control the computation of the pattern’s probability are among the parameters we will optimize with a genetic algorithm. Because it is not a requirement that every input be active for a pattern to be recognized, this provides for autoassociative recognition (that is, recognizing a pattern based on only part of the pattern being present). We also allow for inhibitory signals (signals that indicate that the pattern is less likely). Recognition of the pattern sends an active signal up the simulated axon of this pattern recognizer. This axon is in turn connected to one or more pattern recognizers at the next higher conceptual level. All of the pattern recognizers connected at the next higher conceptual level are accepting this pattern as one of its inputs. Each pattern recognizer also sends signals down to pattern recognizers at lower conceptual levels whenever most of a pattern has been recognized, indicating that the rest of the pattern is “expected.” Each pattern recognizer has one or more of these expected signal input channels. When an expected signal is received in this way, the threshold for recognition of this pattern recognizer is lowered (made easier). The pattern recognizers are responsible for “wiring” themselves to other pattern recognizers up and down the conceptual hierarchy. Note that all the “wires” in a software implementation operate via virtual links (which are basically memory pointers) and not actual wires. This system is actually much more flexible than that in the biological brain. In a human brain, new patterns have to be assigned to an actual physical pattern recognizer, and new connections have to be made with an actual axon to dendrite link. Usually this means taking an existing physical connection that is approximately what is needed and then growing the necessary axon and dendrite extensions to complete the full connection.</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/blog/static/8406b8d3e177f5393a349e782fc5b314/caca9/signal-input.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 590px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 66.9761273209549%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsSAAALEgHS3X78AAAB0UlEQVQ4y12TB47CQAxFc3iuwCG4AwiEEBI1oYMQILSE3nv35lnrrMCSMzMZ5/v723FW67V0u13p9/tyvV4Fu91u8jMayShwe/d+v9U5c3+/33V9PB4f987lcpFSqSSu58r5fBaz8XisSXa7XfgBRky5XJZKpaLeaDQ+QB1jZEzWAePNZiOHw0H2+70sFgs9A7xcLmUfvD+dTnp3+Ns/n89/hjxer5eWYB8DjgwwqNVq0mq1NBE2m83keDyGjL8tBMRhYFknk4l4nif5fF46nY60221lBbAyDfab7Va2gbNnpXTHkAGGHRffRmAsFpNEIiHT6VRZplIpSafT6vF4XO/m87k4MCKIg2oTnNELJqvVSpPQhEgkItFoVHzf1yqQAVl6vZ7U63UZDAb6vUNDstmsZgIYhpSay+WkWCxKoVDQTgJA6cSQjMlAX8Bc19VEqiEPmkBWDD0YGTTEAaBZVIBbd40d3mw2NSZsihkzBm0YAIT4BHJGBgAZEWSgWdVqVavwAwI2i441hC7bQBNESTj6lfBgjxSAEkuJ7FmtkeFgG0vmC+2SyaSudC+TyYROZ0lGFd9mGB+ABA6HQ20CYiM6DJlBdOIdv6PpDVP7QwznF+bxyyzYQBy3AAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Diagram of a pattern recognizer\"\n        title=\"\"\n        src=\"/blog/static/8406b8d3e177f5393a349e782fc5b314/fb8a0/signal-input.png\"\n        srcset=\"/blog/static/8406b8d3e177f5393a349e782fc5b314/1a291/signal-input.png 148w,\n/blog/static/8406b8d3e177f5393a349e782fc5b314/2bc4a/signal-input.png 295w,\n/blog/static/8406b8d3e177f5393a349e782fc5b314/fb8a0/signal-input.png 590w,\n/blog/static/8406b8d3e177f5393a349e782fc5b314/caca9/signal-input.png 754w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>To implement this approach to self-organizing hierarchical pattern recognition we should use hierarchical hidden Markov models. Note that not all hidden Markov model systems are fully hierarchical. To build a brain, we will want to enable our system to create as many new levels of hierarchy as needed. Also, most hidden Markov model systems are not fully self-organizing. A key requirement is to allow for the system to flexibly create its own topologies based on the patterns it is exposed to.</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/blog/static/6b70bd3de43eee798151249aa1bf401b/e7ea1/HHMM.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 590px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 67.91237113402062%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAAAsSAAALEgHS3X78AAABqklEQVQ4y32T2Y7CMAxF+///xQtCIJ6GRVCWln1poXRvPTmWUgUGjaUojeNcX1+7nhhr21bc3VqaphJFkTyfTzkej9I0zVvMt3fepzNJErndbp0vz3PZ7/e6W7ua+9fr9RVUAe3CwjCUIAgUuCgKuVwust1u5Xq9SlEWEsWRng+HQwfkvvfcAwA/k4n4vq/lVlWlpU6nU7nf71LVlZY/m80UNC/yN4Yszx7qupayKmViAAeDgeqFwbbX6ylDDH+/3xd/5UtmZEiztItVhqfTSdbrdacJrGBhrSxLbQwJLZssyzpNH4+HVgSOAiL4arVSEDeTBQfMdvub0UDeW009NEIPqxmZYQNjkuGDGTtn4pq2keSVGA0LZUuFVhLvb85WHwVhoPpFcazNOp/PeoYACd2GuHP5NjZuxxeLhYzHYyN6plIwPsPhUAE/x+VtbNxLd0B3u51sNptOV8oFEP+/gNDnEcv9tkH2W8s0+qKlHR83rgOk7TSF1i+XS+2YXfw1+BGdO3a6iRx8oylv5/O5/lkKSMBoNJLYiA8LGsDsuTsLdix87O69nQzsF8ObOwhj07FxAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Diagram of hierarchical hidden Markov model\"\n        title=\"\"\n        src=\"/blog/static/6b70bd3de43eee798151249aa1bf401b/fb8a0/HHMM.png\"\n        srcset=\"/blog/static/6b70bd3de43eee798151249aa1bf401b/1a291/HHMM.png 148w,\n/blog/static/6b70bd3de43eee798151249aa1bf401b/2bc4a/HHMM.png 295w,\n/blog/static/6b70bd3de43eee798151249aa1bf401b/fb8a0/HHMM.png 590w,\n/blog/static/6b70bd3de43eee798151249aa1bf401b/e7ea1/HHMM.png 776w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>Our digital brain will also accommodate substantial redundancy of each pattern, especially ones that occur frequently. This allows for robust recognition of common patterns and is also one of the key methods to achieving invariant recognition of different forms of a pattern. We will, however, need rules for how much redundancy to permit, as we don’t want to use up excessive amounts of memory on very common low-level patterns.</p>\n<p>The rules regarding redundancy, recognition thresholds, and the effect on the threshold of a “this pattern is expected” indication are a few examples of key overall parameters that affect the performance of this type of self-organizing system. We would initially set these parameters based on intuition, but we would then optimize them using a genetic algorithm.</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/blog/static/b0bee30fb3f375830ae55d339dd6e2fe/9ccaf/training-models.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 433px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 75.75057736720554%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsSAAALEgHS3X78AAAB2klEQVQ4y3WT6Y7CMAyE+/4PBRL/ACFAXAKVcpQbcZZyFrz9LDnKol1LadIkHns8TvD5fAS7Xq9yOBzk9XoJe3+N9/ut49sej4fc73ddBz7gdruVOI7V6fl8KniWZW6Ncbbf72U0GkkYhjr6/b7u/QLEWHPADFCWOzObjcdjaTabGvR8PuuZMbJgAYvBYCBJkqjDfD7Xi9AgM4xSVCoVHcvlUk6nk+4RnLFer9VfM+RTr9cdpc1m4+qFtVotKRaL0u12FQhHwBjH49HtERw/pdxutyVNU41ONCt+oVCQRqOhBTdh/jPzUUCywIlIUMZKpZL0ej1ds09A6JHRZDKR6XQqi8VC789mM1dLpVytVuV2u2naOHChXC4rGLSoKYDQBDwcDrXecX4viiLZ7XauTJohyl0uF422Wq20DSwrxAEQBrQW+7VaTTqdjioNmPWgUxlAE4UaQgUgnK1u9CjimapkSAC/5RQQIBSEMqJQN7I05Tj3ZwKROedk5p87ylDih0YGEBpGwSL7s2XkP0nbC3zpoYAgCJPmazJwTZ5nYPW0TMkKZtSfmbPA768kP6DQXACcJxblb3aYq0qbMPOqUJaZd8x9E1AB/aJ+m9UU1a3veAQozB7DxDT7Ae2VfgQdL38mAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Diagram of hand-coded versus learning techniques\"\n        title=\"\"\n        src=\"/blog/static/b0bee30fb3f375830ae55d339dd6e2fe/9ccaf/training-models.png\"\n        srcset=\"/blog/static/b0bee30fb3f375830ae55d339dd6e2fe/12290/training-models.png 148w,\n/blog/static/b0bee30fb3f375830ae55d339dd6e2fe/34c59/training-models.png 295w,\n/blog/static/b0bee30fb3f375830ae55d339dd6e2fe/9ccaf/training-models.png 433w\"\n        sizes=\"(max-width: 433px) 100vw, 433px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>A hierarchical pattern recognition system (digital or biological) will only learn about two, preferably one, hierarchical levels at a time. To bootstrap the system we would start with previously trained hierarchical networks that have already learned their lessons in recognizing human speech, printed characters, and natural-language structures. Such a system would be capable of reading natural-language documents but would only be able to master approximately one conceptual level at a time. Previously learned levels would provide a relatively stable basis to learn the next level. The system can read the same documents over and over, gaining new conceptual levels with each subsequent reading, similar to the way people reread and achieve a deeper understanding of texts.</p>\n<p>We should also provide a critical thinking module, which would perform a continual background scan of all of the existing patterns, reviewing their compatibility with the other patterns (ideas) in this software neocortex. We have no such facility in our biological brains, which is why people can hold completely inconsistent thoughts with equanimity. Upon identifying an inconsistent idea, the digital module would begin a search for a resolution, including its own cortical structures as well as all of the vast literature available to it. A resolution might simply mean determining that one of the inconsistent ideas is simply incorrect (if contradicated by a preponderance of conflicting data). More constructively, it would find an idea at a higher conceptual level that resolves the apparent contradiction by providing a perspective that explains each idea. The system would add this resolution as a new pattern and link to the ideas that initially triggered the search for the resolution. This critical thinking module would run as a continual background task.</p>\n<p>We should also provide a module that identifies open questions in every discipline. As another continual background task, it would search for solutions to them in other disparate areas of knowledge. The knowledge in the neocortex consists of deeply nested patterns of patterns and is therefore entirely metaphorical. We can use one pattern to provide a solution or insight in an apparently disconnected field using these metaphors.</p>\n<p>We should provide a means of stepping through multiple lists simultaneously to provide the equivalent of structured thought. A list might be the statement of the constraints that a solution to a problem must satisfy. Each step can generate a recursive search through the existing hierarchy of ideas or a search through available literature. We will also want to enhance our artificial brains with the kind of intelligence that computers have always excelled in, which is the ability to master vast databases accurately and implement known algorithms quickly and efficiently. Finally, any new brain will need a purpose, a series of goals, to set it in the right direction.</p>\n<p>The brain is extremely slow but massively parallel. Today’s digital circuits are at least 10 million times faster than the brain’s electrochemical switches. Conversely, all 300 million of the brain’s neocortical pattern recognizers process simultaneously, and all quadrillion of its interneuronal connections are potentially computing at the same time. The key issue for providing the requisite hardware to successfully model a human brain, though, is the overall memory and computational throughput required. We do not need to directly copy the brain’s architecture, which would be a very inefficient and inflexible approach.</p>\n<p>Our new digital brain can be expanded in ways that a human biological brain cannot. Once a digital neocortex learns a skill, it can transfer that know-how in minutes or even seconds. When we augment our own neocortex with a synthetic version, we won’t have to worry about how much additional neocortex can physically fit into our bodies and brains, as most of it will be in the cloud, like most of the computing we use today. As soon as we start thinking in the cloud, there will be no natural limits— we will be able to use billions or trillions of pattern recognizers, basically whatever we need, and whatever the law of accelerating returns can provide at each point in time. Lastly, we will of course be able to back up the digital portion of our intelligence, never losing any knowledge or memories ever again.</p>\n<p>As I hope I’ve summarized in this blog post, combining human-level pattern recognition with the inherent speed and accuracy of computers will result in very powerful abilities and a very bright future indeed, which is what got me so excited in the first place and has lead me to this point in my life.</p>","frontmatter":{"title":"How to Create a Mind","date":"April 05, 2019"}}},"pageContext":{"slug":"/6/how-to-create-a-mind/","previous":{"fields":{"slug":"/5/digidex-reflections/"},"frontmatter":{"title":"How I Built My First Full-Stack Web Application"}},"next":null}}