view sandbox/simple_autoassociator/main.py @ 407:b9f545594207

Automated merge with ssh://projects@lgcm.iro.umontreal.ca/hg/pylearn
author Frederic Bastien <bastienf@iro.umontreal.ca>
date Thu, 10 Jul 2008 09:03:11 -0400
parents 36baeb7125a4
children 8849eba55520
line wrap: on
line source

#!/usr/bin/python
"""
    A simple autoassociator.

    The learned model is::
       h   = sigmoid(dot(x, w1) + b1)
       y   = sigmoid(dot(h, w2) + b2)

    Binary xent loss.

    LIMITATIONS:
       - Only does pure stochastic gradient (batchsize = 1).
"""


import numpy

nonzero_instances = []
nonzero_instances.append({0: 1, 1: 1})
nonzero_instances.append({0: 1, 2: 1})

#nonzero_instances.append({1: 0.1, 5: 0.5, 9: 1})
#nonzero_instances.append({2: 0.3, 5: 0.5, 8: 0.8})
##nonzero_instances.append({1: 0.2, 2: 0.3, 5: 0.5})

import model
model = model.Model()

for i in xrange(100000):
    # Select an instance
    instance = nonzero_instances[i % len(nonzero_instances)]

    # SGD update over instance
    model.update(instance)