There was quite a reaction to our paper, “Polynomial Regression as an Alternative to Neural Nets” (by Cheng, Khomtchouk, Matloff and Mohanty), leading to discussions/debates on Twitter, Reddit, Hacker News and so on. Accordingly, we have posted a revised version of the paper. Some of the new features:

Though originally we had made the disclaimer that we had not yet done any experiments with image classification, there were comments along the lines of “If the authors had included even one example of image classification, even the MNIST data, I would have been more receptive.” So our revision does exactly that, with the result that polynomial regression does well on MNIST even with only very primitive preprocessing (plain PCA).

We’ve elaborated on some of the theory (still quite informal, but could be made rigorous).

We’ve added elaboration on other aspects, e.g. overfitting.

We’ve added a section titled, “What This Paper Is NOT.” Hopefully those who wish to comment without reading the paper (!) this time will at least read this section. 🙂

Updated and expanded results of our data experiments, including more details on how they were conducted.

We are continuing to add features to our associated R package, polyreg. More news on that to come.

Curious how you evaluated MNIST accuracy given their are ten possible classes using logistic regression. And yes I did read the paper, and appreciate the updates, but these details were omitted. Thanks.

Very interesting work. However, I am trying myself to test the results you get for the MNIST polynomial regressions (I am using tensorflow) and I find that my results are much worse. From what I understand, “PR,1” is a linear regression, for “PR,2” you add the quadratic terms, etc.

Using PCA (26 components, like you did), with test_size=0.3 I get:

Accuracy of Polynomial Regression for degree 1 = 17.6 %
Accuracy of Polynomial Regression for degree 2 = 39.37 %
Accuracy of Polynomial Regression for degree 3 = 50.68 %
– Above this I also find memory issues –

Basically I also test the accuracy with mean(predicted==actual).

Could you give me more details about how you implement it? or what I might be doing differently/wrong?

Sorry for the late reply; I don’t check here often. Please try our new version, now on CRAN. If you still have the odd results, please send me your code and I’ll take a look.

I don’t think it is significant, but your “best published NN” is wrong. For example, I have 99.58% accuracy in https://arxiv.org/pdf/1707.09725.pdf and 99.79% here: https://martin-thoma.com/sota/

Thanks for the update.

Curious how you evaluated MNIST accuracy given their are ten possible classes using logistic regression. And yes I did read the paper, and appreciate the updates, but these details were omitted. Thanks.

there*

mean(predicted == actual)

Hi Matloff,

Very interesting work. However, I am trying myself to test the results you get for the MNIST polynomial regressions (I am using tensorflow) and I find that my results are much worse. From what I understand, “PR,1” is a linear regression, for “PR,2” you add the quadratic terms, etc.

Using PCA (26 components, like you did), with test_size=0.3 I get:

Accuracy of Polynomial Regression for degree 1 = 17.6 %

Accuracy of Polynomial Regression for degree 2 = 39.37 %

Accuracy of Polynomial Regression for degree 3 = 50.68 %

– Above this I also find memory issues –

Basically I also test the accuracy with mean(predicted==actual).

Could you give me more details about how you implement it? or what I might be doing differently/wrong?

Sorry for the late reply; I don’t check here often. Please try our new version, now on CRAN. If you still have the odd results, please send me your code and I’ll take a look.