TensorFlow Linear Regression 1
亲爱的小伙伴们,上周又事情给耽搁了,这周将上周的内容一起补充一下。我们前面的内容将TensorFlow的基础内容都介绍了,所以接下来我们需要实现一些基本的算法,如果大家想跑一些现在主流的一些网络结构,大家可以移步到我的GitHub MLModel这个仓库MLModel,里面会定期更新一些主流的网络框架。喜欢的话,给个star可好。接下来呢我们开始我们今天的线性回归模型的各种求解方法。
在TensorFlow中使用矩阵的逆来解决线性模型,这个解决方案,相比学过线性代数的你,都会解。
大家可曾记得线性代数里面的线性方程组:
就是我们要解的未知解,那x该怎么解来着?
上面的公式一下就能看出来是怎么回事对不对?
推导过程:
我们下面使用的A的特征维度是一维,(再加上b这个维度)这是为了可以可视化结果:在直接利用矩阵运算而得到的解对于这些数据来说,是最好的结果。也是唯一解。
其实大家也可以看出,我们使用矩阵的逆去求线性模型是又快又准,但是你们想过没有为啥神经网络里面在求解线性回归的时候还要用到反向传播梯度下降的方式呢,给你们举个例子,假设现在一个样本有上万或者十万个特征维度,你想想我们在求解矩阵逆的时候要花费多长时间,那是你意想不到的,所以才会使用方向传播算法去解决W的求解问题。详细需要花费的时间。
第二种求解方式:Cholesky Method
思路如下:在Cholesky method方法中,我们需要将A分解为L和L的转置的乘积,然后再进行x的求解,为什么要这么做呢?当然是为了避免求矩阵的逆,它很耗费时间。
因为A要求在求解Cholesky Depcomposition的时候是square也就是方阵。但是一般的A都不是方阵,那么我们就构造出来一个方阵:
它就是一个方阵,那么我们就求A转置和A乘积的Cholesky Decomposition。
使用反向传播梯度下降的方式求解线性模型。
领取专属 10元无门槛券
私享最新 技术干货