Traditional software development is fairly straightforward: The product team creates mock-ups and defines user flows, then engineering designs it and builds it. However, designing an artificial intelligence (AI) platform isn’t quite as simple. Beyond creating mock-ups, defining user flows, and building the product, you also need to train the system with data, measure the results, develop the models, and retrain as needed
At AppZen, here’s how we approach designing models and some of the challenges that we’ve overcome to build our AI platform.
It’s All About The Data, And Lots Of It
One of the most crucial elements of designing an AI-based platform is data. Data is the foundation of machine learning, which allows systems to learn automatically and improve over time without being explicitly programmed. For the AppZen platform, data comes from thousands of sources including receipts, invoices, contracts and external sources like Google and Yelp.
The challenge comes from selecting data with enough variability. This ensures that the model isn’t too narrow in its understanding so that new inputs won’t throw it off. It’s also crucial to have separate datasets for training and testing. If you test using the training dataset, it’s like giving high school students the answer to a calculus test – they’ll always get 100%.
Defining Success Criteria
Next, we need to measure the results of the model to determine how well it’s performing. To do this, we first need to define the success criteria, or what accuracy level the model needs to achieve in order to be considered effective at solving the problem at hand – for example, 98% accuracy. Then we move into a phase of short development cycles where our team of data scientists build the model, train it, test it, and measure it. The data scientists will adjust and try different approaches, and if needed, start the cycle over again – we call this an “iterative approach.” For example, in order to teach the system to recognize non-traditional receipts, we had to develop a model and provide enough training data to teach it to recognize things like post it notes, pictures of pets, and scenic landscapes, all of which employees have submitted as “receipts” on their expense reports.
Optimizing the Model
Finally, we’ll run a number of experiments to determine the optimal model. Each experiment is run against the same dataset and measured to determine how accurate it is. In measuring the different experiments, those that don’t achieve the accuracy level needed will be dropped, and the models which produced the highest level of accuracy will be kept.
The process of training an AI platform never ends because the platform is continuously learning. As more and more data is submitted, our AI will continue to improve and become even more accurate over time.