By senior year, my strategy was: don't write anything down, just try to follow the main thread of the lecture. Then afterwards, go back and read the textbook and take exhaustive notes then. Empirically I learned way more that way.
412 karma · joined September 23, 2020
Site: https://aidanswope.com/ Email: aidanswope@gmail.com
By senior year, my strategy was: don't write anything down, just try to follow the main thread of the lecture. Then afterwards, go back and read the textbook and take exhaustive notes then. Empirically I learned way more that way.
Given the question: "Jane has 9 balloons. 6 are green and the rest are blue. How many balloons are blue?" The model outputs: "jane_balloons = 9; green_balloons = 6; blue_balloons = jane_balloons - green_balloons; print(blue_balloons)"
That seems like a good justification of a (very simple) step-by-step reasoning process!
At every point in time, the best systems we can build today will be ones leveraging lots of domain-specific information. But the systems that will continue to be useful in five years will always be the ones freely that scale with increased parallel compute and data, which grow much faster than domain-specific knowledge. Learning systems with the ability to use context to develop domain-specific knowledge "on their own" are the only way to ride the wave of this computational bounty.
That being said, robust systematic generalization is still a hard problem. But "achieve symbol grounding through tons of multimodal data" is looking more and more like the answer.
[1] https://openai.com/blog/dall-e/ [2] https://distill.pub/2021/multimodal-neurons/ [3] https://openai.com/blog/openai-codex/
On the content: it's pretty weird that our best models don't use much of the world's underlying structure at all. State-of-the-art vision models like vision transformers and MLP-mixer do just fine when you shuffle the pixels. You could argue that modern image datasets are so big that any relevant structure could be learned by attention, but it still feels like we're doing _something_ wrong when pixel order doesn't matter at all ¯\_(ツ)_/¯
Another upside is that most parameter search programs seem to assume you want either grid search (which is hideously inefficient for large search spaces) or bayesian optimization (which can be overkill and comes with its own caveats). I wanted to make it easy to use quasirandom search [2], which is basically always the right choice for small searches where you just want to understand the parameter space better.
[1] https://github.com/maxwells-daemons/argsearch [2] https://en.wikipedia.org/wiki/Low-discrepancy_sequence
That being said, I'm also thinking about starting an ML PhD because it does honestly open more doors to top research groups.
[1]: https://en.wikipedia.org/wiki/Entropy_(information_theory)
There's a growing sense among many ML researchers that there's something fundamentally missing in the "NNs + lots of data + lots of compute" picture. GPT-3 knows that 2+2=4 and that 3+4=7, but it doesn't know that 2+2+3=7. These heart of these kinds of problems indeed seems to be the sense of abstraction / problem reimagining / "stepping outside the game" that Hofstadter spent so much time talking about.
Chess (accidentally) turned out to be easy enough for a narrow algorithm to work well. But I'd be surprised if other problems don't require an intelligence general enough to say "I'm bored, let's do something else," and I don't believe current algorithms can get there at any scale.
For example, you might prove that your code never accesses a buffer out of bounds, so you can remove all your bounds checks for efficiency. Another example is implementing recursive functions with induction -- you can implement Fibonacci naively (fib 0 = 0, fib 1 = 1, fib n = (fib n-2) + (fib n-1)) and Lean will rewrite it into an efficient (non-exponential) form.
Overall it looks like gradient descent is a strong regularizer -- we know it tends to prefer small and low-variance weights, for example. So part of deep generalization has to do with how SGD is able to pick "good" features early, and then optimization pushes the unimportant weights to zero later (hence lottery tickets).
[1] https://openai.com/blog/deep-double-descent/ and other papers. [2] https://arxiv.org/abs/1711.08856 and others.