机器学习入门篇【一】:以拉家常的方式讲机器学习

前言

  • 因为对机器学习比较感兴趣,最近也可能会用得上,所以想浅浅的谈一谈机器学习,大佬就不用在这浪费时间了,不涉及公式推导。甚至该篇都称不上是什么经验贴,只能说是最近搜寻有些资料有感而发。
  • 那么想通过这一篇文章把我最近看的帖子搜寻过的知识点梳理一遍,那么看完这篇文章的唯一目的就是:知道究竟什么是机器学习
  • 其中难免掺杂了一些个人理解,如果有误恳请指正!

一、机器学习入门

  • 首先什么是人工智能(AI:Artificial Intelligence)? - 这个问题我想随便问一个人都会有他心中的答案,不管是电影里面的终结者,还是我们随叫随到的Siri、天天在用的美图软件等,都可以说是人工智能
  • 人工智能的分类:1. 弱人工智能:只能解决限定领域的一些问题。 2. 强人工智能:能够比肩人类,胜任一些人类的工作。 3. 超人工智能:终结者(算力、智慧远超人类。 长久以来都有人担心人工智能会对人类产生威胁,尤其是AlphaGo(阿尔法狗)战胜围棋冠军李世石以来更是掀起了一股巨浪。但是于我看来,且不说人工智能现在还处于最低的弱人工智能阶段,就算是人工智能成为了强人工智能、甚至超人工智能,但是首先第一点人工智能仅仅是工具而已,汽车发明的时候黄包车夫也会担心没有乘客了怎么办,但是现在的出租车司机、滴滴司机也没挨冻受饿。第二点,在肉眼可见的未来,就算我这小半辈子吧,应该是看不到出现的传说中的终结者(但是谁也说不清,从蒸汽机到现在也没用多少年),所以如果数十载过去终结者们看到我这篇文章的时候会不会嗤之以鼻 - 三十年前的人都这么天真么hhhh
  • 人工智能发展的三次浪潮:1. 非智能对话机器人(图灵测试。 2. 语音识别。 3. 深度学习+大数据。当然啦,我们现在就正处于第三次浪潮中,因为不管是大学生项目还是网站广告,不带上大数据+云计算就老感觉少了点什么。但是平心而论目前也的确处于浪潮中,看看每天玩微信刷抖音的人,那得产生多少数据啊!数据就是真金白银,谁能看着金山银山而无动于衷呢!在这也可以提一句,大家普遍认为的前两次浪潮都是学术界推动的,第三次是市场推动的,转念一想也能理解,wx语音转文字哪有淘宝获取你想买什么的数据赚钱嘛!
  • 既然都聊到这一点了,那就顺便聊一聊大数据吧。大数据(Big Data),根据字面意思也好理解,指的就是那些无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产(百度百科版)。说人话就是数据量实在是太大了,存也不好存,处理也不好处理的数据。那么大数据有五大特性,这个是需要关注一下的,不知道这五个特性都不好意思说了解过大数据。五大特性分别是:Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性),简称5V。阿对了,大数据的数据量单位一般是PB,K、M、G、T、P、E、Z,K是10的三次方,往后推一下P就是10的15次方,这种数据量可不是开玩笑的!那他有什么用呢? - 假如你要开网店,100个人买红色衬衫,100万个人买绿色衬衫,你会卖哪个?一提到大数据,云计算、Hadoop、HDFS、分布式都绕不开,在这就不做过多的展开了。
  • 绕远了,再绕回来,还是回到我们的标题上来,我们的标题是机器学习,那和刚刚的扯了一半天的人工智能AI又有啥关系?如下图:机器学习入门篇【一】:以拉家常的方式讲机器学习_第1张图片
    (解释一句哈,说千说万AI、机器学习、深度学习都是工具是方法,是某一类算法的集成,不要把界限划的太清也不能太混淆,AI包含着机器学习方法,而深度学习是机器学习的一个分支)
  • 那么机器学习是什么呢? - 在我看来机器学习就是一堆算法,算法的定义:解决问题的一系列步骤或指令。那么机器学习不是算法是什么!只不过机器学习的算法和DP、和贪心解决的问题的方向不同而已,那些经典算法都是为了得出一个运算结果,比如最大值、比如最长子序列。而机器学习更多的是为了分类,比如对我朋友进行一个分类,他鼻子高、眼睛大、头发又长又黑,那我朋友该分到帅哥类还是丑人类?明显帅哥类嘛!机器学习就干这么一件事了。
  • 机器学习的运行原理是啥呢? - 这个时候我突然想起过去的一个笑话:机器学习,人不学吗?(美好的校园时光hhh),差不多吧,丢一堆数据给算法,让他自己搞一个模型出来后面用。那我们还是正式一点:**通过训练集,不断识别特征,不断建模,最后形成有效的模型,这个过程就叫“机器学习”!**翻译:给一堆数据,找找数据的特点是啥,然后建立模型(这个模型是什么折磨我良久,但但是后来想通了,if-else他也是个模型嘛哈哈哈),这个,就是传说中的 - 机器学习(Machine Learning)

二、机器学习分类

  • 机器学习分类:监督学习、非监督学习(无监督学习)、强化学习。
  • 监督学习:监督学习是指:我们给算法一个数据集,并且给出正确的答案,机器通过数据来学习正确答案的计算方法。举个栗子:我们有100000张猫和狮子的图片,然后呢给这些图片打上标签(tag),告诉机器,这个矮一点的,瘦小一点的,可爱一点的(特征)是猫、这个鬃毛长一点的,大一点的,看起来会咬人的是(特征)狮子,然后机器通过大量的训练和学习,下次再碰到一张猫或者狮子的图片就能辨认出来,图中的究竟是猫、还是狮子了。
  • 非监督学习:只有数据集,没有正确答案,机器自己去找正确的答案。这个可能不太好理解,答案怎么找呢?以聚类举个栗子,当然什么是聚类后面也会说到。现在有一批猫和狗的数据,进来之后让他们自己找位置站,根据不同的特征那么肯定会分为不同的阵营,猫和狗分成两大阵营,现在进来一个不明物体,看看他身上的特征有些啥,自然就知道该把他丢到猫的阵营,还是丢到狗的阵营了。
  • 强化学习:以“试错”的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使智能体获得最大的奖赏,强化学习不同于连接主义学习中的监督学习,主要表现在强化信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习系统RLS(reinforcement learning system)如何去产生正确的动作。(百度百科),其实他是最类似于我们的学习过程的,简单来说就是尝点甜头,考试考了100分有糖吃,那么下次还考100分。
  • 监督学习代表:线性回归、Logistic回归(LR)、支持向量机(SVM:Support Vector Machine)、决策树、朴素贝叶斯(NBM:Naive Bayes model)、K邻近(KNN:k-nearest neighbors)、随机森林、AdaBoost、神经网络等(当然随着日新月异的发展,算法肯定不止这么多,在这罗列几个经常能遇见的比较经典的算法)
  • 无监督学习代表:K-means、EM、聚累算法等
  • 强化学习:RL,这个了解不多,精力还主要集中在前两个
  • 机器学习一般步骤:收集数据、数据准备、选择模型、训练、评估、参数调整、投入使用

三、 模型分类

  • 其实关于模型分类也有一些讲究,对于监督学习而言模型主要分为两类:判别模型和生成模型
  • 判别模型:线性回归、对数回归、线性判别分析、支持向量机、 boosting、神经网络、决策树等。
  • 生成模型:隐马尔科夫模型、朴素贝叶斯模型、高斯混合模型、 LDA等
  • 如何区分判别模型以及生成模型呢? - 判别模型关心的是根据f(x),给定的x应该输出什么样子的y,比如要预测一只兔子是垂耳兔还是直耳兔,那就先从历史数据中学习到经验,然后来一只兔子就可以根据学习出来的模型判断是什么兔子了。**生成模型则是根据联合分布律求后验概率。**还是那只兔子,训练出模型来把新来的兔子丢进去,算算概率,看看是什么品种的兔子的概率大,哪个概率大就是那个哪个了。
  • 所以如果有人问到决策树和朴素贝叶斯的区别,这一条是一定用得上的:决策树是判别模型,朴素贝叶斯是生成模型然后吧啦吧啦
  • 有什么优缺点:优点:判别模型需要的样本数量少,生成模型收敛速度快。缺点:判别模型不能反映训练数据本身的特性,生成模型多数情况下效果没有判别模型好。

四、机器学习相关术语了解

  • 损失函数:损失函数(loss function)是用来度量模型预测值f(x)与样本真实标签值y的不一致程度。给定输入的样本数据x,模型函数输出一个f(x),这个输出的f(x)与样本的真实值标签值y可能是相同的,也可能是不同的,为了表示我们拟合的好坏,就用一个函数来度量拟合的程度。**简单来说就是可以通过损失函数判断你这个模型的好坏。**损失函数有很多种,用的最多的还是均方损失函数(模型预测出的结果和真实值差的平方和求平均)。然后根据这个损失函数可以去调参啊之类的,让模型变得更好
  • 过拟合:简单来说就是特征太多,分类的曲线拟合的太精准,田园犬是狗,然后碰上一只哈士奇说:不是黄的不是狗。
  • 欠拟合:顾名思义还欠着点,功夫不到家,田园犬是狗,结果看见一头狮子说:黄色的也是狗。
  • 关于过拟合和欠拟合,周志华老师的西瓜书的例子就很好,过拟合的时候认为没有锯齿状边缘的树叶不是树叶,欠拟合的时候认为绿色的森林也是树叶。
  • 梯度下降:最小化损失函数时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数。最小化损失函数是为了得到最优的参数,那么最小化的时候就可以通过梯度下降来完成了,那为什么要沿梯度方向呢?梯度方向收敛最快。在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。经历过考研数学折磨的同学看这个可能就好理解了,对,就是那个该死的grad。
  • 最小二乘法:fun = 求和(观测值 - 理论值)的平方
  • 分类:输出是离散值,目的是找到决策边界。比如0/1,男人/女人。
  • 回归:输出是连续值,目的是找到最优拟合。预测明天的气温是多少度。
  • 当然机器学习博大精深,用到的属于还有什么特征、标签、数据集、泛化、甚至更细碎的真阳率、假阳率、奥卡姆剃刀原理(做事切勿浪费较多东西去做,用较少的东西,同样可以做好的事情)、ROC曲线等这些还是需要在大家进行更进一步的学习的时候才能有所收获
  • 接下来就进入到常见的一些算法里吧!

我准备做一个系列,现在先介绍一下入个门,当然啦大家肯定都喜欢一文到底,但是那样周期太长,我写的痛苦,大家看的也痛苦。后续就开始正式去介绍一些机器学习的算法了。最重要的好处是拆开写能push我写的更详细,我也能从中学到更多的东西!

下节预告:机器学习入门篇【二】:Logistic回归

你可能感兴趣的:(机器学习,机器学习,人工智能)