HNHacker News
TopNewBestAskShowJobs

Cybiote

1,038 karma · joined June 8, 2016

submissionscomments
Cybiote··on Swift Numerics
Thanks, it is a well written article. The only part which tarnishes an otherwise excellent article is the language comparisons portion. Such things are best avoided as they almost always reflect the biases of or where the author has the most experience.

As you acknowledge, you were unfair to Julia. Julia has excellent support for general purpose programming. It has support for multiple dispatch, a quite powerful organizational construct rarely found in other languages, for example. Where it might fall short is in the number of general purpose libraries but that shouldn’t matter as much for ML. It certainly isn’t lacking for numeric libraries.

For Java, it’s unclear what you mean by JVM issues but with GraalVM and Scala or Kotlin, I fail to identify any major issues.

F# on .net core can be distributed without installing a runtime nor does garbage collection limit its expressiveness. It is among the fastest, in the Go/Java/Ocaml/Swift tier, which is next fastest after C/C++/Rust/Fortran. Compare https://benchmarksgame-team.pages.debian.net/benchmarksgame/... to https://benchmarksgame-team.pages.debian.net/benchmarksgame/.... Setting aside the problems of microbenchmarks and unidiomatic code, they’re both within spitting distance of each other, both wining and losing with no significant margin. Their runtime also recently introduced SIMD and fine-grained memory management support.

I'd say practically speaking, Swift's current great weakness is its cross platform support, when compared to Julia, Kotlin/Scala or C#/F#.

Swift is an excellent language and it’s great a numeric programming ecosystem is being built for it. There’s no need to justify its existence by misrepresenting or downplaying the capabilities of competing ecosystems. I also saw this occur for why differentiable programming in Swift and not Julia. The more the merrier, I say. Let the various communities collaborate and share ideas in order to better explore the space of possibilities and ideas.

Cybiote··on IBM casts doubt on Google's claims of quantum supremacy
The original Church Turing thesis concerns itself with computability and quantum computers do not violate it.

The Extended version goes on to say a probabilistic TM can efficiently simulate all realistic models of computation. Quantum computers very likely violate the efficiency claim and this supremacy result is strong evidence in support.

Cybiote··on Eliud Kipchoge Breaks Two-Hour Marathon Barrier
I don't know about uncomputable but for intractable, I think, and as rco8786 has already pointed out, dynamic programming sorts of fit the bill. Similarly, this is what reinforcement learning does for search. Recursive or sequential monte carlo algorithms where states hold memory across transitions probably also fit this bill. And most generally, this is what humanity does with science, skills and knowledge.

No single human could discover general relativity, but generation after generation, from the first humans who worked out how to count symbolically to the definition of a Lorentzian manifold, we've been leaving caches of knowledge for each other so each next generation could reach ever farther.

Cybiote··on Americans Are Using Less Steel, Paper, Fertilizer, and Energy
Buckminster Fuller made a similar observation or prediction even earlier, in the late 1930s. He called it ephemeralization, https://en.wikipedia.org/wiki/Ephemeralization, the idea that increasing technological efficiency will allow us to do evermore with less.

A possible counter-acting force is Jevon's paradox (a generalized economic form of Wirth's Law) but the linked empirical result suggests ephemeralization is the stronger force. Although, it is likely true we can do much more to counteract Jevon's Paradox like phenomena.

Cybiote··on How can we develop transformative tools for thought?
This was a fascinating and wonderful read. As someone who also works on tools for thought, here's my review and criticisms. The material is long so this will be longish too.

Review

The bulk of the essay is on what the authors refer to as "the mnemonic medium". A mnemonic medium, of which they use their work, Quantum Country, as a motivating case-study is an essay format which embeds flash cards containing carefully constructed questions and combines them with spaced-repetition to improve recall of the presented material.

The authors argue very convincingly that memory is an important and undervalued aspect of expertise. Much of the initial struggle in learners is from a lack of basic fluency in the vocabulary of an area. They show, including with supporting data from the aforementioned work, that this significantly increases recall of material (nearly all if the reviews were done properly). Even if you want creativity and think you can just look things up as needed, having the material readily available in memory will serve as a potent catalyst to one's creativity. The over-head is reasonable, they estimate 4 hours to read the material and ~100 minutes of spaced review to achieve months or more of retention on material.

They talk about the more typical sense of mnemonics, such as the method of loci and memory palaces. Such methods they argue, do not generalize well to different learning domains, especially more abstract areas.

They also point out the weaknesses of their method. Including requiring general motivation, a reason to learn the material and difficulty of crafting good atomic connected questions. Finally, they discuss why not much progress has been made in the area (funding of public goods problem), other mediums such as video and the executable book/notebook format and what inspirations can be drawn from video-games interface-wise and art generally from an evocative and emotional perspective.

Criticism

The simplest criticism is if the results will generalize. The topic matter on the technical aspects of quantum computing has already selected for a probably uncommon sort of person.

It is the authors' stated goal that they produce a method with broad applicability. Although they spend some time on the weaknesses of their approach, they could have spent a bit more on nearby failures. Engelbart had a bootstrap program, where each set of tools propelled us to ever more powerful augmentations. One major problem Engelbart found was that once people reached proficiency at one level, they had no interest in further gains. The complexity of peripherals has gone down over time (from multibutton mice and chorded keyboards to pointing with fingers) and people simply were not interested in learning complex peripherals. Some discussion of the difficulties faced by http://witheve.com/ at getting something with broad applicability and lessons from it would have been informative.

There is much work to be done in ending the dumb users trope and also in educating people that many things worth doing will be difficult. Engelbart often pointed (he was against voice as a primary control) out that you can't talk your way down a ski-slope yet people are happy to learn the difficult task of skiing. How to get that engagement generally?

The next major criticism is the difficulty of content creation. Writing a text is already difficult but writing one that is clear and with carefully crafted embedded questions will be much more difficult again. We can see hints of this in the quite low publishing rate of the Distill publication where a large aspect of the low rate is due to the difficulty of content creation. We are still several generations out from tools which ease the creation of interactive and tasteful (where interactivity is actually illuminating rather than a distraction as is often the case) executable notebooks.

The authors mention differential geometry as an example. Such texts are difficult not only from subject matter but also because they are often presented in a user hostile manner. With key information, including on notation, left out. This has been fine historically because these books are meant to be used in a supporting environment with lecturers and assistants. However, learning these autodidactically adds in an immense artificial layer of difficulty from ambiguity. It seems like an obvious thing but material written in a clear manner with no external support needed is already rare. Going beyond that will be a tall ask.

The fairly self-contained aspect of quantum computing might not transfer to differential geometry. To do that properly, one would also need to have material for adjacent topics such as multilinear algebra, differential forms, calculus of variations (for some motivating problems), analysis and some topology. That is a very large stack to get through and can be quite discouraging for the learner even with the dream of near perfect recall. The time investment might scale differently too and might require more of a fraction of study time.

For the creators, by the time you get to multimedia, and the need to do this is an accessible (accessible to blind, deaf, etc) manner, an already difficult task becomes nearly unmanageable. Perhaps, narrow AI tools (the authors do point this out too but also see Rainbows End by Vinge for a fictional take on this) will ease some of this but basic UX and API design for interactive education will also be pivotal and are sorely lacking. I do not believe the authors sufficiently acknowledge this.

The authors seem to make the mistake that experts will be the best authors of such media. I am skeptical of this. Very few experts maintain the empathy required to communicate with novices. I suspect the best approach and this is hinted at by the author with their example of Norvig's notebook, is someone either with exceptional empathy or who has just mastered the material, recording notes for themselves and then sharing. But it will take a while yet before such tools are in place.

Finally, the authors also discuss BCIs. Their examples of new modes of thought suffer from the same criticisms they have for the Logo programming language and creating properly motivated and connected questions, perhaps worse. From what little we know, this will not be just a matter of interfacing with visual areas but also with broad wide reaching networks in the intraparietal sulcus, inferior temporal cortex, angular gyrus, hippocampus and frontal areas just for a start. These are all involved in complex problem solving and will differ in detail from person to person. How to get a non-superficial interface beyond super low latency I/O is a great challenge and simply beyond the horizon of what is today imagineable.

This is as long as I'd feared it would be but I hope someone finds it useful.

Cybiote··on Deep Learning for Symbolic Mathematics
By 100%, I mean that it should fail when it does not know the answer, not that it needs to be able to answer 100% of provided questions. It should not just output any answer.

Alternatively, for the problems it knows how to do, a CAS should be as close to 100% as can be reached. But you are right, even Mathematica is not always correct so it is useful to be able to query a solver for its steps.

Cybiote··on Deep Learning for Symbolic Mathematics
This is interesting, the authors encode expression trees in RPN format and use vanilla transformers plus seq2seq to decode solutions to certain integrals and differential equations.

I suspect what's happening, given the constrained space of problems, is the NN is matching input formats to solution templates. For that space, it would have learned some patterns of what undoes to what. Perhaps there's even something that's captured aspects of the product rule buried in those weights.

I would be curious to see how it does on problems outside the training set format. Or on integrals that require a trick, such as exp(x) * sin(x) or those with nested composition: A/(1+exp(-k*(x-a))). Is it sensitive to input size? Would a smaller but slightly tricky integral like 1/sqrt(x^2 - y^4) trip it?

Most important, since the bulk of real world indefinite integrals are not analytically tractable, it is vital that a practical system knows when to give up. If I put in exp(-x^2), it better not return an answer. This is my main worry for methods like this. In a real world setting covering a wider range of mathematical problems, you can't trust something that's not 100% on what it knows how to do.

Cybiote··on The Riemann Hypothesis
Here's a quite friendly elucidation by the inimitable Avi Wigderson, from: https://www.ias.edu/ideas/2009/wigderson-randomness-pseudora...

> Let’s elaborate now on the connection (explained on the cover of this issue) of the Riemann Hypothesis to pseudorandomness. Consider long sequences of the letters L, R, S, such as

> S S R S L L L L L S L R R L S R R R R R S L S L S L L . . .

> Such a sequence can be thought of as a set of instructions (L for Left, R for Right, S for Stay) for a person or robot walking in a straight line. Each time the next instruction moves it one unit of length Left or Right or makes it Stay. If such a sequence is chosen at random (this is sometimes called a random walk or a drunkard’s walk), then the moving object would stay relatively close to the origin with high probability: if the sequence was of n steps, almost surely its distance from the starting point would be close to √n. For the Riemann Hypothesis, the explicit sequence of instructions called the Möbius function is determined as follows for each step t. If t is divisible by any prime more than once then the instruction is Stay (e.g., t=18, which is divisible by 32). Otherwise, if t is divisible by an even number of distinct primes, then the instruction is Right, and if by an odd number of distinct primes, the instruction is Left (e.g., for t=21=3x7 it is Right, and for t=30=2x3x5 it is Left). This explicit sequence of instructions, which is determined by the prime numbers, causes a robot to look drunk, if and only if the Riemann Hypothesis is true!

Cybiote··on FermiNet: State of the art approx of molecular orbitals
To me there are two ways to look at this. Either the laws of physics as we have them are too general when compared to what can be encountered in reality (in other words, actual reality is simple enough that a Turing machine approximated by logic circuits can manage well enough at finding a description) or, models found by fitting data are too specialized, ignoring subtleties not captured by loss functions acting on the data they were trained on.

Any physical model gained by fitting data which purports to be faster than those based on a computable approximation of the laws of physics is so constrained. There is room to maneuver however. If the model being replaced has a limited and known domain of applicability due to approximations made for tractability, a fitted model with suffciently large capacity and expressiveness will for sure improve things.

It's just that it's unlikely to be generally applicable without violating what we know about physics, which is why I am skeptical of the latter part of your post.

Cybiote··on Why All of Our Games Look Like Crap
I did not read that as defending his art style, I saw it as getting at something deeper. His argument is not really about defending the quality of graphics in his games, they are much more about showing the calculus and weighing of his choices.

The first and key point is that there are people (such as myself) who actually like his graphic style and who, above all, prioritize the excellent story telling in his games. These are the people who sustain his business.

The second point is one of niche indie versus AAA or even popular indie. It's a similar sort of argument as between "life-style" businesses versus VC backed businesses. Specifically, in the game industry, the effort into graphics and assets versus reward from customers gained is not a linear function of effort, where small increases result in small gains. It is not even a smooth function where there are small in-between things you can do that will have an impact.

Now, in hackernews style, you believe that there is a simple solution but remember, the issue is not of graphics but getting to a sustainable business. This is someone who has survived making games for 25 years where so many better more consistent looking games have flopped or their parent companies folded. Besides, from my short time working on games, it seems to me you are both overestimating and underestimating the gains from such touchups. The people who care about such things are very exacting and the people who don't care are very forgiving. The upshot is, either the touchups you list will not matter or they will never be enough. Which leads to a key point.

There is a large step function covering not just graphics but also animation and sound quality to where the majority would consider acceptable. He is not complaining that good artists are too expensive, he is stating that the incurred risk required to afford majority acceptable game assets is not worth it, compared to what he is comfortable with and how he wishes to live his life.

He is happy with his current niche and those of us who feel nothing for the latest shiny 3D raytraced games are grateful that developers like him exist.

Those of you who seek to create businesses should consider knowing yourself and what will truly make you happy. Do you want great wealth and acclaim or the freedom to live your life mostly as you please, content without any great material or status need?

Cybiote··on Twitter is blocked in China, but its state news agency is buying promoted tweets
I think the ethics on this is quite clear. PRC is not trying to share their ideas in a fair manner. Rather, they are trying to shape and manipulate beliefs by distorting the amount of support there is for their preferred take. It's next level propaganda.

If not for the fact that hundreds, perhaps thousands, of bots are being coordinated to create an illusion of weight for some consensus, things would indeed be murkier. As it is, the PRC is currently acting disingenuously.

Cybiote··on Lisp is not based on the Lambda Calculus
Adding a little to your wonderful post, another possibility for why the conflation of the original lisp as based on the lambda calculus is that its notation was heavily inspired by the lambda calculus, even though it was more properly a refinement of the μ-recursive functions (of form f:(N,N,...N) -> N) over the natural numbers.

While a lot of people are trying to defend the lambda calculus as a basis, I think this actually undersells the significance of LISP. Apart from Lisp the language family and its implementations, there is Lisp, (arguably) the first practically realizable mathematical model of computation. That is, it stands on its own as a model for computation†, continuing along a long line of which I think Grassmann's 1861 work on arithmetic and induction is a good starting point.

Turing Machines are intuitive and the lambda calculus is subtle and expressive, but Lisp's contribution was to place partial recursive function on a more intuitive/realizable basis in terms of simple building blocks of partial functions, predicates, conditional expressions and symbolic expressions (ordered pairs/lists of atomic symbols). Lambdas come in as a notation for functions with a modification to facilitate recursive definitions.

†Making Greenspun's Tenth Rule trivially true.

Cybiote··on Show HN: MeSpeak.js 2.0 – Text-to-Speech in JavaScript
I don't have a question, just wanted to say I found the Stereo Spanning example to be a genuine piece of art. The choice of voice and script were truly excellent, having such a robotic voice read the bot's lines was great. Their reading had me chuckling in a few places I would not have if I'd read it simply as text.
Cybiote··on Discrete Differential Geometry: An Applied Introduction [pdf]
I can't be long here so this will be short.

There are quite a few places differential geometry is very useful to know. Generally, if you want to know at a fundamental level "what does it mean to learn, what is inference truly?". You will find yourself in dire need of learning differential geometry. The easiest example is: the deeper your understanding of differential geometry, the more you'll be able to reason about hamiltonian monte carlo algorithms.

Information geometry also applies differential geometry, where you can think of learning as trajectories on a statistical manifold.

K-FAC, mirror descent and the natural gradient also derive from or are closely connected to work in information geometry. There's recent work connecting optimal transport. Optimal transport is an important idea and pops up in many surprising places, from GANs to programming language theory via way of modeling concurrency, for example (Kantorovich metric for bisimulation). Understanding differential geometry allows you to see and navigate such rich connections at a deep level. I heartily recommend it. A good place to start is: https://metacademy.org/roadmaps/rgrosse/dgml

Cybiote··on Owl – OCaml Scientific Computing
I'm a fan of functional languages and believe their implementation choices induce a unique approach to problem solving. Not necessarily better but different, which is enough on its own to justify such projects. While I prefer the functional approach, I'm well aware that's a large part just personal preference. What's true however, is every language makes certain things easier and other things difficult as a result of what's prioritized. The locale of functional and typed languages is less visited and worth exploring.
Cybiote··on Owl – OCaml Scientific Computing
Ocaml and F# are great languages but, rather than lament what language this excellent math library/framework is implemented in, lament that there is no F# equivalent or that projects like Owl outside Python don't really get the attention they need. While having multiple such frameworks per language makes little sense, each language having its own mathlib ecosystem makes a lot of sense from a diversity perspective.

We should want to see examples grow not just for F# or Ocaml but also Haskell, Rust, Scala and others. Then we should prioritize as much as possible, inter-operation of libraries, model definitions and outputs.

Cybiote··on To Break Google’s Monopoly on Search, Make Its Index Public
One thing to keep in mind when comparing DuckDuckGo to Google is that people do not use Google with an alternative backup in mind. When you DDG something and it fails, you can always switch to google.

But what about when Google fails? Unlike DDG, there is no culture of switching between search engines when googling. Typically, you'll just rewrite the query for google. And as rewriting the query is an entrenched part of googling, you are less likely to notice this as a failure. It is this training that's the core advantage nostrademons points out.

Cybiote··on Collaboration Style (2011)
Interesting that you think that. I don't see it as humble-brag, more a defense for a style of collaboration whose contributions are not typically recognized or are difficult to notice as such.

I do agree he goes too far in discounting styles of contribution that are not to his preference. I think both styles are important, someone needs to contribute the components for synthesis after all, and that requires lots of exploration. Which comes by people playing with ideas for themselves. It's understandable though, that one would write a biased defense of an important and personally favored but less visible contribution style.

Cybiote··on No limit: AI poker bot is first to beat professionals at multiplayer game
You're right that it uses itself as a prototype for decisions but the fact that it also maintains a probability distribution over possible hole cards and that it updates according to observed actions is already richer than the local decision only approach taking most all other bots. This is sort of forced by the simplicity of poker's action space combined with the large search space and imperfect information. Here, the simplicity ends up making things more difficult! They also use multiple play styles as "continuation strategies" so it's a bit more robust. And to be fair, I suspect much of human play does use themselves and experience as a substitute too.
Cybiote··on Statistics with Julia [pdf]
I agree it's a wonderful resource. Which is exactly why I disagree with your suggestion. The book is uncommonly clear in how it explains fundamentals and bringing in such a powerful library ends up moving quite a bit away from that. It will no longer be just about the fundamentals of Julia on one hand and on the other, the algorithms will no longer be implementing language invariant. Losing that invariance IMO makes it less of a text on fundamentals.
Cybiote··on No limit: AI poker bot is first to beat professionals at multiplayer game
Note that 1) is only true if your opponent is also not making many mistakes. Which fails to be true for most humans, where the combination of randomization and calculating state appropriate ranges is very difficult. This means that weak players can still lose heavily from mistakes/poor play within a reasonable number of hands, it need not be slim.

Furthermore, you can kind of account for such players by including more random or aggressive profiles in the inference/search stage.

Cybiote··on No limit: AI poker bot is first to beat professionals at multiplayer game
Adaptability is certainly not necessary (almost by definition) if you're playing a near to equilibrium strategy but adaptability is a useful skill to have in a general non-stationary world.

That said, for this bot, I wouldn't say it's playing completely independent of the other players's interior state. Pluribus must infer its opponents strategy profile and according to the paper, maintains a distribution over possible hole cards and updates its belief according to observed actions. This is part of playing in a minimally exploitable way in such a large space for an imperfect information game.

Cybiote··on No limit: AI poker bot is first to beat professionals at multiplayer game
If you think about it, any AI that's stopped learning and is now efficiently doing pattern matching or pattern completion (assuming memory and attractor states), instead of running a complex search, is arguably a fancy lookup table hashed by similarity. This includes humans. In other words, lookup table isn't the slight most think it is. But the bot does do real time search so it's not "merely doing" a look-up.

Because of how Poker is not sub-game solveable (it is not possible to self-locate within the tree), this bot's play has to get into its opponent's mindspace in a sense. To not be exploitable, it essentially has to infer the other player(s) hidden state and paths from observed actions. This isn't something I've seen in Dota, Starcraft, Chess, Go bots.

It's true that it doesn't learn online to find exploitable patterns of other players, but doing this without also making yourself exploitable in turn is a very difficult other problem. Low exploitable near optimal play according to game theoretic notions is considered strategy.

While you're correct that online learning is powerful and something machines are not currently good at (in complex spaces), you can avoid being exploited without learning if your experience is rich enough and you know how infer what your opponent is trying to do and anticipate them. I'd argue this lineage of poker bots are the closest to playing that way of the major game playing bots.

Cybiote··on QuickJS JavaScript Engine
I get a similar "is this by some kind of super-human intelligence?" feeling reading stuff from Oleg Kiselyov. http://okmij.org/ftp/
Cybiote··on Where Has the Magic Gone?
I consider this argument flawed because it equates intelligence with human intelligence. The field is Artificial Intelligence, not Human Artificial Intelligence.

A dog is intelligent, as is a pigeon. Even bees and some mollusks, like the cuttlefish, are intelligent. They can't think in all the ways a human can but at what they do, they are competent, even clever.

I feel the same is true for machine intelligences. It takes intelligence to learn Go or Chess but it also takes intelligence to play, or at least this is what we say for humans. When the human is thinking about Starcraft, we consider only how good their thought patterns are for that game. We do not look at their vision, walking, social skills or whatever. The same should be applied for the Chess or Go AI while it is playing Chess or Go. While one can complain that all they know how to do is play Chess, anything else is unfair.

Cybiote··on Bees can link symbols to numbers, study finds
Your question is excellent but I sort of arrive at an opposite conclusion. Before I explain, I want to point out that bees and jumping spiders are exceptional as far as insect* intelligence goes.

The gist of my view is that evolution is the mother of all demo scene hackers. Imagine a programmer that build amazing AIs on whatever hardware you give it, whether a top of the line GPU or an old PIC microcontroller.

The AIs runnable on both will not be fully equicapable† but the fact that you could get the PIC to do abstract learning or image recognition and learning at all will be incredible. It's like the fact that you can get a strong Chess AI running in just a few kb doesn't mean that Stockfish9 is unimpressive. It's rather, that such a strong chess AI can exist given such few resources is impressive.

Regarding intelligent AIs or space aliens with more computational resources, I'm biased but, I do think they'd be impressed with what we can do with only 20 watts or thereabouts.

* Yes I know spiders are not insects.

† Corvids and parrots are sort of exceptions to this. They can outperform certain primates even though they have smaller brains, fewer neurons (even if still high) while using less energy.

Cybiote··on Implementing a Convolutional Neural Network Using Only NumPy
The page contains superb, high quality work. I find the negativity in this branch incomprehensible. I and I suspect, many others, did not see any of the other times the author posted it. I am probably not alone in being glad they persevered at sharing it.
Cybiote··on I Don't Want to Teach My Garbage DSL, Either
Yeah, you're always going to be reliant on third parties in a complex world. What is important is how beholden or locked in you are in any given arrangement. If you are free to move from one contractor to another because they are all interoperable, then you're independent in a more important sense.
Cybiote··on Calculus with Julia
Firefox has that feature for every page that can be given a reader mode/view.
Cybiote··on A visual proof that neural nets can approximate any function
What you list remains insufficient to tackle the difficulty of extrapolation. Extrapolation of the kind we're able to do with Physics theories is difficult in the general case for all methods, not just deep learning. With even the relevant variables subject to change, things like distribution shift and non-stationarity are but the tip of the ice-berg.

For neural networks, if you take something basic like sorting a list or multiplying two decimal numbers, the further you are from range the models were trained on, the worse they will do (yes, transformers too). Only exception I can think of are carefully trained Neural GPUs, which will quickly struggle to be 100% correct as you depart simple tasks. While consuming a great deal of computational resources. Program synthesis is the general area, with no approach clearly dominant in the same way deep learning has dominated machine learning.

← PreviousPage 3 of 9Next →