以研发人员的身份亲身经历了PC互联网和移动互联网的两段发展过程,现在面临新的一波AI浪潮时,虽然身份已经成为不再亲自从事技术工作的企业管理者。但正如曾经经历过互联网对各个行业/企业的颠覆/赋能,AI重塑行业/企业也一定是大势所趋,对于很多非技术出身或者对技术不敏感的企业管理者,AI/机器学习只是意味着一个名词,一种大家都追逐的趋势,一种对企业的包装方式......。但对于一个仍然热爱技术的人,深入了解的价值在于不再是如何包装企业/产品与AI结合,而是从业务场景的解析、业务场景的抽象、数据的收集、算法的选择......这些落地的环节将企业业务和AI进行结合,形成竞争中的先发优势。

在此之前已经看了很多AI相关的书籍和资料,良莠不齐,算是填鸭式教育阶段。各种历史、概念充斥在脑海中,有种云里雾里的感觉。但是这种填鸭式教育也有好处,就是当遇到一些优秀的书籍或文章时,能够利用其明了的层次结构将这些散乱的知识进行梳理、关联。比如知晓了人工智能的历史发展脉络,符号主义、连接主义、行为主义,知道了机器学习只是人工智能的一种核心技术,而深度学习又是机器学习的子集,神经网络是实现深度学习的基础模型,图像识别、语音识别、自然语言处理是深度学习的应用.....因为现在机器学习几乎成了AI的代名词(核心),所以就成为了大家重点的学习领域,很有幸发现了《Scikit-Learn与TensorFlow机器学习实用指南(影印版)》这本好书,书中第一章就让自己对机器学习又有了清晰系统化的理解。其他章节的深入和案例及代码也非常棒,具备实践性和可执行性。

其他读过的人工智能有关书籍

  • 《智能时代》2016年出版的书籍,那时人工智能处于萌芽期,准备追逐这波浪潮。所以记住了书中的一段话:"这是最好的时代,也是最坏的时代。是要顺势而上,还是逆势而下,在于我们自己的选择。"

  • 《人工智能革命》 感觉还不错的一本人工智能历史、技术、人物科普书籍,虽然被评价讲的很浅,但每本书应该都有自己的定位吧——科普书籍。同时从这本书中了解到了一部很棒的英剧《黑镜》,追了几季,算是意外所得吧。^_^

  • 《科学的极致:漫谈人工智能》也是一本科普书籍,但是给我的感觉本书体现的是哲科思维,比较难懂。

  • 《集体智慧编程》 15年出版,豆瓣评分在8.9的高分,但是阅读者寥寥。我觉得在AI和大数据大热的时代,一个晦涩的书名就会让大家错失一本优秀的书籍,想对“机器学习”与“计算统计”进行了解和实践的朋友推荐阅读,其中的应用场景很贴近生活(比如商品偏好推荐、房价预测,约会匹配、金融场景……),书中所附代码也是可以执行的……,只是理解此书中所附知识点估计还需阅读实践多遍,并进行大量拓展学习( ̄(●●) ̄)

  • 《人工智能导论》 类似于教科书的学术书籍,比较中规中矩,涵盖面广泛,适合做人工智能学习入门引导。

  • 《裂变:秒懂人工智能的基础课》书的组织和脉络较好, 如学习人工智能需要掌握哪些数学基础;目前最火热的机器学习,人工神经网络,深度学习又是怎样的;神经网络实例;深度学习之外的人工智能有哪些,机器学习并不是人工智能的全部;人工智能的应用场景。这种层层递进的讲解脉络让自己对人工智能的框架有了较清晰的认识。另外作者也是上述书籍《人工智能革命》的作者,文笔很好,兼具科技与人文主义。

休闲书籍:

附《Scikit-Learn与TensorFlow机器学习实用指南(影印版)》第一章的练习

如何定义机器学习?

  • 机器学习是通过编程让计算机从数据中进行学习的科学(和艺术)。

  • 机器学习是让计算机具有学习的能力,无需进行明确编程。

  • 计算机程序利用经验E学习任务T,性能是P,如果针对任务T的性能P,随着经验E不断增长而P也随之增长,则称为机器学习。

机器学习可以解决什么问题,请列举四种?

  • 需要进行大量手工调整或需要拥有长串规则才能解决的问题:机器学习可以简化代码、提高性能。

  • 问题复杂,传统方法难以解决:使用良好的机器学习技术可以找到解决方案。

  • 环境有波动:机器学习算法可以适应新数据。

  • 从复杂问题和大量数据(数据挖掘)中发现非预期的关系/趋势,带来更好的处理问题的方式。

什么是带标签的训练集?

  • 在监督学习中,用来训练算法的训练数据包含了答案,称为标签。

请列举常见的两种监督学习任务?

  • 分类,如垃圾邮件过滤器就是用许多带有归类的邮件样本进行训练,过滤器还能对新邮件进行分类;

  • 回归(预测目标值),例如给出一些特征(里程数、车龄、品牌等),来预测一辆汽车的价格。

指出四个常见的非监督任务?

  • 聚类,假设利用博客访客的大量用户数据,检测相似访客的分组。

  • 可视化和降维,给算法大量复杂且不加标签的数据,算法输出数据的2D或3D图像。

  • 异常检测,例如检测异常的信用卡转账以防欺诈,检测制造缺陷,或者在训练之前自动从训练数据集去除异常值。

  • 关联规则学习,挖掘大量数据以发现属性间有趣的关系。

要是一个机器人能在各种未知地形行走,你会采用什么机器学习算法?

  • 强化学习:学习系统在这里被称为智能体,可以对环境进行观察,选择和执行动作,获得奖励(负奖励是惩罚)。然后它必须自己学习哪个是最佳方法(策略),以得到长久的最大奖励。策略决定了智能体在给定情况下应该采取的行动。

要对你的顾客进行分组,你会采用哪类算法?

  • 在不知如何定义顾客组的情况下采用非监督学习的聚类算法;如果你知道你想要什么类别的用户组,采用监督学习的分类算法。

垃圾邮件检测是监督学习问题,还是非监督学习问题?

  • 监督学习问题

什么是在线学习系统?

  • 在线学习是用数据持续的进行训练,可以一次一个或者一次几个实例(小批量)。每个学习步骤都很快且廉价,所以系统可以动态地学习到达的数据。

什么是核外学习?

  • 在线学习算法也可以当机器的内存存不下大量数据时,用来训练系统(成为核外学习)。算法加载部分的数据,用这些数据进行训练,重复这个过程,直到用所有数据都进行了训练。

什么学习算法是用相似度做预测?

  • 基于实例学习的机器学习算法使用记忆来学习案例数据。然后使用相似度测量推广到新的例子。

基于模型学习算法的参数和学习算法的超参数的区别是什么?

  • 基于模型学习算法有一个或多个模型参数,这些参数决定了它将如何预测给定的新实例(例如,线性模型的斜率)。此学习算法试图找到这些参数的最优值,这样模型就可以很好地推广到新的实例。学习算法的超参数是是其本身的参数,而不是模型的。

基于模型学习的算法搜寻的是什么?最成功的策略是什么?基于模型学习如何预测?

  • 基于模型的学习算法为模型参数寻找最优值,使模型能够很好地推广到新的例子中。我们可以定义一个实用函数(或拟合函数)用来测量模型是否够好,或者定义一个代价函数来测量模型有多差。对于线性回归问题,人们一般是用代价函数测量线性模型的预测值和训练样本的距离差,目标是使距离差最小。

机器学习的四个主要挑战是什么?

  • 训练数据不足。机器学习需要大量的数据,才能让多数机器学习算法正常工作。即便对于非常简单的问题,一般也需要数千的样本,对于复杂的问题,比如图像或语音识别,你可能需要数百万的样本。(也可重复使用部分存在的模型)。

  • 没有代表性的训练数据。

  • 低质量的数据。如果训练集中的错误、异常值和噪声太多,系统检测出潜在规律的难度就会变大,性能就会降低。

  • 不相关的特征。避免进来的是垃圾,出去的也是垃圾。

如果模型在训练集上表现好,但推广到新实例表现差,问题是什么?给出三个可能的解决方案?

  • 出现了训练集的过拟合。过拟合发生在相对少量的训练数据,噪声较多,模型过于复杂的情况。解决方案:

    • 简化模型,可以选择一个参数更少的模型(比如使用线性模型,而不是高阶多项式模型)、减少训练数据的属性数、或者限制一下模型);

    • 收集更多的训练数据;

    • 减少训练数据的噪声(比如修改数据错误和去除异常值)。

什么是测试集,为什么要用它?

  • 在将算法模型应用在产品中前,使用测试集来进行评估模型推广误差率。

验证集的目的是什么?

  • 用训练集和多个超参数训练多个模型,选择在验证集上有最佳性能的模型和超参数。

如果用测试集调节超参数,会发生什么?

  • 如果在测试集上多次测量了推广误差率,调整了模型和超参数,以使模型最适合这个集合。这意味着模型对新数据的性能不会高。

什么是交叉验证,为什么它比验证集好?

  • 为了避免“浪费”过多训练数据在验证集上,通常的办法是使用交叉验证:训练集分成互补的子集,每个模型使用不同的子集训练,再用剩下的子集验证。一旦确定模型类型和超参数,最终的模型使用这些超参数和全部的训练集进行训练,用测试集得到推广误差率。