Implementación de redes de parendizaje no supervisado
Mediante las reglas de aprendizaje de Oja y de Sanger
Modelo entrenado con Oja
python main.py oja_model PATH_DATASET
Modelo entrenado con Sanger
python main.py sanger_model PATH_DATASET
python main.py NOMBRE_MODELO PATH_DATASET ALG
Entrenar con Oja:
python main.py NOMBRE_MODELO PATH_DATASET oja
Entrenar con Sanger:
python main.py NOMBRE_MODELO PATH_DATASET sanger
La implementación de los algoritmos esta en src/
El modelo Hebbiano se puede usar con la clase Hebbiano
exportada en hebbiano.py
from hebbiano import Hebbiano
hebbiano = Hebbiano('./dataset/tp2_training_dataset.csv')
# alg, M, lr, min_ort, max_epoch, trace (= 0)
hebbiano.train('oja', 9, 0.001, 0.00001, 600, 1)
hebbiano.plot()
Los experimentos se pueden ejecutar con
jupyeter lab
Los gráficos del informe fueron generados con ejemplo_oja.py y ejemplo_sanger.py
Usar Python: v3.6.5
Para instalar version de Python, la primera vez:
- Instalar
pyenv
- https://github.com/pyenv/pyenv#installation
En mac:
brew update
brew install pyenv
- Inicializar
pyenv
eval "$(pyenv init -)"
- Instalar v3.6.5
pyenv install 3.6.5
- Activar v3.6.5 en terminal
pyenv global 3.6.5
- Verificar version
python --version
> Python 3.6.5
- Instalar dependencias
pip install -r requirements.txt
Para volver a activarlo en una nueva terminal - setup de primera vez ya terminado
eval "$(pyenv init -)"
pyenv global 3.6.5