编者按:当初学者第一次接触机器算法时,直观了解算法正在做什么是一项非常重要的任务,这也是论智一直推崇可视化方法的原因之一。虽然初级算法的数学计算并不难掌握,但当他们一看到满篇的数学理论和符号,学习下去的兴致和气势就消减了不少。
作为一名数据工作者,这年头“熟悉机器学习算法”远比“精通excel”在求职市场上要抢手得多,但前者的“熟悉”究竟是熟悉到什么程度呢?excel本身就能编写大量基础机器学习算法,而且对于初学者来说,这样的编写过程不仅能加深对算法的理解,还能帮助他们更充分地感受算法的美妙。
下面我们用一个例子来证明这一点。
从本质上来说,大多数数据科学算法其实就是优化问题,而其中最常用的算法之一就是梯度下降算法。对于初学者来说,梯度下降这个词可能乍一听有些可怕,但它真的这么复杂吗?
以下是一个房价预测任务:根据历史房价数据创建一个模型,结合房屋面积预测新房价格。让我们先用已有数据建立一个表格:
如上表所示,房屋面积是x,房价是y,由此我们可以绘制历史房价数据折线图:
现在用一个简单的线性模型,对历史数据进行拟合,根据房屋面积x预测新房价格y(pre):
在上图中,红线是我们的线性模型,因此鉴于横坐标和纵坐标信息,它的表达式是:y(pred) = a + bx。
蓝线是已知的历史房价,从分布上简单给出了房价和房屋面积相关程度的基本信息。
连接红线和蓝线的黄色虚线表示对于同一面积的房屋,模型预测和实际房价的误差(e)。
所以我们的目标是找到最好的a和b,使误差项e最小:
残差平方和(sse)= ½(真实房价-预测房价)2 = ½(y - ypred)2
(sse只是一种方法,还可以用其他方法统计误差)
好了,下面我们就要用到梯度下降了。梯度下降是一种优化算法,它能帮我们找到优化权重(a,b),并保证模型预测的准确率。下面是具体步骤:
步骤1:用随机值初始化权重a和b,并计算误差(sse)。
步骤2:计算梯度,即当权重从初始随机值逐渐变小时sse的变化。这有助于我们把a和b朝sse最小的方向优化。
步骤3:用梯度调整权重以使sse最小化,以达到最佳值。
步骤4:用新权重进行预测,并计算新的sse。
步骤5:重复步骤2和3,直到再次调整权重后不再明显降低预测错误率。
如果说这样描述有些泛泛而谈,下面我们就结合图表详细介绍。请牢记一点,事先把数据处理好有助于更高效的优化。
第一步: 为了拟合y(pred) = a + bx,用随机值初始化a和b,并计算预测误差(sse)。
第二步:计算权重的误差梯度。
∂sse/∂a =-(y-ypred)
∂sse/∂b =-(y-ypred)x
其中,sse=½ (y-ypred)2 = ½(y-(a+bx))2
虽然有一点点让人烦恼的微积分计算,但这已经很基础了,∂sse/∂a和∂sse/∂b是我们想要的梯度,它们给出了sse“下降”的方向。
第三步:用梯度调整权重,使sse获得最小值,也就是最佳值。
这之后我们就能用新权重更新a和b的值,以便模型沿着最优方向移动。
因为
a -∂sse/∂a
b -∂sse/∂b
所以更新规则就是:
新的a = a - r × ∂sse/∂a = 0.45–0.01× 3.300 = 0.42
新的b = b - r × ∂sse/∂b = 0.75–0.01×1.545 = 0.73
其中r=0.01是学习率,表示权重调整的步幅。
第四步:用新的a和b进行预测并计算新的sse。
可以看到,sse已经从0.677下降到0.553了,这意味着模型的预测准确率有所提高。
第五步:重复第二步和第三步,直到再改变a和b,sse不再发生明显变化。
以上就是用excel实现的梯度下降算法,比起一堆数学计算,这样图文并茂的演示是不是更有趣呢?
在mooc课程中,除了吴恩达的deeplearning.ai和udacity,李飞飞强烈推荐的fast.ai也有其独到之处。这家公司的ceo jeremy howard是深度学习领域的一朵奇葩,他没有过硬的学术背景,也没有大型科技公司的就职经历,仅凭自学就在kaggle竞赛中锋芒毕露。对于这样一个人,他的课绝对值得初学者学习。
高温环境对三极管性能有什么影响
H3C电力数据存储管理解决方案
基于LTC2063零漂移放大器的精密高边电流检测电路
无线WiMax部署方案有哪些优势
阿布扎比证券交易所提出了对加密货币及数字资产监管框架的看法
Excel本身就能编写大量基础机器学习算法
有毒有害气体检测仪主要用于哪些情况?
拆解报告:联想65W PD快充火柴盒电源C65B
“中国芯”备受瞩目 武汉新芯争议中坚守
三星S10和三星S10+真机曝光将支持无线反向充电和屏幕指纹识别
鼎阳示波器参数测量3种方式与您分享!
谷歌新的循环神经网络技术是否对模仿生物的人工智能有帮助?
展望聚变能源的未来
苹果iPhone新专利会自动搜集记录使用者指纹信息
回顾桌面小组件功能的前世今生
使用Arduino控制的浸入式炊具
Imagination与Oracle携手增强Java嵌入式和物联网的应用
动力电池和储能电池的区别,储能锂电池的使用寿命有多久?
屹唐半导体二期工程预计于4月底建成投入使用 将为国产设备业带来新的活力
什么是主板的电压调节模组VRM