Hacker News new | ask | show | jobs
by troika 935 days ago
Early in my career, I wrote sales funnel optimization algorithms for online-shops and travel websites. We've used an evolutionary algorithm approach - basically, a number of algos implementing competing strategies and aspects that could mutate, crossover, reproduce and die.

We ran this over two years and saw impressive results - especially for the time. I feel, this very much was a "thinking system" in the same sense. And I concur - there are many architectures and approaches to built this sort of thing.

4 comments

Yeah - I've been toying with a similar approach in my banking days. Basically, we've used "Genetic Programming" (very pompous term) to optimize order routing to minimize slippage (the difference between the expected price of a trade and the actual executed price).

Basically, you create a "population" out of possible placement strategies for orders. You then cycle through "generations" that quickly adapt to the changing market conditions.

Ultimately, you end up with something that - on average - provides execution closer to the target price than traditional, more static strategies. But the problem for us was that the outliers where really far out. Basically, if it got it wrong, it got it really wrong and you were often stuck with a set of half executed orders that had to be cleaned up manually.

It seems the value of this type of approach is not the "thinking" (i.e., contextual understanding) but rather the computational speed of assessing random trials. Compared to evolutionary timescales, it's very, very fast but I wouldn't characterize "thinking" to the randomness of evolution, despite its success.
And yet it is a repeatable process that:

- uses the information it already has combined with new inputs to form new information based on both (aka reasoning)

- retains learned information over time (aka memory)

- contains feedback loops to eventually eradicate "wrong" information (aka learning)

- converges to similar conclusions in similar circumstances (aka reasoning or possibly instict)

At least several of the most important parts of thought are there, though it is obviously very different than our own mind. That's OK, both submarines and penguins can move underwater but they do it in very different ways. No reason to think that thought wouldn't have multiple ways in which it could be implemented.

Evolution is also almost certainly not self-aware but neither is a dog and we consider dogs to be capable of thinking too.

I agree, and I didn't mean to imply it's not useful. But I do think it's different and important to understand the limitations regarding those differences. In one important aspect, contextual understanding allows for better decisions in novel environments. The "random trial and error" approach has much less additional benefit in that regard.
I think that in a few decades after we've had a lot more experience with various NN-based AIs, someone will come up with a more general quantification of "intelligence" that can integrate all these approaches into some vaguely orderable classes. After all a genetic algorithm seems clearly smarter (in some ways) than a rock but also it's clearly not as smart (in some way) as a dog. In that sense you could also say a physical lock is smarter than a rock (in that it processes a little bit of information) but not as smart as a human because it cannot learn.

Similar to how we have things like NP-hard > NP > (maybe) P, you could have a classification based on how many (types of) information can be processed or something like that. Maybe a similar but separate scale for learning capacity?

I think there's a meaningful difference between adaptive systems and thinking systems. I would say that the latter have to build internal models of the system they're analyzing and adapting to in order to qualify as "thinking".

Evolution by natural selection is adaptive in the sense you describe, but no one would consider to be "thinking".