Monday, May 28, 2018

New Thinking in AI

I found this interesting:

https://www.theatlantic.com/technology/archive/2018/05/machine-learning-is-stuck-on-asking-why/560675/

(For those not knowing/remembering, he's also the father of Daniel Pearl, journalist who was kidnapped and murdered in Pakistan)

He invented a really good technique back in the 80s. We used it on the project I worked on 86-90. It's a good statistical basis for probabilistic reasoning, called Bayes Network. It worked.

Now he's talking about the reality of cause and effect. This is a good thing, and working it out probably requires...yes, you guessed it...

An Advanced Degree (tm). Let's start the process.

(I don't disagree with him, per se, and certainly he's been thinking the right thing, but I think there's a logistical failure)

I was working this problem too, mid-80s, for an activity called "Failure Modes and Effects Analysis". or FMEA (often pronounced feema).

An FMEA for a system (and a simulator to do the actual analysis) would require you to exhaustively describe all the failure modes (i.e., "causes") at the level of detail you want (or more properly "can afford"), and the possible "effects" that would occur.

The problem is that it's really really hard to do this to the detail depth that would be adequate to produce a valuable result. You need a really serious model of parts. So it's really expensive to do, time-consuming, and generally skipped.

And it isn't the most obvious failures that you really want to understand, it's the weird ones, like how leaving a wrench in the wrong place inside a 60s space capsule leads to a fire that kills astronauts.

Pearl is thinking about a larger problem, wants cause/effect descriptions, and complains about what he calls "curve-fitting", which is more or less about finding a limited model that describes a dataset, and allows a little bit of prediction outside that dataset (I suspect, really only accurate for first-order behaviors). He poses a couple of questions as examples: "what if I had finished high school?"

Well, there's no possible way to answer that, except by use of statistics data that we already have, and of course you only get an averaged answer (which continues to be speculative): you probably would have earned more money in your life. If you want more detail than that, like "you would have gotten a scholarship for UMD, graduated and then found a cure for cancer when you were 43 years old", how large a model would it take to do that? How many assumptions about random events would you have to make?

If you're into AI enough to know the historical aspects, recall Doug Lenat's work on Cyc. Remember what that was? They were trying to produce a knowledge base of some sort that was really a massive ontology.

Ontologies are hard. REALLY hard. Mostly you fail, or acknowledge that incompleteness is unavoidable. Generally what I've found is that creators try to do WAY too much, it becomes unwieldy and misses the target. (Pretty sure that was a blog topic a while back, but if not: micro-ontologies are the only thing that can work ok.) Remember SUMO? You can't put enough into it to make it usable without making it unusable.

So how will humans do what Pearl says, when we haven't already done it? I grant you, computers are bigger/better/faster/etc than Lenat had access to 30 years ago, but that probably just makes it possible to get too big sooner.

Back to the FMEA thing: although I was making an attempt at it, I was almost for sure going to fail because the amount of detail necessary to succeed wasn't going to be creatable. Why? Because it's not the obvious failures that you need to find, it's the really weird ones. And I was working in Lisp, where you work with symbols rather than numbers, so you can't run into the computational exhaustion of too many numbers. FMEA is pretty much never done because of the cost, and while a computerized version would be some faster, it'd be hard to create--the real benefit would of course come from being able to reuse component models, but you casually lead yourself astray by eventually thinking those component models are complete.

In any case, I applaud Pearl's thinking, but...problem still untractable.

Why? The simplest way to simulate the universe would be to build it.

Wednesday, May 02, 2018

Working with Ubiquiti wireless devices

Because of some other activities, been working with Ubiquiti (http://www.ubnt.com/) wireless devices.

Ubiquiti has an interestingly large range of devices. Would not pretend to understand them all just yet. If not an Advanced Degree(tm), you need advanced training and experience.

Had a heck of a time getting some things going. According to their documentation, you mostly just plug-n-play...or not.

Apparently it takes an Advanced Degree(tm) to figure this out.

The first problem is that the wireless connections are excruciatingly slow to operate. Spent hours wondering what the heck was going on. Finally I decided to attach to the wire--THAT works as you expect, and its properly fast. Problem is, that GUI doesn't quite do everything. There's no control for PoE.

The issues begin with the "airCube". The documentation says you can direct connect a PoE radio device to the PoE output on the Cube and power the radio device. Turns out this is not quite true--not at first--despite the documentation saying you can, incl the pictures.

AirCube appears to have PoE turned off by default, out of the box. You want to use it? Not so easy to do. Out of five units, they were inconsistent about PoE being on. Not sure what that means.

In addition, the AirCube does NOT respond to casual broadcast pings. I.e., if you try "ping X.X.X.255" it doesn't answer. If you try specific IPs (like X.X.X.22) it will if you hit the right one...?

How to do it: You need to use UNMS, or you need to use the your phone. In those GUIs, you can get to the control to turn on PoE. You can get to a management web-page on the device if you connect via the wire, but you CANNOT turn PoE on this way (post-firmware-update: that might have changed).

Or you need to guess the IP. Could get this via "nmap" (unix thing). Even so, changing PoE isn't on the service webpage.

Or maybe you run Wireshark and it tells you. Wireshark will pick up all traffic on the wire it's on, and show you all active IPs. A fully passive IP wouldn't be seen until it does something specific.

On top of all this, I don't think the units are consistent about what they are doing.

Once you have the device detected in UNMS, you can get it to do the firmware upgrade, that puts some new controls in front of you, one of which will be "turn on PoE". I did not, at this point, go look at the direct web-page to find a PoE button.

-----

The NanoBeams are far simpler to get going, they do the obvious thing with a known-in-advance IP address (.1.20). Wire straight to them, set to DHCP, reboot, they are on your regular network, can then config via webpage (altho you still have to track down the dhcp ip addr).

Will be back to this in a few days, make it more coherent, etc.

-----

And apparently if you use 'ssh' to get into the device, there are still more settings you can work with. They run a micro-linux. Amazing.