3 ms·
I like to focus on the need for a spec. The hardest part about programming is that you have to say what you want to happen clearly and precisely. You can't ju
by saalweachter 6y ago
I like to focus on the need for a spec.
The hardest part about programming is that you have to say what you want to happen clearly and precisely. You can't just say "I want a text editor", you need to say all sorts of specific things about how the cursor moves through the text and how you decide what text is displayed on the screen when there is too much to show all at once and how line-wraps work and whether you acknowledge the existence of "fonts", and what happens when you click randomly on every pixel of the display.
The program usually shouldn't be the spec, but you can't write the program without actually specifying everything that can possibly happen over the course of that program executing.
One of the things that makes AI/ML so hard is that we don't want to write a spec, most of the time. If we could write a precise spec that a computer could understand, we've typically already written the program we want. There are some cases where we can, like games or math, but most of the time, what we want to do is provide our AI/ML with a bunch of data and say "you figure out what I mean". "Label the pictures of dogs", "identify the high-risk loan applicants", and so forth.
Our AI/ML is actually solving two problems: first, it has to come up with a spec on its own, and then, it has to create a solution to it.
And here is where things get rough: we generally don't know what spec our AI/ML came up with. Did we train a model to identify dogs, or to identify dog collars? Does this model find high-risk loan applicants, or people of certain ethnic backgrounds?
The problem with many real-world and business applications for AI/ML is that the spec is really, really important.
- dgb23 6y agoOne of the core features of a spec is semantics. We're just getting "42" and are stumped, because we didn't describe the meaning of the question nor the answer in a formal way. To apply meaning we need "us" or the real world. And we need to decide its form.
- opportune 6y agoI would argue that how you define the inputs, outputs, and architecture of a model is quite precisely providing a spec. That doesn't necessarily mean that any intermediary within the model is explainable, as you allude to, just as a spec doesn't specify how a feature gets implemented.