Wednesday, August 30, 2017

Demystifying Artificial Intelligence

One of the nice things about my job is that I get to play with some of the latest technology. Right now I am doing a lot with artificial intelligence (AI) and machine learning (ML). I remember back in the 1980's and how AI had the potential to be something great. Then it stagnated for 2 decades. Due to the low cost of computer processing power and memory, AI is making a comeback. Hopefully it has a bit more staying power this time around.

As I research new technologies it is important not to buy into the hype. I read one article today claiming that those that don't make the effort understand AI and ML will begin to look at computers as magical machines that they understand less and less. That can be true of any technology and so if you find yourself thinking of a new product as magic, that is what the marketing people want you to believe.

The more I work with the current state of artificial intelligence, the more I realize it is just really good at guessing the right answer. Most AI engines get fed a bunch of numbers (characters and words can be represented by numbers) and what those numbers mean. The engines then try to figure out what a different set of numbers mean. It then becomes very important to train the AI engine with a lot of data as well as the correct data.

What happens if you train your engine with the favorite breakfast cereals of children between the ages of 5 and 7? When you ask it what an adult would like for breakfast, you will most likely get the wrong answer. While I do like Fruit Loops, I don't eat them for breakfast anymore. What happens when you recognize the age mistake but only train the engine with data from Americans? If you ask what someone from Japan eats for breakfast, once again, you will get the wrong answer.

Currently artificial intelligence is at an interesting point. We are creating useful applications for it that can greatly help us in our daily lives. It is also important to remember that it isn't magic and is only as smart as the data with which it has been trained.

Tuesday, August 29, 2017

Help Forums

Several weeks ago I went to start my car and had a dead battery. Fortunately I anticipated such a problem and carry a lithium-ion battery that can be used to start cars and charge mobile phones. I connected it to my car battery and the car started right up. Then I drove around for a half hour so I could start my car the next day. Sure enough, that worked and I forgot about my battery problems until the following week when it happened again.

I had replaced my car battery only 18 months ago and figured I had a defective battery. So I brought the battery to a sister store of where I originally purchased it. They did some tests but could not conclusively tell me the battery had died. To do that would take an hour. They listened to my symptoms and agreed that the battery must also be dead and so after only 15 minutes, gave me a new one under warranty. That made me happy.

The car worked great for a few days and then I left it over the weekend. When I got back in town, I went to start the car and once again the battery was dead. Oops! My other battery was probably fine and the car turned out to be the source of the problem. So how do you find a battery drain in your when it is off? The first thing to do is check the Internet.

I did an Internet search with the make and model of my car along with the two words: "Battery" and "drain." After about 10 minutes of reading I discovered that the final sending unit (FSU) on my car often goes bad and leaves the cabin fan running even when the car is turned off. I looked for a replacement part online and discovered that if I ordered it from a local autoparts store I could have it that day for $100. If I ordered from an OEM parts supplier, I could have it in 2 or 3 days and it only cost $50. Not being sure that the new part would fix the problem, I opted for the OEM part. For those that don't know, OEM means it is the same part supplied by the manufacturer instead of an aftermarket part. I always try to use OEM parts when possible unless the aftermarket part is much more reliable and preferred by professional car mechanics.

To combat my dead battery each morning, I just unplugged the negative terminal from the car battery each night and reset my clock when I went to use the car. Once the part arrived, the Internet provided step-by-step instructions on how to replace it and I spent a total of 5 minutes doing the work. It is now a week later and my car is working very well. I don't have the dead battery problem any more.

I wonder what I would have done without the Internet to help me crowdsource the solution to my problem. Several less mechanical people had taken their cars to the dealer only to spend upwards of $1000 and still not have the problem fixed.

Sometimes online help forums can backfire but I have used them with mostly good results. This weekend I was doing laundry and noticed that my washing machine was not spinning the clothes to remove all of the water before I tossed them into the dryer. I looked at several online appliance forums to discover that I may have had a sensor problem. They told me to get the diagnostic code from the washer. I went to do that and noticed that my son had simply turned off the spin cycle. Turning it back on solved the problem. I guess I didn't need the help forum for that case as I just needed to be a bit more observant.

Friday, August 11, 2017

Having Fun with Sentiment Analysis

Recently I have been playing around with sentiment analysis and thought I would have some fun. I decided to take my wife to lunch today and am hanging out in her law office waiting for her to finish her day so we can drive home together. She has put me in one of her unused conference rooms with my laptop which has allowed me to continue my playing.

If you want to play with sentiment analysis, you can do so with Python using the Natural Language Toolkit (NLTK). Here is a very simple program that is only 2 lines:

import nltk.sentiment.util as s
print(s.demo_vader_instance("Text to analyze here"))

The program uses the Valence Aware Dictionary for sEntiment Reasoning (VADER) created by C.J. Hutto and Eric Gilbert. It is a great little algorithm that is quite accurate.

I started by analyzing the sentence, "I love my wife" and got a score of .6369 (scores run between -1 and 1). This happens to be the same score I got for, "I love to ski." So according to VADER, I love my wife about the same as I love to ski. I showed that to my wife and got a laugh out of her. Next I added a smiley face ":-)" to the sentence and watched the sentiment increase to .7351. More laughter.

I now have a chat log with 2.3 million lines I will run through it and see what happens for each line. I will then only check a select few but time how long it takes. If you have Python and want to have some fun, load up the NLTK and give it a try.

Thursday, August 10, 2017

Satellite Radio

I bought my wife a new car a few years ago and it came with satellite radio. We had the service free for a year and really liked it. We opted to continue the service. With the ubiquity of the Internet, I am beginning to wonder if the days of satellite radio are numbered. Why limit yourself to someone else's music tastes when you can customize your listening preferences with streaming music like Pandora or Spotify?

My wife's car is a bit special in that it is a Jeep Wrangler Rubicon. That means it is meant for going off road and we do so often. We visit some places so far from civilization, there is no mobile phone service nor Internet. In those cases, satellite radio wins out over streaming music.

Recently I did a road trip from Utah to California and I took Interstate 80 the whole distance. Mobile phone service providers have ensured that Internet service is available the entire way. While I opted to listen to a book on CD, I also could have streamed music on one of my phones. In that case, streaming music wins over satellite radio.

It is also important to point out that the two services are not mutually exclusive. Both can co-exist nicely. However if you have a smartphone and unlimited streaming data, it might not make sense to pay extra for satellite radio. It is that case that has me worried about satellite radio's future. If anyone disagrees, feel free to let me know.