NeuroMOS is a machine learning project that uses Artificial Neural Networks (ANNs) to model and predict the electrical characteristics of MOSFETs (Metal-Oxide-Semiconductor Field-Effect Transistors). The project generates synthetic MOSFET data including Id-Vg (drain current vs gate voltage) and Id-Vd (drain current vs drain voltage) curves, and trains neural networks to learn and predict these semiconductor device behaviors.
- MOSFET Data Generation: Create synthetic datasets for MOSFET Id-Vg and Id-Vd characteristics
- Neural Network Training: Train ANNs using PyTorch and TensorFlow to model MOSFET behavior
- Visualization: Generate plots and visualizations of MOSFET characteristics and model predictions
- Model Analysis: Use SHAP (SHapley Additive exPlanations) for model interpretability
NeuroMOS/
├── 📊 Core Data Generation
│ ├── IdVg_generator.ipynb # Main Id-Vg curve generator
│ └── notebook.ipynb # Additional notebook
│
├── 🧠 Neural Network Training
│ └── ANN_IdVg_IdVd/
│ ├── IdVd_notebook.ipynb # Id-Vd characteristic modeling
│ ├── IdVg_IdVd_generator.ipynb # Combined Id-Vg/Id-Vd generator
│ └── ANN_IdVg_IdVd/
│ └── shap_along_vd.npz # SHAP analysis results
│
├── 📁 Generated Data (gitignored)
│ └── data/
│ ├── factorial_idvg_dataset.csv # Main factorial design dataset
│ ├── MOSFET_IdVd_dataset.csv # Id-Vd characteristics
│ ├── MOSFET_IdVg_dataset.csv # Id-Vg characteristics
│ └── plots/ # Generated visualizations
│ ├── IdVg_curves_Cox.png # Cox parameter plots
│ ├── IdVg_curves_Vt.png # Threshold voltage plots
│ └── IdVg_curves_mu.png # Mobility parameter plots
│
├── 🔧 Configuration & Documentation
├── README.md # Project documentation
├── requirements.txt # Python dependencies
├── LICENSE # License information
└── .gitignore # Git ignore rules
### Key Components
#### 🎯 Main Workflows
1. **Data Generation**: `IdVg_generator.ipynb` creates factorial design datasets with MOSFET parameters
2. **Model Training**: `ANN_IdVg_IdVd/` notebooks train neural networks on the generated data
3. **Analysis**: SHAP integration provides model interpretability and feature importance
#### 📊 Data Pipeline
- **Input**: MOSFET physical parameters (Vt, μ, Cox, W, L)
- **Processing**: Factorial design space exploration
- **Output**: Synthetic Id-Vg and Id-Vd characteristic curves
- **Storage**: Centralized `data/` folder with CSV datasets and PNG visualizations
#### 🧠 Neural Network Architecture
- **Frameworks**: PyTorch and TensorFlow implementations
- **Performance**: Achieved R² = 0.980 on MOSFET characteristic prediction
- **Interpretability**: SHAP analysis for understanding parameter influence
## Setup
### Prerequisites
- Python 3.11.3 (recommended)
- pyenv (for Python version management)
### Installation
1. **Clone the repository**:
```bash
git clone https://github.com/gluongo89/NeuroMOS.git
cd NeuroMOS
-
Set up Python environment:
pyenv local 3.11.3 python -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install -r requirements.txt
-
Launch Jupyter Lab:
jupyter lab
The project uses the following main libraries:
- Machine Learning: PyTorch, TensorFlow, scikit-learn
- Data Analysis: NumPy, Pandas
- Visualization: Matplotlib, Seaborn
- Model Interpretability: SHAP
- Development Environment: JupyterLab
- Generate MOSFET Data: Start with
IdVg_generator.ipynbto create synthetic Id-Vg curve data - Train Neural Networks: Use notebooks in the
ANN_IdVg_IdVd/directory to train models - Analyze Results: Explore model predictions and interpretability using the provided analysis tools