Read Latex

Tuesday, April 03, 2018

#GTC2018 Sipping from the Firehose



After a protracted absence from the conference scene I got the chance to drink from the firehose at #GTC2018, nVIDIA's annual GPU Technology Conference. As drinks go it was a chocolate malt.




GPU stands for "Graphics Processing Unit" and rhymes with CPU or "Central Processing Unit", the heart of our personal computers. The GPU, a square chunk of silicon shown below measures 1.5 inches on a side, nestled into its graphics card home. You can see my fingerprints on the discard below and honestly it feels like touching a piece of Mars. It is the heart and soul of nVidia's latest offering containing a stunning 9 billion transistors:


nVIDIA has taken 16 of these and glommed them together in their latest offering, the DGX-2 graphics and artificial intelligence supercomputer. It's basically somebody's brain floating in space. At 350+ pounds it's a little heavy to float, but I promised Jensen Huang if he hired me I would put it on a diet and cut its weight in half. After all, this is the kind of things that humans like to fling into space.

The nVIDIA DGX-2 Supercomputer - source: nVidia


The conference in toto, was quite a spectacle, reminiscent of my tours of SIGGRAPH conferences during the heyday of computer graphics innovation. GPU's originally started out as add-on cards to enable 3D computer graphics in personal computers and workstations. Jim Clark deserves mention for getting the ball rolling in this field with Silicon Graphics, but I digress. The SIGGRAPH thrust curve, shown below, is one model. One model that is, for what happens when a disruptive technical change of paradigm comes along. The thirty-year period between 1982 and 2012 shows growth followed by reversion to a baseline of progress. Consider that 15,000 people is an army, 50,000 is a city. It takes a village and all. This year about 8500 people attended #GTC2018, compared to 6500 last year, so we are still inflecting upward.


SIGGRAPH Attendance - source: wikipedia


Market income appears as a three-legged stool for nVIDIA. Those three legs are Cryptocurrencies, Gaming, and Artificial Intelligence (AI) in addition to the core business of enabling computer graphics on PC's and workstations. Below is a historic stock chart and it is clear that things are going gangbusters since 2016.

nVIDIA Stock Price Vs. Time - source: google finance
Cryptocurrencies use GPU's to search for numbers that validate blockchains. These virtual currencies, are not currently backed by any good or service of tangible value but that doesn't seem to stop nVIDIA GPU's from selling like hotcakes.
 
"Look at my pretty prime numbers."

Commoditization of AI 
was, for me, the lasting excitement of #GTC2018. I made my way through a series of lecture sessions, labs and an enormous equipment expo, to get a sense of where things are and refine my own data science and robotic skills. If you are wondering, "What good is AI?", remember that everytime you say, "Hey Google, Hey Siri, Hey Alexa, Hey Cortana you are using AI that is becoming so much a part of our life it is invisible. It is used on Amazon in your every encounter. I don't even go to the store anymore, do you?

Other AI concerns include Autonomous Vehicles, Healthcare, Education, Finance, Robotics, Human Resources, Marketing, Media, Music, News, Customer Service, Personal Assistants, Toys and Games and Aviation. I expect it to follow the SIGGRAPH curve, but over a more compressed time scale due to improvements in telecommunication. For me it's fun to surf big technical waves, because that is what I've done all my life.

My first thesis advisor, Art Hale, a visionary mathematician and engineer, emphasized not getting swept up in the river of change for its own sake, but to remain attentive to first principles that dictate productive change and fundamental directions of endeavor. “It's better to stay up on the bank if you can.” he would say. He would also say, "There are millions of people." for some reason.

Thus, as I sat in the sessions I made notes of key principles that emerged invariant or "here to stay". Here they are in somewhat chronological order biased by my own interests:

AI Accountability Equals Explainability:

The first emergent theme is that AI’s need to explain themselves. At present these magic algorithms are somewhat opaque and difficult to audit when it comes to answer questions like, “How did you get to that answer?” If you were hired or fired by an AI, this is something you might want to know.

There was an entire session devoted to the explainability of AI, but it was paradoxical since the lecturer was a stakeholder in a company that uses proprietary methods to enable AI to explain itself.  AI that explains itself using secret techniques remains unexplainable by definition.

Fortunately there is work being done that pulls the curtain back, such as heatmaps for neural network weights. In the example below, I drew a blobby dot in each corner to see which digit would pop out of the neural net. My sketch classified it as a 1, but most humans would not read that as a one. They might read it as a four. To be fair, the neural net wasn't trained on things that appear on the face of a die. But it should not return an answer as one either. Note that the heatmap of things that this neural net classifies as a 1 doesn’t look anything like a 1, so that is a problem too. I hope to look at this in more detail this year.


Heatmaps for Explainability - source: LRP

To nVIDIA's eternal credit, the technical sessions are posted here which is a plus for addressing this.

Hyperparameter Optimization - this is hot bed of current research. It is also too long a word for a very simple idea. If you go to TensorFlow Playgrounds you can construct your own neural net and run it with various settings like "Learning Rate", or "Amount of Noise", or "Test/Train Split" and other configuration details. These are the Hyperparameters and really should be discovered by a machine rather than a human. By this time next year they will be. In the example below you are watching a computer think. I can't get enough of it.


TensorFlow Playgrounds - Source: Smilkov & Carter

Machine Learning is an Optimal Control Theory Problem. Watching the learning curve evolve over time reminds me of aircraft stability and control. There is a best way to proceed to a given flight configuration and these are knowable sorts of things. Even machine learning (ML) algorithms need autopilots.
Autopilot Design - Source: Open Access Korea
Another idea that emerged in the driverless car world is that marking intersections is really important to let driverless cars know to stop. Since most wrecks occur at intersections this makes sense in the driver-full world also. 
Intersection Risk as Function of Position - Source: Me

So we should expect transportation automation to influence road design and vica versa. Road signs are apparently good reflectors of radar, this causes glint in the sensors due to multipath RF propagation. Road signs made of fiberglass would be better since they reduce RF glint. They would also be better if you happen to run into one. Nature has a funny way of breaking what does not bend, at least that's what Jewel says.







Thursday, February 15, 2018

Sane Public Policy via a Gun Census







I observe. I think. I've thought. The pen is mightier than the AR-15. The AR-15 killing machine will rust and jam, especially if you shoot NATO ammunition. The pen endures forever. I polish this article every-time there is a mass-shooting. It is getting way too polished.

We are at a social Tipping Point. Malcolm Gladwell, in his book by the same name, makes the point of "opt-in" vs "opt-out" when it comes to states enrolling organ donors. States that require DMV applicants to opt-out of organ donation produce more organ donors than those who must opt-in because people are lazy.

Lazy or not, under current law, nearly anyone who is 18 or older, can buy an assault-rifle and bump stock that converts it to fully automatic use. To be denied the right to purchase there must be a glaring red flag in the rubber-stamp background check that kills the purchase. Many mass-shooters are "first-time" offenders, therefore the response, by definition is always too-little, too-late.

Conferring on someone the right to perform mass-execution MUST have a higher barrier to entry than the current one. The burden should be on the applicant to prove that they:
1) are of sound mind
2) the people in their household and circle of trust are of sound mind
3) their killing horsepower need is reasonable

There is a difference between weapons for self-protection and those for mass-execution. When the 2nd amendment was developed, weapons did not confer on any single individual the ability to perform mass-execution. Give me a second while I reload my musket.

There is very good math, and I am a mathematician, that show that proportionality in war is a good idea. Mainly it avoids mass-extinctions. See Robert McNamara in the "Fog of War" for an excellent explanation of this. So let's do some simple math:

If everyone had in their garage, a hydrogen bomb, that they could detonate when they became angry, depressed, despondent or mad at the neighborhood association, one person could destroy a city, a state, or even a nation.

As a democracy, the decision has been made that we do not allow individuals to possess or carry nuclear weapons because there is currently no scenario that would justify this. So now we have an immediate obligation to the constitution:

Imagine if every AR-15 owner had a hydrogen bomb, locked and loaded in their house, maybe under the bed or something. That would make for 3 million H-bombs. If that were the case how often would we read about H-bomb explosions? The suicide rate is currently listed as 13 per 100,000 people. that works out to 390 incidents per year. Not so good for Earth Day festivities. The murder rate is 6 per 100,000 people. Maybe it is comforting that people kill themselves more often than others, show how good people really are. Anyway, that works out to 180 H-bomb explosions per year for a total of 570. Now we are assuming that AR-15/H-bomb owners commit suicide and murder as the same rate as the general population. Prepper be ready.

So we don't allow this and for good reason. Through the miracle of calculus, consider the following limiting arguments. How much killing horsepower should one individual be allowed to possess? I've already shown that a hydrogen bomb is too much. One can similarly reason that an atomic bomb is too much. We can continue to reason to more reasonable scales. Current law does not allow individuals to carry grenades, presumably because that is too much killing horsepower to confer on a single individual. Yet we allow uncredentialed people to purchase assault rifles willy-nilly. This is contradictory.

We can reason from below, as well as from above. We can reason from too little as well as from too much. How much killing horsepower is too little for self-defense? If one is attacked by a single person, you need to have what they have, plus a little bit extra so that you win. If a single attacker can have a hydrogen bomb, then you need two hydrogen bombs, just to make sure. So now we have a paradox. Whatever we allow someone else to have, is all that we are allowed to have! To fix that we must allow ourselves to have anything that they could possible have plus a safety margin and viola - we are in the current impasse enabling mass-shootings at schools, movies, concerts and work.

BUT a group of reasonable people could get together and say, here is how much killing horsepower we are going to confer on any single individual (this has tremendous ramifications for military leaders, but I digress). The killing horsepower that you are certified for depends on: 1) the soundness of your mind and 2) the threats you reasonably expect to confront in your current daily life. This creates a table of permitted killing horsepower. A commander-in-chief I know of, has the killing horsepower of the entire hydrogen-bomb arsenal of the United States. That is probably too much power to confer on one person, who in a moment of questionable judgement, could make a mistake that would destroy the world. Again I digress.

In short, a table of permitted killing horsepower is created and everyone gets a ranking. This table of permitted killing horsepower is created by proper research, debate and due process, while we mourn those lost in the meantime. In the future Artificial Intelligence tools will be used to screen applicants fairly, by quickly applying the wisdom of history and the hive. The model is that of a DMV for killing horsepower. Everybody hates the DMV, even so you can't drive a big truck without a special license and the lawyers come when they run you off the road. We know how to make DMV's. Apple could make them more user-friendly though. Part One Done.

The second part is an inventory, a complete common-sense gun census. An inventory must be made of the location and type of every gun and every round of ammunition. The manufacturers of weapons are required to keep records on how many are made. Many of these can then be tracked down by those records in combination with registration databases and store records.  The location of ALL guns and ammunition repositories must be part of the certification process. If someone tries to cache weapons John Wick style, his killing horsepower privileges are reduced or removed. If you use a gun, that use is going to be audited by the justice system, and the gun census is part of that process. A gun census doesn't take anyone's weapons away that shouldn't have them in the first place.

With a complete inventory, it will be possible to screen for those who are currently in possession of killing horsepower outside the realm of their daily need and their soundness of mind.

Any other approach to this problem will find us lamenting the murder of our children in schools, the murder of our friends at movie theaters, concerts and work. Schools, movies, concerts and work makes life worthwhile. Possession of killing horsepower outside our need or ability to wield it makes life more tragic than it already is.

In conclusion. We must implement these two fixes now. If things don't improve we can implement a sundown clause, a return to crazy town and see how that works. Judging from current events, crazy town isn't working at all.




Thursday, January 21, 2016

Better than Stitches, Fast as Light

From time to time in this glamorous life we all get cuts and scrapes. Kitchen, workshop, you know the drill. Left to themselves these insults usually heal, unless they are exposed to bad environments like the gym, public library, Uber car, mass transit or hospital. Bandages help, but do not eliminate the possibility of infection. Being a clean freak living in the age of MRSA I have long been searching for a better solution.

A while back I tried gluing cuts with superglue. It kinda worked but superglue, also known as methyl methacrylate has some drawbacks.

Methacrylate emits acrid fumes when it cures, usually after an unpredictable duration depending on the age of the batch. In large quantities, especially in contact with cotton, it can exotherm resulting in a serious burn, defeating the purpose of using it. After that it is either a too little or too much situation and the resulting "patch" lifts from the skin fairly quickly. The worse thing is that the dermal repair has a scratchy sandpaper, hard plastic, inflexible sort of feeling. After several repairs with superglue, I have rejected it because it just doesn't feel right.

After that I tried a product called New Skin. New skin smells like bitter acetate film stock or dissolving butyl rubber. Even the tiniest drop fills the house with a chemical aroma that takes at least a half an hour to dissipate. 

I have tried drying it with a hair dryer and even a paint stripper set to low and held at a distnace (NOT recommended) but it is a very slow to evaporate solvent. If that were it, I still might use it. But invariably after it sets and I go back to what I was doing, the repair will delaminate as though my body were trying to reject it. And yes I do all the normal skin cleaning, disinfection and drying before hand to insure a durable bond. I recommend Betadine by the way, but I'm not a doctor, I'm an engineer as you might have already figured out.

Yesterday I was lamenting over the delamination of a recent wound to the very same fingers I am using to type this message. I had used New Skin and thought I had a good repair, but after doing the dishes it came off as usual. The puncture wound was small, it never got infected, but because of the density of nerve endings it was painful to work. I can't afford down time.

Then it hit me, I wanted a smooth liquid plastic that I could somehow apply to the wound to make an artificial blister. When it set I wanted it to still be flexible, but thoroughly bound for the 4 to 6 days it would take the skin to heal by exfoliation and whatever little dermacytes do when they are healing.

For Christmas a friend of mine had given me an ultraviolet 5 second plastic repair kit, used to repair eyeglasses and various things around the house. I noticed when using it as recommended for eyeglasses that the cure was extremely fast, usually in 3 seconds. Since this is about the length of my attention span there was a good fit there. Moreover the plastic was very smooth and slightly flexible, yet it bound inextricably to the substrate, which as you by now have guessed, would inevitably be me.

Now Louis Pasteur inoculated himself with cowpox while he was attempting to cure smallpox. I am not so bold, but at this moment of desperation I was just bold enough to place a tiny drop of liquid plastic on my painful puncture wound and illuminate it with the ultraviolet LED that came with the kit.

Much to my surprise, as I shined the light on it, it stung SHARPLY but briefly the same way the New Skin stung. Now the New Skin sting was chemical in nature due to the ester solvent which takes forever to set. In the 5 second repair case I assume that this was due to the instant heat of polymerization. This means one should proceed very cautiously with the UV light, especially on larger wounds, since burning one's wounds is unfashionable at best. I posit it best to hold the UV LED several feet away and approach slowly until one feels the reaction starting. After a pause, I polished with light at close range, which also sterilizes the wound. Do not look directly at UV light since it is hard on the eyes. I could lecture on UV photons but I won't.

Anyway, that was yesterday, the process worked, and it is holding up very well, without that scratchy feeling. I can palpate the repair with my handy opposable thumb but I don't have the urge to pull or pick at the solid plastic bubble of repair. It is me and I am repaired nearly perfectly by 5 second plastic. 




Tuesday, January 05, 2016

Drugstore Cowboy Rug


When I was growing up there was a saying that went like this, "He's a drugstore cowboy". This referred to people who came by life the easy way, rather than paying their dues as a dusty ranch hand.

True confessions. When it comes to math I am a drugstore cowboy. I use computers to figure things out. I rarely write numbers by hand, and then only on the back of a napkin, usually with mistakes of one sort of another. The sheer boredom makes me yearn for a Colorado Rocky Mountain High sung by John Denver at midnight, a fuel-valve too-hard to turn.


I usually have to see a concept illustrated to truly understand it and for me that is the advantage of computer algebra. There is another advantage to computer algebra. I can do as many calculations in an afternoon as a hot-shot mathematician of the past could do in their lifetime. Proceeding this way enables me to cover more ground than the Lone Ranger on a horse named Silver.



Before I get into the central theme, a couple of things. When we find the area under a curve, it is called integration. A lot of time can be wasted discussing this act of cutting rugs to shape and figuring out what we owe the shopkeeper. Integration is idolized more than it should be in science, mostly because it is used as a gate between the math-haves and math-have-knots like me, the drugstore cowboy.

Being a drugstore cowboy I hate this. If you stay with me I promise to rhinestone your math to another level, but if you believe in reinforcing the cultural divide between knowing and knot-knowing, I bid you a fond farewell.

When we find the area under some curve, we can do it from east to west, from sunrise to sunset. Or we can avoid committing ourselves to such limits and remain indefinite. 

- via http://goo.gl/H6mzVM

Finding the area of a little ole bitty piece of ground it is called the definite integral, meaning, I will definitely tell you where we begin and end, start and finish, floor and ceiling.

Before we get all fancy and change the world let's say I give you a line that rises just as much as it runs. Insiders would say this line is just good ole y = x or even f(x) = x. When we find the area between two stations a and b, it is just the area between the horizon line in front of the fireplace where granny has been knitting the throw rug and the outlaw line y = x whose slope is conveniently how the west was one before we ran out of wood when we were building the shed.



In big city speak someone might say, this is the area under the function y = x between hitchin' post a and hitchin' post b.

Pastor Smirkenthorn preaches, "The place where x equals a is a point." and it is, but that point is on a line where x equals a, so y can be anything so I like to think of it as a line. Not to be confused with, "You're a lyin' sack of pooh".

Someone who doesn't get out of the saloon much, might say that x itself isn't even a point since a point requires an x and a y and they would be right. They would say that x is just the lonesome dove we call a scalar.

- van http://goo.gl/bl9PTg

So here we have been promoting x like snake oil, when it is just the lonesome dove. Yes poor x the scalar acting up like a line too big for its britches! Well listen to the neighbors at the saw-mill. We can even think of x equals a as a plane that flies screaming out of the screen cutting our pretty little world into two half-spaces. Some birds will nest in the left half-space, some in the right half-space and some might perch right on the cutting edge of the blade when the creek water is runnin' low on Thursdays.

- via http://goo.gl/t8Zo0O
Now when some stuffy-minded person writes:

They should be writing:

areaUnderCurve(f(x), x, a, b)

The fancy S looking meathook fiddle-hole thing means son, I mean some, I mean sum, we are adding up little dx slices of f(x) dx from x equals a to x equals b. For me this is a little more self-explanatory and easier to understand. It is also easier for computers so they don't run so hot and boil over.

Now let's apply this so I can get on to what I wanted to talk about.

If we have the line where y = x, we can write that as y is a function of x. We make a deal at the table. You give me a card x and I give you back a card y. If for every card with the number x on it, I just hand you back the same card, it is a pretty slow game. When I draw out what happened, well I go over x and up the same amount in y and we have that same line. But we never did say what the blue area was that drove me to drink in the first place. I mean, that gonna turn my brown eyes blue area was between the line and the x axis..

Finishing with the computer's help, because Lord knows I got bigger cattle to rustle we have:



So to find the area of granny's knit throw rug we just multiply a and b by themselves, divide by two and subtract.

We can also do the less definite, I mean indefinite:

and then evaluate that from a to b.


But forget all that, I told you all that to tell you this. What does it mean when I find the area under one function with respect to another function. I mean instead of with respect to just x. I mean instead of chopping up the poor little x-axis into teeny weeny bits? That is what I really wanted to talk about.

Consider. 

The verb, "integrate" got named wrong by some musician who stared at his violin too long.

Integrate means find the

area-under-the-curve-f-of-x-with-respect-to-x-axis


We might call them names to make them feel special, but they really just accept input functions and produce output functions. Now we even write them with fancy notation, but we can also write them like so:

areaUnderCurve(sin(x),x),
areaUnderCurve(sin(x),x,a,b),

Now the reason I wrote this whole silly thing is because I want to understand what it means to write:

areaUnderCurve(x,sin(x)) or more generally

areaUnderCurve(f(x),g(x)) or more generally


areaUnderCurve(f(x),g(x),h(x),k(x)) or analogously

slopeOfCurve(f(x),x) more generally as

slopeOfCurve(f(x),g(x)) The slope of f with respect to g

and also

limitOfCurve(f(x),x, a) being extended to

limitOfCurve(f(x),g(x),a) being extended to


limitOfCurve(f(x),g(x),h(x))

and that is just for single variable calculations. With multiple variables we can find volumes and masses and even find a quiet moment with inertias.



Saturday, December 12, 2015

Swift Java Boat Adventure: Part 2


Before we begin our programming adventure, there are a couple of things we need to cross off the list. "Articulate the obvious" I always say.



As programmers of (whatever) there are some things to think about. Being a programmer of a computer versus a user of a computer are two different things. Much as being the designer of a boat is different than being the pilot of an boat. 

Developers need CPU performance, cloud storage and screen real-estate to spread out and work. They need chairs and desks that support long hours of sitting, along with exercise and fitbits to improve quality of life.

The developer versus user mindsets are different, although we frequently do both. There is the mobile migration consideration:


Swift can migrate to iOS and
Java can migrate to Android


so we have some excellent symmetry for our Swift Java Boat experiment there.

For our experiment we might require that we be able to develop on more than one H/W and O/S platform, in deference to some degree of platform neutrality. For Swift we will use XCode on the Apple MacOS platform, knowing that it gives us the ability to export our work to iPads and iPhones. For Java we will use Netbeans on a PC or Mac platform knowing that we can then export our work to a host of Android devices, PC and even Mac desktops.



To first order, we have doubled the work necessary to field an app, but we have obtained something worthwhile - platform independence and even language independence. We might wonder if we should write our application in some third meta-language and then simply compile it for the destination language and hardware. 

Let's explore that idea:

One symptom that we are doing something right in the computation process is that the tool we are building is useful for the tool we are building. This kind of self-reference occurs in the real world too. I recently built a shelf out of cubes. I carried the hardware for the shelf of cubes in the cubes, so there is self-reference and utility in the mundane that gives us a clue we are on the right track. 

So in this we have a definition of a possible task, a task that uses itself and solves a problem at the same time. Consider a simple box and arrow system that lets us draw a box with some inputs and outputs, execute that as a program and draw the result on either platform, Swift or Java, Desktop or Mobile, PC or Mac, Apple or Android. Since we can use this to build other apps we have a healthy dose of self-reference. A portion of it should be written in itself!

This BoxAndArrow System will be complete when we can define a simple program like solving the quadratic equation, displaying the inputs and outputs visually with a proper user interface.

Fig. 1: A Simple Boxes and Arrows Application

Figure 1 shows a high level view of the program and how its execution environment would look on the destination device.

The internal structure of the program is illustrating in boxes and arrows graph form below. 

Fig. 2: Quadratic Graph internal Details

Note that it contains primitive operations like unary negation, addition, subtraction, division and, name distribution. But it also contains a composite operation that is a placeholder for blocks of IP that come from other sources. It would be implemented here as simply a chunk of code that executes that portion of the diagram. Note also that exception conditions that must be handled by the caller are provided for as part of wiring the module. These are details that will be "handled in the implementation", the most famous of software excuses ever.

We could market this tool as a simple equation grapher and monitor sales through the Apple and Google monetization portals respectively. This would accomplish the goals enumerated in part one of this series.

One Practical Note:
Building for the Apple platform requires $100 of Apple Developer Network payola. Building Java under the NetBeans and Android platforms is free.