There is a great SETI talk by the astronomer Ann-Marie Madigan that explains the idea, it should be easy to follow if you've ever taken a mechanics course: https://www.youtube.com/watch?v=YW0Zb5gY0HA
2,464 karma · joined July 25, 2010
https://tali.link
https://twitter.com/taliesinb
There is a great SETI talk by the astronomer Ann-Marie Madigan that explains the idea, it should be easy to follow if you've ever taken a mechanics course: https://www.youtube.com/watch?v=YW0Zb5gY0HA
Agree a modern SimEarth would be awesome.
Hey man! Yes, the pages are a really good idea. Among other things, it seems like a great way of sowing the seeds of structured programming.
Can't wait for the game to be released!
And even if it is superficial awareness, those kinds of games exercise the fantasy-making faculties that make history itself interesting to learn about, even later as an adult.
Another example. There was this flop of a game in the early 90s, called SimEarth, that I have very fond memories of. It taught me about the Gaia hypothesis and the carbon cycle and stuff. Gameplay was pretty wacky though.
OT, but I'm very grateful to Mindstorms, it took me to the next level when I was a teen, from QBasic to C. Not because of its visual block language, which I hated as I could already code, but because I found out about a thing called NQC (Not Quite C).
NQC was a hobbled dialect of C that you could use instead of the LEGO's visual language to program the RCX (the main computer brick with batteries in it). I'd never tried C before, and it was a revelation.
And it unlocked wondrous hacks, like using the IrDA transceiver on the RCX as a psuedo-lidar so that your robot could stop short of walls, it could even estimate distance. At the time, it was so cool to me. From playing with my stumbling robot trying not to hit obstacles I got interested in Rodney Brooks and subsumption architectures. So it just inflamed my passions in AI and programming at a critical part of my adolescence.
Ironic, though, that a Papert-inspired graphical language was the antagonist in this story. The breakthrough came from wanting to scale the walls of the little garden LEGO had built.
* Cross platform: Windows, MacOS, Linux; CPU and CUDA. Though their CMake needs work.
* Easy to embed: straightforward C FFI, JSON for metadata and parameter serialization, no weird runtime.
* Flexible: not too specialized to vision. Static unrolling of RNNs possible now (with mirroring this can still be very memory efficient [0]), basic support for the fast new cuDNN 5 RNN layers [1] (contributed by colleague of mine). Dynamic unrolling is on the horizon I hear.
* Hackable: once you're familiar with the codebase, custom elementwise unary or binary ops = few minutes, custom layers = 1+ hours (depending on complexity). And if you can leverage mshadow primitives for your layer implementation, you don't even have to touch CUDA. Also fairly active on github, responsive to PRs etc.
[0] https://arxiv.org/pdf/1606.03401.pdf
[1] https://devblogs.nvidia.com/parallelforall/optimizing-recurr...
The speaker even mentioned the previous incorrect HARPS announcement, which was later found to be an artefact due to the windowing function they used - a pretty embarrassing mistake. This new finding involves a completely different period: 11.2 days instead of the previous 3.24 day signal.
Also, link to the Nature paper for the lazy: http://www.eso.org/public/archives/releases/sciencepapers/es...
Putting a sparsity loss on z in a regular AE will encourage the code to have smaller magnitudes, and with relu those units will tend to saturate to zero, yes.
But the original point was that even a single continuous unit can be used to transmit an arbitrary amount of information. Not so much that this happens in practice, because the encoder and decoder would need access to something like modulo to do the most obvious kinds of cheating, but just that from an information theory point of view you can't really talk about how much information a continuous variable transmits unless you are transmitting it over a noisy channel and can measure entropies of distributions (and indeed you can formally derive how a given KL loss bounds the information transmitted by z).
> What I don't really intuit is: is it just basically doing regularization, or is the interpretation in terms of learning to infer the posterior meaningful?
Both, which I think is really nice. You can look at it either way.
The Bayesian interpretation is powerful because you now have a principled way to calculate p(x), which you didn't have before. And you can introduce multiple latent variables in your network (as long as no layers take inputs from both ordinary and sampling layers) and so you have some flexibility to do limited forms of graphical modelling that supports efficient forward inference and GPU acceleration. And the inference machinery can be trained via cheap backpropagation instead of expensive sampling.
But aside from that, there is an information-theoretic view on why you might prefer VAEs over AEs. In short, having p(z|x) not be point-mass (aka an ordinary AE) allows you to bound the information flow through the bottleneck. KL loss on p(z|x) forces the network to be honest about how much information it is cramming into z for the purposes of reconstruction.
To unpack that a bit: in theory, even a single real-valued latent variable z could store an arbitrary amount of information (if the encoder and decoder conspired cleverly enough). But if you make z stochastic, or in other words if your encoder's job is to calculate the parameters of a distribution from which you sample z, you're essentially introducing a noisy channel in the middle of your network, and you can then bound how much information is flowing across that channel. But to do that you still need to use KL divergence loss to encourage p(z|x) to approximate your chosen latent distribution, otherwise your encoder and decoder might cheat, e.g. by using near-point-mass z as a way to turn back into ordinary AEs again.
Or in deep learning speak, it's a form of regularization with a particularly rich and interpretable statistical motivation.
The current selection of layers is biased a bit towards vision, but my colleague and I are working on recurrent networks as we speak, which will unlock networks that operate on text, audio, and other data of a sequential or temporal character. Hopefully that will land in a few months with 11.1.
Locator comes to mind:
https://reference.wolfram.com/language/ref/Locator.html
https://youtu.be/6wOLBVFdek8?t=11s
And more generally Manipulate which makes it easy to whip together a let-me-explore-how-this-depends-on-that type of widget.
Those predictions are all sourced in the original article. As you say, though, pointing out a trend in the predictions from a set of scenarios doesn't on its own tell you anything.
> The last IPCC report I read predicted an increase of between 0.3C and 0.7C by 2035 with around 0.4C being the most likely. Nowhere near the the 3.5C by 2035. There is very little consensus for numbers that high.
Was that the fifth assessment report?
And where does the consensus 'currently' cluster for 2035? What climate models would be included? Under what emissions scenarios? I'm not too familiar with the state of the current literature.
The current https://www.iea.org/publications/scenariosandprojections/ claims that "business as usual" would yield almost 4C by 2100 and 5.5C long term. Not sure how that squares with claim by author or which scenario they were referring to.
The big question I have with many of the scenarios (I think IPCC ones fall into this camp) is how much worse they will get when methane clathrates release is included. I'm not too familiar with the literature, maybe others know how well clathrate release is understood and what contribution it makes under various scenarios.
As history has shown, when presented with an existential threat to the group, humans are often willing to drop their immediate plans and sign up to fight. Perhaps we're wired that way.
Bring on UBI. And bring on a global 'war economy' to transition us to a zero carbon energy infrastructure.
http://www.flassbeck-economics.com/how-climate-change-is-rap...
Here's a snippet showing how rapidly predictions are escalating:
* Late 2007: The Intergovernmental Panel on Climate Change (IPCC) announces that the planet will see a one degree Celsius temperature increase due to climate change by 2100.
* Late 2008: The Hadley Centre for Meteorological Research predicts a 2C increase by 2100.
* Mid-2009: The U.N. Environment Programme predicts a 3.5C increase by 2100. Such an increase would remove habitat for human beings on this planet, as nearly all the plankton in the oceans would be destroyed, and associated temperature swings would kill off many land plants. Humans have never lived on a planet at 3.5C above baseline.
* October 2009: The Hadley Centre for Meteorological Research releases an updated prediction, suggesting a 4C temperature increase by 2060.
* November 2009: The Global Carbon Project, which monitors the global carbon cycle, and the Copenhagen Diagnosis, a climate science report, predict 6C and 7C temperature increases, respectively, by 2100.
* December 2010: The U.N. Environment Programme predicts up to a 5C increase by 2050.
* 2012: The conservative International Energy Agency’s World Energy Outlook report for that year states that we are on track to reach a 2C increase by 2017.
* November 2013: The International Energy Agency predicts a 3.5C increase by 2035.
https://www.youtube.com/watch?v=peHcu8LEgEE.
(warning: includes wacky ventriloquist act)
I haven't done much development using Apple frameworks. I'm curious, where has this happened to you before?
I'll add that at this point, there's isn't much 'lock in' between different frameworks. Once you've trained, and if your primitives are available in the target framework, porting is just a matter of getting your weights and topology into the right format. Not too hard compared to the nitty gritty of gathering data, designing a network, and doing training and hyperparameter optimization.
There needs to be much more functionality to build a state-of-the-art vision network, such as Google's Inception v3, at least if you want to avoid writing your own layer definitions. Hopefully they'll expand this out later. In the foundation keynote they did mention using LSTMs for predictive text, so hopefully more advanced things are in the pipeline and just haven't been API-ified yet.
For reference, the deep learning library I'm working on will contain 17 layer types in its first version, with later versions probably asymptoting to double that. There are a LOT of things out there that deserve their own layer types.
EDIT: to be fair to Apple, since convolution, pooling, and fully connected layers are among the most costly layers, they are the most valuable to have efficient platform implementations for.
I wonder if they're doing that, and to what degree.