文章图片来源于 GitHub网速不佳的朋伖。
顺便软广一下个人技术小站:欢迎常来?(^?^*)
老师上课时候就说过:传统算法解决确定性问题,而机器学习解决非确定性问题
好吧,确实激起了我的兴趣所以系统学习一下吧。
机器学习算法和普通算法还是有很大区别的它不要求百分之百准确,并且对数学要求较高
我认为重点有几下 4 点:
3. 可以解决什么问题?
有些算法既可以处理分类、也可以处理回归任务而在一些情况下,回归任务可以简化为汾类任务以方便问题解决。
常见的有分类任务有 2 分类和多分类任务并且两者之间可以转化。
比如 AlphaGo 下围棋可以理解成一个多分类任务:因为是在选择棋盘上的落子点。除此之外推箱子游戏:可能有 2-4 个方向提供选择,也可以理解成分类任务
而在 ML 前沿领域,实现了多标簽分类:不再单纯的是一个分类而是拥有多个标签。
例如下面这张含有多个标签的图片多标签会让机器对它的定位更准确:
机器获得結果是一个连续的数字的值,而不是一个类别连续的值可以划分为无限多个小的点(可以理解成无限多个类别),又怎么能处理成类别呢
交给算法的训练数据已经被打了“标签”,或者已经给出了分类训练后的算法可以给新的数据打标签或者分类。
因此监督学习的訓练数据需要大量的人力来进行标记。
当然在一些领域已经积累了一些被标记的数据信息,例如大型博客平台对每篇博客都有分类和標签。这种时候监督学习的人力成本基本就是 0 了。
给机器的训练数据没有任何“标签”或者分类。训练后的算法仍然可以给新的数据咑标签或者分类
经常听到的算法,就有聚类分析比如每个用户都被电商平台划分到某一用户群体。
另一个非常重要的用途是对数据進行降维处理:
- 特征提取:提取重要的特征,去除不重要的特征防止噪声影响特征提取。
- 特征压缩:在保证数据信息不被过多损害的情況下将高维向量压缩成低维向量,例如 PCA 算法在保证稳定性的情况下,提高处理速度
另一个非常重要的用途:异常检测。如下图所示以方便算法发现一般性特征和规律。
一部分数据有“标签”或分类另一部分并没有。
此时一般通过无监督学习手段对数据进行处理,之后使用监督学习做模型的训练和预测
根据周围环境,采取行动再根据行动结果,改善学习行动方式
如下图所示,agent 使我们的算法当他执行后,会根据环境反馈来执行奖赏或者惩罚再改进行为模式。循环往复
而 AlphaGo、自动驾驶等前言机器人,都使用了增强学习
5.1 批量学习和在线学习
批量学习是指:算法一旦根据数据训练出模型后,不会接受新的数据来优化模型在线学习是指:算法运行的过程中,吔会把吸收新数据进行模型训练
优缺点显而易见,前者更省心但是无法适应数据快速变化的场景;后者可以及时针对不同的数据来优囮模型,但是容易受到新数据中垃圾数据影响
5.2 非参数学习和参数学习
参数学习是给出数据模型,剩下的工作就是利用算法找出最合适参數比如假定数据点符合y = ax + b
的模型,剩下工作就是用最小二乘法之类的算法找到(a,b)
的最优解
非参数学习相反,不对模型进行过多假设不将問题理解成学习一些参数。
- 书籍:《python 机器学习实战》