惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
博客园 - 叶小钗
S
SegmentFault 最新的问题
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
博客园_首页
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
腾讯CDC
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
L
Lohrmann on Cybersecurity
量子位
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tor Project blog
J
Java Code Geeks
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - 三生石上(FineUI控件)
Attack and Defense Labs
Attack and Defense Labs
AI
AI
The Cloudflare Blog
T
Tailwind CSS Blog
S
Schneier on Security
爱范儿
爱范儿
PCI Perspectives
PCI Perspectives
Stack Overflow Blog
Stack Overflow Blog
S
Secure Thoughts
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
T
The Exploit Database - CXSecurity.com
博客园 - 【当耐特】
V2EX - 技术
V2EX - 技术
S
Securelist
P
Proofpoint News Feed
T
Threat Research - Cisco Blogs
Help Net Security
Help Net Security
C
Cisco Blogs
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
B
Blog RSS Feed
K
Kaspersky official blog
T
The Blog of Author Tim Ferriss
G
Google Developers Blog
S
Security Affairs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Simon Willison's Weblog
Simon Willison's Weblog

RAIS

LSTM - 长短期记忆网络 - RAIS 三种梯度下降算法的区别(BGD, SGD, MBGD) - RAIS PCA - 主成分分析法 - RAIS Sigmoid 函数 - RAIS | Blog 深度学习中的正则化(一) - RAIS | Blog 深度前馈网络 - RAIS | Blog 随机梯度下降 - RAIS | Blog 无监督学习算法 - RAIS | Blog 监督学习算法 - RAIS | Blog 最大似然估计与最大后验估计 - RAIS | Blog 估计、偏差和方差 - RAIS | Blog 超参数、验证集和K-折交叉验证 - RAIS | Blog 过拟合和欠拟合 - RAIS | Blog 机器学习算法 - RAIS | Blog 深度学习中的数值计算 - RAIS | Blog 深度学习中的信息论 - RAIS | Blog 深度学习中的概率论 - RAIS | Blog 深度学习中的线性代数 - RAIS | Blog 深度学习最佳实践 - RAIS | Blog
构建机器学习算法 - RAIS | Blog
2020-04-11 · via RAIS
  • 本文首发自公众号:RAIS,点击直接关注。

前言

本系列文章为《Deep Learning》读书笔记,可以参看原书一起阅读,效果更佳。我们前面也介绍了一些构建机器学习或深度学习的一些内容,理解了其中部分原理和这么做的原因,接下来我们总结一下,跳出来从更高一点的方面去概括的看一看,也许会有不同的感觉。

构建机器学习算法

构建机器学习算法是有套路的:特定的数据集、代价函数、优化过程和模型。数据集比较好理解,没有数据模型就没办法训练,需要做的事情可能是把不好是数据处理成好的数据,这属于特征工程方面的问题,在深度学习研究者中也有大量的时间花在了特征工程上。代价函数,机器学习的训练模型的过程就是优化代价函数的过程,尽可能使代价函数减小。一般的优化算法就是找损失函数梯度为零,或者说找到最小值(极小值)的一组参数。代价函数一般与 损失函数目标函数 进行一个对比,他们的区别是:

  • 损失函数:通常定义在一个数据点上来计算误差;
  • 代价函数:通常定义在整个训练集上来计算误差,是损失函数的平均值;
  • 目标函数:训练期间优化任何功能的最通用的术语,包括目标损失和结构损失(如代价函数 + 正则化)

具体那个式子叫做什么其实还是有一点争议的,不过不要纠结了,明确具体需要做什么就好了。我们这里需要提醒一下,由于模型的不同,不是所有的时候都能找到闭式解,例如非线性模型,这时需要用到数值优化的方法,比如梯度下降的方法逼近目标,不是这里的重点,注意就好。

遇到的问题

促使一门学科的发展从来都不是已经比较好解决了的问题,都是那些没有解决的问题,深度学习机器学习也是一样的,正是因为还存在各种问题才推动着其继续向前发展。

维数灾难

又名维数的诅咒,是不是有那么一种命中注定的感觉。每增加一个维度数据空间的大小都成指数级增长,要填满数据空间所需要的数据量就会急剧膨胀,反过来来说,数据量没那么大的情况下就会让数据在其空间的分布变得稀疏,也就是大量的特征没有数据去进行训练,必然会导致模型的泛化能力减弱。

维数灾难

局部不变性

为了更好的泛化,机器学习应该由先验引导应该学习什么类型的函数,其中最广泛的是平滑先验(局部不变性先验),说的是我们学习的函数不应该在小区域内发生很大的变化,这是我们可以直观理解的。一般情况下,这都能表现良好,问题是在高维空间上,即使非常平滑的函数在同维度上也有不同的变化,如果函数在不同的区间表现不一样,那就没办法用一组训练样本去刻画函数,也就没办法很好的泛化。

流形学习

流形学习可以用在维数约简方面,主要做法就是将高维的数据映射到低维,在低维上数据能够反映高维数据的本质特征,其中去除的是高维数据的一些冗余。反过来,也是因为这假设的是这个高维数据是原来低纬数据嵌入到高维空间中,流形学习是求其逆运算。

流形学习

总结

本文介绍了构建机器学习方法的一般步骤,及其所遇到的问题。