Wednesday, October 28, 2020

Adversarial attacks on A.s.a. H.

 A.s.a. H.* is a deep learning network in which backprop layers have been replaced by clustering.** When trained to recognize typical human concepts/categories*** A.s.a does not seem to be vulnerable to the kind of adversarial attacks that other deep learning networks fall victim to.**** If and when we use neural networks as preprocessors that may introduce a vulnerability.

* R. Jones, Kansas Academy of Science Transactions, vol. 109, num. 3/4, pg 159-167, 2006 and my blogs of 14 May 2012 and 10 February 2011.

** See Introduction to Artificial Intelligence second edition by W. Ertel, Springer, 2017, pg 280.

*** Learning from a curriculum like that in my 12 September 2020 blog. 

**** See Explaining and Harnessing Adversarial Examples, Goodfellow et al, ICLR, 2015.

Monday, October 26, 2020

Robot AI programming 2020

Even now that we have Raspberry Pis available I do my code development and initial debugging on a desktop. I then transfer the code to a Raspberry Pi where I complete any final debugging*. This may have to be done with the actual robot sensors and actuators. Sometimes this can be done with the robot on a teststand. Sometimes it will require that the robot be operating in its real world environment. An intermediate stage of debugging may be possible with a Raspberry Pi in a Pi-Top or similar prototyping environment.**

* To the degree that debugging is ever final. Really, we simply continue to debug until we have a software package that meets our basic needs. It's never fully debugged.

** The Pi-Top [3] has been useful for this but is limited to Raspberry Pi 3s.

Friday, October 23, 2020

Interfacing Raspberry Pi in C/C++

 My colleagues and students at ESU have been doing robotics with Arduinos and C. I have been asked how to interface robotic sensor input with Raspberry Pis using C. Here's one way using GPIO pins 4 and 5:

Note: The two long print statements near the bottom have semicolons at the end of them.

Friday, October 16, 2020

Voting in Kansas 2020

For the 2020 general election I requested a mail ballot.  I got it and voted today for Biden and Harris.

Last time around it felt like it was bad people voting for a bad man.* But, of course, "good" and "evil" must be represented by a vector quantity.** The components of this vector*** are different for different people. A man can simply be both good and bad at the same time but in different ways and as judged by  different observers.****

* See my blog of 9 November 2016.

**See my blog of 20 October 2010.

***See my blogs of  12 November 2016 and 6 April 2019 for some possible examples.

****Here I intend to make excuses more for the people doing the voting and less for the man being voted for.

Thursday, October 15, 2020

A good republican

 "This country, with its institutions, belongs to the people who inhabit it. Whenever they grow weary of the existing government, they can exercise their constitutional right to amend it, or exercise their revolutionary right to dismember it or overthrow it."  Abraham Lincoln, first inaugural address, 1861

Monday, October 12, 2020


After using mostly Apple and IBM computers and Unix I came to ESU which had adopted Windows PCs. There is so much software out there for Windows that I slowly adopted it too. Similarly, over the last few years, as I look at other people's AI work I have been forced to read more and more Python code. My AI code library previously consisted mostly of BASIC, PROLOG, C/C++, and LISP programs. To this I have now added 50 or 60 PYTHON programs.

Tuesday, October 6, 2020

Online experiences

 As students contracted covid and went into quarantine I was asked if  "someone might videotape my lectures" for use online. I was happy to say yes since I was thinking to do this very thing if we all went into lockdown again.* It quickly became me that was expected to do the taping. During the first one or two weeks the videos only successfully uploaded to CANVAS** about half the time. The IT people reloaded all of the software, then ultimately changed out the entire computer in the "smart classroom." On the first day using the new hardware I turned the monitor an inch or two toward me, there was a "bloop" "bloop" sound, and the screen went black. Loose plug. I think (hope!) all is now working. There is still a bit of a distraction having to limit myself to perhaps two of my four blackboards, etc.***

*I'm not sure if having videotaped lectures available online makes it more likely healthy students will cut classes. Videos are certainly not as good as the real thing.

** CANVAS is a cluttered mess. Whoever designed it violated the K.I.S.S. principle. 

***On top of which I have only half the usual number of lectures available this semester. (Because of Covid limits on the number of people in a classroom.) This means I must go faster. That, in turn, probably means I will make more mistakes.