One of my most treasured books is a first edition of Herman Wouk's novel "Caine Mutiny". Published in 1951, it won the Pulitzer Prize and it was on the New York Times Bestseller List for 122 weeks. I was pleasantly surprised to find at this time of me writing this blog posting, that Herman Wouk is still alive and 100 years old.
The movie version of Caine Mutiny starring Humphrey Bogart (pictured above) is pretty cheesy, and didn't give a tenth of the subtext that the book gave.
Briefly, the story takes place during World War II in the Pacific naval theater on an obsolete Destroyer Minesweeper called the USS Caine. Since Wouk himself served on two of these types of ships, and his naval career followed the trajectory of an officer in the book, the level of detail of running a naval warship is stunning and intricately documented.
The story line goes like this. An ineffective, incompetent captain is assigned to the ship. His name is Queeg, and in the movie he is played by Humphrey Bogart. Queeg tries to mask and overcome his incompetence by becoming a martinet, blaming his crew for his mistakes and covering up acts of cowardice in battle. His behavior gets weirder as his commanders dress him down for his mistakes while commanding the Caine.
During a typhoon, an able, but not an intellectual executive officer named Maryk countermands a Queeg order to maintain fleet course that would have sunk the ship. The ship would have floundered by sailing with the wind and sunk in the high waves. Instead Maryk saves the ship by correctly heading into the wind face on to last out the winds and waves using the powerful engines of the destroyer to hold his position in the most stable way possible. As a result of the action, some of the crew is charged with mutiny, and the denouement is the court martial trial.
In the book, the author details that minutia that enables reservists like shoe salesmen, factory workers and college students to conduct naval warfare on a historic scale with competence that rivals the great sea battles such as those fought by John Paul Jones and Lord Admiral Nelson.
So what does this have to do with AI, and self-driving cars? This is a James Burke Connections moment. In the book, the protagonist is a young, rich, immature ensign and former playboy named Willie Keith. Through the course of the book, he matures as a person and rises through the ranks to eventually become the captain of the USS Caine. As a young initiate and a commissioned officer, he is assigned OOD or Officer of the Deck. He learns how to navigate, calculate courses, issue commands that keep the ship and fleet zigzagging to avoid submarine torpedo and maintain a sonar net around the fleet. He is the captain's representative when the captain is not on the bridge.
As OOD, Willie has to sign the log book at the end of his watch, and the first time that he signs it, it is a single notation: "Steaming as before. Willie Seward Keith USNR". This was highly instructive to me as it was a Eureka moment for my thoughts on self-driving cars, and the whole reason why I brought up the Caine Mutiny in the first place.
The author, Herman Wouk was quite accurate in the mundane details of how the ship is run, and what it did while sailing in convoy, and what he had to execute as his own OOD duties when he served about the USS Zane and the USS Southard. The log would record the course that they were sailing, but would not record the zigs, zags, changes of course, the swapping out of positions for the sonar submarine screen with other destroyers in the convoy, and other "housekeeping" details. These were not logged. But the important events were, and the navy would eventually review those logs if something extraordinary happened. The logs would hold lessons for a postmortem analysis.
This was the "aha" moment for me. Self driving cars need to log all of their journeys, all of the time in a temporal database. An explanation of a temporal data base is here, but essentially it records what was true at any given time. But to store redundant information that belongs to the Department of Redundancy Department is not necessary. If you embarked on a trip on the interstate, you would record your start time and your end time. If you didn't stop at a rest stop, or get into an accident, or do anything to impede your progress, that is all that you need to record. You don't have to record a lot of data at every minute. The biggest inference that you can make, would be like the log book of the USS Caine - "Steaming as before.".
But why bother to record anything including the status quo, if you are steaming as before? Why bother keeping logs? Because of the rich knowledge buried in the data. From that small bit of recorded information, you can derive your average velocity. From the collected data of many, many trips by many cars, you can infer a lot of things. You can infer if the weather was bad if it took a time slower than normal and you didn't stop anywhere. You can infer mechanical conditions. You can infer traffic density. You can engineer a lot of features from the trip data.
But the most valuable data gleaned from collecting a lot of logs of every trip that a self-driving car makes, is that you can make a self-driving car a lot smarter, if it and others like it can learn from the mistakes and successful corrective actions of other vehicles that have driven the road.
Driving is a not a complete linear event. Speed varies. Road conditions vary. Random events take place such as an animal runs out in front of the car, or another vehicle cuts you off. If you collected every IRRR (Input, Reaction, Resultant Reaction), you would have quite a library of events that could only improve the driving ability of every autonomous car. Self-driving cars could emulate human drivers. They can get better by more practice and by learning from others.
But lets go one further. In a connected car, the internet is always on. The car is always positionally aware of where it is. Suppose that as you drove down a particular stretch of road, an electronic milestone would download some neural nets into the car that would enhance the car's ability to navigate that particular section of road. And where would that come from? From the collected event logs that not only had the "Steaming as before" data but the data on how other drivers successfully negotiated conditions and hazards on that particular stretch of road.
With storage being incredibly cheap and in the cloud, this sort of continuous data collection and processing would be easy to collect. Many people will point out privacy concerns, but if there was a standard for the neural nets or a library of driving moves for self-driving cars or even a standardized neural net interchange network, only the data itself after it has been processed is required without vehicle identification. As a matter of fact, when the legislation for self driving cars comes in, it should specifically prohibit vehicle identification in the data collection stage.
Self driving cars collecting temporal data can have lots of benefits. With aggregated data, you can have expected MTBF or machine-determined Mean Time Between Failure. The car could drive itself to get serviced when it is required -- usually after it has delivered you to work. And it can book the service appointment on the fly when it reaches a critical juncture.
With the "Steaming as before" logged data collection, the act of getting driven somewhere could and will be automatic, without a thought given to the process of actually getting yourself to your destination. The car will take care of all of the logistics for you.
As for me, to hell with the data. I'm going to invest in a connected car wash specifically to clean self-driving sensors, and have an automated beacon system to lure the autonomous cars in for a wash and wax. They will pop in and out, and continue steaming as before but now much cleaner.