方向:深度学习基础知识
基础:斯坦福CS231

主题:Tensorflow基础:数据类型


1、list

       存储较为简单,但所占空间太大




线性回归

2、梯度下降?

       这里我们定义了一个函数,叫做loss函数,loss函数用来衡量我们使用线性函数对结果拟合的“坏”的程度,简单的来说就是预测值和结果的差距,我们的loss值也就越大,而这个相对的大小则取决于我们使用的是什么样的loss函数。
       而一旦我们得到了这个loss函数,我们就希望他能够越小越好,我们知道,在数学中,一个函数下降最快的方向也就是他的梯度方向(在简单的二元函数中我们也可以理解为偏导数方向),所以这里我们对“参数”w和“参数”x进行求导,并让他减去自己所求得得导数(这里我们对导数乘上了一个较小的“数”,这是因为如果导数正向过大或者负向过大都有可能导致参数变化过于剧烈不便于我们寻找最佳的“解”)。



梯度下降

3、代码实现

这里我们使用的loss函数为:


代码实现如下:

def compute_error_for_line_given_points(b, w, points): #points为2×100的数组
    totalError = 0 #初始化loss值为0

    for i 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值
    return totalError / float(len(points))

到这里我们的loss值就计算完毕了。