我们人可以从大量的日常经验中归纳规律,当面临新的问题的时候,就可以利用以往总结的规律去分析现实状况,采取最佳策略。
而机器学习也是类似这样。
所以对于机器学习可以给出如下定义:
机器学习的定义:机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测。
21世纪机器学习又一次被人们关注,而这些关注的背后是因为整个环境的改变,我们的数据量越来越多,硬件越来越强悍。急需要解放人的生产力,自动去寻找数据的规律。解决更多专业领域的问题。机器学习已广泛应用于数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人等领域.
下面大概列举一下:
- 数据分析 - CRM,营销分析,受众研究
- 预测分析 - 股票市场预测,市场研究,欺诈预防
- 服务个性化 - 推荐引擎,用户建模
- 自然语言处理 - 文本生成,文本分析,文本翻译,聊天机器人
- 情感分析 - 受众研究,客户服务,处理,建议
- 计算机视觉 - 图像识别,视觉搜索,人脸识别
- 语音识别 - Ai助手,语音到文本,自动字幕等等。
相信很多人都听说过这些名词但不知道它们之前的关系,下面直接给出一张图:
可以看出人工智能涵盖了机器学习和深度学习,更确切的来说机器学习是人工智能的一个实现途径,而深度学习是机器学习的一个方法发展而来
,
机器学习中有不同的算法,比如线性回归、逻辑回归、SVM、决策树、神经网络等等。由于使用神经网络算法的机器学习比较特殊,所以单独命名这类机器学习为深度学习
,所以也可以理解为深度学习就是使用神经网络算法的机器学习
。
到这里大家可能还会有疑问,那人工智能的定义是什么?
早在1956年夏天那次会议,人工智能的先驱们就梦想着用当时刚刚出现的计算机来构造复杂的、拥有与人类智慧同样本质特性的机器。这就是我们现在所说的
强人工智能
(General AI)。这个无所不能的机器,它有着我们所有的感知(甚至比人更多),我们所有的理性,可以像我们一样思考。强人工智能现在还只存在于电影和科幻小说中,因为目前我们还没办法实现它们。我们目前能实现的一般被称为
弱人工智能
(Narrow AI)。弱人工智能是能够与人一样,甚至比人更好地执行特定任务的技术。例如,我们生活中常见的或者听过的阿尔法系列围棋机器人,人脸识别,语音识别,小度语音机器人,无人驾驶等等这些都是弱人工智能在实践中的例子。
到底该如何学习人工智能呢?可以说,人工智能这个圈子太大了,各行各业都有涉及,可选择的方 向也五花八门、各不相同,包括数据挖掘、计算机视觉、自然语言处理等各大领域。那么,是不是每个 方向要学习的内容差别很大呢?不是的。其实最核心的就是机器学习,你要做的一切都离不开它,所以 无论选择哪个领域,一定要把基础打牢。因此,第一个目标就是搞定机器学习的各大算法,并掌握其应用实践方法。
(1)收集数据
我们可以使用很多方法收集样本护具,如:制作网络爬虫从网站上抽取数据、从RSS反馈或者API中得到信息、设备发送过来的实测数据。
(2)准备输入数据
得到数据之后,还必须确保数据格式符合要求。
(3)分析输入数据
这一步的主要作用是确保数据集中没有垃圾数据。如果是使用信任的数据来源,那么可以直接跳过这个步骤
(4)训练算法
机器学习算法从这一步才真正开始学习。如果使用无监督学习算法,由于不存在目标变量值,故而也不需要训练算法,所有与算法相关的内容在第(5)步
(5)测试算法
这一步将实际使用第(4)步机器学习得到的知识信息。当然在这也需要评估结果的准确率,然后根据需要重新训练你的算法
(6)使用算法
转化为应用程序,执行实际任务。以检验上述步骤是否可以在实际环境中正常工作。如果碰到新的数据问题,同样需要重复执行上述的步骤
定义:输入数据是由输入特征值和目标值所组成。函数的输出可以是一个连续的值(称为回归),或是输出是有限个离散值(称作分类)。
监督学习的任务可以分为两类:分类和回归
分类与回归,这两者都属于监督学习的范畴,都是学习的方法。之所以会取两个不同的名字,就是因为其对应的输出值形式不同,仅此而已。
分类:对各种事物分门别类,用于离散型预测。
比如:猫狗的图片识别:
特征值:猫/狗的图片;目标值:猫/狗-类别
这就是分类问题
常用的分类算法: k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络等
回归:预测连续的、具体的数值。
比如房屋价格的预测:
特征值:房屋的各个属性信息;目标值:房屋价格-连续型数据
这就是回归问题。
常用的回归算法: 线性回归、岭回归等
定义:输入数据是由输入特征值所组成。
无监督学习问题是指,模型在没有任何指示的情况下学习。由于没有指示,也就意味着模型唯一可以学习的东西是样本本身所包含的,如样本之间的相似性和模式,或者样本所在的总体的分布。
无监督学习主要具备3个特点:
无监督学习主要用于降维和聚类。
无监督学习之聚类:
K-means通常被称为劳埃德算法,这在数据聚类中是最经典的,也是相对容易理解的模型。
算法执行的过程分为4个阶段:
- 首先,随机设K个特征空间内的点作为初始的聚类中心。
- 然后,对于根据每个数据的特征向量,从K个聚类中心中寻找距离最近的一个,并且把该数据标记为这个聚类中心。
- 接着,在所有的数据都被标记过聚类中心之后,根据这些数据新分配的类簇,通过取分配给每个先前质心的所有样本的平均值来创建新的质心重,新对K个聚类中心做计算。
- 最后,计算旧和新质心之间的差异,如果所有的数据点从属的聚类中心与上一次的分配的类簇没有变化,那么迭代就可以停止,否则回到步骤2继续循环。
无监督学习之降维:
PCA(主成分)分析方法是最常用的降维方法,PCA的思想即将高维空间的数据投影到低维空间上,使得数据在低维空间上尽可能分散,从而保持数据的绝大部分信息。
互联网公司机器学习工作、数据挖掘工程师们工作内容是什么?
研究各种算法,设计高大上模型?
深度学习的应用,N层神经网络?
…
这些都不是,实际上大部分复杂模型的算法精进都是数据科学家在做,
而大多数程序员主要做的是:
跑数据,各种map-reduce,hive SQL,数据仓库搬砖
数据清洗,数据清洗,数据清洗
分析业务,分析case,找特征
常用算法跑模型
那对于我们来说,最重要的是什么?
学会分析问题
掌握算法基本思想,学会对问题用相应的算法解决
学会利用简便的库或者框架解决问题
如果你百度过机器学习怎么学习的问题,很多人都会推荐先看大学数学相关的所有书籍,像高数,线性代数,概率论与数理统计,李航的统计学习方法等,像这些:
可能很多人刚开始还挺有激情,后面会感觉枯燥乏味不容易坚持下去,个人建议不要这样做。最好的学习方法是先入手用起来,然后边做案例边学习才,缺什么就补什么,这样既不枯燥也加深了理解与运用。
我们前面已经说过,一定要明确对我们来说最重要的是什么,
对我们来说当前重要的是掌握一些机器学习算法等技巧,从某个业务领域切入解决问题。
推荐的视频教程:
这里就不放外链了,我就说一下我看过的,公开的b站上可以直接搜吴恩达机器学习
,这个是最经典的鼻祖级的,还有比较好的可以直接搜机器学习白板推导
,还有浙大胡浩基教授的机器学习课程,直接搜浙大机器学习
就可以搜到。
还有差点忘了,看西瓜书的话,B站有一个老师我觉得讲的比较好就搜周志华的西瓜书
30多个小时这个,遗憾的是视频缺失了一部分(后面缺的少,可以和其他视频结合着看),可能是我觉得这个老师经常提问学生有一直身临其境的代入感吧,哈哈。
推荐的书籍:
最经典的是第一本西瓜书,基础走完了就可以找一些机器学习框架实战类课程看一看,框架要学习的东西也不少,经典的tensorflow框架,框架新秀pytorch,这两个都可以好好研究研究,其他的框架像caffe、theano、chainer有精力的可以研究一下,其实框架玩熟一两个完全够用,就像用python做web开发,你可以用大而全的Django框架,也可以用小而精的Flask,这些都不用纠结,根据自己的时间选择一个相应复杂度的框架先学习,我们的目标还是遇到问题,解决问题最后完成任务。