tag:blogger.com,1999:blog-71003972024-03-12T18:51:00.914-07:00Mark Watson's artificial intelligence and Lisp hacking blogI am a consultant and the author of 20+ books on artificial intelligence, machine learning, and the semantic web. 55 US patents. My favorite languages are Common Lisp, Haskell, Clojure, and Python. I live in Sedona Arizona.<br><a href="https://markwatson.com">My personal web site with free downloads of my eBooks</a><br><br><b>Privacy Policy:</b><br><br><b>My blog is hosted on Google's Blogger service that uses tracking cookies.</b>Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.comBlogger1183125tag:blogger.com,1999:blog-7100397.post-75106559821046002972023-08-28T07:23:00.001-07:002023-08-28T07:23:20.466-07:00My Dad's work with Robert Oppenheimer and Edward Teller<p>Robert Oppenheimer and Edward Teller facilitated my Dad getting a professorship at UC Berkeley when I was 3 years old. Oppenheimer left Berkeley but Teller was a good friend of my father and I remember him being in our home.</p><p>Three weeks ago, my wife and I were just leaving to see the new Oppenheimer movie when my Dad called. He mentioned that when I was in grade school he was invited to give a talk at Princeton. After his talk Oppenheimer talked with my Dad and invited him to have dinner at his house. My Dad said Oppenheimer was not well (I think he died of throat cancer soon afterwards) but his wife Kitty carried the conversation.</p><p>My Dad, Ken Watson, passed away 10 days ago on August 18, 2023.</p>Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.com0tag:blogger.com,1999:blog-7100397.post-84799948525970772802023-03-12T16:29:00.001-07:002023-03-12T16:31:08.090-07:00Time and Attention Fragmentation in Our Digital Lives<p> <span style="-webkit-text-size-adjust: auto; font-family: UICTFontTextStyleBody; font-size: 21.33px;">As humans we have evolved over a few million years to be both attentive and reactive to danger, live in social communities, and spend much of our time being in the present moment gathering and eating food and socializing.</span></p><p class="p2" style="-webkit-text-size-adjust: auto; font-size: 21.3px; font-stretch: normal; line-height: normal; margin: 0px; min-height: 26.9px;"><span class="s1" style="font-family: UICTFontTextStyleBody; font-size: 21.33px;"></span><br /></p><p class="p1" style="-webkit-text-size-adjust: auto; font-size: 21.3px; font-stretch: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-family: UICTFontTextStyleBody; font-size: 21.33px;">The behavior of rapidly changing short attention to content on social media, too many good short form things to watch on streaming video entertainment platforms, are all rewiring our brains in an unnatural and unhealthy way.</span></p><p class="p1" style="-webkit-text-size-adjust: auto; font-size: 21.3px; font-stretch: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-family: UICTFontTextStyleBody; font-size: 21.33px;"><br /></span></p><p class="p1" style="-webkit-text-size-adjust: auto; font-size: 21.3px; font-stretch: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-family: UICTFontTextStyleBody; font-size: 21.33px;">I fight back, but in really simple ways that entail little ceremony:</span></p><p class="p2" style="-webkit-text-size-adjust: auto; font-size: 21.3px; font-stretch: normal; line-height: normal; margin: 0px; min-height: 26.9px;"><br /><span class="s1" style="font-family: UICTFontTextStyleBody; font-size: 21.33px;"></span></p><p class="p1" style="-webkit-text-size-adjust: auto; font-size: 21.3px; font-stretch: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-family: UICTFontTextStyleBody; font-size: 21.33px;">Almost every morning I spend 30 minutes scanning Hacker News (about 10 minutes), Apple News (about 5 minutes), and the remaining time on Twitter and Mastodon finding interesting new (mostly tech) things. I make notes in a temporary Apple Note: links of things I may want to research, try, or simply read that day. I like to get this all done at once, and then not feel like I need to interrupt my activities during the day to “catch up” on what is happening in the world.</span></p><p class="p2" style="-webkit-text-size-adjust: auto; font-size: 21.3px; font-stretch: normal; line-height: normal; margin: 0px; min-height: 26.9px;"><span class="s1" style="font-family: UICTFontTextStyleBody; font-size: 21.33px;"></span><br /></p><p class="p1" style="-webkit-text-size-adjust: auto; font-size: 21.3px; font-stretch: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-family: UICTFontTextStyleBody; font-size: 21.33px;">In a way, it seems like 30 minutes a day, summed up over 365 days in a year, is a frightening amount of life spent on what I would consider “indexing.” In a typical day, I might spend between 1 and 3 hours taking long attention span meanderings over stuff on my daily (temporary) Apple note. While I feel kind of bad about the 30 minutes of chaotic short attention span “discovery and indexing” time each morning, I don’t feel bad at all, in fact the opposite I feel good about spending more time during the day diving more deeply into the few things on my daily list.</span></p><p class="p2" style="-webkit-text-size-adjust: auto; font-size: 21.3px; font-stretch: normal; line-height: normal; margin: 0px; min-height: 26.9px;"><span class="s1" style="font-family: UICTFontTextStyleBody; font-size: 21.33px;"></span><br /></p><p class="p1" style="-webkit-text-size-adjust: auto; font-size: 21.3px; font-stretch: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-family: UICTFontTextStyleBody; font-size: 21.33px;">Another thing I feel very good about is spending long periods of time socializing with friends and family, reading fiction (and sometimes technical books) or watching a single good movie in the evening.</span></p>Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.com0tag:blogger.com,1999:blog-7100397.post-15324744386668309542023-02-02T15:39:00.007-07:002023-02-02T16:06:52.281-07:00ChatGPT as part of the evolution of programming languagesIn the 1940s von Neumann and his colleagues created conceptual models for computer architectures that were oriented toward the engineering problems of building computing devices, and not for making it easier for humans to write programs.
The Lambda Calculus and also the design of the Prolog programming language are the first real efforts that I am aware of to place emphasis on how we humans think and solve problems.<div><br /><div>I had a thought earlier today that I keep coming back to: there are concise programming languages that can be more difficult to write code with, but once done the code is more valuable because of its conciseness that yields better readability.</div><div><br /></div><div>I have been fascinated by, and use Copilot and ChatGPT to write code and sometimes it works well enough. What will the effects of ChatGPT and future LLMs be on the popularity of niche languages like Prolog and APL?</div><div><br /></div><div>All things considered I would often rather have a concise program in Prolog or a flavor of Lisp than a much larger program written in a verbose language (e.g., Java). If I can describe a problem and generate a quality program in any language, then I will ask for generation in my favorite languages.</div><div><br /></div><div>Because of its possible utility for so many tasks, ChatGPT and future similar systems really seem like programming environments to me.</div><div><br /></div><div>Collecting textual context data for a problem, appending a series of questions to be answered, and sending the resulting text off to ChatGPT also seems like programming to me.</div></div>Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.com0tag:blogger.com,1999:blog-7100397.post-74241815015717649432022-11-05T08:30:00.000-07:002022-11-05T08:30:22.078-07:00Elon Musk & Twitter, Tech job market, my writing projectsI find it sad that Musk's purchase of Twitter is turning out so badly. I read that advertisement pre-sales for next year are very low, thus the urgent need to cut expenses. I don't dissagree with Elon Musk's original idea of having an uncensored platform, but the execution is not good. My best wishes to everyone at Twitter (and other tech companies) who have lost their jobs recently. The job market was crazy-good for a few years, and now I expect it to more like after the 2000 dot-com-crash, at least for a few years.
<p>I advise people to take a different approach to managing their careers. As fantastic as online (often free) classes are for teaching useful stuff like machine learning, front end development, etc., this has also greatly expanded the global talent pool. Now more than ever, I advise learning through doing your own projects. I have literally done this myself for the last 40 years: I spend my own time experimenting with tech that both fascinates me and might be useful for my employer. Take control of what you want to learn and work on even if initially it is unpaid work.</p>
<p>I have been using my Mastodon account <a href="https://mastodon.social/@mark_watson">https://mastodon.social/@mark_watson</a> but I have plans what so ever to give up Twitter (you can follow me at <a href="https://twitter.com/mark_l_watson">https://twitter.com/mark_l_watson</a>). I rely on Twitter to get tech news, thanks to the awesome people I follow. I am working hard to also follow awesome people on Mastodon.</p>
<p>About 12 years ago, I used LaTex to write a semantic web book, but in 2 editions: Common Lisp and Java. It was very cool to have 2/3 of the manuscript common text, and about 1/3 unique to the programming language.
For the last two evenings, I have been revisiting my old manuscript materials because I am thinking of updating the material and also creating additional editions for more programming languages: Python, JavaScript, and maybe Swift and Prolog.</p>
<p>I had forgot how cool TeX and LaTex are. It was very easy to start working with again, even after a 12 year gap.</p>
Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.com0tag:blogger.com,1999:blog-7100397.post-67880485087578127002022-10-01T10:45:00.000-07:002022-10-01T10:45:41.760-07:00Not really retired 😀<p>I read with some humor my last blog post from 6 months ago, saying that I was
retired. Ha! As I mentioned 6 months ago, my wife has chronic health problems
but those have stabalized, and life is now fairly good. I did start a very much
part time (15 hours/week) advisory gig with
<a href="https://mind.ai" target="_blank">Mind AI</a> about 4 months ago.
Enjoyable work on an interesting product. I am not performing any substantial
development work, rather spending most of my time as an architect and advisor. I am 71
years old, and leaving heavy lifting development work to younger and more
energetic co-workers is for the best.
</p>
<p>I have a huge backlog of writing
projects, mostly on hold for the moment because of my work at Mind AI:
</p>
<ul><li>A new
book "Artificial Intelligence Programming in Python: Exploring the Boundaries of
Deep Learning, Symbolic AI, and Knowledge Representation".</li><li>Edits for my Common
Lisp book, adding new examples.</li><li>Ideas and some new code for my Swift AI book.</li></ul>
<p>
For the last year I have been basically giving away my recent eBooks for free on
<a href="https://leanpub.com/u/markwatson" target="_blank">Leanpub</a> by
setting the minimum price to $0.00. I stopped doing this today. Now all of my
recent eBooks are available for free online reading on my website
<a href="https://markwatson.com" target="_blank">https://markwatson.com</a> and readers have to pay for
PDF/ePub/Kindle versions on <a href="https://leanpub.com/u/markwatson" target="_blank">Leanpub</a>.
</p>
<p>I have been very happy to get 5 visits to my home in Sedona this year from old collegues, including my boss from 40 years ago and a recent co-worker from Olive AI. Great fun!</p>
<p>I also have a new hobby: I joined the Northern Arizona Audubon Society. Yes, I am now a bird watcher! I have some experience at this bird watching activity: I have had my pet parrot for 20 years. Looking at wild birds is fun also, and the birding hikes are guided by experts so this is a learning experience.<p>
Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.com0tag:blogger.com,1999:blog-7100397.post-32321438315263365152022-03-05T06:44:00.002-07:002022-03-05T06:44:17.792-07:00I retired yesterday: my list of things to do in retirement<p>What does an intelligent person do in retirement? That is a question of individual tastes but I will share my list of 20 things.</p>
<p>Yesterday was my last day working on a recommendation model at Babylist. Babylist is a great company to work for but I decided to retire in order to spend more time helping my wife who now has chronic health problems. When I write books, my wife enjoys editing my work so we will keep doing that. I also plan on being a <i>gentleman computer scientist</i> by working on open source deep learning applications and semantic web/linked data tools and applications.</p>
<p>I may end up not doing all of these things, but generally I plan on spending more time on current interests and starting some new hobbies:</p>
<b>Retirement Activities</b><br/>
<ul>
<li>Join an Internet Chess club **DONE**</li>
<li>Get a fishing license</li>
<li>Video Games</li>
<li>Improve my cooking/recipe web site</li>
<li>Reading</li>
<li>Release new editions for my 3 most popular eBooks</li>
<li>Practice guitar, Native American Flute, and didgeridoo</li>
<li>Eco-box vegetable garden</li>
<li>Set up my model trains</li>
<li>Play online Go. **DONE** online-go.com</li>
<li>Learn to use the Ham radio (listen only, no license) that my son in law Josh gave me</li>
<li>Photography</li>
<li>Wednesday and Saturday morning bird watching tours at <a href="https://azstateparks.com/red-rock/events/sedona-red-rock-daily-guided-nature-walks" target="_blank">Red Rock State Park</a></li>
<li>Kayaking</li>
<li>Take more road trips with Carol and friends</li>
<li>Using my new meat smoker</li>
<li>Hiking with my friends</li>
<li>Marksmanship: spend more time at the shooting range (I own a 22 caliber target pistol)</li>
<li>Meditation</li>
<li>Start taking flying lessons again</li>
</ul>
<p>I may not do all of these activities but I found it useful to put some thought into what I want to now spend my time on.</p>Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.com1tag:blogger.com,1999:blog-7100397.post-11566114324265801512021-09-21T08:56:00.002-07:002021-09-21T08:56:49.122-07:00My productivity hacksLike most people, there are many more things that I would like to do than I have time to do. I believe that learning to identify action items that simply should not be done is valuable, but not easy to do.
I am mildly attention deficit in the sense that I can only think about or attend to one thing at a time. For a computer scientist, this has been a super power, but is personally inconvenient.
I keep 3 TODO lists:
<ul><li>TODO high priority - I tend to have 1 to 3 things on this list. I time box my
activities so this list is the actions that I will rotate through. I usually
work in 60 to 90 minute sprints, but for deep coding this may be 3 or 4 hours.</li>
<li>TODO open - everything that I would like to do, but a lot of stuff on this list
gets deleted with no further effort (the all important decisions on what not to
do).</li>
<li>TODO done - instead of deleting completed actions on "TODO high priority" I
cut the text and paste the action text to the top of this list.</li></ul>
I really like the <a href="https://freedom.to" target="new">Freedom.to</a> web site and app blocker. I feel like I am setting parental controls on myself. I keep a list of fun but not very useful web sites and apps (e.g., Hacker News, Twitter, Reddit tech groups, and Facebook) that can only be accessed in the early morning, briefly during lunch, and in the evening times. I sometimes temporarily unblock sites if I want to quickly post something to social media.
<p>I place no limits on the time I spend on meditation, hiking, kayaking, cooking + meals, and reading good books. I try to limit watching streaming media to a few shows and also movies I watch with my wife and/or friends.</p>
Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.com0tag:blogger.com,1999:blog-7100397.post-47240282869304770582021-03-24T10:36:00.006-07:002021-03-24T10:38:37.086-07:00DBPedia Natural Language Interface Using Huggingface TransformerI prototyped a simple natural language question answering demo in about 90 minutes. I accept a query like “where does Bill Gates work?”, find the likely URI for Bill Gates, collect some comment text for this DBPedia entity, and then pass the original query to the transformer model with the “context” being the comment text collected via a SPARQL query.
I run this on Google Colab. Note that I saved my Jupyter Notebook as a python file that is in the listing below. Note the use of ! to run shell commands (e.g., !pip install transformers).
<br/>
<pre style='color:#000000;background:#ffffff;'><span style='color:#696969; '># -*- coding: utf-8 -*-</span>
<span style='color:#696969; '>"""DbPedia QA system.ipynb</span>
<span style='color:#696969; '></span>
<span style='color:#696969; '>Automatically generated by Colaboratory.</span>
<span style='color:#696969; '></span>
<span style='color:#696969; '>Original file is located at</span>
<span style='color:#696969; '>    </span><span style='color:#5555dd; '>https://colab.research.google.com/drive/1FX-0eizj2vayXsqfSB2ONuJYG8BaYpGO</span><span style='color:#696969; '></span>
<span style='color:#696969; '></span>
<span style='color:#696969; '>**DBPedia Question Answering System**</span>
<span style='color:#696969; '>Copyright 2021 Mark Watson. All rights reserved. License: Apache 2</span>
<span style='color:#696969; '>"""</span>
!pip install transformers
!pip install SPARQLWrapper
<span style='color:#800000; font-weight:bold; '>from</span> transformers <span style='color:#800000; font-weight:bold; '>import</span> pipeline
qa <span style='color:#808030; '>=</span> pipeline<span style='color:#808030; '>(</span>
<span style='color:#0000e6; '>"question-answering"</span><span style='color:#808030; '>,</span>
<span style='color:#696969; '>#model="NeuML/bert-small-cord19qa",</span>
model<span style='color:#808030; '>=</span><span style='color:#0000e6; '>"NeuML/bert-small-cord19-squad2"</span><span style='color:#808030; '>,</span>
tokenizer<span style='color:#808030; '>=</span><span style='color:#0000e6; '>"NeuML/bert-small-cord19qa"</span>
<span style='color:#808030; '>)</span>
!pip install <span style='color:#800000; font-weight:bold; '>import</span> spacy
!python <span style='color:#44aadd; '>-</span>m spacy download en_core_web_sm
<span style='color:#800000; font-weight:bold; '>import</span> spacy
nlp_model <span style='color:#808030; '>=</span> spacy<span style='color:#808030; '>.</span>load<span style='color:#808030; '>(</span><span style='color:#0000e6; '>'en'</span><span style='color:#808030; '>)</span>
<span style='color:#800000; font-weight:bold; '>from</span> SPARQLWrapper <span style='color:#800000; font-weight:bold; '>import</span> SPARQLWrapper<span style='color:#808030; '>,</span> JSON
sparql <span style='color:#808030; '>=</span> SPARQLWrapper<span style='color:#808030; '>(</span><span style='color:#0000e6; '>"http://dbpedia.org/sparql"</span><span style='color:#808030; '>)</span>
<span style='color:#800000; font-weight:bold; '>def</span> query<span style='color:#808030; '>(</span>query<span style='color:#808030; '>)</span><span style='color:#808030; '>:</span>
sparql<span style='color:#808030; '>.</span>setQuery<span style='color:#808030; '>(</span>query<span style='color:#808030; '>)</span>
sparql<span style='color:#808030; '>.</span>setReturnFormat<span style='color:#808030; '>(</span>JSON<span style='color:#808030; '>)</span>
<span style='color:#800000; font-weight:bold; '>return</span> sparql<span style='color:#808030; '>.</span>query<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#808030; '>.</span>convert<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#808030; '>[</span><span style='color:#0000e6; '>'results'</span><span style='color:#808030; '>]</span><span style='color:#808030; '>[</span><span style='color:#0000e6; '>'bindings'</span><span style='color:#808030; '>]</span>
nlp_model <span style='color:#808030; '>=</span> spacy<span style='color:#808030; '>.</span>load<span style='color:#808030; '>(</span><span style='color:#0000e6; '>'en'</span><span style='color:#808030; '>)</span>
<span style='color:#800000; font-weight:bold; '>def</span> entities_in_text<span style='color:#808030; '>(</span>s<span style='color:#808030; '>)</span><span style='color:#808030; '>:</span>
doc <span style='color:#808030; '>=</span> nlp_model<span style='color:#808030; '>(</span>s<span style='color:#808030; '>)</span>
ret <span style='color:#808030; '>=</span> <span style='color:#800080; '>{</span><span style='color:#800080; '>}</span>
<span style='color:#800000; font-weight:bold; '>for</span> <span style='color:#808030; '>[</span>ename<span style='color:#808030; '>,</span> etype<span style='color:#808030; '>]</span> <span style='color:#800000; font-weight:bold; '>in</span> <span style='color:#808030; '>[</span><span style='color:#808030; '>[</span>entity<span style='color:#808030; '>.</span>text<span style='color:#808030; '>,</span> entity<span style='color:#808030; '>.</span>label_<span style='color:#808030; '>]</span> <span style='color:#800000; font-weight:bold; '>for</span> entity <span style='color:#800000; font-weight:bold; '>in</span> doc<span style='color:#808030; '>.</span>ents
<span style='color:#808030; '>]</span><span style='color:#808030; '>:</span>
<span style='color:#800000; font-weight:bold; '>if</span> etype <span style='color:#800000; font-weight:bold; '>in</span> ret<span style='color:#808030; '>:</span>
ret<span style='color:#808030; '>[</span>etype<span style='color:#808030; '>]</span> <span style='color:#808030; '>=</span> ret<span style='color:#808030; '>[</span>etype<span style='color:#808030; '>]</span> <span style='color:#44aadd; '>+</span> <span style='color:#808030; '>[</span>ename<span style='color:#808030; '>]</span>
<span style='color:#800000; font-weight:bold; '>else</span><span style='color:#808030; '>:</span>
ret<span style='color:#808030; '>[</span>etype<span style='color:#808030; '>]</span> <span style='color:#808030; '>=</span> <span style='color:#808030; '>[</span>ename<span style='color:#808030; '>]</span>
<span style='color:#800000; font-weight:bold; '>return</span> ret
<span style='color:#800000; font-weight:bold; '>def</span> dbpedia_get_entities_by_name<span style='color:#808030; '>(</span>name<span style='color:#808030; '>,</span> dbpedia_type<span style='color:#808030; '>)</span><span style='color:#808030; '>:</span>
sparql <span style='color:#808030; '>=</span> <span style='color:#0000e6; '>"select distinct ?s ?comment where {{ ?s <http://www.w3.org/2000/01/rdf-schema#label> </span><span style='color:#0f69ff; '>\"</span><span style='color:#0000e6; '>{}</span><span style='color:#0f69ff; '>\"</span><span style='color:#0000e6; '>@en . ?s <http://www.w3.org/2000/01/rdf-schema#comment> ?comment . FILTER (lang(?comment) = 'en') . ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> {} . }} limit 15"</span><span style='color:#808030; '>.</span>format<span style='color:#808030; '>(</span>name<span style='color:#808030; '>,</span> dbpedia_type<span style='color:#808030; '>)</span>
<span style='color:#696969; '>#print(sparql)</span>
results <span style='color:#808030; '>=</span> query<span style='color:#808030; '>(</span>sparql<span style='color:#808030; '>)</span>
<span style='color:#800000; font-weight:bold; '>return</span><span style='color:#808030; '>(</span>results<span style='color:#808030; '>)</span>
entity_type_to_type_uri <span style='color:#808030; '>=</span> <span style='color:#800080; '>{</span><span style='color:#0000e6; '>'PERSON'</span><span style='color:#808030; '>:</span> <span style='color:#0000e6; '>'<http://dbpedia.org/ontology/Person>'</span><span style='color:#808030; '>,</span>
<span style='color:#0000e6; '>'GPE'</span><span style='color:#808030; '>:</span> <span style='color:#0000e6; '>'<http://dbpedia.org/ontology/Place>'</span><span style='color:#808030; '>,</span> <span style='color:#0000e6; '>'ORG'</span><span style='color:#808030; '>:</span>
<span style='color:#0000e6; '>'<http://dbpedia.org/ontology/Organisation>'</span><span style='color:#800080; '>}</span>
<span style='color:#800000; font-weight:bold; '>def</span> QA<span style='color:#808030; '>(</span>query_text<span style='color:#808030; '>)</span><span style='color:#808030; '>:</span>
entities <span style='color:#808030; '>=</span> entities_in_text<span style='color:#808030; '>(</span>query_text<span style='color:#808030; '>)</span>
<span style='color:#800000; font-weight:bold; '>def</span> helper<span style='color:#808030; '>(</span>entity_type<span style='color:#808030; '>)</span><span style='color:#808030; '>:</span>
ret <span style='color:#808030; '>=</span> <span style='color:#0000e6; '>""</span>
<span style='color:#800000; font-weight:bold; '>if</span> entity_type <span style='color:#800000; font-weight:bold; '>in</span> entities<span style='color:#808030; '>:</span>
<span style='color:#800000; font-weight:bold; '>for</span> hname <span style='color:#800000; font-weight:bold; '>in</span> entities<span style='color:#808030; '>[</span>entity_type<span style='color:#808030; '>]</span><span style='color:#808030; '>:</span>
results <span style='color:#808030; '>=</span> dbpedia_get_entities_by_name<span style='color:#808030; '>(</span>hname<span style='color:#808030; '>,</span> entity_type_to_type_uri<span style='color:#808030; '>[</span>entity_type<span style='color:#808030; '>]</span><span style='color:#808030; '>)</span>
<span style='color:#800000; font-weight:bold; '>for</span> result <span style='color:#800000; font-weight:bold; '>in</span> results<span style='color:#808030; '>:</span>
ret <span style='color:#44aadd; '>+</span><span style='color:#808030; '>=</span> ret <span style='color:#44aadd; '>+</span> result<span style='color:#808030; '>[</span><span style='color:#0000e6; '>'comment'</span><span style='color:#808030; '>]</span><span style='color:#808030; '>[</span><span style='color:#0000e6; '>'value'</span><span style='color:#808030; '>]</span> <span style='color:#44aadd; '>+</span> <span style='color:#0000e6; '>" . "</span>
<span style='color:#800000; font-weight:bold; '>return</span> ret
context_text <span style='color:#808030; '>=</span> helper<span style='color:#808030; '>(</span><span style='color:#0000e6; '>'PERSON'</span><span style='color:#808030; '>)</span> <span style='color:#44aadd; '>+</span> helper<span style='color:#808030; '>(</span><span style='color:#0000e6; '>'ORG'</span><span style='color:#808030; '>)</span> <span style='color:#44aadd; '>+</span> helper<span style='color:#808030; '>(</span><span style='color:#0000e6; '>'GPE'</span><span style='color:#808030; '>)</span>
<span style='color:#800000; font-weight:bold; '>print</span><span style='color:#808030; '>(</span><span style='color:#0000e6; '>"Answer from transformer model:"</span><span style='color:#808030; '>)</span>
<span style='color:#800000; font-weight:bold; '>print</span><span style='color:#808030; '>(</span><span style='color:#0000e6; '>"Original query: "</span><span style='color:#808030; '>,</span> query_text<span style='color:#808030; '>)</span>
<span style='color:#800000; font-weight:bold; '>print</span><span style='color:#808030; '>(</span><span style='color:#0000e6; '>"Answer:"</span><span style='color:#808030; '>)</span>
answer <span style='color:#808030; '>=</span> qa<span style='color:#808030; '>(</span><span style='color:#800080; '>{</span>
<span style='color:#0000e6; '>"question"</span><span style='color:#808030; '>:</span> query_text<span style='color:#808030; '>,</span>
<span style='color:#0000e6; '>"context"</span><span style='color:#808030; '>:</span> context_text
<span style='color:#800080; '>}</span><span style='color:#808030; '>)</span>
<span style='color:#800000; font-weight:bold; '>print</span><span style='color:#808030; '>(</span>answer<span style='color:#808030; '>)</span>
QA<span style='color:#808030; '>(</span><span style='color:#0000e6; '>"where does Bill Gates work?"</span><span style='color:#808030; '>)</span>
QA<span style='color:#808030; '>(</span><span style='color:#0000e6; '>"where is IBM is headquartered?"</span><span style='color:#808030; '>)</span>
QA<span style='color:#808030; '>(</span><span style='color:#0000e6; '>"who is Bill Clinton married to?"</span><span style='color:#808030; '>)</span>
</pre>
<!--Created using ToHtml.com on 2021-03-24 17:32:28 UTC -->
The output looks like this:
<pre>
Answer from transformer model:
Original query: where does Bill Gates work?
Answer:
{'score': 0.31679803133010864, 'start': 213,
'end': 222, 'answer': 'Microsoft'}
Answer from transformer model:
Original query: where is IBM is headquartered?
Answer:
{'score': 0.8704459071159363, 'start': 115, 'end': 131,
'answer': 'Armonk, New York'}
Answer from transformer model:
Original query: who is Bill Clinton married to?
Answer:
{'score': 0.00018714569159783423, 'start': 480, 'end': 505,
'answer': 'former secretary of state'}
</pre>
<br/>Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.com0tag:blogger.com,1999:blog-7100397.post-24484088077788057982020-10-22T16:41:00.000-07:002020-10-22T16:41:04.009-07:00I have a new job helping to build a Knowledge Graph at Olive AI<p> I retired (my last job was Master Software Engineer and the manager of a deep learning team at Capital One) a year ago April and was enjoying time with friends and family, doing personal research in hybrid AI, lots of writing, and volunteering at our local food bank. I stopped my volunteer work with COVID-19 and welcomed the opportunity last month to start work at <a href="https://oliveai.com" target="_blank">Olive AI</a> working on a very strong Knowledge Graph team. I believe in their mission and the work and the people are great!</p><p>It is refreshing to leave the deep learning field, at least for a while. My heart is in developing stronger AI that can explain its actions and adapt flexibly to help people in their lives. I always take a humans-first stand on technology. AI systems should help us get our work done efficiently and remove tedium, allow us more time for creative activities, and generally enjoy our own humanity.</p>Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.com0tag:blogger.com,1999:blog-7100397.post-51198093669975246952020-07-08T06:36:00.000-07:002020-07-08T06:36:40.159-07:00I have tried to take advantage of extra time during the COVID-19 pandemic<div>My wife Carol and I have been practicing social distancing and wearing masks for shopping for over 5 months now. Welcome to the new normal and a crazy world in which entertaining and seeing friends is done by meeting in people's yards and everyone bringing their own "meal in a bag."</div><div><br /></div><div>I enjoy writing so I have been updating my recent books, starting with <a href="https://leanpub.com/lovinglisp" target="_blank">Loving Common Lisp, or the Savvy Programmer's Secret Weapon</a> and <a href="https://leanpub.com/hy-lisp-python" target="_blank">A Lisp Programmer Living in Python-Land: The Hy Programming Language</a>. These are free to read online and licensed with Creative Commons Share and Share Alike, No Commercial Reuse, so you can also find copies on the web (hopefully up to date copies!).<br /></div><div><br /></div><div>Last month I started a much larger project: I have not updated my book <a href="https://leanpub.com/javaai" target="_blank">Practical Artificial Intelligence Programming With Java</a> since the fourth edition was published in 2013. I have discarded a lot of older material like exert systems, and have three new chapters on the semantic web and also a new chapter on deep learning. I also copied the material on anomaly detection from my Power Java book that is now discontinued and updated that material. Lastly, I am revisiting how readers install, run, and experiment with the code examples. I am still using maven but I am being more consistent, all of the examples are also installable libraries, and now some of the examples use the libraries developed in other examples.</div><div><br /></div><div>For fun, I have been buying more material for my Oculus Quest VR device. Favorites include ping pong, racket ball, the Star Wars Darth Vader Immortal 3 volume set, and I enjoy a lot of 3D art that people post.</div><div><br /></div><div>For exercise I try to hike every morning from 5:30am to about 6:30am (I live in the mountains of Central Arizona and even at high altitude it gets warmer later in the day). My wife and I cancelled our gym memberships so I bought myself some weights that I keep in my home office. I am a huge fan of the Apple Watch and I use it to track health and fitness activities.</div><div><br /></div><div>I hope that you, dear reader, are doing well in these crazy times we are living in.</div>Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.com0tag:blogger.com,1999:blog-7100397.post-36451427850190368392020-02-18T09:33:00.000-07:002020-02-18T09:33:35.289-07:00Custom built SBCL and using spaCy and TensorFlow in Common LispHere are some of my of my recent notes that might save you some time, or teach you a new trick.<br />
<br />
I have had good results using the <a href="https://github.com/bendudson/py4cl" target="_blank">py4cl library</a> if I wrap API calls to TensorFlow or spaCy in a short Python library that calls Python libraries and returns results in simple types like strings and dictionaries. I just committed a complete example (Python library and Common Lisp client code) to the public repo for my book <a href="https://leanpub.com/lovinglisp" target="_blank">Loving Common Lisp, or the Savvy Programmer's Secret Weapon</a> that will be added to the next edition of my book. Here is a link to the subdirectory with this new example in my repo: <a href="https://github.com/mark-watson/loving-common-lisp/tree/master/src/spacy" target="_blank">https://github.com/mark-watson/loving-common-lisp/tree/master/src/spacy</a><br />
<br />
I frequently make standalone executable programs using SBCL and I just noticed a great tip from <a href="https://lispblog.xach.com/" target="_blank">Zach Beane</a> for compressing the size of standalone executables. Start with rebuilding SBCL from source to add the compression option; get the source code and:<br />
<br />
./make.sh --with-sb-thread --with-sb-core-compression<br />sh install.sh<br />
<br />
When I now build my KGCreator application with:<br />
<br />
(sb-ext:save-lisp-and-die "KGcreator" :toplevel #'kgcreator :executable t :compression t)<br />
<br />
then the size of the standalone executable is reduced from 93MB to 19MB. I don't notice any extra startup time which is important for command line utilities.Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.com0tag:blogger.com,1999:blog-7100397.post-41299656590032823292020-02-10T17:30:00.000-07:002020-02-11T07:25:36.505-07:00Protecting oneself from surveillance capitalismAs an author I find occasional use of Facebook and Twitter to be useful for “broadcasting” notifications of my new books, open source projects, etc. I also find gmail to be useful for some types of email.<br />
<br />
Still, I do like to take a few easy steps to push back a little against the free use of my web behavioral data to profit corporations who I don’t do business with (and those I do):<br />
<ul>
<li>Use ProtonMail as my primary email</li>
<li>Use Firefox on my Linux and macOS laptops with individual containers for Google, FaceBook, etc.</li>
<li>On iOS devices, favor browsing with private tabs.</li>
<li>Use a VPN when I am traveling and when I need to use public WiFi </li>
<li>Limit use of my gmail address to a backup email and as a junk email address.</li>
<li>For online purchases from Amazon, etc. use a secure email service that does not use the contents of your email to market to you and as data to sell to 3rd parties.</li>
<li>Frequently delete all cookies from web browsers that you use.</li>
<li>Use private browsing windows for routine use of the web</li>
<li>Prefer to access the web on an iOS or Chromebook - probably more secure than a laptop or PC.</li>
<li>Logout from web apps like Facebook, LinkedIn, Amazon, Google, Twitter, etc. to avoid active sessions.</li>
<li>This takes some time, but on mobile devices, Apple/Windows laptops, etc. turn off tracking on as many apps as possible.</li>
</ul>
<div>
<br /></div>
Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.com0tag:blogger.com,1999:blog-7100397.post-40544429700326341672020-01-02T18:36:00.000-07:002020-01-02T18:39:56.390-07:00My hopes and predictions for the next 10 yearsHello everyone, I wish everyone a happy and healthy new year!<br />
<br />
Here are my predictions for the next ten years:<br />
<br />
<ul>
<li>Wearable devices like the Apple Watch will become widely used and because of user pushback we will see company’s like Apple, Google, Toshiba, Huawei, Samsung, etc. start to support standards that allow, for example, an Apple Watch to interact with a Samsung TV. Further, I expect a single personal device (watch or phone) to be for most users a connection hub that interacts with public kiosks, displays, input devices, etc.</li>
<li>Deep learning architectures and techniques will rapidly improve and will continue to rule the world, at least for a while. I expect at least one new dramatic paradigm shift for AI beyond current deep learning, reinforcement learning, etc. models.</li>
<li>The world economies will get hit hard and wealth will be in a larger part measured in terms of ownership of water and food production, manufacturing, technology IP, and hopefully hard assets like gold, silver, and secure cryptocurrencies. I expect most currencies will eventually be backed by about 20% gold and this will enforce some stability and help eliminate wild printing of fiat currencies. I expect SDRs, or something like them, to be the reserve currency. In ten years, I would expect SDRs to be about equally made up of US dollars, Euros, and Chinese currency.</li>
<li>Politically, world elites will continue to assume almost total control of news media and governments but they as a group will start to share more resources with highly trained and educated workers and allow the creation of a secure safety net that will provide a safer society because almost all people will have food and shelter needs met (this may take more than ten years). We all have to live on planet earth and everyone’s life improves with fewer wars and higher productivity.</li>
</ul>
<br />
<br />
<br />Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.com0tag:blogger.com,1999:blog-7100397.post-12027156484422498332019-09-26T07:06:00.002-07:002019-09-26T07:08:41.415-07:00GANs and other deep learning models for cooking recipesI retired this spring after working on artificial intelligence projects since the 1980s. Freedom from having to work on large projects for other people and companies is liberating and frees up time for thinking about new ideas. Currently I am most interested in deep learning models for generating and evaluating recipes - for now I am using a GAN model (which I am calling RecipeGAN).<br />
<br />
When I managed a deep learning team at Capital One, I used GANs to synthesize data. During a Saturday morning quiet-time hacking sprint the first month at my new job, I had the idea to take an example program SimpleGAN that generated MINST digits and instead generate numeric spreadsheet data (using the Wisconsin Cancer Data Set that I had previously used in my books as example machine learning data). I was really surprised how well this worked: I could generate fake Wisconsin cancer data, train a classification model on the fake data, and get classification prediction accuracy on real data samples that was almost as good as a model trained on real data. This was by just making about 40 lines of code changes to the short SimpleGAN TensorFlow example/demo program. My team took this simple idea and built a robust production system around it that is well described in <a href="https://medium.com/capital-one-tech/why-you-dont-necessarily-need-data-for-data-science-48d7bf503074">Austin Walter’s Medium article</a>.
<br />
<br />
Several years ago, a fan of my <a href="http://cookingspace.com/" target="_blank">CookingSpace.com web app</a> gave me 100K public domain recipes in digital format so I should have ample training data for RecipeGAN. I will put the code and data on github when I am done with this experiment. If you are not familiar with Generative Adversarial Networks (GANs), in the cooking/recipe context the idea is simple enough: a generator model takes as input a random vector (referred to as Z vector, or latent input) and generates random recipes (for now represented as sparse vectors indicating the use of ingredients). A discriminator model learns to tell the difference between fake ingredient lists generated by the generator and real ingredient list samples. Both models are trained jointly so the generator learns to better fool the discriminator model while the discriminator model learns to not be fooled. When this process is done, the discriminator model is no longer needed. New random latent Z input vectors fed as input to the generator model hopefully generate realistic ingredient lists.<br />
<br />
I am also interested in language generation and an end goal for my current research is to generate English directions for making the fake recipes (the ingredient lists created by the RecipeGAN generator model). This is a fun project and I also hope that the code and data will be useful to other people, even if I don’t get good results. Indeed, I am writing this blog now to encourage myself to share results no matter how well the system works. Ideas are meant to be shared.<br />
<br />
BTW, please don’t take my proclamations of being retired too seriously. I am still helping people, as a consultant, get started on deep learning projects.Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.comtag:blogger.com,1999:blog-7100397.post-37923083068433917032019-08-09T15:24:00.001-07:002019-08-09T15:25:43.756-07:00Back living in Sedona Arizona and enjoying my retirementMy wife and I returned to our home in Sedona Arizona in June. I had been managing a deep learning team for Capital One in Champaign Illinois (in the research park at UIUC). I am now retired so we moved back into our house in the mountains in Central Arizona.
<br/><br/>
re: retirement: while I will might still do small interesting consulting jobs, I am retired. I am spending my time volunteering at a local food bank, hiking and kayaking with my friends, and I joined a local writers group to give myself a shove to finish a sci-fi book I have been working on for a long time.
<br/><br/>
I released a second edition to my Haskell book this week and I have edits for a new edition for my Common Lisp book that I will push to current readers soon, but I plan on no longer writing new technical books. I have written 22 technical books - probably sufficient :-)
<br/><br/>
Personally my passion is still studying artificial intelligence and deep learning but this is now research for my personal pleasure.Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.comtag:blogger.com,1999:blog-7100397.post-80696100678918321112019-05-18T08:59:00.000-07:002019-05-18T08:59:06.384-07:00My large Haskell + Python project KGcreator (tool for automating the generation of Knowledge Graphs) and auto code formattingYou might wonder what the topics of <a href="http://www.kgcreator.com/" target="_blank">my large Haskell + Python project KGcreator</a> and auto code formatting have to do with each other.<br />
<br />
I addition to working on two Python books (<a href="https://leanpub.com/PythonIntelligentSystems" target="_blank">Python Intelligent Systems</a> and <a href="https://leanpub.com/dlgraph" target="_blank">Deep Learning and Graph Databases</a>), my main 'retirement' activity has been write a lot of Haskell code and a smaller amount of Python code for my <a href="http://www.kgcreator.com/" target="_blank">KGcreator</a> project. After reading a discussion on Hacker News yesterday about Python code tidy/auto-format tools, I decided to add Makefile targets.<br />
<br />
<br />
After a 'stack install stylish-haskell hindent' and a 'pip install yapf', I added something like this to my Haskell top level Makefile:<br />
<br />
<pre>tidy:
cd src/fileutils; stylish-haskell -i *.hs; hindent *.hs
cd src/nlp; stylish-haskell -i *.hs; hindent *.hs
cd src/sw; stylish-haskell -i *.hs; hindent *.hs
cd src/webclients; stylish-haskell -i *.hs; hindent *.hs
cd test; stylish-haskell -i *.hs; hindent *.hs
</pre>
<br />
And something like this to my Python top level Makefile:<br />
<pre>tidy:
cd botorch_bayesian_optimization; yapf *.py --style='{indent_width: 2}' -i
cd coref_anaphora_resolution_web_service; yapf *.py --style='{indent_width: 2}' -i
cd data_fusion; yapf *.py --style='{indent_width: 2}' -i
cd deep_learning_keras; yapf *.py --style='{indent_width: 2}' -i
cd deep_learning_pytorch; yapf *.py --style='{indent_width: 2}' -i
cd discrete_optimization; yapf *.py --style='{indent_width: 2}' -i
....
</pre>
Trivial stuff, but I already find my KGcreator and my books' codebases easier to work with. For Common Lisp and Scheme I always just rely on using the tab character to auto-indent and leave it at that. I use VSCode for both Haskell and Python development and after experimenting with a few extensions I decided it was easier to add a make target. Nothing is automated right now, I 'make tidy', 'make tests', and then 'git commit...' manually. Still to be done is adding git commit hooks. Fortunately I can use <a href="http://blog.markwatson.com/2014/09/setting-up-heroku-like-git-push-deploys.html" target="_blank">notes in one of my old blog posts</a> as a guide :-)
Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.comtag:blogger.com,1999:blog-7100397.post-9155210620751826632019-03-23T06:08:00.000-07:002019-03-23T06:08:20.314-07:00I retired from Capital One yesterdayWith deep gratitude for a great company and a great job, I retired from my role as manager of the UIUC machine learning team and Master Software Engineer. Capital One has deep machine learning talent so check them out if you are looking for ML work.<br />
<br />
Thanks especially to my team for being interesting to work with and for the kind going away gift of locally made Go Ban board, bowls, and Go stones. A wonderful gift. I will miss you all!<br />
<br />
When my family and friends hear me talk about <i>retirement</i> they do so with great skepticism since I have retired several times already! That said, I feel like kicking back and finishing my current book project and perhaps do limited consulting work after I travel a bit to see family and friends.Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.comtag:blogger.com,1999:blog-7100397.post-51573997937048657372019-02-10T08:21:00.000-07:002019-02-10T11:52:12.064-07:00Full circle from one laptop to rule them all to specialized function specific devicesFor about 25 years my digital life was wrapped tightly around whatever personal laptop I had. Since for most of that time I worked as a remote consultant (except for gigs at Singapore-based Ola Search, Google in Mountain View, and currently at Capital One in Urbana, Illinois) my personal laptop also covered work activities. There was something close and comforting about having one digital device that I relied on.<br />
<br />
Digital life is very different now. Because of concerns about ‘always being online’ and not paying enough attention to the non-digital world, I favor just wearing an Apple Watch and leaving my iPhone at home. The Apple Watch is just adequate enough for phone calls, messaging, and on rare occasions email and is not anything I spend any real time paying attention to. I can spend the good part of a day shopping, walking in a park, eating out, or perusing books in a library and just spend a few minutes paying attention to my watch. A huge improvement to cellphone addiction!<br />
<br />
For work, I have dedicated secure devices for getting my work done - the definition of purpose-specific.<br />
<br />
For home use, I have a powerful GPU laptop from System76 that I only use for machine learning and experiments I am doing fusing ‘classic’ symbolic AI with functional components that are just wrappers for deep learning models.<br />
<br />
Also for home use I have a MacBook that is primarily used for long writing sessions when I am working on a book project. Example code for my books tends to be short and pendantic so that development lives on the MacBook also.<br />
<br />
I depend on my iPhone when I travel to stay organized and to have local copies of required digital assets, including on-device cached Netflix movies, Audible audio books, and Kindle books.<br />
<br />
Lastly, the device that I spend more time on than any other (except for work devices) is my iPad on which I do close to 100% of my web browsing, almost all of my reading, enjoying entertainment, and lots of light weight writing like this blog post and editing and small additions to my current book project.<br />
<br />
If I count all cloud-based compute infrastructure for work as one huge virtual device, the count for the digital devices I use every week weighs in at eight devices. When I retire from my job at Capital One later this spring that device count falls to five devices - still really different than the old days of having one laptop for everything.<br />
<br />
Looking ahead to the future, perhaps only 5 or 10 years from now, I expect device profiles used by typical consumers to change a lot - mostly being one personal device that is always with you and then many different peripheral and possibly compute devices in your living and working environments that are shared with other people. I think there are three possibilities for what the one personal device may be:<br />
<br />
<ol>
<li>A smartphone </li>
<li>Something like an Apple Watch</li>
<li>Something like a one-ear only AirPod like device</li>
</ol>
<br />
Whatever the profile is for your personal digital device, it will securely be connected to all shared devices (e.g., smart TVs, shared keyboards and monitors, shared tablets of all sizes, smart cars, home entertainment centers, the cell phone network infrastructure, point of sale devices in stores, etc.).<br />
<br />Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.comtag:blogger.com,1999:blog-7100397.post-69768869603133118822019-02-05T19:02:00.002-07:002019-02-05T19:02:48.480-07:00AWS Neptune Graph Database as a serviceFascinating to see Amazon AWS supporting graph databases with their <a href="https://aws.amazon.com/neptune" target="_blank">Neptune service</a> - I have been working as a machine learning practitioner at Capital One (I manage a machine learning team there) but in a previous life, I worked with the Knowledge Graph when I was a consultant at Google and I have written a few semantic web/linked data books.<br />
<br />
As a side project at home I have been looking into Knowledge Graph building tools so Amazon;s new offering looks useful! I like that they support both SPARQL and and Gremlin for queries.Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.comtag:blogger.com,1999:blog-7100397.post-16792315343404296092019-01-27T09:28:00.001-07:002019-01-27T09:31:28.142-07:00Our humanity vs. technology and corporatismMy wife and I enjoyed a performance of <i>Sleeping Beauty</i> by the Russian National Ballet Theater last Wednesday night at a theater on campus at UIUC. Every time I enjoy art, company of family and friends, reading a good book, cooking and enjoying a meal, etc. I appreciate being a human (i.e., a somewhat evolved great ape) and my physical and social life.<br />
<br />
I view technology as a fairly neutral force in our lives. I judge technology on how it improves peoples' lives, health, the health of our planet, and generally how well it supports civil society. As technologists, we get value from being paid for our work and thus helping to support ourselves and our families and to spend money in our local economies (supporting local businesses and directly or indirectly hiring people working in our communities.) We also benefit from any pleasure we get learning new things while working. There are obvious bad aspects of technology and these bad aspects are mostly aligned with corporatism.<br />
<br />
Whether or not you believe in big government or small government, I argue that an important function of government is to provide some checks and balances to corporations. Corporations by design are systems for making money for owners/shareholders. While this can positively affect society there are too many cases where things go wrong: lobbying and perverting democratic systems of government, extracting too much value out of local communities, and centralizing economic power and control - killing off smaller and potentially better rivals.<br />
<br />
As technologists I think we can find a good balance between earning a good living to support ourselves, family, and community and also as much as possible choosing to work for organizations and projects that have a net benefit to overall society. I look at this in a way that is analogous to a "carbon tax" for technologies we create and use. Let's call it a "technology value tax" where we try to at least make our work "carbon neutral."Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.comtag:blogger.com,1999:blog-7100397.post-89999015106029742622019-01-24T17:05:00.001-07:002019-01-24T17:05:10.717-07:00Ocean Protocol MeetupOriginally posted January 9, 2019<br />
<br />
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
I hosted a meetup.com meeting today to talk about Ocean Protocol, other data sources for machine learning, and lead a group discussion of startup business ideas involving curating and selling data. The following is from a handout I created from material on the Ocean Protocol web site and other sources:</div>
<h1 id="data-trumps-software" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Data Trumps Software</h1>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Machine learning libraries like TensorFlow, Keras, PyTorch, etc. and people trained to use them have become a commodity. What is not a commodity yet is the availability of high quality application specific data.</div>
<h1 id="effective-machine-learning-requires-quality-data" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Effective machine learning requires quality data</h1>
<ul style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px 30px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<li><div style="margin: 0px 0px 15px; padding: 0px;">
Ocean Protocol<span class="Apple-converted-space"> </span><a href="https://oceanprotocol.com/" style="color: #1756a9; text-decoration: none;">https://oceanprotocol.com</a><span class="Apple-converted-space"> </span>- is a ecosystem based on blockchain for sharing data that serves needs for both data producers who want to monetize their data assets and for data consumers who need specific data that is affordable. This ecosystem is still under development but there are portions of the infrastructure (which will all be open source) already available. If you have docker installed you can quickly run their data marketplace demonstration system<span class="Apple-converted-space"> </span><a href="https://docs.oceanprotocol.com/setup/quickstart/" style="color: #1756a9; text-decoration: none;">https://docs.oceanprotocol.com/setup/quickstart/</a>.</div>
</li>
<li><div style="margin: 0px 0px 15px; padding: 0px;">
Common Crawl<span class="Apple-converted-space"> </span><a href="http://commoncrawl.org/" style="color: #1756a9; text-decoration: none;">http://commoncrawl.org</a><span class="Apple-converted-space"> </span>- is a free source of web crawl data that was previously only available to large search engine companies. There are many open source libraries to access and process crawl data. You can most easily get started by downloading a few WARC data segment files to your laptop. My open source Java and Clojure libraries for processing WARC files are at<span class="Apple-converted-space"> </span><a href="https://github.com/commoncrawl/example-warc-java" style="color: #1756a9; text-decoration: none;">https://github.com/commoncrawl/example-warc-java</a></div>
</li>
<li><div style="margin: 0px 0px 15px; padding: 0px;">
Amazon Public Dataset Program<span class="Apple-converted-space"> </span><a href="https://aws.amazon.com/opendata/public-datasets/" style="color: #1756a9; text-decoration: none;">https://aws.amazon.com/opendata/public-datasets/</a><span class="Apple-converted-space"> </span>- is a free service for hosting public datasets. AWS evaluates applications to contribute data quarterly if you have data to share. To access data sources search using the form at<span class="Apple-converted-space"> </span><a href="https://registry.opendata.aws/" style="color: #1756a9; text-decoration: none;">https://registry.opendata.aws</a>to find useful datasets and use the S3 bucket URIs (or ARNs) to access. Most data sources have documentation pages and example client libraries and examples.</div>
</li>
</ul>
<h1 id="overview-of-ocean-protocol" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Overview of Ocean Protocol</h1>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Ocean Protocol is a decentralized data exchange protocol that lets people share and monetize data while providing control, auditing, transparency and compliance to both data providers and data consumers. The initial Ocean Protocol digital token sale ended March 2018 and raised $22 million. Ocean Protocol tokens will be available by trading Ethereum Ether and can be used by data consumers to purchase access to data. Data providers will be able to trade tokens back to Ethereum Ether.</div>
<h2 id="terminology" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 32px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Terminology</h2>
<ul style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px 30px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<li>Publisher: is a service that provides access to data from data producers. Data producers will often also act as publishers of their own data.</li>
<li>Consumer: any person or organization who needs access to data. Access is via client libraries or web interfaces.</li>
<li>Marketplace: a service that lists assets and facilitates access to free datasets and datasets available for purchase.</li>
<li>Verifier: a software service that checks and validates steps in transactions for selling and buying data. A verifier is paid for this service.</li>
<li>Service Execution Agreement (SEA): a smart contract used by providers, consumers, and verifiers.</li>
</ul>
<h2 id="software-components" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 32px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Software Components</h2>
<ul style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px 30px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<li>Aquarius: is a service for storing and managing metadata for data assets that uses the off-chain database OceanDB.</li>
<li>Brizo: used by publishers for managing interactions with market places and data consumers.</li>
<li>Keeper: a service running a blockchain client and uses Ocean Protocol to process smart contracts.</li>
<li>Pleuston: an example/demo marketplace that you can run locally with Docker on your laptop.</li>
<li>Squid Libraries: client libraries to locate and access data (currently Python and JavaScript are supported).</li>
</ul>
<h1 id="also-of-interest-singularitynet" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Also of interest: SingularityNET</h1>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<a href="https://singularitynet.io/" style="color: #1756a9; text-decoration: none;">https://singularitynet.io</a><span class="Apple-converted-space"> </span>is a decentralized service that supports creating, sharing, and monetizing AI services and hopes to be the world’s decentralized AI network. SingularityNET was started by my friend Ben Goertzel to create a marketplace for AI service APIs.</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<br /></div>
Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.comtag:blogger.com,1999:blog-7100397.post-32347959832056398942019-01-24T17:04:00.000-07:002019-07-07T08:26:26.792-07:00Internet As Entertainment Vs Information Vs KnowledgeOriginally posted December 8, 2018<br />
<br />
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
We can look forward to a future where the economy wrapped around tech advances overshadows conventional industries like agriculture and manufacturing. Given this context I am disappointed but not surprised that on international math tests students in the USA continue to fall behind their counterparts in the rest of the world.</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Why is this when there are so many opportunities to learn both in school and as a lifetime pursuit?</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Given the transformational effect of the Internet on society in general and in particular the economy, I think we are seeing the effects of different peoples’ perception and use of the Internet as a source of entertainment vs. source of information vs. source of knowledge.</div>
<h1 id="marks-hierarchy-of-internet-use" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Mark’s Hierarchy of Internet Use</h1>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Simplifying this discusion, in increasing order of personal value and value to society, Internet use falls in three broad use cases:</div>
<ul style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px 30px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<li>Internet as a source of entertainment: there is real value in engaging with friends and family together playing online games and enjoying at anytime ‘binging’ on Netflix.</li>
<li>Internet as a source of information: this is a real economic driver as we look to web search engines for directions for fixing our cars, finding what an compiler or runtime error message means and how other people have fixed the coding problem, find a template for giving a presentation at work, finding salary ranges for your job in the city you live in, etc.</li>
<li>Internet as a source of knowledge: knowledge is ‘digested’ and processed information usually based on experience and interactions with other people. The highest value sources of knowledge on the web are quality online courses taught by the top people in a field of study, videoed conversations by industry or academic ‘thought leaders’, etc. In other words, using the Internet to access the thoughts and knowledge of the brightest people on the planet.</li>
</ul>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Let’s go back in time to the 1800s to look at the American essayist, lecturer, philosopher, and poet Ralph Waldo Emerson. I like to think of Emerson as Internet or Web version 0.01. In the 1800s wealthy people had libraries and could tap into current knowledge and philosophies but for the common person, a yearly visit of Emerson to your town gave you an opportunity to hear a well thought out digest of currently modern thought and news. The benefit for Emerson was not only the money he was paid for his lectures but also the stories he heard and the conversations he had gave him new ‘material’ to work with. It was a virtuous circle. For the people in a town they not only heard news and information but also knowledge of how the world worked (at least according to Emerson) and potentially changed the way they looked at their own lives and ambitions.</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Fast forward to present times: we have great conversations between thought leaders (a good example being<span class="Apple-converted-space"> </span><a href="https://agi.mit.edu/" style="color: #1756a9; text-decoration: none;">Lex Fridman’s artificial general general intelligence course at MIT</a><span class="Apple-converted-space"> </span>that is comprised of interviews) and often realtime video feeds of talks given at international conferences. While I am an avid reader (I read about one book a week), I like to hear people talk, even better on a video feed.</div>
<h1 id="how-can-information-collecting-software-agents-tap-into-knowledge-a-path-to-agi" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
How can Information Collecting Software Agents Tap into knowledge? A path to AGI?</h1>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Current state of the art for automatically collecting concrete information of the web continues to rapidly improve, noteworthy projects using deep learning sequential models for language modeling, question answering systems, and most recently the<span class="Apple-converted-space"> </span><a href="https://github.com/google-research/bert" style="color: #1756a9; text-decoration: none;">BERT</a><span class="Apple-converted-space"> </span>project solves difficult natural language processing (NLP) tasks like coreference detection (also known as anaphora resolution), predicting the probability of one sentence following another during discourse, predicting missing words in a sentence, text classification, translation between languages, etc.</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
While current state of the art allows collecting and using information from the Internet, how can information collecting software agents tap into knowledge, like discussions between top technologists? I think this is a step towards developing artificial general intelligence (AGI) with a very incomplete set of sub-goals being:</div>
<ul style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px 30px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<li>Identify the experts in the world for any specific technology</li>
<li>Collect written works, lectures, and debates and conversations with other experts</li>
<li>Build models for both raw information experts know and also their analytic and thought processes.</li>
</ul>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Yeah, it is the third step that might take decades or even a hundred years. While my personal interests are in NLP and knowledge representation, the other crucial part of building AGI technology is physical embodiments. Robots! I think that the deep models for functioning in a physical world can for the foreseeable future be worked on independently from NLP and general knowledge processing, but once these problems are solved, the achieving AGI will be a form of transfer learning by building joint models using pre-trained living in the physical world models combined with separately trained knowledge models.</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
It is early days for deeplearning but one lesson can learned by looking at public models in so-called ‘model zoos’ (for example, for TensorFlow, PyTorch, the Julia framework Flux, etc.) and noticing that current advanced capability models are generally no longer simple linear models but rather have complex architectures of sub-models that are trained jointly. Although I expect major “non deep learning” breakthroughs towards AGI using Bayesian Graph Models and other techniques not yet invented, the real lesson from deep learning is that complex predictive and functional behavior is achieved by combining models so I expect AGIs to use many different technologies, probably developed fairly independently, and then trained and tuned jointly.</div>
Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.comtag:blogger.com,1999:blog-7100397.post-28340010961738789382019-01-24T17:02:00.001-07:002019-01-24T17:02:38.237-07:00Using Trained Keras Weights In Racket Scheme CodeOriginally posted September 8, 2018<br />
<br />
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
I am interested in using pre-trained deep learning models as functional components in functional languages like Scheme and Haskell.</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
I want to share a simple experiment that I wrote that uses Keras to train a model on the Wisconsin cancer data set (that I have used in the last three years in two books I have written in example programs), saves the weights in CSV files, and then uses those weights in a Racket Scheme program. There are two github repos:</div>
<ul style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px 30px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<li>optional:<span class="Apple-converted-space"> </span><a href="https://github.com/mark-watson/save_keras_for_use_misc_prog_languages" style="color: #1756a9; text-decoration: none;">https://github.com/mark-watson/save_keras_for_use_misc_prog_languages</a><span class="Apple-converted-space"> </span>that trains a model and saves the weights</li>
<li>Scheme code that includes the CSV weight files:<span class="Apple-converted-space"> </span><a href="https://github.com/mark-watson/racket_neural_net_from_keras" style="color: #1756a9; text-decoration: none;">https://github.com/mark-watson/racket_neural_net_from_keras</a></li>
</ul>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Sample run:</div>
<div class="highlighter-rouge" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<div class="highlight" style="background-color: #eeeeff; background-position: initial initial; background-repeat: initial initial; margin-bottom: 15px;">
<pre class="highlight" style="background-color: #eeeeff; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(232, 232, 232); font-size: 15px; margin: 0px 0px 15px; overflow-x: auto; padding: 8px 12px;"><code style="background-color: #eeeeff; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 0px; font-size: 15px; padding: 1px 0px;">$ racket neural.rkt
** weights loaded **
shape of w2:
64
64
(number correct: 139)(number wrong: 12)(accuracy: 92.05298013245033)</code></pre>
</div>
</div>
Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.comtag:blogger.com,1999:blog-7100397.post-84281740407862943662019-01-24T17:01:00.000-07:002019-01-24T17:01:11.631-07:00Centralized Vs Distributed Systems Publishing And Owning Our Own ContentOriginally posted August 25, 2018<br />
<br />
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
I read a good article on<span class="Apple-converted-space"> </span><a href="http://highscalability.com/blog/2018/8/22/what-do-you-believe-now-that-you-didnt-five-years-ago-centra.html" style="color: #1756a9; text-decoration: none;">Centralized Wins. and Decentralized Loses.</a><span class="Apple-converted-space"> </span>this morning and I commented on Hacker News:</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
I wish it weren’t true but for right now I agree with the author, including what it might take to tip the balance: “1. Complete deterioration of trust such that avoiding the centralization of power becomes a necessity. 4. The decentralization community manages to create clearly superior applications as convenient and reliable as centralized providers.“</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
I was eager to use GNU Social, and after some use for a year, my host shut down. I just opened another Mastadon account but haven’t started using it yet. Also, the value of centralized services like Twitter is the really interesting people I follow. Social media is best when used as an advertising and directory service for content we put on our own blogs and web sites, but even that seems to be less common.</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
I really enjoyed the Decentralized Web Conference June 2016, but it also made me slightly sad that fighting back against centralized web, political, corporate, etc. centralization is an uphill fight.</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Sometime network power laws suck.</div>
<h3 id="fightly-back-against-centralization-owning-and-publishing-our-own-content" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 26px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Fightly back against centralization: owning and publishing our own content</h3>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
It is a source of some frustration for me that so many people I know don’t take the effort to own their own domain and maintain their own web site and blog. Owning your own content and “publishing” platform has many long tail advantages. What these advantages are depends a lot on what your business and personal interests are. For me, owning my own content and personal brand has made the following possible:</div>
<ul style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px 30px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<li>Platform to promote<span class="Apple-converted-space"> </span><a href="http://markwatson.com/books/" style="color: #1756a9; text-decoration: none;">the books I write</a></li>
<li>I have found interesting work (mostly remotely living in the mountains in Sedona Arizona) when the following companies reached out to me to do work for them: Google, Capital One, CompassLabs, Disney, SAIC, Americast, PacBell, CastTV, Lutris Technology, Arctan Group, Sitescout.com, Embed.ly, and Webmind Corporation.</li>
</ul>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Ideally kids would learn in school how to have a web presense they control, in addition to tech training. I would say that maintaining a proper web presense is like knowing how to drive a car but I would guess that many kids today will never learn to drive a car. But they should learn to properly use the web for their own benefit.</div>
Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.comtag:blogger.com,1999:blog-7100397.post-36308467474793572062019-01-24T16:34:00.001-07:002019-01-24T16:34:24.114-07:00Hybrid Artificial Intelligence SystemsOriginally posted August 19, 2018<br />
<br />
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Even though I specialize in deep learning at work I sceptical about achieving AGI (artificial general intelligence) using only neural networks (of any architecture). My friend and two time colleague Ben Goertzel has been working on a hybrid approach to AGI in the<span class="Apple-converted-space"> </span><a href="https://opencog.org/" style="color: #1756a9; text-decoration: none;">OpenCog</a><span class="Apple-converted-space"> </span>organization with a large team for many years.</div>
<h3 id="aisentiencenet" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 26px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
AIsentience.net</h3>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
In my personal-time project<span class="Apple-converted-space"> </span><a href="http://aisentience.net/" style="color: #1756a9; text-decoration: none;">AIsentience.net</a>, I have been working on my own hybrid general AI framework for a number of years. Common Lisp is still my favorite language for research programming and the latest edition of my book<span class="Apple-converted-space"> </span><a href="https://leanpub.com/lovinglisp" style="color: #1756a9; text-decoration: none;">Loving Common Lisp, or the Savvy Programmer’s Secret Weapon</a>contains a section on using Armed Bear Common Lisp With DeepLearning4j. ABCL is implemented in Java and while not as performant as SBCL it offers interop with Java libraries like DeepLearning4j. For now, I am happy enough being able to train specific deep learning models for word2vec, seq2seq, and summarization and write functional wrappers around these models for easy access in Common Lisp code. Probably not a popular opinion but I also believe that symbolic systems (rules) and Bayesean graph representation and inferencing are (probably) necessary parts of an AGI development platform.</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
I use TensorFlow and Keras at work but I have experimented sufficiently with DeepLearning4j for several years and it is fine for my purposes. I did also experiment using Google’s unofficial Haskell bindings for TensorFlow and seriously considered using Haskell for my side project<span class="Apple-converted-space"> </span><a href="http://aisentience.net/" style="color: #1756a9; text-decoration: none;">AIsentience.net</a>but, frankly, I have much more experience using Common Lisp. For people with more Haskell experience, Haskell is a fine language for research programming.</div>
<h3 id="my-summer-in-illinois" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 26px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
My Summer in Illinois</h3>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
It has been a year since Carol and I moved to Urbana/Champaign Illinois and I started a job at Capital One managing a machine learning team at the UIUC Research Park. Living in a university town is great - lots to do, but we still look forward to returning to our home in Sedona Arizona in (about)a year. I have spend 90 minutes on the phone this weekend with old friends in Sedona and look forward to seeing them again in person.</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(17, 17, 17); color: #111111; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0px 0px 15px; orphans: auto; padding: 0px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
In addition to work I have re-started a very old hobby: playing the game of Go. I had not played a serious tournament game since 1980 but after starting to play at a local club at the university I spent a week in Williamsburg Virginia in July playing in the US Go Open Tournament. I am starting study with a professional Go player who runs the<span class="Apple-converted-space"> </span><a href="https://ayd.yunguseng.com/" style="color: #1756a9; text-decoration: none;">American Yunguseng Dojang - The online Go School</a>.</div>
Mark Watson, author and consultanthttp://www.blogger.com/profile/05514730816583918651noreply@blogger.com