Hacker News new | past | comments | ask | show | jobs | submit | antipaul's comments login

When was AI supposed to replace radiologists? Was it 7 years ago or something?


Nah.

It was more like one year away.

But one year away for the past 7 years.


Nearly all radiology practice has integrated AI to some degree or another at this point.


So who among current ML practitioners building “useful” ML could solve some of these?

_Should they_ be able to?


Nope, i don't think they should or need to be able to.

These exercises are useful for mathematical maturity which results in intuition needed to develop novel algorithms or low level optimizations.

Not needed to use existing train and deploy ML algorithms in general.


Good news -- if you're not interested in extending state-of-the-art and simply want to call APIs, you don't have to learn ML deeply.


Depends on your definition of "ML practitioner", "building" and "ML". Look at the section on optimization - some people have an extremely good grasp of this and it helps them mentally iterate through possible loss functions and possible ways to update parameters and what can go wrong.


Some people see studying as a chore and want to learn the minimum to get the job done. Others find it insightful and fun and enjoy doing problems and reading material.

Both approaches make contributions and can lead to success, but in different ways.


I am curious about the same thing. I worked as a ML engineer for several years and have a couple of degrees in the field. Skimming over the document, I recognized almost everything but I would not be able to recall many of these topics if asked without context, although at one time I might have been able to.

What are others' general level of recall for this stuff? Am I a charlatan who never was very good at math or is it just expected that you will forget these things in time if you're not using them regularly?


Don’t forget:

Good design comes from good designers

(Fred Brooks)


That's how I make my grind easier, in Leetcode. Go direct to solutions first, to get intuitions.


How do you know the dude in blue is a fascist, and a jerk?


To be fair, I think most of the TSA agents are not, many are just doing their job and trying to bring some dignity to a tense situation. I travel a lot and have met some very kind TSA agents.

But as an organization, they clearly have a culture that allows or even encourages people to openly abuse and harass travelers, and punish people for exercising their rights. When I was being sexually harassed by a TSA agent, the other agents standing nearby allowed it to happen and said nothing.


They've had facial recognition in Europe at airports for a few years now.

At least if you are EU citizen, you don't need to interface with humans.

I believe, though not certain, that you can opt out simply by going to the human booths (right?)


From “big program, small data” to “big data, small program” seems like a useful way to summarize the main shift from elaborate rules in the first generation, to huge piles of data today.


Can a "class", eg in Python or Java, be considered an example of the "data structure" Linus and others are talking about here?

Or are they only talking about tables in databases and such?


Yes, classes are data structures. A data structure is the construct by which you organize, process, retrieve, store, etc data. A traditional "struct" or "table" is how people think of a data structure, as a sort of dumb layout of 1s and 0s in a file or memory somewhere. But how that data is separated, accessed, what constitutes "valid" data, how it is presented to you, what you can do with it, etc is all part of what constitutes the "structure" of the data, because the "structure" enforces what that data looks like, how it behaves, etc. A class fits that purpose aptly.

If water is data, then a straw, a vase, a kettle, a pool, a water pump, even a hydroelectric dam, are all data structures. They enforce the form of the water, what goes in, how you access it, how it comes out, etc. You might say "but doesn't a function do the same thing?", and, well.... yes. A data structure is kind of like a tightly-bound collection of functions that take in data and put out data in particular ways.

A data structure in memory or on disk, without program logic attached to it to enforce the structure, is a "data format". The hope is that a program will do the right thing with the data according to its intended structure.


The class interface (interface contract) falls under the general point being made, but not the class implementation (implementation details).


IMO, “wrong question”, but thanks for asking.

IMHO - “class” definitions are really just a data structure (abstractly, a possibly-nested hash) with associated functions, and that’s it.

This is extremely apparent in Perl, where that’s literally what a “class” is - a hash data structure “blessed” with a class name. JS is almost identical (a class is a hash where some of the values are functions), and “under the hood” both Ruby and Python are similar (although in very different ways - consider that the first arg in a member function in Python is the instance).

Database schema is (usually/mostly) just that structure without those functions; then you maybe use an ORM to provide them again.

So, IMO, on a theory and design level, both the database table and the data part of a class definition are “data structures” (note that you should include in considerations the relationships between data structures)


To take this a step further, IMO a big issue with how OOP is taught & practiced is that people approach it from the wrong direction.

As classes provide both data and functionality, it's better to first model your data and then think about the functionality to provide on those data. But people tend to think about relationships & actions (i.e. functionality) first and model their data to that.

The two approaches will tend to produce very different data structures. I'd agree with the sentiment from the OP that being data-first is ideal.


Yes, but I'd read it with less emphasis on the behaviours (which is what makes a class.) So, more like a struct.


Like others say, usually just go for XGBoost, which is increasingly even shown (proven?) in literature, eg: https://arxiv.org/abs/2106.03253

You can also start with scikit-learn's `LogisticRegressionCV`, if a linear model is more palatable to your audience.

The bigger challenge is to reliably estimate how good your model is.

It's not about getting the best performance – it's about getting the "real" performance. How will your model _really_ do on future unseen datasets?

The answer to this challenge is cross-validation. But what are the questions?

There are 2 very different questions for which the answer is cross-validation.

One is, which hyper parameters to use with your model?

The second is, what is the generalization performance of the model?

This requires 2 separate applications (loops) of cross-validation. The authors of this book talk about this in terms of having a "validation set" and a "test set" (Sometimes, these terms are switched around, and there is also "holdout set". It's critical to know how you, and the rest of your team, are using these terms in your modeling)

A robust way to implement these 2 CV's is with nested cross-validation, readily available in many packages – and also, should be "fast enough" using modern computers.

One exercise that remains is: with nested CV, which model do you pick as your "production" model?

That is also a bit tricky. Reading things like the following can help: https://stats.stackexchange.com/q/65128/207989

EDIT: for those inclined, here is a paper on why you need 2 loops of CV: "On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation" by Cawley and Talbot: https://jmlr.csail.mit.edu/papers/volume11/cawley10a/cawley1...


> One exercise that remains is: with nested CV, which model do you pick as your "production" model?

Why even pick one, just make an ensemble out of all of them. Unless you need your model to remain blind to one test or validation set for some reason, but then you should probably choose at random anyways to avoid bias.

Of course this being HN somebody is going to mention some case where they only have the CPU or memory budget for one model. But in general making ensembles of multiple XGBoost models is a great way to get better model performance.


What do you think chatGPT uses as training data?

The whole world’s “sh*tposting”: Reddit, blogs, and the rest of the internet.

But also books and Wikipedia and what not.

You can “smooth” all the crap out via the training procedure.

But even more, Slack can easily filter training data to, say, only posts in high-use channels.

Further, slack has other options: eg, use their customer data only for marginal fine-tuning, for example.

Or, they don’t even know their use case yet - but want to wrap their arms around your data pronto.


What makes you think I don't shitpost in the #engineering channel?

And heuristics don't even scratch the surface of the bigger problem where it's trained on people who aren't great at their jobs but type a lot of words on slack about circling back on KPIs.


I think those types of people are actually shockingly well paid. If slack can make bots to replace them, they’ll print money, right?


That's all well and good until something goes down and you need someone knowledgeable to diplomatically shout at a vendor.


how does the training procedure smooth the garbage out?


Through regularization techniques, data augmentation, loss functions, and gradient optimization, ensuring the model focuses on meaningful patterns and reduces overfitting to noise.


It’s not obvious how any of those would do anything but better approximate the average of a noisy dataset. RLHF might help, but only if it’s not done by idiots.


ChatGPT isn't known for it's accuracy though, is it? They coined the term "hallucination" because it is wrong so much.


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: