Complexity and Learning
If you spend anytime on Medium perusing articles which touch on or focus entirely on the the topic of machine ‘learning’ it is easy to feel overwhelmed by the seeming complexity of the discourse. Their is an unspoken implication that because machine ‘learning’ is complex that it must be a legitimate area of modern computing and those who question that simply do not understand it. They do not have the training or the background and education, and therefore are not qualified to opine on the subject. The argument seemingly is that because machine “learning” is complex the machine’s doing it must really be learning something as they execute the programs given to them. After all how could something so complex be accomplished without learning?
Think about the last time you had to follow a set of instructions to build something very complex. Maybe it was an intricate model or perhaps a particularly complicated piece of furniture. Did you need to learn anything to build that thing? I would suggest strongly that the answer is no. All you had to do was execute the instruction you were given as described in the instructions themselves. You might argue, but I had to learn how to read in order to follow those instructions, and indeed you did if the instructions were written in words. However, what if they were only pictures? Did you have to learn how to ‘understand’ pictures. Did somebody teach you how to do this? Did you take a course in school called “understanding and interpreting pictographic symbols’ and until you completed that course you were unable to to do this but after you passed it you could? Unless you happen to be a symbologist probably not. Yet somehow you were able to still understand and follow the directions given by the symbols even though they may have been exceedingly complex. It is the same way with a machine, it may look like it is doing something very complex and thus it must need to learn something in order to accomplish the task, but it does not. It only needs to ‘understand’ (a computer/machine cannot understand anymore then it can learn but it is a helpful word to use in this case to aid in our own understanding) the symbols given to it (input) and then react/act (output) a result in a manner consistent with its programming. And it cannot deviate from its programming. It is not capable of doing so. A computer which could deviate from its programming would not be a computer exactly like a machine which could learn would no longer be a machine.
Many times what appears to be complex and intimidating is really very simple and with the smallest of changes can be made to coincide with actual reality. The actual reality in which machines cannot learn. Have a read through of the the example below. Link provided.
Unsupervised Learning with Python
Unsupervised Learning is a class of Machine Learning techniques to find the patterns in data. The data given to…
Heavy stuff right? Complicated shit. Gotta be some learning going on there. Now read (a heavily shortened and abridged) actual reality version below.
Unsupervised Dataset Analysis With Modern Computers Programmed Using an Object Oriented High Level Programming Language with Dynamic Semantics
Unsupervised dataset analysis is a class of Machine Learning techniques that like machine learning is not learning, but is instead a form of modern computing that falls within the class of modern computing techniques referred to erroneously and illogically as machine learning. It is used to find the patterns in data. The data given to unsupervised algorithm are not labelled, which means only the input variables(X) are given with no corresponding output variables. In unsupervised data set analysis, the algorithms behave exactly as they are programmed to and execute a search function which (if the search parameters are set appropriately) may find what we refer to as interesting structures in the data, but what the computer defines as the outputs of the algorithms which make up the program that was run to analyze the given data set. Since no learning is happening we will correctly refer to such analyses as unsupervised and supervised data set analysis.
Supervised Vs Unsupervised Dataset Analysis
In supervised data set analysis, the system uses a data set that was previously programmed into it as the baseline data from which to calculate the outputs based on the rules of the algorithms that make up its programming. (On the other hand, in unsupervised data set analysis, the system calculates the outputs following the rules of the algorithms that make up its programming but those rules do not reference a baseline data set.) So if the dataset is labelled (previously programmed into the computer and referenced as a baseline data set) it comes under a supervised problem, it the dataset is only composed of data entered at the time of the analysis of that data set without reference to any baseline data then it is an unsupervised problem.
The image to the left is an example of supervised data set analysis; we use regression techniques to find the best fit line between the features. While in unsupervised data set analysis the inputs are segregated based on features and the prediction is based on which cluster it belonged. As in all modern computing techniques mathematical and statistical approaches are used to find the solution to various queries we may make of the data set. In no case does the computer/machine learn anything as it is incapable of learning by the very definition of the words that make up the term. In fact the term itself is a logical contradiction and something which is logically impossible, a learning machine. If machine could learn it would no longer be a machine so it is puzzling as to why this particular form of modern computing is still referred to as such.
Lol! Not sure why I find that so amusing, but I can’t help it. I just do.