Advertisement

How to start learning machine learning

Started by March 27, 2018 01:36 PM
4 comments, last by doom_frog 6 years, 7 months ago

Hey guys,

I'm starting to get really interested in A.I and especially machine learning. However I can't find a good place to start. I have looked on the internet for tutorials but they are all useless to begginers because they all end up thinking that you have a lot of knowledge about machine learning already and that you know what you are doing. But for me (an absolute beginner) I find it hard to understand what they are saying in the tutorials.

I have tried to make my own A.I by just playing around with some maths and the basics of machine learning that I already know like neurons and weights and baias. For the most part my little mini projects work but they are not proper A.I.

Could anyone please recommend me some tutorials that I could watch for begginers. My main programming language is python however I am starting to learn java and c#. I have already looked at bigNeuralNetwork's tutorial, at the beginning it was great and I understood everything but then halfway through I didn't know what was going on.

Hello Doom_Frog, unfortunately this is a forum for AI in games and we don't really do much in the way of machine learning.

You might want to try somewhere like Kaggle - https://www.kaggle.com/

Or take the machine learning course on Coursera - https://www.coursera.org/learn/machine-learning

Or this guide: http://pythonforengineers.com/machine-learning-for-complete-beginners/

Be aware that machine learning IS hard! It's not expected that a total beginner will be able to jump into machine learning any more than it's expected that someone will be able to jump into theoretical physics. Expect to have to keep switching over to Wikipedia to look up terms, and expect that sometimes you will get a bit lost and might have to come back later to something when you understand it better.

Advertisement
2 minutes ago, Kylotan said:

Hello Doom_Frog, unfortunately this is a forum for AI in games and we don't really do much in the way of machine learning.

You might want to try somewhere like Kaggle - https://www.kaggle.com/

Or take the machine learning course on Coursera - https://www.coursera.org/learn/machine-learning

Or this guide: http://pythonforengineers.com/machine-learning-for-complete-beginners/

Be aware that machine learning IS hard! It's not expected that a total beginner will be able to jump into machine learning any more than it's expected that someone will be able to jump into theoretical physics. Expect to have to keep switching over to Wikipedia to look up terms, and expect that sometimes you will get a bit lost and might have to come back later to something when you understand it better.

Oh ok thx for telling me that, however I am also interested in game a.i because I am also interested in game development so I'm trying to learn both. And I do realize that machine learning isn't for beginners but you always have to start somewhere. And I have been trying to learn machine learning for over 5 months and I still don't understand a thing so I know that it's definitely hard to learn. Also thx for the links I will check them out

Machine Learning is a large field, and often gets mixed in with Deep Learning (Which is a subset of the field). Machine Learning really is open to anyone who can code, and has a basic understanding of linear algebra (though a more fundamental understanding doesn't hurt).

It all comes down to the problem you are trying to solve, the model that best represents that problem, and the entailing solution, and how much visibility you want into the process of that algorithm.

There are two general classes of Machine Learning that algorithms typically fall into. Supervised Learning, and Unsupervised learning. Supervised learning requires that you present the algorithm with labeled training examples for the feature extraction, and processing. Unsupervised learning involves no training data, but an unmarked data set, and letting the algorithm attempt to cluster similarities in the dataset together.

Two common algorithms that are used heavily in Machine Learning (Under the context of supervised learning) is Naive Bayes, and ID3/C4.5. The former being quite good at giving classification results with minimum training data, and excels at generalization, and doesn't suffer as much to over-fitting (Too much correlation with your training data entailing losing the ability to generalize effectively about new data). One draw back is the naive part due to variables in a feature set having independence from one another. This normally would pop up in a dataset where features are highly correlated by nature, though, Naive Bayes can still give good results in any case.

ID3/C4.5 are decision trees. You know the kind management bring up in conferences? These are admittedly a bit different then that, but follow the same general logic of: If x then this, if y then this. Yeah, they can also be considered under the machine learning umbrella due to how they are built from using labeled training data, and distilling said data with entropy formulas to find optimal splits in the tree. One common issue for most decision trees however, is over-fitting your training data. (The process of which your tree has become perfect at classifying your training data, but is unable to classify/or generalize new data as the "progression-ary" logic of stepping down the trees nodes/Selected features has become too correlated to the initial training data). This problem is normally combated with keeping a subset of the training data on hand, and running it against the tree as if it were unseen data to find nodes that you can potentially prune to give better generalization results.

The cool thing about both of these algorithms is that I feel even a motivated beginner could homegrow/code these out without substantial help. However, there are all sorts of other algorithms, random forests, SVMs, linear regression, and the list goes on, and on. 

ANNs usually fall into the deep-learning categories, and excel in certain tasks (image detection). However, using them for Sentiment Analysis, or Text classification is usually a bit much when a Bag Of Words/Bayesian Approach can give similar results, with similar accuracy, less probability of over-fitting, less black-boxish (though arguably multiplying thousands of probabilities together when computing the algo isn't much better xD) and easier in general to code/tweak.  

I'd recommend checking this out as well. It gives a good, non mathematical perspective of a typical bayesian classifier. It's beginner oriented, and the author articulates himself well enough that what he covers is easily transferable to code. 

https://monkeylearn.com/blog/practical-explanation-naive-bayes-classifier/

7 hours ago, markypooch said:

Machine Learning is a large field, and often gets mixed in with Deep Learning (Which is a subset of the field). Machine Learning really is open to anyone who can code, and has a basic understanding of linear algebra (though a more fundamental understanding doesn't hurt).

It all comes down to the problem you are trying to solve, the model that best represents that problem, and the entailing solution, and how much visibility you want into the process of that algorithm.

There are two general classes of Machine Learning that algorithms typically fall into. Supervised Learning, and Unsupervised learning. Supervised learning requires that you present the algorithm with labeled training examples for the feature extraction, and processing. Unsupervised learning involves no training data, but an unmarked data set, and letting the algorithm attempt to cluster similarities in the dataset together.

Two common algorithms that are used heavily in Machine Learning (Under the context of supervised learning) is Naive Bayes, and ID3/C4.5. The former being quite good at giving classification results with minimum training data, and excels at generalization, and doesn't suffer as much to over-fitting (Too much correlation with your training data entailing losing the ability to generalize effectively about new data). One draw back is the naive part due to variables in a feature set having independence from one another. This normally would pop up in a dataset where features are highly correlated by nature, though, Naive Bayes can still give good results in any case.

ID3/C4.5 are decision trees. You know the kind management bring up in conferences? These are admittedly a bit different then that, but follow the same general logic of: If x then this, if y then this. Yeah, they can also be considered under the machine learning umbrella due to how they are built from using labeled training data, and distilling said data with entropy formulas to find optimal splits in the tree. One common issue for most decision trees however, is over-fitting your training data. (The process of which your tree has become perfect at classifying your training data, but is unable to classify/or generalize new data as the "progression-ary" logic of stepping down the trees nodes/Selected features has become too correlated to the initial training data). This problem is normally combated with keeping a subset of the training data on hand, and running it against the tree as if it were unseen data to find nodes that you can potentially prune to give better generalization results.

The cool thing about both of these algorithms is that I feel even a motivated beginner could homegrow/code these out without substantial help. However, there are all sorts of other algorithms, random forests, SVMs, linear regression, and the list goes on, and on. 

ANNs usually fall into the deep-learning categories, and excel in certain tasks (image detection). However, using them for Sentiment Analysis, or Text classification is usually a bit much when a Bag Of Words/Bayesian Approach can give similar results, with similar accuracy, less probability of over-fitting, less black-boxish (though arguably multiplying thousands of probabilities together when computing the algo isn't much better xD) myand easier in general to code/tweak.  

I'd recommend checking this out as well. It gives a good, non mathematical perspective of a typical bayesian classifier. It's beginner oriented, and the author articulates himself well enough that what he covers is easily transferable to code. 

https://monkeylearn.com/blog/practical-explanation-naive-bayes-classifier/

Thank you this really helps and I have learn a lot from your message. I think I will try and learn more about naive bayes since that seems to fit in more with what I want to do. Also thx for the link I will definitely check it out

This topic is closed to new replies.

Advertisement