Artificial Intelligence and Machine Learning
What is Artificial Intelligence, and what is it good for?
Artificial intelligence is in the news these days, and receives a lot of hype. Much of it is deserved, but much of it is also incorrect. Intelligence is a misnomer. No computer thinks or operates using the same logic as human person. A much more accurate name would be machine learning. Which does accurately describe how it works. Machine learning connects a set of inputs to a defined set of outputs. For instance, PNWS developed a model that recognized various paper shooting targets and bullet holes in those targets. In the images below, you can see a sample input image, and then the output from the process:
You can see that the input has the information about where it was shot. The model is able to extract that information through training, and then produce the coordinates and bounding boxes shown in the output. The input doesn't need to be an image. Another example could be looking at product reviews for inappropriate content or to gage the overall sentiment of the review. As long as the input can be quantified and there is a strong connection to the desired output, machine learning is likely a good candidate.
All machine learning applications start with such a model, which is a network that has been trained on numerous examples of both the inputs and desired outputs on the business process. Then when the model is shown a new set of inputs, it is able to determine the corresponding set of outputs. Most importantly, a properly trained machine learning model is able to operate even with complex and chaotic inputs. It is able to find a needle in a haystack. The key to a a successful machine learning project is to find a business process that has a clearly defined set of inputs that can be mapped to a clearly defined set of outputs.
What can't it do?
However, not every problem is best solved with machine learning. In another project, we needed to generate the outline of hand tools placed on a mat. The outlines would then be used to laser cut foam to make custom tray inserts for toolboxes. We used two competing approaches. One used a segmentation model (Meta's segment anything model) and the other used a classic green screen image processing technique. It turned out that the green screen was more accurate. While the segmentation model is very impressive, in a specific use case where the tools had to be placed on a mat in the desired positions, the machine learning approach couldn't segment the tools as well as a classic green screen approach. Machine learning thrives in less that rigidly controlled environments. But if your process already requires a well isolated input, then it is possible that another approach may actually be better.
The other thing that machine learning cannot do is to produce an useful output when the information needed to conclude the output isn't in the inputs. For example, you can't take a picture of person and determine if they would be a good driver. The image just doesn't contain that info, and no process can extract what isn't there. There are a lot of people and companies that talk about artificial intelligence with far too much hype. It is a very powerful tool, but it still needs the right circumstances to be a good solution.
How is it done?
The first step is to identify the desired outputs, and the set of possible inputs to the model at a conceptual level. For many cases, an existing model may already provide the desired output. For example, there are many face recognition models that are publicly available. A project could simply use one of the existing models and not have to re-create all the work that is involved in training a new model. But if your use case is specific, such as finding flaws in a small part, then you will likely need a custom trained model. We have trained many models and are able to create one for your specific use case if needed.
Then an application is built, or an existing one modified to invoke the model when new data arrives. Often there will be a process of using the new results in the subsequent training of the model. It is very common that the initial model will be built with a small subset of the desired inputs, and that this initial model will be used to help generate new data to enhance the model in sort of a boot-strapping operation. Mobile apps, web sites, cloud applications, and normal desktop applications can all have machine learning integrated into them.
You can read more about this process in our case study, or find out if your business process is a good candidate for machine learning.
Mike Hayner
Would rather be coding
Find Out Why We're Different
- 9 Requirements for Hiring a Software Development Firm
- Comparing Software Developers Before You Hire
- Switching Developers
- Efficient Software Development
- User Interface and Project Complexity
- How to Restart a Development Project
- Bad Development Advise
- SQL Is Different
- Artificial Intelligence and Machine Learning
- Checklist for Machine Learning Suitability
Please Contact Us
We would love to talk with you about your project. Please give us a call, or fill out the form below and we will call you.
Additional Info
Thank you very much for contacting us. We will respond as soon as we can.