> For the complete documentation index, see [llms.txt](https://windmising.gitbook.io/nielsen-nndl/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://windmising.gitbook.io/nielsen-nndl/introduction/ti-du-xia-jiang-xue-xi-fa/3.md).

# 应用到神经网络

## 用梯度下降法最小化损失函数

用梯度下降法最小化损失函数

$$
\begin{eqnarray}  C(w,b) \equiv \frac{1}{2n} \sum\_x | y(x) - a|^2 \nonumber\end{eqnarray}
$$

概率梯度下降法的更新公式得：

$$
\begin{eqnarray}
w\_k & \rightarrow & w\_k' = w\_k-\eta \frac{\partial C}{\partial w\_k} \tag{16}\\
b\_l & \rightarrow & b\_l' = b\_l-\eta \frac{\partial C}{\partial b\_l}.
\tag{17}\end{eqnarray}
$$

## 应用梯度下降法要解决的问题

根据以上公式可知，要更新一次w,b，就要对所有样本分别进行一次计算。\
当样本数量非常大时，每一更新都非常耗时。

解决方法：**随机梯度下降法 stochastci gradient descent**

随机取m个样本来更新w和b，认为**m个样本计算出来的梯度近似C的梯度。**

$$
\begin{eqnarray}
\frac{\sum\_{j=1}^m \nabla C\_{X\_{j}}}{m} \approx \frac{\sum\_x \nabla C\_x}{n} = \nabla C,
\tag{18}\end{eqnarray}
$$

因此，更新公式变成了：

$$
\begin{eqnarray}
w\_k & \rightarrow & w\_k' = w\_k-\frac{\eta}{m}
\sum\_j \frac{\partial C\_{X\_j}}{\partial w\_k} \tag{20}\\
b\_l & \rightarrow & b\_l' = b\_l-\frac{\eta}{m}
\sum\_j \frac{\partial C\_{X\_j}}{\partial b\_l},
\tag{21}\end{eqnarray}
$$

事实上，公式中的$$\frac{1}{n}$$或$$\frac{1}{m}$$也不重要，常常被省略。只是相当于调整了$$\eta$$而已。

## 批量梯度下降法与随机梯度下降法的比较

随机梯度下降法不如批量梯度下降法那样“直奔目的”。它会为随机选取的样本不同而波动。 但随机梯度下降法带来的优化的效率是非常可观的。\
事实上，我们不需要非常完美的算法，只要算法的进化方向是正确的就可以了。\
所以随机梯度下降法更常用。

更进一步，当m=1时，每次只是随机选择一个样本进行调参，就变成了一个在线学习算法。

## 怎么思考三维以上维度的问题

人不能看见三维以上维度的空间。所以需要借助一些方法来思考三维以上维度的问题。\
其中一种方法是algebraic(代数)。\
还有其它一些方法，见[链接](http://mathoverflow.net/questions/25983/intuitive-crutches-for-higher-dimensional-thinking)
