Library methods for machine learning
Machine Learning (ML) software is a software system with one or more components that learn from data. This entails engineering a pipeline for the collection and pre-processing of data, the training of an ML model, the deployment of the trained model to perform inference and the software engineering of the encompassing software system that sends new input data to the model to get answers.
- Available product analysis Reuse of models is an important topic for machine learning projects. This can be through an API or by downloading the model code and implementing it in your solution. Reuse of (open) data is also worth to investigate.
- Best good and bad practices Very important for machine learning projects. Sources of good practices are usually big companies like Microsoft that already have a track record in ML projects. Note that ML engineering is a relatively new discipline so best practices are still emerging. It is also a hype so you might be overwhelmed with what’s out there.
- Community research Main source of information for solving any technical issues you run into during the implementation of your ML model.
- Competitive analysis Might be necessary to identify the problem you are trying to solve with your machine learning application. What is the business goal for the project?
- Design pattern research Since ML engineering is quite new, there is limited knowledge on design patterns. A good overview is provided by Washizaki et al. We also see more developments going towards layered architectures for ML systems, like the TensorLayer library.
- Expert interview As a machine learning engineer you will probably work with data scientists who come up with the advanced models that you implement.
- Literature study You probably need this to identify possible ML algorithms for your problem domain. E.g. research on “anomaly detection in time series” or “object detection in images”.
- SWOT analysis Might be necessary to identify the problem you are trying to solve with your machine learning application. What is the business goal for the project?