Implementing Machine learning algorithms from scratch is one of the most challenging tasks, however, using ready-to-use ML libraries without any background could also have consequences! In your opinion, what are these consequences?
Using machine learning libraries without understanding what they do is like talking without understanding what the words you use mean. Although you don't need to know every single detail of every algorithm and how to implement them. Machine learning is a huge world. But you need to understand what each algorithm does and a general idea of how they work. Imagine you are handy man you have many tools like wrench etc. As an expert, you need to know what your tools do for you and also use the best tool for the most appropriate problem; It would be weird if you use a drill for fixing a pipe in the bathroom. For a general machine learning person, that would be enough. But if you are a person dealing with problems that need state of the art technologies you will more likely need to modify some existing algorithms so they could be used for your problem more efficiently. So, I think the main consequence of not knowing what algorithms you use do, is that you will be lost and wasting your time in some situations in which a more expert person would not have that problem.
1. Clueless when finding suitable parameters if the application is significantly different from the examples given in the library.
Tuning some parameters in ML requires a well organized knowledge. If one do not have proper understanding, the training may not be converged or the trained model may have defects, such as imbalance accuracy (ex: in a classification problem, a single class fails at 99% while all other classes succeed with 100% may give around 95% overall accuracy)
2. One would not know how to generalize his solution.
The solution may work for the specific dataset, but may fail in tuning the model for the real world application.
3. May not know when to stop the training/optimization process
There is no specific stopping criteria that works with all the cases. Finding when to stop involves in querying through many different facts about the application and the knowledge about the ML algorithm.
4. Fails to optimize the model
The models given in the examples may work very well, but there might be some space to simplify the model architecture. If there is a wall to break, the person who knows that the wall is weak may use a knife where any other person who knows nothing about that wall still uses a tank to blows it away.
5. There can be a better way
How a person do know that its the ultimate way to do the job if he does not have a thorough knowledge about what he is doing?
6. Early recognition of signs of failures
Nowadays, the usage of ML is a time consuming task even though we use libraries. Having the knowledge about the ML algorithm can help to recognize the signs of failures earlier which may save the time and cost.
7. There may be an easier way
Best way is not always easy. One may do not have to do the training from the scratch which may take days or weeks. The knowledge helps to decide whether any transfer learning technique would help in the particular case, which may reduce the learning duration to a few hours or even less.
8. Cannot predict about incompatibilities
Nowadays an application may get helps from several ML libraries. For an example, if somebody needs to deploy a CNN model in a mobile, then he may need to use one ML library to do the training, another for the deployment inside the mobile environment. But without knowing about the internal structure, he cannot interpret any error occurred due to the incompatibilities. A well organized knowledge may help identifying the compatibility issues even before the creation of the model.
For academician and researcher, they have to understand more than step by step even up to the philosophy of the ML used. However, for practitioners, general knowledge of ML that applied I think enough. If more, it will be better.