As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I would like to create a system for sound recognition. The system once being trained should be capable of recognition of similar sounds. E.g. I have few sounds such as shower, flushing toilet, fire alarm. I would install the system in a flat and train it with those sounds. Then the system should be able to recognize these sounds when installed in different flats where the sound of a shower, flushing toilet and fire alarm has a slightly different spectrum. Is that possible? What techniques could be used? I was thinking about speech recognition techniques such as hidden markov models, nerual networks?
You are looking for pattern recognition algorithms. For example, I believe PCA can be a solution. You first extract the spectrum signature of the training samples. Then PCA will classify a new sound to a closest known sample.
If you are interested in doing this by Neural networks , i will suggest that you first read literature on Neural Networks. Also , some helpful notes on Speech Recognition by Neural networks can be found here
Basically this is the user guide for the software that can be downloaded at this link here
I have not used the software myself, but i believe they provide the source code too.
Hope that helps.
Edit : Also added some source code from Code Project that implements backpropogation algorithm on Neural networks . Have a look here
FFT is your friend. This article will give you some tracks.
In addition to the Pattern Recognition/Machine learning solutions mentioned, you should probably look at Dynamic Time Warping, too.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
What areas of math are prerequisite for learning algorithms?
I guess it depends a lot about the kind of algorithm you want to use and how deeply you want to understand them.
The understand of the usual basic data structures needs almost no math background.
Most of the graphical algorithms requires knowledge of trigonometry and spatial geometry.
Algorithms about physics engine are easier to understand if you have some physics basis
If you want your program to help you to take decisions, you might need to study operational research which is a really huge sub-fields of math which includes graph theory, game theory, optimisation (which then includes analysis and linera albegra)
In any case, having a logic/mathematical mind obviously helps a lot for the understanding and to check/prove that your code can/cannot work.
If you're talking about simple programming you don't really need a lot of math. At this level, your problem solving and logic abilities are more important, but it's necessary that you get instructed in the basics of problem solving by using flow charts and process planing.
In the other side, math is known to improve your abilities and in some areas you would need to know math to achieve the expected results. For example, to create an animation engine knowing linear algebra is more than useful, so its physics.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
(edited)
For anyone interested in music and artificial intelligence:
Do you know of any music-composing algorithm that produces really interesting, fun or intelligent music? And not something sounding like a random noise.
(Previous, too broad question:)
What are some state of the art (very good, non-boring) music composition algorithms, software, researches that you have heard of?
Feel free to post any interesting link about this subject.
P.S. I don't mean programs that assist you at playing, but primarily anything that can compose melody by itself (or with little assistance).
OR: Analyses existing music pieces and tells how much it likes them :)
One of the leading researchers in algorithmic composition is David Cope of the University of California, Santa Cruz. His approach emphasizes machine learning, the results of which were impressively demonstrated in a 2006 performance.
http://www.wired.com/wired/archive/14.09/posts.html?pg=3
A good place to start would be with his aptly named book, The Algorithmic Composer, which covers much of his approach and provides most of the software he has written for his work.
http://books.google.com/books?id=rFGH07I2KTcC
Though not specifically algorithmic composition another invaluable resource is David Temperley's book, The Cognition of Basic Musical Structures, which provides quite a few models begging to be implemented.
http://books.google.com/books?id=IDoLEvTQuewC
Those two alone a pretty time consuming for anyone with an interest in that they are concrete enough that experimenting along the way is inevitable.
Hope that helps.
One possibility would be to use a hidden Markov model: feed it samples of music, and have it generate "similar" music.
One example: http://www.cogs.susx.ac.uk/users/christ/talks/music-making-with-HiMMs.pdf
I did something similar with Shakespeare's sonnets. The results were ... interesting. Amusing, at times.
There's a search engine that lets you whistle a tune and that searches for music alike. I'm not sure whether http://www.midomi.com/ is what I originally heard of. You can for example play the music and see if it finds what you intended.
A fellow student of me created a score composer for his Master's project. The input was humming or whistling and through FFT, music theory and combinatorial algorithms (I'm not sure whether it was simulated annealing). I'm not sure how it was related, but the project had something to do with the http://www.wikifonia.org/ project.
(edit)
I heard a talk from someone who worked at http://last.fm. They analyze music (machine learning) as one of the ways to overcome the cold start problem in their recommender system. They try to predict how much a new song resembles other songs.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I will be teaching only one lecture on basic Prolog to students with little to no experience in programming. I'd like them to see that programming and Prolog can be used in the real world, perhaps even to do cool things.
I have looked at this and this threads, but I cannot find anything that is visually appealing that I can show them when we wrap up the lecture.
Do you have any suggestions for cool applications that use Prolog? I'm especially looking for something that can be shown as a video or slideshow.
If what you want is to highlight the uses of prolog and use audio-visual media merely for presentation purposes, combining the following 2 links might do it:
Natural language processing with prolog in the IBM Watson system
IBM's Watson supercomputer destroys all humans in Jeopardy
Dynalearn is implemented in Prolog and has animations.
See:
http://personnel.univ-reunion.fr/fred/Enseignement/Prolog/index.html
under "La librairie clpfd", there are links to 3 finite domain constraint animations (N-Queens, Sudoku, Knight Tour) that are used in this class.
InFlow is written in Prolog. You may browse through the examples and / or contact the author for details. VisiRule might also help.
Disclaimer: I have not used either InFlow or VisiRule, but I do use WIN-Prolog which is the environment used for both programs.
+1 for Visirule. It is, as far as I can tell (and I've researched this topic quite a lot) a unique visual programming tool (I don't know of any other visual tool that is easily reduced to a turing-complete language). I have implemented a trouble-shooting website with it along with various other solutions. Highly recommended- version 5 coming out soon too.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I have been trying to grasp the basics of Support Vector Machines, and downloaded and read many online articles. But still am not able to grasp it.
I would like to know, if there are some
nice tutorial
sample code which can be used for understanding
or something, that you can think of, and that will enable me to learn SVM Basics easily.
PS: I somehow managed to learn PCA (Principal Component Analysis).
BTW, you guys would have guessed that I am working on Machine Learning.
The standard recommendation for a tutorial in SVMs is A Tutorial on Support Vector Machines for Pattern Recognition by Christopher Burges. Another good place to learn about SVMs is the Machine Learning Course at Stanford (SVMs are covered in lectures 6-8). Both these are quite theoretical and heavy on the maths.
As for source code; SVMLight, libsvm and TinySVM are all open-source, but the code is not very easy to follow. I haven't looked at each of them very closely, but the source for TinySVM is probably the is easiest to understand. There is also a pseudo-code implementation of the SMO algorithm in this paper.
This is a very good beginner's tutorial on SVM:
SVM explained
I always thought StompChicken's recommended tutorial was a bit confusing in the way that they jump right into talking about bounds and VC statistics and trying to find the optimal machine and such. It's good if you already understand the basics, though.
Lots of video lectures on SVM:
http://videolectures.net/Top/Computer_Science/Machine_Learning/Kernel_Methods/Support_Vector_Machines/
I found the one by Colin Campbell to be very useful.
A practical guide to SVM classification for libsvm
PyML Tutorial for PyML
I think 1 is practical for use, 3 is clear for understanding.
Assuming you know the basics (eg max margin classifiers, constructing a kernel), solve Problem Set 2 (handout #5) of that stanford machine learning course. There's answer keys & he holds your hand through the whole process. Use Lecture notes 3 & video #7-8 as references.
If you don't know the basics, watch earlier videos.
I would grab a copy of R, install the e1071 package which nicely wraps libsvm, and try to get good results on your favorite data sets.
If you just figured out PCA, it might be informative to look at data with many more predictors than cases (e.g., microarray gene expression profiles, time series, spectra from analytical chemistry, etc.) and compare linear regression on the PCA'd predictors with SVM on the raw predictors.
There are a lot of great references in the other answers, but I think there's value in playing around with the black box before you read what's inside.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
After reading an introductory book on algorithms and data structures I am now craving for examples on how to combine these for optimal efficiency.
For instance, you can combine hashmaps with specific sorting algorithms to create a simple text search program.
Is there any good book or online resource for this?
(I have already ordered Programming Pearls, which looks great, but I want to learn more about this.)
Any good algorithms book is going to have a chapter or two on the importance of choosing the right data structures. I recommend the following books:
Algorithms in a Nutshell
Introduction to Algorithms
The Algorithm Design Manual
I also recommend you check out the Stony Brook Algorithm Repository, particularly the lectures.
Go to these websites and try out the problems:
acm.uva.es
topcoder.com/tc
SPOJ
Codechef
They have problems to satisfy you for at least the next 3-4 years.
Good book (worked for me):
Data Structures and Algorithm Analysis in Java (Second Edition)
Published by Addison-Wesley, 2007
ISBN: 0-321-37013-9
You're basically asking for what a programmer does all day: Flow data through certain algorithms in such a way that you get the result you want in a timely manner. I suggest that you download Python and work through the tutorials. Python allows you to test your ideas very quickly.
To answer my own question, it seems I just have to read up on a lot of algorithms and real world use cases.
As for books, I've ordered
Programming Pearls to read about how one solves real world problems using a combination of algorithms.
The Algorithm Design Manual by Steven Skiena, which contains a catalogue of alrogithms and war stories on how real world problems were solved.
http://www.amazon.com/Structure-Interpretation-Computer-Programs-Second/dp/0070004846/ref=sr_1_1?ie=UTF8&qid=1301994609&sr=8-1
I can warmly recommend this book. It is rather abstract with examples in Scheme (a Lisp dialect) but it will really change the way you think about programs, data and algorithms.