https://github.com/jonathanlb/lair
Personal deep-learning and Rust adventures.....
https://github.com/jonathanlb/lair
Last synced: about 1 year ago
JSON representation
Personal deep-learning and Rust adventures.....
- Host: GitHub
- URL: https://github.com/jonathanlb/lair
- Owner: jonathanlb
- License: apache-2.0
- Created: 2020-12-28T23:33:58.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-03-17T16:06:53.000Z (about 5 years ago)
- Last Synced: 2025-01-24T13:28:21.019Z (over 1 year ago)
- Language: Rust
- Size: 574 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LAIR
LAIR (Learning Artificial Intelligence with Rust) is a set of implementation
exercises I use to demonstrate (to myself) gaps in my understanding in
machine learning -- at least linear regression and deep learning so far.
## Debugging
LAIR uses the [log](https://docs.rs/log/0.4.14/log/) and
[env_logger](https://docs.rs/env_logger/0.8.2/env_logger/) crates for logging.
The code is also sprinkled with
[debug assertions](https://doc.rust-lang.org/std/macro.debug_assert.html)
for use in tracking down numerical instability.
Compile/run/etc with
```
RUST_LOG=debug RUST_BACKTRACE=1 RUSTFLAGS="-g -C debug-assertions" cargo ...
```
## Benchmarks
There are some simple benchmarks I use for run-time (convergence) performance
produced by
```
CRITERIUM_DEBUG=1 cargo bench
```
## TODOs
- Implement and benchmark classification.
- Implement sigmoid function for backpropagation.
- Test and benchmark with use of ReLU and sigmoid functions.
- Implement meta-parameterized search (separate training from model).
- Batch updates.
- Add (parameterized) noise to benchmarks.
- Improve numerical instability.
- Dynamic step size/learning rate.
- Benchmark convergence.