构建机器学习算法
- 本文首发自公众号:RAIS,点击直接关注。
前言
本系列文章为《Deep Learning》读书笔记,可以参看原书一起阅读,效果更佳。我们前面也介绍了一些构建机器学习或深度学习的一些内容,理解了其中部分原理和这么做的原因,接下来我们总结一下,跳出来从更高一点的方面去概括的看一看,也许会有不同的感觉。
构建机器学习算法
构建机器学习算法是有套路的:特定的数据集、代价函数、优化过程和模型。数据集比较好理解,没有数据模型就没办法训练,需要做的事情可能是把不好是数据处理成好的数据,这属于特征工程方面的问题,在深度学习研究者中也有大量的时间花在了特征工程上。代价函数,机器学习的训练模型的过程就是优化代价函数的过程,尽可能使代价函数减小。一般的优化算法就是找损失函数梯度为零,或者说找到最小值(极小值)的一组参数。代价函数一般与 损失函数 和 目标函数 进行一个对比,他们的区别是:
- 损失函数:通常定义在一个数据点上来计算误差;
- 代价函数:通常定义在整个训练集上来计算误差,是损失函数的平均值;
- 目标函数:训练期间优化任何功能的最通用的术语,包括目标损失和结构损失(如代价函数 + 正则化)
具体那个式子叫做什么其实还是有一点争议的,不过不要纠结了,明确具体需要做什么就好了。我们这里需要提醒一下,由于模型的不同,不是所有的时候都能找到闭式解,例如非线性模型,这时需要用到数值优化的方法,比如梯度下降的方法逼近目标,不是这里的重点,注意就好。
遇到的问题
促使一门学科的发展从来都不是已经比较好解决了的问题,都是那些没有解决的问题,深度学习机器学习也是一样的,正是因为还存在各种问题才推动着其继续向前发展。
维数灾难
又名维数的诅咒,是不是有那么一种命中注定的感觉。每增加一个维度数据空间的大小都成指数级增长,要填满数据空间所需要的数据量就会急剧膨胀,反过来来说,数据量没那么大的情况下就会让数据在其空间的分布变得稀疏,也就是大量的特征没有数据去进行训练,必然会导致模型的泛化能力减弱。
局部不变性
为了更好的泛化,机器学习应该由先验引导应该学习什么类型的函数,其中最广泛的是平滑先验(局部不变性先验),说的是我们学习的函数不应该在小区域内发生很大的变化,这是我们可以直观理解的。一般情况下,这都能表现良好,问题是在高维空间上,即使非常平滑的函数在同维度上也有不同的变化,如果函数在不同的区间表现不一样,那就没办法用一组训练样本去刻画函数,也就没办法很好的泛化。
流形学习
流形学习可以用在维数约简方面,主要做法就是将高维的数据映射到低维,在低维上数据能够反映高维数据的本质特征,其中去除的是高维数据的一些冗余。反过来,也是因为这假设的是这个高维数据是原来低纬数据嵌入到高维空间中,流形学习是求其逆运算。
总结
本文介绍了构建机器学习方法的一般步骤,及其所遇到的问题。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
OSS签名Header实现Demo(PHP)
概述 OSS的集成上传和下载提供了SDK可以直接使用,但实际使用中一些用户受限环境或者设备限制需要使用api方式来实现上传和下载,本文以PutObject接口为例,提供了PHP实现的demo。注:建议优先使用OSS提供SDK,本文提供的只是签名实现上传demo,实际使用中需要结合业务来进行改动代码 详细信息 PutObject实现Demo(测试环境php5.6.30): <?php function curlput($url,$data,$method='PUT',$bucket,$object,$accesskey ,$accesskeySecret){ $time = gmdate ("D, d M Y H:i:s T"); $str = "PUT\n\n"."application/json\n".$time."\n/".$bucket."/".$object; //echo($str); $signature = base64_encode(hash_hmac("sha1", $str, $accesskeySecret, true)); //echo($time); /...
- 下一篇
Archery v1.7.9 发布,支持数据归档
Archery 定位于 SQL 审核查询平台,旨在提升 DBA 的工作效率,支持众多数据库的 SQL 上线和查询,同时支持丰富的 MySQL 运维管理功能,所有功能都兼容手机端操作。 功能清单 查询 审核 执行 备份 数据字典 慢日志 会话管理 账号管理 参数管理 数据归档 MySQL √ √ √ √ √ √ √ √ √ √ MsSQL √ × √ × × × × × × × Redis √ × √ × × × × × × × PgSQL √ × √ × × × × × × × Oracle √ × √ × × × × × × × MongoDB √ × × × × × × × × × 本次更新主要完善了MySQL数据归档模块,项目持续迭代维护中,还有众多优化等你发现,更多信息可查看项目主页
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范
- Red5直播服务器,属于Java语言的直播服务器
- 2048小游戏-低调大师作品
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装