277
I work on a new algorithm for Artificial Intelligence, AMA
[removed]
Over_Intention334222 karma
I will start from the end: Yes, the term AI is slapped on everything a bit too easily. But I think about it in the same way think about electricity. Years ago it was only about lighting a bulb, now it's semiconductors. So, despite both being 'electricity' one is more advanced than the other. It's similar to AI now, we are just at lighting a bulb stage. A tree in Primeclue can be thought of as a complicated equation, so it's hard for me to compare it to existing ML approaches. It can handle large datasets, it does not have gradient descend but it "learns" from existing "trees" and uses their parts to find a better solution.
lowkey-goddess26 karma
I upvoted the downvote to keep this thread alive. I hate to be the grumpy skeptic, but may you point to some approach or a paper that inspired this? Anything in the world that you can concretely analogize related to computer science/machine learning/applied mathematics? I want to understand, but I'm not getting much.
Some of the equations and architectures in deep learning can get pretty complicated for some people in the field, and it sometimes takes me a few reads to fully digest a paper, no doubt. But, calling it complex for the sake of it simply being complex doesn't help us understand what this is. We are using the same mathematical principles to build these architectures. What might they be, specifically?
Over_Intention33420 karma
Sorry, I came up with this on my own, although I'm sure someone has tried something similar before (monkeys on typewriters). I can't really point you to any paper describing this.
lowkey-goddess18 karma
I'm not doubting your originality, I believe you. I'm asking about the principles you used to build your algo. Would it help if I went through your source code and asked questions about a particular function/class and what it accomplishes in your program?
bye-lingual1 karma
(monkeys on typewriters)
Is this a reference to the philosophy of monkeys writing down the whole script of Shakespeare? If so I think I like you and you're incredible for starting (edit: meant stating not starting) that it's not your idea but rather anyone could come up with it, let alone with a typewriter, eventually (:
Over_Intention33424 karma
That's exactly what I was getting at. Checking all research to see if someone tried it before would have taken longer than actually doing this "again".
quohr45 karma
... from your GitHub:
“- Split data randomly into training and testing sets.
Train classifiers on training data for 1 minute.
Take the best classifier and note its result on test data.
Repeat above steps 20 times.
Record median result on test data.”
I certainly hope you understand that you CANNOT use the test data in the process of determining which model to use. You go even further and “repeat 20 times”, then take the MEDIAN??
- Why choose 20 times and not 10 or 30?
- How can you claim your method avoids overfitting?
- Have you tried using a validation AND test set instead?
EDIT: OP’s approach is an ensemble of learners and doesn’t touch the test set during training. Thanks for clarifying OP
Over_Intention33425 karma
Primeclue does not look at test data during training. Test data is used for evaluating performance of what it learnt. I never claimed it avoids overfitting.
AnArtistsRendition5 karma
You need a separate validation dataset for that. The test set should only be used for final evaluation.
Edit: Thanks op for the pointer! Seems good to me anyway
Over_Intention33428 karma
The test set is only used for final evaluation. To get better grasp at what is happening see the code at https://github.com/lukaszwojtow/primeclue/blob/dev/backend/primeclue-api/examples/test_training.rs and check where test_data is used.
Pumpernickelthethird1 karma
It seems like you use the test data to evaluate the accuracy of one "generation" of trees as you call it. If I understand your approach correctly, then you produce lots of random trees, prune them and pick the ones with the highest score, similar to a random forest method, right?
But since you measure the accuracy of one tree against the test score before picking the best one you're using knowledge about the test set in your final predictive model, effectively producing a highly overfit tree that cannot gerneralize whatsoever.
Over_Intention33422 karma
No, I train on training data for one minute, many generations. At the end of training I build final classifier (one tree for each class) and test it on test_data.
Pumpernickelthethird3 karma
Alright, I'm not very proficient in Rust so I may have misinterpreted your code. Still, I see a lot of problems with this approach, the use of primitive math functions as tree nodes which seems kind of a random and computationally inefficient thing to use, the lack of detail on how data is prepared, the striking similarity to decision trees and random forests, the general simplicity of the process and your explanations, etc.
I don't intend to be a naysayer without delivering any solid proof explicitly pointing out faults in your code, but I don't have the time to review your project thoroughly enough. I'd advice you to post your project to more specialized communities like /r/machinelearning in order to get some input by people proficient in the field instead of posting to /r/IAma where you won't find much technical knowledge.
Anyway, I like your dedication and creativity and hope you'll keep at it and create more interesting and non-traditional stuff in the future.
Over_Intention33422 karma
Yes, r/machinelearning was my initial choice, but they said IAma is better for self promotion. If someone else reposts it there, I will gladly answer all questions.
quohr3 karma
Okay I see, it’s an ensemble approach - my mistake.
Why do you choose 20 rerun cycles and not, for example, 50? Have you tested accuracy vs. total number of repetitions?
Why train for “one minute” each time? This would lead to different periods of training depending on the system that the end user is on (e.g, 2000 MacBook Pro vs. a supercomputer)
Over_Intention33422 karma
Re: Why 20? Median seems quite stable when I do 20 runs. Re: Why 1 minute? This is to have some reliability as to when the training ends. Usually people don't know how long 'one epoch' will take, but they know they need answer within certain 'human' time.
quohr11 karma
If you plan on publishing this, I recommend doing a formal test of repetition versus accuracy. I’d imagine it would plateau after some amount depending on whatever factors are involved (particular application, training set size, etc.)
I get what you mean, but computers don’t operate on equivalent timescales. Imagine training your method for a minute using AiMOS versus on a 1990s Macintosh haha.
Plus, the less subjective the better :)
t0b4cc021 karma
Usually people don't know how long 'one epoch' will take, but they know they need answer within certain 'human' time.
haha love you dude. you are one of the few practical people who code. i often got annoyed that epochs is the default run and you have to get out of your way in most ml systems to make it time or something else
CeladonBadger21 karma
It doesn’t really sound that different from traditional nn. Is it capable of categorisation without basically creating a new model for each class? Does it always have to combine 2 inputs in each node? Is it capable of processing different input size data? It definitely sounds like an interesting project but also like a bit of novelty. No offence, I might be missing something crucial there and I’d love to know more.
Over_Intention33421 karma
Is it capable of categorisation without basically creating a new model for each class? Well, each class has its own tree that answers either 'yes' or 'no' Does it always have to combine 2 inputs in each node? Some nodes take one argument and apply one argument function (i.e. sqrt) I’d love to know more Hence provided source code.
noelexecom16 karma
How is this different enough from traditional methods to warrant an AMA? So far what you describe sounds like 50 year old stuff.
Whatever4M12 karma
Honestly this sounds a lot like a normal neural network. To make it a question: What would you say is the fundemental difference between your work and an average neural network ?
serifmasterrace4 karma
If all the nodes are linear operations, the function that the tree is modeling can be collapsed into the form wX+b.
Then we’d just be solving least squares with extra steps right? There’s already a fast analytical solution. Or is there something else I’m missing something here?
serifmasterrace3 karma
Any combination of linear operators can be collapsed into the form wX+b.
For example, if you have a tree representing (2X[1]+ 3X[2]) * 4 + 5, it's no different from wX+b where X = matrix([X[1], X[2]]), w = [8,12], b = 5.
max(a,b) is just a constrained linear program.
e^x and x^i are nonlinear, which are operations represented by activations in neural nets.
Your tree is creating some extra linear operations that could be simplified down to greatly improve runtime. Maybe try that, but the solution space being learned won't be different from that of a neural net
Over_Intention33421 karma
Redit removed my post so I probably won't continue this thread here. However I'd like to continue conversation with you. If you feel like it, please contact me via email. Thanks
Rubscrub11 karma
Hi, so I read your github. But isnt this just vefy similar to a ann but with random functions and trees instead of activation functions and backwards propegation?
I would think that by creating random trees and hoping one performs well you're very unlikely to reach a global optimum or even a local optimum. So how does the performance and training time compare to traditional methods?
Over_Intention33422 karma
Perhaps it's similar to other approaches with a lot of "buts". Performance is better at some problems (stocks, sports betting) and worse at others (mnist fashion).
Over_Intention33421 karma
Yes. It's completely different algorithm. I don't use any ML/AI libraries as shortcuts.
quohr27 karma
Not using other libraries doesn’t have anything to do with whether what you’ve developed is or isn’t DL though.
wiwerse8 karma
What lead you down this path?
How did you get started?
How long do you think it is until it's launch ready?
How long have you been working on it?
Over_Intention33426 karma
I had enough with Java
Simple idea for processing data, then I looked for the right programming language
There won't be an official "launch". It works for me just fine.
Over a year, mainly evenings and some weekends.
Miseryy8 karma
Your description of your algorithm seems to suggest it can make decisions in logarithmic time and space, for all inputs, since you describe the input as originating from leaves that merge paths. It's essentially the reverse of an exponential tree.
How would you expect your algorithm to perform on problems that cannot be compressed to a logarithmic number of conjunctive statements/functions? I.e. np hard problems
Over_Intention33425 karma
Can you give an example of such problem with example data? I will take a look
GuyARoss4 karma
subset sum could be one- so given a set {1,23,4,51,21} find n numbers that could produce the sum of a given value OR as close as possible; so this algorithm needs to take into account a precision value as well.
ive tried solving this optimization with a supervised approach before with pretty poor results, so im also curious what your algorithm would yield.
Over_Intention33420 karma
Primeclue can do label classification. I'm not sure what label should be in your example. Can you elaborate?
Over_Intention33427 karma
It depends, for example decision trees do not require calculus or any such.
Over_Intention33423 karma
Depends on what you're trying, but at the beginning Pythons seems like a save choice.
koalefant3 karma
What does primeclue think about GameStop? Should I buy more or just hold on to the ones I have 🙌
Over_Intention33426 karma
I've never run GameStop values through this software so I don't know.
Over_Intention33421 karma
How does primeclue determine how to approximate the solution space? What do you mean? How do you ensure that your approach does not overfit? That's unsolved, itsn't it? Primeclue splits training data into two parts and only one part is used for actual training (something like n-fold validation) Under what circumstances do you believe primeclue would offer an advantage .. ? There is an example called 'test_training'. For some reason TensorFlow fails it miserably but Primeclu gives like 60+ % correctness. Also, it seems like predicting stock market runs works better with Primeclue.
Over_Intention33428 karma
If you have to ask I would say python. Simple, has TensorFlow and others.
bsnshdbsb2 karma
Complete noob here. How do I even start working on this field? What should be my path or approach? Should I learn every bit of ML or master a specific. Appreciate any feedback.
Over_Intention33421 karma
Learn a bit of Python and then do some courses, like TensorFlow on Coursera.
diamondketo2 karma
How are the function nodes in the trees built? Does the user specifies them based on their model or does your algorithm learn to choose the best functions?
Are the non-data leaf nodes free parameters?
- If yes, how does your algorithm optimize and estimate the best parameter? I understand your algorithm prunes the tree; how does free parameter and pruning come together; do you optimize the free parameter first then prune?
- If no, how does your algorithm choose the best parameter (e.g., why
e
, whypi
?)
retrorectum1 karma
Thanks for doing this and it sounds interesting. I have couple of questions: 1. What's the false positive rate you are going for to be able to use it? 2. How much data will be used 3. What are some cases you are personally worried about to be able to have a good success rate on it?
Over_Intention33420 karma
- Depends on the problem.
- It can process ten of thousands of rows and still have reasonable results reasonably quickly.
- Hmmm... It's not so good on MNIST fashion data set (around 85% accuracy). Probably because there is so many points to look at.
jpropaganda1 karma
Have you heard of conducto? Do you think that would increase your pipeline processing? www.conducto.com
umop_apisdn1 karma
Do you have to define the complete architecture - ie size of the binary tree and the function at each node - beforehand, or are these learnt as well?
Over_Intention33421 karma
User does not need to define architecture, although there is some control over things like how often a tree creates a branch, how deep initial trees are and so on.
Kyloman1 karma
What advice to you have for people wanting to learn how to create their own Artifical Intelligence projects?
I am decently adept at coding, but it's such a huge and complicated topic I have no idea where to start.
diamondketo1 karma
Why don't you write a technical paper in a statistics journal? Get peer-reviewed by a career statistician.
Over_Intention33423 karma
I'm not interested in scientific career, I'm mainly a programmer.
diamondketo2 karma
Are you not interested in validating whether your algorithm is (1) new and (2) works better than neural network and classification decision trees?
Over_Intention33424 karma
Neither. I'm only interested to make work better and be useful to me and others.
mvsopen1 karma
Where is AI and ML heading? And when will we be forced to adopt a code of ethics for future AI development?
Over_Intention33425 karma
Code of ethics for AI my seem like artificial brakes on what it's capable of, so I hope ethics must be on human side during application of AI results.
Edit: What I meant is: I hope we won't have to hard code ethics into AI, we as humans must be more careful how we apply AI.
thekillerdonut2 karma
It has already been demonstrated that people will not responsibly apply machine learning AI (some examples listed here), either intentionally or because they aren't aware that it isn't a perfectly accurate system. In light of this, as the person creating this type of technology, do you feel an ethical responsibility to apply ethics while you still have control over it?
I realize this is a fairly pointed question. I ask because I was very interested in going into AI research while I was in college, but the more I learned what people did with this type of technology, the more contributing to it deeply violated my own code of ethics.
LaChicaGo1 karma
What is your favourite programming language? How do you feel about DataRobot and other "black box" programs?
eyegazer4441 karma
Have you heard of Replika? How is your algorithm better or different to that?
ex_D0T41 karma
Hello, I'm not very familiar with things like this. Is there anything you can suggest to get started with coding? I see a lot of courses but I would like to hear from someone who codes. I've been interested but I can't find something to start with without feeling like I'm doing something wrong.
Over_Intention33422 karma
Nothing better than actually getting started. There are plenty of manuals for Python for example.
Over_Intention33422 karma
Sorry, I've learnt Python as my fifth or sixth language so I didn't use a manual. But it seems like this:
is ok. Good luck!
thenielser1 karma
Are you planning on writing an actual research paper instead of a github page?
Would be nice to see a clear and concise paper explaining the differences and theoretical background.
Over_Intention33421 karma
No such plans. Mainly because code changes often, any paper would be outdated before it's finished.
Over_Intention33425 karma
Because computers are soulless, humans must do more to make up for it.
dingoateyobaby0 karma
People misuse the words AI on things that are not truely AI. I believe if AI doesn't gather and manipulate the data by itself than it's not an AI. Is your project a true AI or simply a "program"?
Over_Intention33421 karma
It won't gather data for you, you need to feed it with data first. So by your definition, it's just a program.
PolarisLodestar-1 karma
In the midst of crypto/blockchain mania, what do you think of GNY? It’s the first decentralized machine learning system. They’ve been in development for over 2 years and are launching the Mainnet this week!
thesearcherofgold-1 karma
What kind applications do you aim this AI to fit in? Is a human-like virtual girlfriend within the realm of possibilities?
kieronhix-2 karma
Do you think we should be cautious of a potential AI uprising like Elon Musk claims he’s afraid of?
Internal-Lifeguard51-6 karma
Do you think your soul has entered your program? I know RNA and other genetic material transfers “memories” through generations. Do you think your AI could unknowingly be channeling your own being?
lowkey-goddess102 karma
Former ML engineer here. How does this differentiate from traditional ML approaches like decision trees? If it differentiates a lot, then what approach does it most resemble?
Second, can it handle large, multidimensional datasets with complex relationships, similar to deep learning approaches? Does it have forward/back propagation or some training mechanism?
Lastly, and more of a comment, I feel like AI is a misnomer for what's actually happening in the field. It automates a particular decision in a limited domain, and leverages statistical techniques and usually concepts in linear algebra and calculus to garner sometimes useful results, especially when the computing is distributed.
God, I must sound pretentious in my last paragraph. I'm just a tad tired of hearing the term AI thrown around and it misleading folks. I like people who build stuff, and this seems interesting.
View HistoryShare Link