Difference between revisions of "Object Recognition with Deep Boltzmann Machines"

From AIRWiki
Jump to: navigation, search
m (HOWTO add a new project to the AIRWiki)
m (FrancescoVisin moved page Object Recognition with Deep Belief Networks to Object Recognition with Deep Boltzmann Machines without leaving a redirect)
 
(26 intermediate revisions by 2 users not shown)
Line 1: Line 1:
''This page explains how the creation and modification of project pages is done. [[SMW_Project_Workflow | See here]] for the complete lifecycle of a project within the AIRWiki.''
+
== Intro ==
 +
This project aims to exploit the ability of Deep Boltzmann machines (DBM) to classify (and generate) multiclass objects. Initially, they will be used to classify road signs with the purpose to help the navigation of an hypotetical autonomous car. Since the initial results on the classification tasks of road signs using DBM are very good, we are pretty confident about the quality of the project. After that, we will consider the possibility to extend the task to other domains.{{Project | title=Object recognition with DBMs | short_descr= Deep Boltzmann machines for classification tasks | coordinator=MatteoMatteucci | tutor=MatteoMatteucci;FrancescoVisin | students=CarloDEramo | resarea=Robotics | restopic=Machine Learning | start=2014/03/1 | level=Ms | status=Active}}
  
== HOWTO add a new project to the AIRWiki ==
+
== Deep learning and Boltzmann machines ==
#''Become an AIRWiki user.'' To modify the wiki (including the creation of new pages), you must be one or AIRWiki's [[registered users]]. [[SMW_Project_Workflow#Student_Registration]] explains what you have to do.
+
'''Deep learning''' is a set of algorithms in machine learning that attempt to model high-level abstractions in data by using architectures composed of multiple non-linear transformations.  
#''Create a page for the project in the AIRWiki.'' Each project must have an associated page. If the project you are going to work on hasn't already one, you have to create it by following the procedure described in [[SMW_Project_Workflow#Project_Instantiation]]. It's a good idea to ask your Tutor for the name of the new page.
+
We will work on Boltzmann machines, an energy-based model which has been proven to perform very well in image and speech recognition tasks. A Boltzmann machines is composed of visible units representing the inputs of the network provided by the dataset and hidden units representing the feature detectors of the net. In a general fully connected Boltzmann machine each pair of unit is connected with a symmetric connection with a certain weights. We will focus on DBMs that are a particular type of Boltzmann machines built by stacking several layers of RBM on top of each other in a proper way. A RBM is known as restricted Boltzmann machines, a Boltzmann machines with no intra-layer connections. We'll study also deep belief network (DBN), a hybrid model between a neural network with discriminative and generative connections and a DBM, which has only symmetric connections.  
# ''Provide basic information about your project.'' The new page you just created already includes an automatically-generated frame on the right upper corner, used to show the basic data about your project. If you used the [[SMW_Project_Workflow#Form_3|form]] to create the page, you have already input such data. Anyway, you can input or edit such data at any time by clicking the "edit with form" tab on the top of the page.
+
We will use ''Pylearn2'' framework which offers training procedures of deep neural networks. During the project we will go deep in the analysis of this kind of networks studying their potentiality and flexibility; we'll try different configuration of networks in order to obtain the good performances we're looking for.
#''Describe your project'' by editing the project's page and adding information about it (see below for directions).
+
 
+
As your work on the project progresses, don't forget to '''keep your project's page up-to-date''' by editing it every time you have new material. See below to learn how.
+
 
+
== HOWTO edit a project page ==
+
===Read this first!===
+
The AIRWiki is divided into two parts, called [[Layers]]: a ''public layer'' -readable by anyone on the internet- and a ''private layer'' -only readable by [[registered users]]. Registered users can modify both layers of AIRWiki.
+
 
+
Please note that everything on the public layer of AIRWiki must be written ''in English'' (you can use any language to write on the private layer).
+
 
+
If you publish something on the public layer, all the world will see it. And you have '''full personal responsibility''' for what you publish (see the [[General disclaimer]]).
+
 
+
You should not be too worried by the possibility of publishing something that doesn't make sense scientifically or technically: all of us make mistakes. But there are types of mistakes which mean ''trouble'', such as publishing copyrighted material. See [[Registered users#Warnings | here]] for further information.
+
 
+
===OK, I know what I'm doing. How do I edit a page?===
+
Editing pages of the AIRWiki requires writing or changing the source code of the wiki. You don't know how the wiki code works? Don't worry, it's very easy to learn. Take a look to the [http://www.mediawiki.org/wiki/Help:Contents MediaWiki Help]. [[http://www.mediawiki.org/wiki/Help:Formatting | This]] is one of the most useful help pages.
+
 
+
A good starting point is to look around the AIRWiki (or Wikipedia... it's built with the same system!) and clicking 'edit' here and there to see what the source code of the pages look like (just don't save any modifications!). If you see something useful, you can copy the code and paste it into your page.
+
 
+
There are several ways to edit a page, for instance to add new information:
+
* to edit the ''private layer'' of the page, just click on the "discussion" tab on the top of the page and, in the editing page that opens, change the source code.
+
* to edit the ''basic information'' shown in the frame on top right of a project page, you can choose a simplified method by clicking the "edit with form" tab on the top of the page. Such information belong to the ''public layer'' of the page.
+
* to have full access to the ''public layer'' of the page (including the basic information), click the 'edit' tab on the top of the page.
+
 
+
Tip: when you are editing the public layer of a page SomePage, the title of the web page you are looking at is "Editing SomePage". If you are editing the private layer the title is "Editing Talk:SomePage" instead. For additional information, see [[Layers]].
+
 
+
Once you have performed your editing actions, it's a ''very good idea'' to check the page before saving. You can do this by clicking the 'Show preview' button and looking at ALL the page (including the parts that you didn't modify... or ''thought'' you didn't :-) ). If you don't like what you see, press the 'back' button of your browser to exit from the editing page without saving. If, instead, all is ok, click the 'Save page' button at the bottom of the page to update the AIRWiki.
+
 
+
'''Important''': don't change the Semantic MediaWiki code (the lines between <nowiki>"{{" and "}}"</nowiki> on top of the wiki code) of any page if you don't know what you are doing!
+
 
+
== HOWTO use a project page (guidelines) ==
+
You should use your project's page to store ANY useful information about the project, as soon as it is available (results, images, data, links, decisions, roadmaps, what you have done today, descriptions of things gone well or of errors made, warnings, and pretty much everything). If such information is already sufficiently well-proven and well-formatted to be put on the public layer (accessible through the 'edit' tab), you should directly put it there. If it is not, you should put the information on the private layer of the page (accessible through the 'discussion' tab); then prepare it for publication and finally move it to the public layer as soon as possible.
+
 
+
A project's page should include all the scientific and technical information about the project. Feel free to insert titles and sections as needed. Remember that [http://www.mediawiki.org/wiki/Help:Contents here] you can find help about wiki syntax.
+
 
+
Just to give you some ideas:
+
* state of the art;
+
* preliminary studies and sketches;
+
* design notes and guidelines;
+
* link to project documents and files (you can upload them using the [[Special:Upload]] page);
+
* description and results of experiments;
+
* photos and videos (they must have been uploaded with [[Special:Upload]] before you can insert them into this page);
+
* link to source code of the software written for the project (you can upload it with [[Special:Upload]]);
+
* advice about the configuration and the use of hardware and software;
+
* useful Internet links;
+
* anything else that you think is useful to describe the project or could help people who will work on it in the future. Think about what ''you'' would have liked to find clearly explained when you started your work, instead of discovering it all by yourself the hard way. (By the way, if some of those missing information belong to other pages of this wiki, please update those pages: future users will be grateful.)
+
 
+
Some notes:
+
* If you try to keep the contents of the private layer of your project's page reasonably well organized, the migration to the public layer will be easy (cut-and-paste).
+
* For the same reason, it's a good idea if you write the things that will be made public in English, even if for the time being they are on the private layer.
+
* It is especially useful if you include a ''project diary'' into the private layer of your project's page: a very short description of everything you do, why you did it, and what resulted from it. This will be useful for you (when you will have to write a thesis or relation), and invaluable for those who will have to take your work further!
+
* For Tutors, the AIRWiki is the main source of information about how projects are going, so they look at project pages (public and private parts) often and with attention ;-)
+

Latest revision as of 16:09, 3 July 2014

Intro

This project aims to exploit the ability of Deep Boltzmann machines (DBM) to classify (and generate) multiclass objects. Initially, they will be used to classify road signs with the purpose to help the navigation of an hypotetical autonomous car. Since the initial results on the classification tasks of road signs using DBM are very good, we are pretty confident about the quality of the project. After that, we will consider the possibility to extend the task to other domains.

Object recognition with DBMs
Short Description: Deep Boltzmann machines for classification tasks
Coordinator: MatteoMatteucci (matteo.matteucci@polimi.it)
Tutor: MatteoMatteucci (matteo.matteucci@polimi.it), FrancescoVisin (visin@elet.polimi.it)
Collaborator:
Students: CarloDEramo (carlo.deramo@polimi.it)
Research Area: Robotics
Research Topic: Machine Learning
Start: 2014/03/1
Status: Active
Level: Ms

Deep learning and Boltzmann machines

Deep learning is a set of algorithms in machine learning that attempt to model high-level abstractions in data by using architectures composed of multiple non-linear transformations. We will work on Boltzmann machines, an energy-based model which has been proven to perform very well in image and speech recognition tasks. A Boltzmann machines is composed of visible units representing the inputs of the network provided by the dataset and hidden units representing the feature detectors of the net. In a general fully connected Boltzmann machine each pair of unit is connected with a symmetric connection with a certain weights. We will focus on DBMs that are a particular type of Boltzmann machines built by stacking several layers of RBM on top of each other in a proper way. A RBM is known as restricted Boltzmann machines, a Boltzmann machines with no intra-layer connections. We'll study also deep belief network (DBN), a hybrid model between a neural network with discriminative and generative connections and a DBM, which has only symmetric connections. We will use Pylearn2 framework which offers training procedures of deep neural networks. During the project we will go deep in the analysis of this kind of networks studying their potentiality and flexibility; we'll try different configuration of networks in order to obtain the good performances we're looking for.