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