936 karma · joined May 30, 2020
I think the basic criticism of group selection is that at an individual level it can be beneficial to go against the group's goal, and you need to explain why that doesn't happen (even very small advantages are rapidly boosted by selection). This is one of the great puzzles of selection - how does cooperation evolve from selfish interests? The theory of group selection just asserts that it does, which is not very satisfactory.
Compute and such is a fair point but that AI is here at all is mind-blowing to me.
Totally agree with your first sentence though. And even if there is a plausible adaptive function it may have only been adaptive in the past, or might be a side effect of some other adaptive function (see sickle cell anemia), or a host of other possibilities.
My memory is a bit fuzzy, but I've seen another QA agent that takes a similar approach of structured text extraction rather than using images. So I suspect I'm not the only one finding image-based reasoning an issue. Could also be for cost reasons though, so take that with a pinch of salt.
It's boring common sense but don't take a bromeliad into the desert.
My belief is that all codebases that live long enough will develop this level of complexity with time. The only exceptions imo are where the codebase solves a very particular, fixed problem, e.g. a library for A* pathfinding or whatever. But maybe not even then.
So in 3-dimensional space, for n=3, the "length" of a vector u=(u_x, u_y, u_z) is: d(u) = (|u_x|^3 + |u_y|^3 + |u_z|^3)^(1/3)
In 2-dimensional space, for n=4 and u=(u_x, u_y) you get the following: d(u) = (|u_x|^4 + |u_y|^4)^(1/4)
If you want to use the norm as a metric to work out the "distance" between two vectors u and v then you just compute d(u-v) where u-v is ordinary vector subtraction.
So if you pick n=1 you get d(x, y) = |x| + |y|, which is the taxicab metric. You can apply this metric to a Euclidean space of whatever dimension you like, just substituting the appropriate definition of |x| and |y|. For 1-dimensional space you would use |x| = abs(x[0]), for 2-dimensional space you would use |x| = sqrt(x[0]**2 + x[1]**2), etcetera. Hope that helps.
It's just never as easy as "don't do this" or "always do this". But yeah, I agree with your gist, right tools for the right job and all that. Most of the time you don't know all requirements up front and it can make sense to hedge your bets in the interest of speed until you do.
Point being that software has many dimensions. Reducing the use of dependencies to fear of learning or thinking is a bit reductive in my opinion, even for stuff that seems simple initially.
Who said anything about software engineers?
Handicapping traditional tree search produces really terrible results, imo. It's common for weak chess engines to be weak for stupid reasons (they just hang pieces, make random unnatural moves, miss blatant threats etc). Playing weak versions of Leela chess really "feels" like a (bad) human opponent by contrast.
Maybe the juice isn't worth the squeeze. It's definitely a ton of work to get right.
Can your software run for millions of years?
> Previous chats with no additional activity will not be used for model training.