博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linear Regression and Gradient Descent
阅读量:7059 次
发布时间:2019-06-28

本文共 1072 字,大约阅读时间需要 3 分钟。

随着所学算法的增多,加之使用次数的增多,不时对之前所学的算法有新的理解。这篇博文是在2018年4月17日再次编辑,将之前的3篇博文合并为一篇。

 

1.Problem and Loss Function

首先,Linear Regression是一种Supervised Learning,有input X,有输出label y。X可以是一维数据,也可以数多维的,因为我们用矩阵来计算,所以对公式和算法都没有影响。我们期望X经过一个算法hθ(X)=θTX后,得到的结果尽可能接近label y。但在初始状态下,不可能的,所以我们需要Traning Set去训练这个hθ(X)函数。而因为函数的形式是确定的,是线性函数,所以我们通过训练去学习的,其实是参数值θ

 

而怎么通过Training Set去学习呢?这里就要引入Cost Function了,其概念是预测值与真实值到底差多少?公式是:

 
至于这个公式含义,可以从数学上理解认为是把每个training example的差值平方求和,也叫最小二乘法(Mean Square Error, MSE)。从数理统计角度的解释则是,假定Y的值与模型预测值之间从在一个差值
ε,这个差值是服从正态分布的,即
ε~N(0,
σ
2)。所以y~N(
θTX,σ2)。而后我们对y求最大似然估计(MLE),将最大化MLE的问题,一步步化简,最后也可以得到MSE的结果(公式我不敲了...)。
 
2.Gradient Descent
下一步是梯度下降 (Gradient Descent),我觉得是machine learning里面最重要的算法之一了。求J(
θ)在各个维度上的方向,即偏导数。
然后同时在n个方向上更新
θ
 
3. Batch Learning, Stochastic and Mini Batch
可以看到,在上面的算法里,是将m个training example一起计算的,m是training set的大小。也就是每更新一步,我要计算算有training example,复杂度较高。所以有两种变种算法,Stochastic,是每次计算梯度和更新
θ时,只用一个training example,同样的问题就是只用一个training example随机性太大,很有可能会路径曲折浪费时间;而Mini Batch则是指定一个Batch_size,比如32,64,每次用一小批,兼顾二者。

转载于:https://www.cnblogs.com/rhyswang/p/6798980.html

你可能感兴趣的文章
微信公众平台消息接口开发(25)URL关注链接
查看>>
会计电算化常考题目二
查看>>
Advanced Diagnostic using oradebug dumpvar
查看>>
PX Deq: Table Q Normal等待事件
查看>>
【视频教学】学习Oracle前的准备知识和Unix基础
查看>>
一些数学基本概念
查看>>
HTML5 localStorage
查看>>
SQLite的WAL机制
查看>>
Unity容器中的对象生存期管理
查看>>
分享:一个多进程并发执行程序ps命令 ls命令
查看>>
Linux iptables 详解
查看>>
路径输入mac下配置NDK开发环境
查看>>
javascript 空字符串和空格的区别
查看>>
猜你喜欢
查看>>
jQuery插件 -- Form表单插件jquery.form.js
查看>>
MFC自绘控件学习总结第二贴
查看>>
FusionCharts 使用经验
查看>>
VMware虚拟化--网络和存储功能简介
查看>>
mingw下python 调用 gcc 无法识别 -mno-cygwin(转)
查看>>
IOS 5新增API介绍及使用
查看>>