News for hackers. Stuff that matters.
Re:Tensorflow.js: Machine Learning in JavaScript by fxtentacle on Monday June 08, 2020 @03:34AM (#23454416)
You are correct that all commoditized AI currently cannot do anything completely novel.

They ship a network to convert landscape photos to landscape paintings, for example. You can retrain that with limited effort and knowledge by using their Collab notebook. That way, you can make an AI to convert photos of cats to photos of dogs. But you wouldn't be able to create an AI to convert between cats and rabbits, for example, because those are too different for that AI architecture to tolerate.

Similarly, they ship a classifier to detect objects of some categories based on surface texture. You can retrain that to detect different categories of things. But if someone paints a chair to look like elephant skin, the AI will be confused and short of inventing a new architecture yourself, there's nothing you can do to fix it.

Plus in any case, you will need to have large high quality datasets for your retraining. The biggest cost in building a bird classification app isn't the one ML employee that creates the final AI, it's hiring biologists to correctly tag thousands of photos to train the AI on.

That's why many AI research nowadays tries to offload the data generation to random people on the internet. For example, recaptcha, or crawling Flickr for that faces dataset.

Edit: since it was brought up in the comments, the retraining that I mentioned can be done only on parts of the model, which is then called transfer learning and can save you some computing time.

But, you'll need to determine if the first feature layers of the original model are suitable for your new classification task. Even experts sometimes guess wrongly here, so as a beginner, I'd say you can only pray and hope.

Re:Tensorflow.js: Machine Learning in JavaScript by dheera on Monday June 08, 2020 @11:04AM (#23457111)
"But you wouldn't be able to create an AI to convert between cats and rabbits"

I reckon you probably actually could with some of the more recent results.

Re:Tensorflow.js: Machine Learning in JavaScript by fxtentacle on Monday June 08, 2020 @11:30AM (#23457369)
I am not aware of any model on the TensorFlow Hub which could do that.

I also believe that I haven't read a paper with a suitable architecture yet.

Which one are you referring to?

Re:Tensorflow.js: Machine Learning in JavaScript by dheera on Monday June 08, 2020 @01:56PM (#23458914)
TensorFlow Hub is probably outdated, as usual. They're still advertising ResNet50 for goodness sake.

Try this: https://github.com/NVLabs/FUNIT (2019)

Or this: https://github.com/clovaai/stargan-v2 (2020)

Either of those should probably work for cats to rabbits.

Re:Tensorflow.js: Machine Learning in JavaScript by fxtentacle on Monday June 08, 2020 @03:00PM (#23459629)
I disagree.

Both of them massively reduce the complexity by working on position-aligned images of purely the head. I would estimate that even a picture of a cat from the side will already be too much for this network to handle.

These kind of networks learn their feature space mapping by treating the input data set as continuous. So for them to learn a good mapping from cat to dog, it would need to also see photos of an animal that is half cat half dog. If I had to train this case for work, I guess I'd try to go through baby pictures. Dog -> baby dog -> baby cat -> cat. That might work if baby cats and baby dogs look similar enough.

Re:Tensorflow.js: Machine Learning in JavaScript by jaredtn on Monday June 08, 2020 @12:06PM (#23457795)
Re:Tensorflow.js: Machine Learning in JavaScript by fxtentacle on Monday June 08, 2020 @02:56PM (#23459580)
CycleGAN is exactly the one from the Google colab notebook that failed for cats to dogs. It'll produce cats with a dog texture, but with cat anatomy.