在深入研究机器学习与深度学习之前我们需要了解一些基本概念,机器学习中的很多公式就是从这些基本概念和基本公式中推演发展出来的。同时我们还需要掌握基本的微积分和线性代数的知识,越到后面,公式的推演愈加复杂。
<h4>假设函数(The Hypothesis Function)</h4>
假设我们有一堆输入项:
以及输出项:
假设存在一个线性函数
![](http://latex.codecogs.com/png.latex?\hat{y}=h_{\theta}(x)=\theta_0 + \theta_1\cdot x)
能够精确地拟合这些输入项与输出项,那么这样的函数被称为假设函数(在统计学里可以被称为回归线吧)
假设我们有以下的训练集:
inuput | output |
---|---|
0 | 1 |
1 | 3 |
2 | 6 |
3 | 7 |
此时,我们假设第一个参数为1,第二个参数为2,则我们的假设函数为:
假设图中小球所处的位置即我们在cost function上任意选择的一处位置,微积分的知识告诉我们,图中的小球会随着曲面的梯度不断下降(其梯度也在不断地变化),直到其下降到曲面的最低点。但是这个算法所算得的最小值很可能是曲面的局部最小值,关于这个问题的探讨可以在维基百科里看到。(传送门)
微积分的知识告诉我们,代价函数J关于这两个参数的梯度为:
![](http://latex.codecogs.com/png.latex?Grad_{\theta_j} = \frac{\partial}{\partial \theta_j}J(\theta_1,\theta_2),j=1,2)
因此其参数的变化可以这样表示:
![](http://latex.codecogs.com/png.latex?\theta_j := \theta_j - \alpha \cdot Grad_{\theta_j})
其参数α代表的是梯度下降的速率,因为计算机无法处理连续变化的值,因此我们只能用一些列变化较小的离散量来表示连续变化的值。
<h4>总结</h4>
以上就是入门机器学习及深度学习需要掌握的一些基础知识,想了解更多的话可以参考我写的构建神经网络来识别手写数字,或者Andrew Ng的线上课程:机器学习。
网友评论