Pytorch Day1

Day1

深度学习的核心是梯度

求解y的最小值

 

梯度:梯度的本意是一个向量(矢量),某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向梯度的方向变化最快变化率最大(为该梯度的模)

每一步迭代都是梯度下降

每一步:x的值=当前x的值-x在y函数的导数

求x*即loss函数最小值时x的

反复迭代

学习率(Learning rate):作为监督学习以及深度学习中重要的超参,其决定着目标函数能否收敛到局部最小值以及何时收敛到最小值。合适的学习率能够使目标函数在合适的时间内收敛到局部最小值。(具体随问题调整,一般0.001)

学习率设置的过小时,收敛过程将变得十分缓慢。而当学习率设置的过大时,梯度可能会在最小值附近来回震荡,甚至可能无法收敛

在第一个图可见x=5时,梯度较小

 

精确求解叫做Closed Form Solution(闭式解closed form solution)也叫解析解(analytical solution),就是一些严格的公式,给出任意的自变量就可以求出其因变量,也就是问题的解 )

但一般现实中,我们的数据都是有一定偏差的,对实际的问题不一定需要精确解Closed Form Solution,只要得到相似解并且在经验上证明可行即可(例如如图上半部分得到相似解即可)

在y=w*x+b + eps (添加高斯噪声,模拟现实中的数据)

求解在实际中具有较好的效果即可

 

 

x采样[0,15]

拿到100个有高斯噪声的采样点

假设函数符合线性分布

优化的目标即求loss=(WX+b+eps-y)²的极小值

我们把式子正式化一下,就是说对于这个方程,求解的参数是w和b

观测的样本是x和y,(Xi表示观测到第i个样本)

梯度下降能帮我们求最小值

 

而当loss=(y-(wx+b))取到最小值,此时的w和b也就是我们要求解的参数

 

(wx+b-y)²是非常好求解的,可视化求解过程

loss=∑(WXi+b-y)²,通过调整w和b的值,会取的不同的loss的值

i=1

我们希望求解loss最小值的点

现实中一般很难可视化,因为x的维度很高导致w的维度也很高

对w和b求导

比较直观的描述整个学习的过程,希望能看到直线能穿过整个数据集,使得整体误差较小

 

 

总体过程:WX+b = y

我们通过观察

WX1+b = y1

WX2+b = y2

...

等一系列样本来求w和b的值

最终目的给出任意Xn的值,能够很好的预测yn的值

linear regression:线性回归 (预测的值的取值范围是连续的,属于连续空间)

Logistic Regression:逻辑回归,在线性回归的基础上把X[负无穷,正无穷]数据压缩到[0,1]的范围,适合表达概率问题(例如二分类问题:抛硬币)

Classification:多分类问题(比如0-9手写数字,即每个点概率范围[0,1],10个点的概率加起来=1)

实战

points就是一系列x和y的组合

totaError/float(len(points))即loss=∑(i=1)(WXi+b-y)²

 计算梯度信息,取得每个点x和y的值

 

对w求导,把x,b,y看成常量

loss

=2(wx+b-y)x

再对w求导

=2(wx+b-y)*1

#learning_rate学习率设置的过小时,收敛过程将变得十分缓慢。而当学习率设置的过大时,梯度可能会在最小值附近来回震荡,甚至可能无法收敛。

循环迭代梯度信息

循环100次取得的w,b的值就是比较理想的结果

 

def run():
    points = np.genfromtxt("data.csv", delimiter=",")
    learning_rate = 0.0001
    initial_b = 0 # initial y-intercept guess
    initial_m = 0 # initial slope guess
    num_iterations = 1000
    print("Starting gradient descent at b = {0}, w = {1}, error = {2}"
          .format(initial_b, initial_m,
                  compute_error_for_line_given_points(initial_b, initial_m, points))
          )
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值