HNHacker News
TopNewBestAskShowJobs

taliesinb

2,464 karma · joined July 25, 2010

Category theory and AI @ symbolica.ai

https://tali.link

https://twitter.com/taliesinb

submissionscomments
taliesinb··on The quantum source of space-time
Without leaving the armchair there actually is a simple fact that gravity-as-geometry explains more naturally than gravity-as-force, and that is the equivalence of inertial and gravitational mass.
taliesinb··on The quantum source of space-time
Information transfer was never a problem with spooky action. But if all entangled particles were linked by some kind of funky wormhole it seems a harder task to explain why FTL information transfer isn't routinely possible.
taliesinb··on The quantum source of space-time
Here's a recent lecture by Erik Verlinde in which he tries to explain both dark energy and dark matter using entropic gravity:

https://www.youtube.com/watch?v=PSYXt3Xu3xI

I'm not a physicist, but he seems to be invoking similar ideas to Raamsdonk: that spacetime and gravity are emergent properties that boil down to entanglement somehow. But the loop quantum gravity people have been saying something like that for ages. And Stephen Wolfram and Konrad Zuse etc. And we have people like Lubos Motl on the other hand to ridicule all of the above.

Anyone able to give a big picture overview of what's been happening the last few years in this somewhat rarefied world? Who are we, the intelligent lay public, to trust?

taliesinb··on Saudi Arabia's Curriculum of Intolerance
https://thoughtmaybe.com/bitter-lake/
taliesinb··on On Being Smart (2009) [pdf]
http://msb.embopress.org/content/4/1/213.abstract for anyone else who is interested.

Funny, I think I remember reading this paper when I was playing with a-life around 2009.

How did this Yale giant respond when you explained your concerns? And after you published?

taliesinb··on The fall of the meritocracy
Hehe awesome thanks
taliesinb··on The fall of the meritocracy
I read SSC's Moloch essay a while back -- I ended up missing two Strange Loop talks because I got so into it! He has some really fantastic essays.

It's a small part of Moloch but one idea that really stuck with me was that many of our defining societal threats and challenges are ultimately coordination problems, game theoretic tragedies. The Achilles heel of humanity it seems.

taliesinb··on The fall of the meritocracy
Among other things, the author presents the argument that a more efficient meritocracy will exacerbate the fact that we don't all have the same genetic endowments, and these endowments are subject to hereditary capture to a similar degree that wealth is. Furthermore, future technologies will allow the wealthy to simply buy permanent genetic advantages for their descendants.

Just as a universal basic income is presented as one antidote to wealth inequality, the idea of universal genetic enhancement is presented, specifically of intelligence (whatever that is). If we assume it's a fait accompli that members of our elites will pursue genetic enhancement of intelligence for their children or themselves, what are the strongest consequentialist objections to the idea of free, universally-provided genetic enhancement, assuming such therapies are actually effective, practical, and safe?

One obvious objection is of a "Brave New World" variety: we have yet no idea how systematic selection to increase "g" (or any trait, for that matter), could stunt or enhance other traits, deplete valuable kinds of cognitive diversity we can't yet measure, or twist our values in some immeasurable and negative way.

Worse still, it's easy to imagine government scientists in more authoritarian societies stumbling on allele combinations that enhanced political docility, consumption-oriented behavior, thriftiness, and so on, and selecting for those in the next generation to solve demographic, economic, or political problems.

On the flip side of that fear is the hope that we could select for propensities that help us solve the daunting list of global co-ordination problems that now face us, climate change and dangerous AI being the two most generic ones. The consequences of failure there are so dire that we may even have reason to see such enhancement as necessary -- the equivalent of a species-level adrenaline shot to get us through an existential crisis.

And what if we could make ourselves less dishonest, manipulative, cynical, and tribalistic? What if we could design our values to be different from what they are, to be what we wished they were? That's much scarier for me, for reasons that are harder to explain. And it mirrors a bit the problems of building an self-enhancing AI that doesn't "diverge to evil".

I'm sure there's a rich seam of blogosphere material out there on these topics, maybe even some academic papers, would be very interested if someone is willing to share some links to specific arguments or discussions.

taliesinb··on Why Are Eight Bits Enough for Deep Neural Networks?
> This does not make sense to me. Can you explain?

I understood the reasoning to be that to increase the range of accurately representable values in a circuit, you either need to increase the voltage or current used in an analog circuit (to achieve a certain accuracy versus a noise baseline), or devote more bits in a digital circuit. The first gives a linear dependence (or quadratic for I^2 losses) of power on range, the second logarithmic.

taliesinb··on Why Are Eight Bits Enough for Deep Neural Networks?
> The noise we are talking about is like when you put your finger on the chip, and raise its temperature by 10 degrees, the whole thing needs to be retrained.

What would change with temperature that would require retraining? Are you saying the output of an op could depend sensitively on temperature, or that higher temperatures would increase things like thermal or shot noise? Why would the latter require retraining?

taliesinb··on Why Are Eight Bits Enough for Deep Neural Networks?
> Dropout is not the same as random noise. By using dropout you eliminate some neurons from making contribution. As a result, you effectively train many smaller nets, each one adjusting its available weights to perform the same task. During testing, there's no noise - all neurons are back in business and contributing.

I was speaking loosely -- dropout is multiplicative Bernoulli noise on the hidden layers.

> That's not true. NNs don't like noise, there have been a lot of research done about effect of noise on NNs in the 90s. Random noise over a certain threshold will progressively degrade the performance of NNs, and below the threshold will have no effect.

I'd argue that dropout (and its predecessor in denoising autoencoders) are perfectly valid to see as noise, albeit multiplicative.

taliesinb··on Why Are Eight Bits Enough for Deep Neural Networks?
> "parasitic gate capacitance" - not sure if you want to call it "parasitic", after all, a gate capacitance is what makes everything work!

Of course, but the 'ideal' FET has zero gate capacitance, despite that being the way they work.

> Power is mainly lost via leakage (the smaller the transistor, the more it leaks), and via interconnect capacitance, which dominates all other capacitances in modern circuits.

Interconnect meaning things like the buses? There's no reason to want a von Neumann architecture for an analog chip. If that leaves leakage, I suppose an analog chip would be the beneficiary of needing a lot fewer transistors per op.

taliesinb··on Why Are Eight Bits Enough for Deep Neural Networks?
> 1. A digital computer needs a thousand of transistors to perform multiplication, analog circuit can do it with a single one.

That's interesting. What would the circuit be?

> Digital NN will need lots of memory transfers to bring weights from RAM to ALU, and to store intermediate results.

That's not necessarily the case. Cellular neural networks were proposed long ago, for example, and they're digital -- how multiplication happens is independent from the data flow architecture.

> That's why a properly implemented analog NN will always consume much less power.

How do you know that the I^2 cost of operating in the linear regime isn't excessive? I'm totally ignorant on the matter -- I'd love to see a ballpark calculation to understand why it isn't important.

taliesinb··on Why Are Eight Bits Enough for Deep Neural Networks?
Deep nets love noise, because with so many parameters they are very vulnerable to overfitting.

For example, dropout, which is almost ubiquitous for deep learning, basically makes activations 'wrong' 50% of the time during training.

taliesinb··on Why Are Eight Bits Enough for Deep Neural Networks?
> n then there's the fact you can deal with exponentially larger numbers with roughly linearly (or polynomial) increasing memory, while if you use analog circuits you have to pay a quadratic cost on the exponential, so ~n^k vs ~exp(2n) power consumption doesn't look good from this pov.

That's true, I feel stupid for not having thought of that!

I'm not an electrical engineer, but with the FETs that modern Intel chips are using, what fraction of their power consumption comes from parasitic gate capacitance, versus other losses?

And if you operated in the linear region, what's the ballpark steady-state I_SD current you'd need on one FET to drive the gate of the next FET?

I think that's what this comes down to: if gate capacitance dominates other losses even in the linear regime, you still win by not having a clock and lots of digital transitions.

You could even imagine exploiting that: apply 'slow' augmentations of the input data that get you the equivalent of a bunch of iterations on a single example batch, while incurring a much smaller fraction of that initial cost because activations aren't going to change nearly as much as switching to a whole new example batch.

taliesinb··on Why Are Eight Bits Enough for Deep Neural Networks?
"Training and Operation of an Integrated Neuromorphic Network Based on Metal-Oxide Memristors", which appeared in Nature recently:

http://arxiv.org/ftp/arxiv/papers/1412/1412.0611.pdf

taliesinb··on Why Are Eight Bits Enough for Deep Neural Networks?
I had wondered this myself -- it seems reasonable to see limiting the precision of activation as a form of regularization, as the author alludes to.

For me, the place we'll eventually end up is obviously custom deep learning / evaluation chips that perform analogue operations using transistors in their linear regime (like how op-amps work). These chips would be programmed merely to express the tensor operation graph, essentially analogue tensor FPGAs.

This should bring multiple order-of-magnitude reductions in power consumption and increases in evaluation speed. And when you don't have a clock there might also be interesting ways of dealing with time in which you don't discretize and unroll, like one currently does with GRUs or LSTMs.

taliesinb··on Show HN: InBloom – Portable Bloom Filters in Java, Python and Go
Not to take away from this at all, but if you're interested in Bloom filters you might also be interested in Cuckoo filters: https://www.cs.cmu.edu/~dga/papers/cuckoo-conext2014.pdf, previously on HN here: https://news.ycombinator.com/item?id=8489971
taliesinb··on The Advanced Rust Programming Language Book Draft
To anyone else who spots the switched around 'b' and 'c' on the repr(rust) page: don't bother, I've already created a PR.
taliesinb··on Rossellini's History Films
I stumbled upon "Blaise Pascal" on Hulu (they have some Rossellini in their Criterion section).

It was totally captivating, somehow simultaneously moving and fascinating, in a way unlike any other film I've watched. Human is a good way to put it. Absolutely unforgettable, almost a religious experience.

I highly recommend his historical films to anyone, regardless of your interest or lack thereof in the subjects; you will become interested.

taliesinb··on Yanis Varoufakis opens up about his five month battle to save Greece
> As a non educated (in that matter), it's impossible to understand anything without the feeling you end up as a fanboy for some party.

Well, if you care what the outcome is and you decide you want to see one party prevail, that doesn't turn you into a fanboy.

Because maybe there really are good guys and bad guys, or at least massively powerful overdogs who will crush entire underdog nations for realpolitikal advantage.

Look, Greece is fucked. Tsipras failed. Varoufakis failed. I like them, but they couldn't outwit Germany. The screwed up. They'll be remembered for that, just as Merkel will be remembered for destroying the founding principles of the EU.

taliesinb··on Yanis Varoufakis opens up about his five month battle to save Greece
The analogy with actual war is I think far less unreasonable that it at first sounds. I-don't-know-who said "The First World War was fought with guns, the Second World War was fought with tanks, the Third World War will be fought with banks."

I don't mean to say that this is any kind of tinderbox situation. But it is crystal clear to me that it's at the very least a first-world country being forced by a hegemon into neo-colonial vassal-hood/debt bondage, something that is quite shocking to see, especially when there are no standing armies in sight.

And the violence is real, in that Greece is suffering a humanitarian crisis that will only deepen. Actual people will die prematurely, and others' lives will be wrecked, for Schaeuble's example to pay off, as much as newspapers like to abstract this fact behind phrases like "deep pension cuts".

taliesinb··on Yanis Varoufakis opens up about his five month battle to save Greece
> Many of the suggested improvements are objectively sound, e.g. property taxes, tax collection in general, normalized VAT, reducing government corruption and red-tape, removing various monopolies, etc.

Those have been proposed by Syriza itself, but that hardly matters because the disagreement is not actually about economic policy, at all.

The salient features of the Eurogroup deal are things like: "give us $50 billion of your airports, bridges, government land, tourist attractions, etc, but at today's Depression-era prices". Shock doctrine stuff.

And: "take far more severe austerity, for the chance to negotiate another bailout you need to pay us back for the previous bailout, without debt relief being on the table, despite your population rejecting this option in the very recent past, despite the IMF concluding the current debt load is clearly massively unsustainable". Make that sound reasonable, please.

> It's been ~5 years since the first bailout, yet Greece haven't made much progress.

Could it be that the collapse of 25% of Greek GDP under the last 5 years of austerity demonstrates that more austerity isn't the answer? Some economist wise cracked that prescribing austerity for a country in a depression† is like trying to cure a sick patient with regular beatings.

† the worst depression of a modern state since the 1930s, incidentally.

> No wonder Germans get tired bankrolling all of Greece.

Hah, those generous German tax-payers. But wait, aren't they really bailing out German and French banks, at least indirectly, after the ECB gobbled up all that toxic peripheral debt that is was the predictable outcome of wild trade imbalances in an ill-thought-out monetary union? What fraction of Greek bailout money was just recycled into paying back the IMF and ECB? Do you know?

Do you know how loan sharks operate?

Here's an alternate perspective to jar you out of your slumber:

https://foreignpolicy.com/2015/02/20/its-time-to-kick-german...

taliesinb··on Deep Dreams with Caffe
The dogs, eyes, and Dali-like bird-dogs are really cool. I've seen some insects, too, but not very often.

Are there any other flavors of hallucination? Why all the dogs? I suppose ImageNet has a lot of dog varieties in its category list.

taliesinb··on Wolfram Language
I had a feeling you might have already told me :). Sorry.
taliesinb··on Wolfram Language
Glad to hear you're getting something out of it! Could I ask what you ended up using it for?
taliesinb··on Wolfram Language
> b) it's not that natural in Mathematica. The natural part comes from its symbolic nature. But if you look at the documentation and read about how they implement lexical closures, it's all vague and not that pretty. The implementation actually needs to rewrite variable names, IIRC.

That's indeed what Module does, and it is indeed ugly and slow. When we add parse-time macros it'll be trivial to fix this.

For now, many people use Block instead, which does dynamic scoping and is a bit cheaper. I actually really like Block, because it gives you the convenience of a couple of globals that you don't require you to keep passing them along among your backend functions, but they're properly bound to the lifetime of your function (and are re-entrant etc).

taliesinb··on Wolfram Language
There aren't read-time macros (yet). I'm actually in the process of designing a new package system that solves this (among many other problems).
taliesinb··on Wolfram Language
> * The language syntax isn't as good as a sexp-based lisp. Editing complex expressions is needlessly complex and doesn't even compare to structured editing with paredit in Emacs.

Did you know that the frontend lets you double/triple/etc click to select outward up the AST? You can also press ctrl+period to do this. It's indeed not paredit, but you can do most paredity things using this single primitive and copy/paste, and it's not too painful (and it would only take a weekend to make a package that implements paredit).

Other than the lack of paredit, could you be more specific about the syntax isn't good? You can always use FullForm if you want to write things in an sexp way.

I think the equivalence between prefix form (f /@ x, f @ x, f @@ x), and FullForm (Map[x, y], f[x], Apply[f, x]), and postfix form (x // f) is a nice degree of freedom when beatifying code. Sames goes for composition (f /* g, or g @* f).

Functions tell a story and having to write that story in exactly one austere syntactic way is in my view a disadvantage for making the story clear and satisfying.

> * The interpreter is slow. Really slow. Sure, if you call a matrix math routine, it will be OK, but try rearranging large data structures and you'll end up waiting a lot.

I haven't done benchmarks recently but we're probably in the same ballpark as (C)Python. Maybe a bit slower. But if you'd consider using Python for a task it's also likely to be handled by Mathematica just fine. In many cases there is plenty-optimized C code doing the heavy lifting, like if you use our machine learning functions or anything with matrices (or vectors/lists, or tensors, or ByteArrays, or Images, or Graphs, or ... :) ).

As usual, interpreted languages can even win when they allow you to describe a computation at a high level, and have that be executed by some smart JIT compiler. Julia leads the way, of course, but we're working on similar things ourselves, particularly for Dataset (http://reference.wolfram.com/language/ref/Dataset.html).

> * Debugging support: what debugging support?

There is a built-in debugger in the frontend, under the "Debug" menu, that actually does a fair job of showing where in your expression the evaluator is at. I admit that I don't use it much, partly because I've got a much more ambitious prototype of a thing that produces a browseable execution history. Hopefully that's only a few point versions away, I just have such a crazy number of projects.. sigh.

> * The editor is a disaster. I seriously don't know how people can stand it and how come the company invests so little in it. A single mismatched bracket can mean ten minutes of hunting for the problem. Code jumps around on screen all the time, seemingly with no logic to it.

That's because you're probably using Input cells. Input cells are for one- or two-line inputs. Use Code cells for large bodies of code. They don't do automatic indenting and won't jump around. If you wish to complain that this isn't obvious enough, I entirely agree with you! It takes too long to discover the 'right way of doing things', which is a UX and design failing. And simple stuff like Tab on a selection of multiple lines doesn't work.

I use Eclipse (for which there is a plugin), or Sublime Text.

> Syntax highlighting is nearly non-existent.

Syntax highlighting isn't non-existent, at all. I'm not sure where you get that from. Some examples of things that are highlighted:

* Misspelled functions (functions without definitions are blue)

* Invalid numbers of function args

* Invalid options to functions (options=keyword parameters)

* Scoped variables for Block, Module, With, DynamicModule, Table, Do, etc

* Symbol shadowing (a variable in a Module shadowing another module, etc)

* Invalid graphics and typesetting and GUI elements

And beyond that, various little red arrows appear when you write something that couldn't parse.

> It's a complete trainwreck and I don't understand why this isn't seen by the company as a huge problem.

"Trainwreck" really seems hyperbolic. Whatever our faults, one of the things people tend to agree about is that we've innovated with the frontend, and others are only now catching up with IPython, Light table, etc.

And they have a long way to go. The frontend has reflow, a box language, cascading stylesheets, and something resembling FRP (though a bit less clean, perhaps). It's really not far off from HTML in its flexibility and power.

> Hash-maps: these were only added recently (!!!) and they are not what I'd expect in a modern language. For example, if you want to do a map lookup, and your keys aren't strings, you need to wrap them in Key[]. Come on.

Good thing we waited, though, if we had added associative arrays 15 years ago we wouldn't have had datastructures like HAMTs to achieve both immutability and efficiency.

I'm puzzled. Both the subvalue lookup (assoc[x]) and the Lookup function (Lookup[assoc, key, default]) don't require a Key wrapper, and those are the dominant ways to use associations. Key wrappers are only required when using e.g. Part, to distinguish e.g. the key All from the part spec All. What other behavior would you have wanted?

And design-wise, I actually think we nailed the design. There are all sorts of nice equivalences of the form Values[f[assoc]] === f[Values[assoc]] that give an association a well-defined 'kinematics' -- they are like ordinary numerically-indexed expressions (e.g. Part[f[a,b,c],2] is b), but the indices are now arbitrary expressions. That essentially forces your hand with respect to many existing functions, like Sort, Map, Partition, Take, Drop, and so on.

And that makes them seem cleaner than in many other languages, which mostly treat associative arrays as little more than bags of tuples (e.g. mapping over a hashmap in Clojure is not terribly useful or efficient).

Plus, the order-preserving is just nice, even if there is a performance cost.

> I find that I use Mathematica for a limited range of problems. If I could have Mathematica's library in Clojure with a graphical REPL, I'd pick that any day (Clojuratica is a project aiming for that).

Clojuratica was developed by a friend of mine. Sadly he's moved on to other things. It's pretty easy to build something similar on top of JLink, though, see http://reference.wolfram.com/language/JLink/tutorial/Writing...

If you're a big Clojure user you may be interested in Session -- https://medium.com/@kovasb/session-1a12997a5f70 -- that's a project by another friend of mine who used to work at Wolfram and now is an active member of the Clojure community.

taliesinb··on The Wolfram Language Image Identification Project
https://www.imageidentify.com/result/1f5oz7ogn6g8g
← PreviousPage 10 of 25Next →