姓名:陈彦宏 学号:19011210579
|· 本文为博主原创”·|
【嵌牛导读】:TensorFlow是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief ,TensorFlow2.0目前已正式发布,博主在这里分享下一些基础知识。
【嵌牛鼻子】:深度学习、TensorFlow、基础
【嵌牛提问】:什么是线性回归和梯度下降?
【嵌牛正文】:
方向:深度学习基础知识
基础:斯坦福CS231n
主题:线性回归-1+代码实现
1、线性回归?
个人理解的线性回归就是利用一条线性的函数去拟合得到一个预测的结果,例如预测股市的走势,预测房价的走势等等,局限性就在于线性回归只能通过线性函数拟合结果,灵活性与应用性较差。
线性回归
2、梯度下降?
这里我们定义了一个函数,叫做loss函数,loss函数用来衡量我们使用线性函数对结果拟合的“坏”的程度,简单的来说就是预测值和结果的差距,我们的loss值也就越大,而这个相对的大小则取决于我们使用的是什么样的loss函数。
而一旦我们得到了这个loss函数,我们就希望他能够越小越好,我们知道,在数学中,一个函数下降最快的方向也就是他的梯度方向(在简单的二元函数中我们也可以理解为偏导数方向),所以这里我们对“参数”w和“参数”x进行求导,并让他减去自己所求得得导数(这里我们对导数乘上了一个较小的“数”,这是因为如果导数正向过大或者负向过大都有可能导致参数变化过于剧烈不便于我们寻找最佳的“解”)。
梯度下降
3、代码实现
这里我们使用的loss函数为:
Loss = \Sigma_i(w*x+b-y_i)^2Loss=Σi(w∗x+b−yi)2
代码实现如下:
1
2
3
4
5
6
7
8
def compute_error_for_line_given_points(b, w, points): #points为2×100的数组
totalError = 0#初始化loss值为0
fori in range(0,len(points)): #从0到points长度(100)迭代累加loss
x = points[i, 0] #使用numpy工具,等同于points[i][0]
y = points[i, 1] #这里我们是有100组输入与输出,将其构成了2×100的矩阵输入
totalError += (y - (w * x + b)) ** 2#使用loss函数计算loss值
returntotalError / float(len(points))
到这里我们的loss值就计算完毕了。
网友评论