4 ms·
And if by AI we mean deep learning, it’s very entangled and non-modular code. In other words, what would be considered unmaintainable or unscalable code accordi
by iroh2727 4y ago
And if by AI we mean deep learning, it’s very entangled and non-modular code. In other words, what would be considered unmaintainable or unscalable code according to the basic principles of software engineering. Not to mention that it is often a huge distraction for many of your top programmers away from focusing on the actual product you’re building.
(Not to say that deep learning can’t be useful of course. But people should know it comes with huge costs. And given that the performance of relatively simple or interpretable methods is often comparable in practice and much, much more practical when taking into account the time dimension of software engineering and product development, it’s definitely overused at the moment.)
- mumblemumble 4y agoI don't think most classical machine learning is appreciably less tangled. It's more that the more obviously black box nature of deep learning models leaves people feeling more exposed to something that's been there all along. https://research.google/pubs/pub43146/ https://research.google/pubs/pub43146/ should be required reading for anyone involved in designing or building machine learning components that are intended to go into production.
- iroh2727 4y agoWhy is the box black? Because it’s more of a tangled mess. Many classical methods are absolutely appreciably less tangled. Now, that doesn’t mean that the fact that a method is classical makes it by default untangled or a good approach. I mean random forests consisting of big tree are really not that interpretable for example. And ML in general is not always the best tool for solving a problem. Gotta use our judgment factoring in the time dimension of software/product development. Also, I think it’s a question largely of how deep learning is used. If it’s used in a very compartmentalized way, either at the product level or the code logic level, where you don’t need to be able to disentangle the component (and it’s giving huge wins over alternative methods), it can (can!) be a good choice.