Machine learning approaches and algorithms

Data mining

Clustering

Neural networks

  • Theory of neural networks

    The best way to understand neural networks is to stop thinking of them as intelligent, but rather as function approximators. So when you give a neural network n inputs and expect m outputs, you are really just trying to approximate some unknown function f(Rn) → Rm. Now, the nice thing about real world functions is that they tend not to be too pathological. They tend to be at least mostly continuous, they vary more or less smoothly from input to input, etc. And if this is true, the function tends to have a 'nice' approximation. The underlying assumption of neural networks is that if I take a 'random' function, and sort of push it towards my ideal function enough times in enough places, it will eventually converge to my ideal function. And with real world functions being mostly smooth (plus some noise term), this process is very likely to work in real world situations. What you refer to as 'yielding intelligence' is really just the slow process of the original randomness being replaced by something more closely resembling the ideal function. I will comment that natural intelligences do appear to store data in very logical ways; the human brain for instance has many highly specialized areas. So, as with human brains, highly trained neural networks are not likely to store data chaotically, but rather in a highly ordered way whose ordering happened to be defined by more or less random events. Taylor White

    I think you are asking how do the ANN perform the approximation and what is happening within the neural networks to yield the result? If I'm right, then I might have an initial response for you. In one of my course on machine learning, our teacher explained the NN's with an analogy to SVM kernels. The idea of the NN is to transform the data points into a space that will have better separation properties. Each layer of connections is a new transformation that will improve the separation properties of the space. That is how you can approximation the separation function that Taylor spoke about. The next phrases are mine own interpretation, but I'm far from being an expert in NN, so feel free to refute it :) : The more layer's you have, the better the transformation MAY be, however the more chances of overlearning you have! Cédric Penet

    Basically, it is multiple parallel interconnected logistic regression. So we have a non-linear equation with a large number of variables that, as was said above, is a universal function approximator, it maps inputs to outputs, based on training examples learned during the supervised training. Now the biological neural network, that is a very different thing. It is far more complex, with over 35 neurotransmitter chemicals, and much that “modern science” just does not understand. Brad Morantz PhD

Conferences & courses

Tools & Libraries

  • Shark Machine Learning Library – C++ library with support for regression and classification tasks (including leaner method, neural networks, kernel methods, support vector machines, …), solving discrete and continuous optimization problems, multi objective optimization evolutionary algorithms.
  • WEKA – a collection of visualization tools and algorithms for data analysis and predictive modelling written in Java.
  • Carrot2 – Open Source Search Results Clustering Engine.
  • Apache Mahout – Apache project to produce free implementations of distributed machine learning algorithms on the Hadoop platform.
  • MALLET – a Java-based package for statistical natural language processing, document classification, clustering, topic modelling, information extraction, and other…
  • Java-ML – a collection of machine learning algorithms (clustering, classification, cross validation, …)
  • OpenCV includes image processing, video analysis, feature detection, statistical models, bayes classifier, SVM, decision trees, neural networks, clustering, …
  • SMILE is a fully portable library of C++ classes implementing graphical decision-theoretic methods, such as Bayesian networks and influence diagrams.
  • Top Machine Learning Projects for Julia – a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments.
programming/machine_learning.txt · Last modified: 2011/11/25 15:18 by dmitry
 
 
Recent changes RSS feed Driven by DokuWiki