Ask HN: Why does Machine Learning use these assumptions?
The thought keeps popping into my head over and over again: Just because it works doesn't mean it works well, or that it works in a smart, optimal, or even ontologically truthful/useful/realistic way.
There are no shortage of videos, papers, tutorials, blogs that explain the math & models in detail. But there are exceptionally few sources that explain the underlying assumptions...and why these are useful (or not useful) assumptions.
Why does Machine Learning use these assumptions?
--
1) Sigmoid Functions & Binary Classification - I understand the math and the probabilities.
But rather: WHY would you want to classify using a binary system of classification? WHY would you want to reduce everything to yes/no? Or more accurately, a probability of yes/no? Or even chained probabilities of yes/no?
Is it just due to being stuck in the paradigm of programming on machines built on yes/no logic gates? Trying to perform these very complex tasks (identification, generation, whatever) on CPUs and software that are, in and of themselves, built on binary distinction?
If all you have is a binary logic gate (hammer), then everything looks like a cumulative distribution function (nail)?
Isn't this a totally moronic approach? Or is it just the best we got? I feel like it's stuck back in the signal processing days of trying to "fit" and force a signal to achieve a certain pattern without realizing the what or why. Turning knobs on an oscilloscope.
--
2) Layers - Why are artificial neural networks setup as "layers"?
Isn't this more like an assembly line? Doesn't that seem dumb? Why would someone believe, in their heart of hearts, that intelligence or pattern recognition, or any kind of thinking, happens procedurally?
Doesn't this (again) seem like a very moronic approach? One that is based on the procedural nature of the machine itself? And the programmer themself? And not the nature of thinking, intelligence, or even complex analysis / complex systems?
Complex systems with lots of variables and lots of dimensions don't actually interact like this. They don't have "layers", this is a totally made-up assumption that has major implications on the entire field.
Was this just chosen out of necessity, because software and programs need a beginning and an end? And input and an output? Or is there some really convincing argument, that speaks to the philosophy and ontology of these decisions?
27 comments
[ 0.23 ms ] story [ 56.6 ms ] threadFor instance, where should a modern book on digital photography be filed in the library? Should it go in the 000's with computing? In the 700's under art? Or in the 600's with technology (an application of optics, electronics, etc.)
All these answers are right but they are also wrong. (Like why isn't computing filed with electronics in the 600's or math in the 500's?)
If you're physically filing the book in a place in the library you have to assign it one category out of all of those because it can only be in one place.
If you're trying to do anything else and get correct answers it is simultaneously true that a book is about how to use computer software (say Lightroom) and about how to make art, about the optical performance of lenses, but not about asian languages, nuclear energy, or how to play casino games.
There are certain cases where classes are mutually exclusive and in those cases it is usually right to model those as a constraint rather than start with multi-class classification which usually winds up like
https://en.wikipedia.org/wiki/Celestial_Emporium_of_Benevole...
unless there is something structurally special about the problem.
If you approach the classification of books as asking the question "Is this book about this topic?" the problem becomes tractable... Because the reason why a particular book that could be filed in multiple places is filed in one particular place is "because some librarian decided to file it there". You could never train an algorithm to reproduce the same arbitrary decisions that different librarians make arbitrarily, you'd always have a high error rate. If the question is "Is this book about how to use computer software" then you can get close to 100% in accuracy. To attempt the first is to decide to fail at the very beginning.
Also often the math works for binary classification and doesn't work for other kinds. See
https://plato.stanford.edu/entries/arrows-theorem/
for one kind of problem with is trivial for two choices and intractable for more than two.
(Funny there are two kinds of people... the ones who know what the knobs of the oscilloscope do and the ones that don't!)
(2) The visual cortex of your brain has layers much like the layers of a convolutional network.
An anti-aircraft missile system has layers of processing from raw signals, from which are discovered momentary blips, which are assembled into tracks, etc.
Matter is made of quarks and electrons, the quarks form protons and nuclei, which form nuclei, which are the core of atoms, which form molecules, etc.
Insofar as we are not dying at 30, freezing in the dark, frightened of the howling of wolves, and believing everything happens because some god wants it to happen, it's because we see a hierarchical structure in the universe.
If you had a million neurons all wired to each other it would be an intractable problem to solve for the coefficients because there are so many of them not to mention so many symmetries that would let you trade these ones over here for those ones over there which would make it hard to get started. The wiring diagram for your brain is not like the wiring diagram for a TV set, but your genetic code does wire certain populations of neurons in certain areas to other populations in other areas and then the neurons fine-tune their coefficients based on your experience.
And don't dismiss "programs need a beginning and end" and "input and output" as incidental, they're absolutely essential to writing a ...
(2) Regarding: "beginning and end", "input and output"
It's my understanding that neural networks suck at learning from periodic functions, one of the most basic functions of importance to human society and natural science.
I'd argue that this isn't JUST because of the math, it's also the assumptions being made.
Regarding: "visual cortex of your brain has layers".
You're talking about an instrument of data collection & data filtering. Not an instrument of inference.
Keep digging deeper...And deeper...you will never find a neuron that can recognize your Grandma. Or your cat. Or that guy you hate at the grocery store.
https://en.wikipedia.org/wiki/Grandmother_cell
This is part of the problem with reductionist thinking and the reductionist approaches I see in ML.
I'll try to expand and explain more tomorrow on where I'm coming from (nonlinear dynamics, complex analysis and chaos theory)
https://news.ycombinator.com/item?id=33079248
That said, the paper still touches on the same problems with reductionism and simplification of complex systems.
To quote from the paper:
We draw on the ‘reductive tendency’, a process through which individuals simplify complex systems into cognitively manageable representations. While simplified representations offer benefits, such as quicker decision-making, such representations are often inaccurate as they overlook the complexities of the problem at hand.
--
Compounding these factors is the nonlinear nature of wicked problems, where “cause and effect relationships are either unknown or highly uncertain.
Second, wicked problems present potential entrepreneurs with “radical” uncertainty. Because of their specifically nonlinear and interrelated complexity, wicked problems “have no closed form definition”
--
Multiple reasons have been offered as to why reduction is so common. For example, the ability to reason about complexity requires a range of components to be prioritized to understand how they relate within a system. As this is difficult, individuals adopt understandings that are simpler in nature, thereby reducing the perceived complexity of a problem (Feltovich, Spiro, and Coulson, 1993). Others suggest that the tendency is a habitual carry-over from the rudimentary and routinized way that beginners are introduced to a concept (Gibson and Spelke, 1983). For many individuals, simpler conceptual forms are often employed to introduce a topic (Feltovich et al., 1989). This may, however, set up path-dependent learning that relies on reduction as a crutch (Feltovich et al., 1986). Another argument arises from motivational psychology and the finding that people prefer a middle level of complexity in their lives; concepts that are too simple are deemed boring, while concepts that are too complex are off-putting and do not attract engagement (Berlyne, 1971).
Research has identified 11 dimensions or manifestations of the reductive tendency (Feltovich et al., 2004; Hmelo-Silver and Pfeffer, 2004). We organize these into three categories.
The first pertains to simplifying processes and entails four dimensions: continuous processes are simplified into ones with discrete steps; interactive processes that depend on each other are simplified to be independent and separated; concurrent processes are simplified to be sequential; and nonlinear explanatory relationships are simplified into linear ones.
The second category pertains to perspective restrictions. This category describes situations in which individuals minimize the importance of, or ignore altogether, facets or manifestations of phenomena. This category includes three dimensions whereby individuals simplify: concepts necessitating multiple representations to single ones; phenomena with numerous and ambiguous causal mechanisms to ones with simple and clear causal agents, and; concepts with covert or abstract elements to surface-level, apparent ones.
The third category contains four dimensions that pertain to forming standardized representations of phenomena. It captures situations in which individuals simplify: concepts necessitating dynamic understanding of inputs into static ones; heterogeneous schemes or facets of a phenomena into uniform or highly similar; context-sensitive phenomena into universal ones; and regularity to replace situations that are characterized by asymmetric, inconsistent, or complex patterns
--
^ This is closely matches the major points I'm whining about.
:D Oh, nonlinear equations! This is something I know a lot about.
:) I think I see...so they use nonlinear equations in the activation function. This helps to create divergence, or sensitive dependence on initial conditions.
:| Wait it's a sigmoid function?? Wtf that's boring.
:( They're just trying to min/max a data set, and figure out probability as it relates to that min/max. But that sucks, because most of the interesting phenomenon in nature exists in BETWEEN zero and one! All the fun, cool stuff happens in the middle! You can't reduce it down to a probability, there's no way that's going to do a good job describing anything!
https://iq.opengenus.org/relu-activation/
For many learning tasks ReLU performs better than sigmoid.
My favorite use of sigmoid functions is
https://scikit-learn.org/stable/modules/calibration.html
where they are very good at turning arbitrary scores (say from a full-text search engine) into probabilities. For IBM Watson they tried a lot of things and found logistic functions dominated. Turning scores into probabilities was how Watson could decide if and when hitting the button would help win the game.
The big trouble with probabilities is that, potentially, every event is contingent on every other event and the joint probability distribution of all possible inputs and outputs is a huge dimensional space. In principle you could learn any function by sampling the joint probability distribution exhaustively but practically you can't get that much data. The miracle of machine learning is that the methods we use can guess at the joint probability distribution of inputs and outputs with only a limited sample.
If there was one great unsolved problem of the "old AI" namely expert systems it was doing logical reasoning over probability functions. It's not good enough to estimate that A has a 80% probability of being true, in general you need to estimate what the probability of A is if B is true and C is false. If the problem cooperates you can use half-baked methods to reason about uncertainty (like the MYCIN medical diagnosis program) but general and correct methods are elusive.
I guess I really, really need someone to explain to me like I'm a total idiot why I'd want to use a 2D function on data that might be (and probably is) multidimensional and interdependent.
>"The big trouble with probabilities is that, potentially, every event is contingent on every other event and the joint probability distribution of all possible inputs and outputs is a huge dimensional space."
Maybe! But this seems like a way more interesting challenge, with the potential to handle way more dimensions, and be way closer to "reality" and "truth", whatever those definitions really are or really mean.
>" It's not good enough to estimate that A has a 80% probability of being true, in general you need to estimate what the probability of A is if B is true and C is false."
Doesn't that still seem a little lame though? And massively error prone?
Filtering problems through a stochastic process of probabilities kinda feels like trying to rig a pachinko machine.
As for reasoning with uncertainty people do a lot of that. There was that time I went to my doc because I had rashes on on my arms and neck and my doc (e.g. like MYCIN) thought some of them looked allergic and some looked bacterial. Instead of overthinking it, he wrote me scripts for two different creams and I tried both.
My take is that rapid progress in neural networks is not about people having a lot of understanding or a general theory or even that the average work is of very good quality, but an awful lot of people are working on it and throwing a lot of resources at it. People are discovering things empirically that work.
One can consider many counterfactuals which would have sped up development a lot. If the Japanese had developed a 5th generation computer project around accelerating neural networks instead of accelerating logical inference, if people had tried ReLU in the 1980s, etc.
https://www.businessballs.com/strategy-innovation/ashbys-law...
Namely you have to simplify any problem in order to talk about it, solve it, teach it (making some of those reductions) but there is a certain amount of complexity that is fundamental to the problem.
For instance you can sometimes get away with treating a concurrent process as sequential, sometimes you can't.
The reductionist prays for the wisdom to know which simplifications they can get away with and which ones they can't. If your model captures the essential features you are OK, otherwise you are lost in the woods.
Summed up beautifully.
2. To have nonlinearities between the layers, and to have layers with varying complexity and structure. In practice it works much better than all the alternatives that we've tried.
These things are explained very well even at a beginner level, and you aren't really questioning them deeply or proposing any alternatives, instead you seem to be getting into philosophy.
Who says? Who's defining the task?
I promise I'm not trying to get too philosophical here, but this is a long-standing issue in all areas of Science - the tendency towards reductionism.
Keep turning the dials on the oscilloscope to try and eliminate the signal noise...but what if the noise itself is an essential part of the phenomenon you're trying to study and understand? You see where I'm going with this?
> "In practice it works much better than all the alternatives that we've tried."
I was waiting for someone to just come out and say "It's the best we got". I'll grant that it might be true, but I don't like it and I don't accept it.
For the second point, read what I wrote before the sentence you picked to quote. Also, your not liking or accepting some result doesn't really change it.
This isn't how to argue in good faith, and it's overall not very productive for anyone involved.
Most of the tough, interesting, challenging problems in this world don't boil down to binary decisions.
Second, facial recognition doesn't depend (inherently) on artificial intelligence. It's not a great example. It's not a truly interesting, tough problem. It's not in the realm of fuzzy logic, concurrency, periodic or aperiodic behavior, or nonlinear relationships.
Could a Neural Net do it faster? Yeah, sure, maybe. But so what? You have a quicker algorithm, a faster heuristic.
>For instance, where should a modern book on digital photography be filed in the library? Should it go in the 000's with computing? In the 700's under art? Or in the 600's with technology (an application of optics, electronics, etc.)
Sometimes you want to do binary classification.
This isn’t all there is.
> Layers - Why are artificial neural networks setup as "layers"?
They aren’t all set up like that. It’s a simplification of the effects of the limitations of the speed limits of synapses firing and vs the distances between them.
Spiking neural networks model the propagation more precisely, and have some promise. Their biggest issue is that it’s hard to get training data into an appropriate format for them… and that once you do... they don’t really seem to do better.
It is common to be like an angry freshman/sophomore who yells why should he take all these difficult classes then 5-10 years later he appreciates whatever he learnt before.
Feels like Economics in undergrad, listening to professors repeat broken, oversimplified models that are so hilariously wrong in their assumptions that they have to invent entirely new definitions to deal with their own failings.
Who put the statistics nerds in charge of AI? Is this really the best we got? Chained probabilities? Gradient descent?
> We're stuck. After decades of research, we've hit a dead end. All we're left with is a byzantine maze of IF/THEN statements. We cannot simulate intelligence using pure logic. We have failed.
> Ok but what if we throw in PROBABILITIES into a byzantine maze of IF/THEN statements??????
>GENIUS!
tl;dr So far things that enable faster search and faster learning win over long run.
Recursive things like backprop in NN and optimizing reward over long trees of states, seem to win despite huge compute requirements.
Personally I think we are still on the right track of trying to do the right thing, then do the thing right, then do the thing faster.
You cannot refute the things you do not understand.