108 karma · joined January 3, 2012
My point is (I did not really write that above) that deep learning does not stand unchallenged in this domain. Its dominance is so far "only" apparent in vision and audio classification tasks.
Still, deep learning has done nothing more than classification right now.
What about predictive distributions, regression of complicated outputs (e.g. periodic data) and, most of all, heterogenous inputs? Right: nothing impressive has been done in that area, despite of huge amounts of practical problems.
Let's see if deep learning generalizes to those things. If it does (and I personally believe so) let's be happy. Before that, we still have to envy what Gaussian processes, Gradient boosting machines and random forests can do what DL so far cannot.
There are still applications where e.g. random forests beat the crap out of all kinds of deep learning algorithms in (a) training time (b) predictive quality (c) prediction time.
We should stop hyping this. I am a researcher working in deep learning myself, but the current deep learning hype is actually what makes me worry that I will have trouble getting a job because industry will be disappointed a third time.
Neural networks are affinity invariant. You can rotate, skew, translate the input data however you want, the optimum stays the same. Same for SVMs.
Tracking is much precise than EMG based posture estimation. Unless these guys made a leap of at least one order of magnitude compared to current state of the art, expect the LEAP to be buch better in terms of gesture recognition.
Furthermore, this thing only allows the recognition of 20 gestures. That is about log 20 bit every few seconds. On the other hand, the LEAP will give you at least 10 finger positions plus rotations (thats more than 2^10 bits) every few milliseconds.
I think if people will get used to LEAP based HCI, they will not look at Myo, no matter if you can go to the kitchen with it.
So yeah, you can write a custom class. But you will need to add a custom "save state" and "load state" in your class' __iter__ method. So all the benefits go away.
The FAQ is full of this. For those who want to know the difference--and there are two--let me add the following points:
(a) Most machine learners do not care that much about proper modelling. The point is not about having a right model of the data, but a useful model. Check Breimans "The two cultures" paper. (b) Machine learning actually cares about computation (Big O notation and such), something that is not part of the standard statistics curriculum.
A Kernel function k(x, y) is a function that calculates phi(x)^T phi(y) for some phi. That means, it calculcates the dot product in a higher dimensional space of two data points; it does not do the transformation.
That implies that Kernels do not have to work on the gram matrix. Kernels can be sth completely different, e.g. Fisher Kernels.
(What I wrote is based on Bishop's book and others.)
Deep learning is not about fixing the residuals of the current chain. Deep learning isn't even about residuals in the first place. It's about (1) finding good representations of your data (aka feature learning), (2) then adding a discriminative model on top and then (3) tuning everything. There is no relation to boosting at all.
Check out the publications by Ciresan on MNIST, have a look at Hinton's dropout paper or at the Kaggle competition that used deep nets. Or try it yourself and spend a descent amount of time on hyper parameter tuning. :)
Years later, Swiss researchers (Dan Ciresan et al) found that you can train neural nets with backprop, but you need lots of training time and lots of data. You can only achieve this by making use GPUs, otherwise it would take months.
All currently used deep learning algorithms are special cases of neural networks. The reason why this is called "deep" learning is that before 2006, no one knew how to efficiently train neural nets with more than 1 or 2 hidden layers. (Or could, because of computing power.) Thanks to a breakthrough by Dr Hinton, this is now the case.
But all models used are neural nets. It's just that a vast amount new algorithms for training them have been developed in the last years and people came up with new ideas on how to use them.
But it is all neural nets. And that's the whole beauty of it.
violent games -> aggressive behaviour
or just, which probably no one will take into doubt, aggressive behaviour -> violent games.
So, nothing new to see here.So yes, there will be plenty of jobs in tech.
Because it's not considered to be "normal". If you wear the same clothes every time, people will notice and think you are weird. You don't want people to think you are weird if you startup.
Never trust academics when it comes to programming. :)
Seriously, Matlab might be a tiny bit better for scientific programming than Python. But: if you start building an eco system around your machine learning code (distributed evaluation of models, email reporting of results, web reporting of results, online tracking of training progress, data base related things, web services for other people, proper documentation, ...) you are happy if you chose python.
Also, there is theano for python which has auto diff, transparent GPU/CPU use and symbolic optimization. It makes your life easy if you are using complicated models.