<p>For part (1) of your question, there are a couple of relatively recent techniques that come to mind.</p>

<p>The first one is a type of feedforward layer called "maxout" which computes a piecewise linear output function of its inputs.</p>

<p>Consider a traditional neural network unit with <code>d</code> inputs and a linear transfer function. We can describe the output of this unit as a function of its input <code>z</code> (a vector with <code>d</code> elements) as <code>g(z) = w z</code>, where <code>w</code> is a vector with <code>d</code> weight values.</p>

<p>In a maxout unit, the output of the unit is described as</p>

<pre><code>g(z) = max_k w_k z
</code></pre>

<p>where <code>w_k</code> is a vector with <code>d</code> weight values, and there are <code>k</code> such weight vectors <code>[w_1 ... w_k]</code> <em>per unit</em>. Each of the weight vectors in the maxout unit computes some linear function of the input, and the <code>max</code> combines all of these linear functions into a single, convex, piecewise linear function. The individual weight vectors can be learned by the network, so that in effect each linear transform learns to model a specific part of the input (<code>z</code>) space.</p>

<p>You can read more about maxout networks at <a href="http://arxiv.org/abs/1302.4389" rel="nofollow">http://arxiv.org/abs/1302.4389</a>.</p>

<p>The second technique that has recently been developed is the "parametric relu" unit. In this type of unit, all neurons in a network layer compute an output <code>g(z) = max(0, w z) + a min(w z, 0)</code>, as compared to the more traditional rectified linear unit, which computes <code>g(z) = max(0, w z)</code>. The parameter <code>a</code> is shared across all neurons in a layer in the network and is learned along with the weight vector <code>w</code>.</p>

<p>The prelu technique is described by <a href="http://arxiv.org/abs/1502.01852" rel="nofollow">http://arxiv.org/abs/1502.01852</a>.</p>

<p>Maxout units have been shown to work well for a number of image classification tasks, particularly when combined with dropout to prevent overtraining. It's unclear whether the parametric relu units are extremely useful in modeling images, but the prelu paper gets really great results on what has for a while been considered the benchmark task in image classification.</p>
How are the following types of neural network-like techniques called?
<p>The neural network applications I've seen always learn the weights of their inputs and use fixed "hidden layers".</p>

<p>But I'm wondering about the following techniques:</p>

<p>1) fixed inputs, but the hidden layers are no longer fixed, in the sense that the functions of the input they compute can be tweaked (learned)</p>

<p>2) fixed inputs, but the hidden layers are no longer fixed, in the sense that although they have clusters which compute fixed functions (multiplication, addition, etc... just like ALUs in a CPU or GPU) of their inputs, the weights of the connections between them and between them and the input can be learned (this should in some ways be equivalent to 1)  )</p>

<p>These could be used to model systems for which we know the inputs and the output but not how the input is turned into the output (figuring out what is inside a "black box"). Do such techniques exist and if so, what are they called?</p>