mnet
Safe HaskellNone
LanguageGHC2024

Net

Description

Forward-only neural-network layer definitions built on the circuits ecosystem.

  • NetParams stores weights as Matrix and biases as Array vectors.
  • Linear layers use matVec.
  • The full model is a Para composition, so inference reuses the same parameter threading as the rest of circuits-learn.
Synopsis

Parameter bundle

data NetParams a Source #

Network parameters. Weights are stored as dense matrices so that Dense can be used for the linear maps; biases and activations remain as Array vectors.

Constructors

NetParams 

Fields

Instances

Instances details
Eq a => Eq (NetParams a) Source # 
Instance details

Defined in Net

Methods

(==) :: NetParams a -> NetParams a -> Bool #

(/=) :: NetParams a -> NetParams a -> Bool #

Show a => Show (NetParams a) Source # 
Instance details

Defined in Net

netParamsFromArrays :: Array a -> Array a -> Array a -> Array a -> NetParams a Source #

Build NetParams from plain Array weights and biases.

Layer primitives

linear1 :: (Additive a, Multiplicative a) => Para (NetParams a) (Array a) (Array a) Source #

First linear layer.

bias1 :: Num a => Para (NetParams a) (Array a) (Array a) Source #

First bias layer.

relu1 :: (Ord a, Additive a) => Para (NetParams a) (Array a) (Array a) Source #

ReLU activation.

linear2 :: (Additive a, Multiplicative a) => Para (NetParams a) (Array a) (Array a) Source #

Second linear layer.

bias2 :: Num a => Para (NetParams a) (Array a) (Array a) Source #

Second bias layer.

Model

model :: (Ord a, Num a, Additive a, Multiplicative a) => Para (NetParams a) (Array a) (Array a) Source #

Full 2-layer MLP: linear1 → bias1 → relu → linear2 → bias2.

forward :: (Ord a, Num a, Additive a, Multiplicative a) => NetParams a -> Array a -> Array a Source #

Run the model with explicit parameters.

Loss

mseLoss :: (Fractional a, Additive a) => Array a -> Array a -> (a, Array a) Source #

Mean-squared-error loss and its gradient w.r.t. the prediction.

L = (1/n) Σ (y - target)², dLdy = (2n)(y - target).

Boundary type

type Boundary a = These a a Source #

A These-based boundary distinguishes inference-only, gradient-only, and combined inference-with-gradient traffic at a layer boundary.

  • This prediction — inference only, no gradient.
  • That gradient — training signal only, no prediction.
  • These prediction gradient — training with prediction (common supervised case).