Login Form






Lost Password?
No account yet? Register
Freelancer Jobs arrow Freelancer Jobs - Archive 2007
JobId: #1400494

Create Matlab GUI For Running and Exploring Neural Network

Categories: Microsoft Windows,Requirements,Operating Systems / Platforms,Software Related (Includes Websites),Matlab
Posted By: HalP  (20 ratings)
Source: Rent-a-coder
Job viewed: 113 times
Bids Placed: 1
Start Date: 2010-04-30 10:13:01
End Date: 2010-05-14 00:43:09
Time Remaining:
Deadline: Friday May 21, 2010 10:45:45 AM EDT (21 days after 4/30/2010 10:45:45 AM)
Current Phase: All work (or part of the work) was completed by worker. Waiting for buyer acceptance.
Max Accepted Bid: Bidding is closed
Project Type:
Bid Type: Open Auction
Brief Summary:

The task here is to take some matlab source code (freely distributed by its creators) that implements a specific kind of neural network learning algorithm and modify the code to allow a user to conveniently use this code to train up networks with various different sets of inputs (image files) and to explore the networks produced by training. The learning algorithm is referred to as a “Deep Belief Network” (see references below). It carries out an unsupervised learning process which takes large numbers of input files (typically, images) and builds a hierarchy of feature detectors. The underlying learning algorithm is the restricted Boltzman machine algorithm. The freely distributed code was trained on images of handwritten digits, but I want to be able to train it on various sets of image files. I am interested in having a convenient GUI to let me run the code on various sets of image files of different sizes. The GUI should allow me to specify the names of the input files and their sizes, the number of training cycles, etc. It should also allow me to specify the same parameters that the existing code represents as constants. Once the unsupervised learning phase has been completed, I would like the GUI to allow me to generate new image files with top-level nodes clamped to values I choose. The source code is available here: http://www.cs.toronto.edu/~hinton/MatlabForSciencePaper.html Note that the task only requires implementing the unsupervised learning phase. (The source code being modified here also carries out a supervised learning/backpropagation phase, which is not necessary for my purposes.) But I also want a convenient way to generate output images after clamping high level nodes, which I believe goes somewhat beyond what the source code provides (although it should not be difficult to do for someone who understands how the source code works). SEE FURTHER DOCUMENTATION BELOW TO FIND: 1. KEY MILESTONES FOR PROJECT 2. MORE DETAIL ON GUI FUNCTIONS 3. REFERENCES

Requirements Interview Answers:
To help you bid more accurately, the buyer was interviewed about the requirements for this bid request. Below are their answers. Untitled Page
Bid request Type: What kind of work do you need done?
Software related (Includes desktop applications and internet websites)
Bid request Parts: What do you want the worker to do on this bid request?
Requirements: The worker will analyze the problem and propose a software-based solution to the problem.
Programming: The worker will take the requirements and translate them into the language of the computer (and test it).
User installation: The installer will move the software from the place it was created (which is called the development or QC environment) to where you will use it (which is called the production environment). The installer then tests the software to make sure that the installation was done properly and completely.
Req. Doc. Type: What kind of documentation do you want for this bid request?
Informal documentation - As the buyer talks back and forth about the bid request with the worker, those conversations become the requirements.Remember to communicate ALL of the details of your bid request on the Rent A Coder site. If you don't, and there is a dispute, then important details of the contract will not be documented and cannot be taken into account in arbitration. If you feel you MUST go offsite (for example, using the phone or IM) then afterwards post everything onsite and get the other party to post that they agree to those contractual terms.
Program Type: What kind of software should the worker create (and/or install)?
  • A desktop or server program: This software runs on a user's own PC/workstation, or on a server.
Desktop / server program info
Size of application: How many screens/forms need to be created/edited in this application?
Approximately 6.
Programming Language: What programming language(s) do you want your application written in?
I do know the language(s).
Languages(s):
  • Matlab
Operating system(s) What operating systems(s) do you want your application to work on?
I do know the operating system(s):
  • Microsoft Windows -- version(s): Any
  • Database: Will this bid request include a database?
    No, it does not include a database.
    Installation Program: Does the worker need to create an installation program?
    Yes AND the program will be installed on only a single computer.
    Legal: 1) I require complete and fully-functional working program(s) in executable form as well as complete source code of all work done (so that I may modify it in the future).
    2) Deliverables must be in ready-to-run condition as follows (depending on the nature of the deliverables):
    2a) If there are any server-side deliverables (intended to only exist in one place in the Buyer's environment) then they must be installed by the Worker in ready-to-run condition (unless specified elsewhere by the Buyer).
    2b) All other software (including but not limited to any desktop software or software the buyer intends to distribute) must include a software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request (unless specified elsewhere by the Buyer).
    3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased.
    3b) No part of the deliverable may contain any copyright restricted 3rd party components (including GPL, GNU, Copyleft, etc.) unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the worker's Worker Legal Agreement.
    Other Requirements:
    MORE DETAIL ON GUI FUNCTIONALITY

    1. GUI should allow user to use dropdown menus to set the same network structure parameters that are provided by constants in the program.

    2. GUI should allow user to specify the amount of training to be performed and what training images should be used.

    3. GUI should allow user to specify a set of test images, and the program should store the average values of all the hidden layer units in the network when network is presented with each test input.

    4. For the Generation functions, GUI should allow user to specify (clamp) any chosen subset of hidden layer units, and then it should generate images. GUI should offer option to store these images as separate files, or to create large image files which display many different examples of the outputs produced. (E.g., if the inputs are 28X28, it might display 20 X 20 = 400 examples of these outputs in one jpg image, with a label on top indicating what values were clamped.)


    MILESTONES

    Key milestones for the project are:

    1. Setting up a GUI to operate the unsupervised learning code.

    2. User tests this code by seeing if the published results from Hinton lab can be replicated when the program is run on the same image files as those used in the paper (also freely distributed).

    3. Setting up GUI functions that allow the user to clamp top-level node values and generate and save image files on disk.

    4. User tests the complete GUI by running it on new sets of training images.

    REFERENCES

    General review of Boltzman machine architectures:

    http://en.wikipedia.org/wiki/Boltzmann_machine

    For a more extensive description of Deep Belief Nets and the training procedure used here, several of these talks are a gentle introduction:

    http://www.cs.toronto.edu/~hinton/talks.html

    A detailed presentation of the model that goes with the source code is here:

    http://www.cs.toronto.edu/~hinton/science.pdf

    Note that our use of this code will be in full compliance with the conditions imposed by the original authors of the code. The GUI will be used for research applications and will not be sold to others, and if it is distributed we will comply with the original coders' distribution agreement.
    • All deliverables must be uploaded to Rent A Coder before the deadline(s) for this bid request...with no exceptions. If this contract makes it impossible for a competent person to do this, then do not start this bid request...but instead alert Rent A Coder of an un-arbitratable, illegal bid request.
    • Remember that contacting the other party outside of the site (by email, phone, etc.) on all business bid requests <$500 (before the buyer's money is escrowed) is a violation of both the software buyer and worker agreements. Rent A Coder monitors all site activity for such violations and can instantly expel transgressors on the spot, so we thank you in advance for your cooperation. If you notice a violation please help out the site and report it. Thanks for your help.
    Categories:
    (Note: Like everything else on this page, these categories are part of the original contract for this bid request.)
    Microsoft Windows, Languages, Requirements, Operating systems / platforms, Other (Technology), Software related (includes websites), Matlab