Skip to main content

Alternating Conditional Exceptation with Neural Network

Project description

ace_nn

Build Status

Introduction

This repo contains experimental implementation of ace algorithm via neural network. It is shown by xiangxiang-xu that calculating optimal features by Alternating Conditional Expectation is equivalent to maximize H-score.

How to run

Three examples are provided ( one for continuous variable and the other twos are for discrete variable) and their results are the same as ace. The main function is ace_nn and its parameters are very similar to ace_cream.

import numpy as np
from ace_nn import ace_nn
# discrete case, binary symmetric channel with crossover probability 0.1
N_SIZE = 1000
x = np.random.choice([0,1], size=N_SIZE)
n = np.random.choice([0,1], size=N_SIZE, p=[0.9, 0.1])
y = np.mod(x + n, 2)
# set both x(cat=0) and y(cat=-1) as categorical type
tx, ty = ace_nn(x, y, cat=[-1,0], epochs=100)

# continuous case
x = np.random.uniform(0, np.pi, 200)
y = np.exp(np.sin(x)+np.random.normal(size=200)/2)
tx, ty = ace_nn(x, y)

For more detail, run help(ace_nn) to see the parameters and returns of this function.

Further discussion

Currently, the neural networks used to approximate optimal $f(x)$ and $g(y)$ are two-layer MLP with tanh as activation function. More turns of epochs are needed for large alphabet $|\mathcal{X}|$ and $|\mathcal{Y}|$ and the running time is not short.

Also, batch_size and hidden_units_num can be hypertuned, and there is no guarantee that current configuration of neural network is optimal for solving ace.

Application

we can use ace_nn(x, y, return_hscore = True) to calculate a lower bound of $\frac{\norm{B}_F^2}{2}$

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ace_nn-0.2.tar.gz (3.8 kB view details)

Uploaded Source

File details

Details for the file ace_nn-0.2.tar.gz.

File metadata

  • Download URL: ace_nn-0.2.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7

File hashes

Hashes for ace_nn-0.2.tar.gz
Algorithm Hash digest
SHA256 c51c7c2b0853c6945173def0170eb93b28275ffee8de81ee66ef6c7ea338f519
MD5 22d9b1bdab87e39d0f525baf9c204755
BLAKE2b-256 b1cc69418eba970547c4fed55a8e7bfdd0ec83dd5646a3a59db8e1cf35c172f8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page