一文看懂深度学习,深度学习算法( 二 )


以上内容表明了算法的内在根基是建立在数学基础之上 , 诚然 , 现在的框架发展速度很快 , 利用高级API在不了解数学基础的情况下 , 一样可以完成一些机器学习的工作 。但是这样的方式对深入理解算法的实现原理和一些超参数的调优等工作的理解是没有帮助的 。同时 , 建立对问题和数据的更深入理解也都需要一定的数学基础 。建议如果有时间的话 , 回顾和温习一下这些数学基础对算法工作是大有益处的 。
2、机器学习机器学习作为算法工作的基础 , 是需要算法工作人员深入理解的基本知识 。诚然 , 机器学习涉及到的算法很多 , 但是整理对任务的理解需要如下几方面的知识 。a.数据预处理数据是机器学习算法的源泉 , 但现实工作中的数据多是杂乱和不规整的 。因此对数据的预处理变得非常重要 , 通常包含:数据处理 , 数值转化 , 数据规范化等工作 。
b.特征选择特征选择很大程度上依靠算法人员的经验和对行业的了解 , 确定数据中表现良好的特征 , 还有与预测结果具有高相关性的特征 。还有这部分中涉及到的相关性分析 , 方差筛选等相关知识也需要掌握 。c.算法选择首先 , 可以根据任务的类别将机器学习算法分为 , 分类 , 回归 , 推荐 , 聚类 , 降维等不同的具体任务范围 , 在每个范围内有时候很难确定具体使用那个算法效果最优 , 这和数据的特性有很大的关系 。
在每个范围内尽量多掌握每个算法的特点 , 在选择算法时的决策就更加清晰 。d.参数调优超参数的调优很大程度上需要对选定的算法有着深入的理解 。理解不同参数对在算法工作时产生了影响是什么;掌握不同算法 , 超参数的调优集合一般是多少(例如某一个超参数 , 一般设置值都是多少 , 或者范围是多少) 。同时 , 还需要构建算法参数快速调试的平台 , 针对返回结果 , 能快速针对不同的超参数进行测试 。
在这方面 , 网格搜索的方法可以起到不错的效果 。3、深度学习深度学习作为机器学习的分支 , 最近几年呈现井喷式的发展 。这其中既包含了传统机器学习的相关知识 , 也包含深度学习特有的一些新视角 , 如下简单聊聊深度学习的基本知识都有那些 。a.神经网络神经网络是构建深度学习的基础 , 需要软件开发人员首先了解神经网络的基本概念 , 输入层 , 隐藏层 , 激活函数等相关概念 。
Sigmod,tahn等函数的意义 。能推演出简单的(隐藏层数不多)神经网络结构 。b.CNN和 RNN掌握CNN和RNN(包括LSTM)这两种主流的深度学习框架 , 以及适用的场景 。掌握卷积尺寸的对其(图像处理方向) , 激活函数 , 池化层 , 全连接层 , dropout等相关技术 。掌握LSTM的基本思想 , 能构建出多层的LSTM网络 。
c.反向传播和优化掌握反向传播的基本思想和实现原理 , 理解梯度衰减和梯度爆炸产生的原因 。对设计出的神经网络的每一层和每一个操作有着清晰的认识 。能对深度学习网络进行优化 , 掌握常见的Adam和正则化的基本操作 。本篇文章我们主要针对算法工程师应当具备的数学、机器学习和和深度学习方面的基础知识进行了简单的汇总 。
深度学习最终会淘汰掉其他所有机器学习算法吗?

推荐阅读