Why $ \nabla \|g(b)\|_2=\frac{\langle g(b),\nabla g(b)\rangle}{\|g(b)\|_2} $ for any differentiable g? I'm trying to understand this answer to a question I've made before. I said in that same question the following:

The gradient of $f = \lVert a \times b \rVert_2$ with respect to $b$ is apparently equivalent to $$\frac{(a \times b) \times a}{\lVert a \times b \rVert_2}$$

Actually, this is my problem, I don't understand why that is the case. So, user LutzL said that I had made the observation:

$$ \nabla \|g(b)\|_2=\frac{\langle g(b),\nabla g(b)\rangle}{\|g(b)\|_2} $$

which is actually different from my observation. What he tries to show is that they are equivalent, but I somehow don't manage to follow his explanation.
Can someone explain me why are the two equivalent? Why do we have this equality $ \nabla \|g(b)\|_2=\frac{\langle g(b),\nabla g(b)\rangle}{\|g(b)\|_2} $?
Notation: $g: \mathbb{R}^3 \to \mathbb{R}^3$, $\nabla g$ denotes the (total) derivative of $g$, i.e. a matrix. (Sometimes denoted in other sources as $Dg$.) The brackets $\langle , \rangle$ refer to matrix multiplication, not the inner product, in other notation $\langle g(b), \nabla g(b) \rangle :=: [g(b)]^T Dg(b)$.

The gradient of $\| g(b) \|^2 = \left< g(b), g(b) \right>$ can be computed by the product rule as
$$ \nabla \left( \| g(b) \|^2 \right) = \left< \nabla g(b), g(b) \right> + \left< g(b), \nabla g(b) \right> = 2 \left< g(b), \nabla g (b) \right>. $$
The gradient of $\| g(b) \| = \sqrt{ \left< g(b), g(b) \right>}$ can then be computed using the chain rule as
$$ \nabla \| g(b) \| = \frac{2 \left< g(b), \nabla g(b) \right>}{2 \sqrt{\left<g(b), g(b) \right>}} = \frac{ \left< g(b), \nabla g(b) \right>}{\| g(b) \|}. $$
Now apply this formula to $g(b) = a \times b$ noting that this is a linear map.
