A sum of ridge functions
Penguin learning project
The project uses 342 complete Palmer penguin records: 240 training-pool and 102 held-out rows. The selected training rows determine feature scaling and model parameters. Source CSV
This project trains weights with softmax, unlike the homepage lab, which uses nearest species averages. Same penguin measurements; different classification methods. Predictions can differ.
Prediction rules and layers · Describe or apply prediction rules, layers and parameters.
The project uses a linear rule with two features. The fitted weights produce scores or normalized mass.
Consider this concept alongside the project; its source assumptions may differ. These observations do not prove a theorem.
Input: 12 × 2; Held-out evaluation: 102 · #58 · 40.6 mm, 193 mm. Known answer: Adélie; Prediction: Adélie · [≈0.7383, ≈0.2444, ≈0.01737].
Used in these source sections: 3.1 A rule based on distance
Each term applies a one-variable function to a dot product. A suitable rotation can put the direction wⱼ in the first coordinate, so the same term depends only on that coordinate.
The toy uses two unit directions in two dimensions and ReLU for both terms.
This representation is used in the source Fourier argument for shallow networks.
Source formula example
illustration · The toy uses two explicitly chosen rotations and real values. It does not establish the Fourier-support result for general networks.
Symbols
- A unit direction in ℝᵈ.
- A one-variable function associated with hidden unit j.
- A rotation carrying wⱼ to the first coordinate direction.
Source formula example
This source example uses its own inputs and assumptions. Editing it does not change the project.
Edit a value or the code, then run the example. This is a finite demonstration, not a proof of the paper’s theorem.
This example’s data flow
Code changed. Reset to restore this example’s data flow.
You choose
input.x1= 1input.x2= 2
Calculated here
Result expression: {
directTerms,
rotatedTerms,
directSum: directTerms[0] + directTerms[1],
rotatedSum: rotatedTerms[0] + rotatedTerms[1],
}
x=[input.x1, input.x2]Uses:input.x1,input.x2directTerms=[Math.max(0, x[0]), Math.max(0, x[1])]Uses:xrotated1=[x[0], x[1]]Uses:xrotated2=[x[1], -x[0]]Uses:xrotatedTerms=[Math.max(0, rotated1[0]), Math.max(0, rotated2[0])]Uses:rotated1,rotated2
Returns
directTerms- array (2 items): [1, 2]
rotatedTerms- array (2 items): [1, 2]
directSum- 3
rotatedSum- 3
Read numbers from input and return the result. JavaScript basics.
Result
Technical statement
The source absorbs scale and remaining parameters into each function ρⱼ and takes wⱼ to be a unit vector. A rotation maps each direction to the first basis vector. The tensor factor is constant in the remaining coordinates.
Source: Source expression