随着人工智能的发展,深度学习变得越来越炙手可热,所以博主也来凑一下热闹,抽空开始进行深度学习,下面是我自己 的一些学习经验分享,如果有错,请各位看官勿喷,帮忙指出一下,不胜感激。
现在最热的深度学习框架为 T e n s o r F l o w TensorFlow TensorFlow、 P y t o r c h Pytorch Pytorch 等等,下面我主要写的对象就为 P y t o r c h Pytorch Pytorch,内容参考的是廖星宇老师的《深度学习之pytorch》,我觉得这本书内容很基础,也很详细,非常适合初学者入门。 P y t o r c h Pytorch Pytorch 基础部分网上有很多教程,我这里就不板门弄斧,后面我会再补上,这里就开始我们这章的主题:线性回归。
一维线性回归
1)原理
线性回归大家应该都不陌生,简单说,就是给定一个数据集 D = { ( x i , y i ) } D=\{(x_i,y_i)\} D={
(xi,yi)},线性回归希望可以找到一个最好的函数 f ( x ) f(x) f(x),使得 f ( x ) = w x + b f(x)=wx+b f(x)=wx+b 能尽量多的拟合这些数据点。
我们一般使用向量的形式来表示函数 f ( x ) f(x) f(x):
f ( x ) = w T x + b {\text{f}}(x) = {w^T}x + b f(x)=wTx+b
我们只需要通过不断的调整 w w w, b b b,就可以找到最符合条件的点。怎么学习这两个参数呢,其实只需要衡量 f ( x i ) f(x_i) f(xi), y i y_i yi 之间的差别, 可以使用均方误差 L o s s = ∑ i = 1 m ( f ( x i ) − y i ) 2 Loss = \sum\nolimits_{i = 1}^m {
{
{(f({x_i}) - {y_i})}^2}} Loss=∑i=1m(f(xi)−yi)2 来衡量,要做的事情就是希望能够找到 w w w 和 b b b,使得:
( w , b ) = arg min w , b ∑ i = 1 m ( f ( x i ) − y i ) 2 = arg min w , b ∑ i = 1 m ( y i − w x i − b ) 2 (w,b) = \mathop {\arg \min }\limits_{w,b} \sum\nolimits_{i = 1}^m {
{
{(f({x_i}) - {y_i})}^2}} = \mathop {\arg \min }\limits_{w,b} \sum\nolimits_{i = 1}^m {
{
{({y_i} - w{x_i} - b)}^2}} (w,b)=w,b