Python package for Mathematical Statistics with a View Toward Machine Learning, by John Myers
Project description
Utility functions for "Mathematical Statistics with a View Toward Machine Learning", by John Myers
A Python package for all utility functions used in the book and programming assignments. To install, do the usual:
pip install math_stats_ml
All other materials are contained here.
Table of contents:
gd submodule: Gradient descent utilities
Contains all utilities for the gradient descent algorithms used in the book.
GD_output class: Container class for output of algorithms
class GD_output
A class holding the outputs of both the gradient descent (GD) and stochastic gradient descent (SGD) algorithms. All attributes below are optional and default to None.
Attributes
| Name | Type | Description |
|---|---|---|
parameters |
dict |
A dictionary containing the parameters of the objective function passed to either GD or SGD. Each value in the dictionary is a tensor whose zero-th dimension indexes the number of gradient steps. |
per_step_objectives |
torch.Tensor |
A tensor containing the running objective values, per gradient step. |
per_epoch_objectives |
torch.Tensor |
A tensor containing the running mean objective values, per epoch. |
epoch_step_nums |
torch.Tensor |
A tensor containing the number of each gradient step on which an epoch begins/ends. |
grad_steps |
iter |
An iterable ranging from $0$ to one less than the total number of gradient steps. (This is convenient for plotting purposes.) |
lr |
float |
Learning rate. |
num_steps |
int |
Number of gradient steps to run the gradient descent (GD) algorithm. |
decay_rate |
float |
Learning rate decay. |
batch_size |
int |
Mini-batch size for the stochastic gradient descent (SGD) algorithm. |
num_epochs |
int |
Number of epochs for the stochastic gradient descent (SGD) algorithm. |
max_steps |
int |
Maximum number of gradient steps after which we terminate the stochastic gradient descent (SGD) algorithm. |
type_flag |
str |
Either None or gd. In the latter case, indicates whether the GD_output object was obtained from the gradient descent (GD) algorithm. |
GD function: Gradient descent
GD(J, init_parameters, lr, num_steps, decay_rate=0)
Implementation of gradient descent. The notation below is intended to match the notation in the description in the book.
Output
The output type is an object of the GD_output class.
Parameters
| Name | Type | Description |
|---|---|---|
J |
function | Objective function to be minimized. The parameters of the function are either a single tensor or a dictionary of tensors (in the case that the parameters fall into natural groups, e.g., weights and biases). |
init_parameters |
torch.Tensor or dict |
Initial parameters. |
lr |
float |
Learning rate, corresponding to $\alpha$ in the book. |
num_steps |
int |
The number of gradient steps after which the algorithm should halt, corresponding to $N$ in the book. |
decay_rate |
float |
Learning rate decay, corresponding to $\beta$ in the book. Defaults to 0. |
SGD function: Stochastic gradient descent
SGD(g, init_parameters, X, lr, batch_size, num_epochs, y=None, decay_rate=0, max_steps=-1, shuffle=True, random_state=None)
Implementation of stochastic gradient descent. The notation below is intended to match the notation in the description in the book.
Output
The output type is an object of the GD_output class.
Parameters
| Name | Type | Description |
|---|---|---|
g |
function | Summand of the stochastic objective function to be minimized. (The notation is intended to match the notation in the book. See the link above.) The call signature of the function is of the form g(X, parameters) or g(X, y, parameters), where X and y are explained below, and parameters is either a single parameter tensor or a dictionary of parameter tensors (in the case that the parameters fall into natural groups, e.g., weights and biases). |
init_parameters |
torch.Tensor or dict |
Initial parameters. |
X |
torch.Tensor |
Design matrix holding the dataset in its rows. |
lr |
float |
Learning rate, corresponding to $\alpha$ in the book. |
batch_size |
int |
Mini-batch size, corresponding to $k$ in the book. |
num_epochs |
int |
The number of epochs after which the algorithm should halt, corresponding to $N$ in the book. |
y |
torch.Tensor |
Ground truth labels for the data in the design matrix X (relevant only for discriminative models). Optional, defaults to None. |
decay_rate |
float |
Learning rate decay, corresponding to $\beta$ in the book. Defaults to 0. |
max_steps |
int |
Maximum number of gradient steps after which the algorithm should halt. Defaults to -1, in which case the algorithm will complete all num_epochs many epochs. |
shuffle |
bool |
Determines whether to shuffle the dataset before looping through an epoch. Defaults to True. |
random_state |
int |
If not None and shuffle=True, random seed to be passed to torch.manual_seed. Defaults to None. |
plot_gd function: plot the output of gradient descent
plot_gd(gd_output, w=5, h=4, plot_title=True, parameter_title=True, show_xlabel=True, xlabel='gradient steps', show_ylabel=True, ylabel='surprisal', alpha=1, color=None, ax=None)
Later...
plot_sgd function: plot the output of stochastic gradient descent
plot_sgd(sgd_output, w=5, h=4, plot_title=True, parameter_title=True, show_step=True, show_epoch=True, show_xlabel=True, xlabel='gradient steps', show_ylabel=True, ylabel='cross entropy', legend=True, per_step_alpha=0.25, per_step_color=None, per_step_label='cross entropy per step', per_epoch_color=None, per_epoch_label='mean cross entropy per epoch', s=10, ax=None)
Later...
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file math_stats_ml-0.0.6.tar.gz.
File metadata
- Download URL: math_stats_ml-0.0.6.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6cd2c2e81309b8490b8dfca99f368cf81f48349e878294df039ba5dc638b721a
|
|
| MD5 |
6dd3d407412a52b37c8b8fd0471a8b64
|
|
| BLAKE2b-256 |
73d7159c5e90067f9ab20aa383c0415c09aa7d551b75dc42deb91d0dac97b9a4
|
File details
Details for the file math_stats_ml-0.0.6-py3-none-any.whl.
File metadata
- Download URL: math_stats_ml-0.0.6-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30b36912a61d929e0b66864f8e5b025ca811d791c96805b6eda11db9678d8d56
|
|
| MD5 |
d35dbb25a8b08ded37c05f4f5bfaf358
|
|
| BLAKE2b-256 |
6d6f09706ada7ae3bf905a7760db327c013c97a9ddb83c9c1da479ad66e00b6a
|