机器学习
本文档介绍机器学习过程中所涉及的基础概念与基本流程, 使得准备 进入机器学习领域的人员能够有清晰且正确的概念, 少走些弯路,少被人忽悠。
jerodyan
一个使用C和Python的70后程序员;一个机器学习技术落地的践行者。
展开
-
机器学习与统计术语对照表
机器学习术语与统计术语对照表机器学习术语与统计术语对照表Machine Learning(机器学习)Statistics (统计)Networks, GraphModelWeightsParametersLearningFittingGeneralizationTest set performanceSupervised learningRegression/ClassificationUn-supervised learningdesity原创 2021-06-07 14:56:13 · 113 阅读 · 0 评论 -
032-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
11.3 编程思路的转换在学校里的教授的如C、Python、Java等编程语言, 采用的命令式编程的思路。 你需要下达一个指令,让计算机做一个动作, 希望得到是一个程序中业务逻辑变量的 状态转换。 其背后的理论基础是形式语言与自动机理论, 程序抽象为一个有穷自动 机。而在TensorFlow中的编程思路会略有不同,初学时应该引起注意。 其与符号式编 程类似,其通过数学模型对数理逻辑进行抽象,计算单元是函数, 而不是指令。上面这段话,可能有些抽象,我们通过两段程序代码来说明一下。 这两段程序代码都是要找原创 2020-10-08 10:40:17 · 84 阅读 · 0 评论 -
031-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
11.2 TensorFlow 数据流图TensorFlow的数据流图(graph),类比于一个工厂流水线的设计图。 你要设计每一 个车间的功能,每一个车间与其上下游车间的关系, 保证原材料可以流畅地从第一车 间开始, 经过粗加工,精加工,装配,包装等等工序, 最后成为一个产品。 既然是 图, 一定包括「边」和「结点 node」。 又因为它一个有向图, 所以, 边是带箭头指 明数据的流动方向。 前面我们也多次提到, 一个概念的名字就是这个概念最简洁的 解释。 Tensor就是多维数据,Flow就是流动。原创 2020-09-20 12:24:36 · 73 阅读 · 0 评论 -
030-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
11再谈建模工具-建立复杂模型与TensorFlow上面章节中, 我们介绍了利用 TensorFlow 建立简单模型。 接下来, 我们以神经 网络为例来讲如何建立复杂的模型。11.1 单层神经网络和多层神经网络深度学习,或称为深度神经网络,是近年来机器学习最重要的研究热点。 它是一 种以图来表示机器学习模型的方式。举个例子, 上一节中的线性模型,y=w1x1+w2x2+b y = w_1x_1 + w_2x_2 +b y=w1x1+w2x2+b所谓的模型,除了用上面的解析表达式,式(1原创 2020-08-02 16:47:02 · 94 阅读 · 0 评论 -
029-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
10.4 第三步:寻找最合适的函数代码示例 5: 用 TensorFlow寻找最合适的函数的系数epoch = 1000with tf.Session() as sess: sess.run(tf.global_variables_initializer()) for e in range(1, epoch + 1): sess.run(train_op, feed_dict={X:input_features, y:output_labels}) loss,原创 2020-07-19 11:01:03 · 61 阅读 · 0 评论 -
028-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
10.3 第二步:设计挑选函数的准则前面,我们提及过, 损失的测量是挑选函数的准则。 这里,我们将求 MSE,LOSS=MSE=1N∑i=1N∣(y(i)−y^(i))2∣,\text{LOSS}=\text{MSE}=\frac{1}{N}\sum_{i=1}^{N}\left |(y^{(i)}-\widehat{y}^{(i)})^2\right |, LOSS=MSE=N1i=1∑N∣∣∣(y(i)−y(i))2∣∣∣,其中,y^\widehat{y}y 是估计值。而且,我们原创 2020-07-05 12:15:37 · 79 阅读 · 0 评论 -
027-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
10.2 第一步:设计函数集合(模型)因为输入是两个量面积和房间个数, 所以我们定义的一个简单的二元线性模型 为:y=w1x1+w2x2+b=w1x1+w2x2+w0x0=X1×3W3×1 y = w_1x_1 + w_2x_2 +b = w_1x_1 + w_2x_2 +w_0x_0 = X_{1\times 3}W_{3\times 1}y=w1x1+w2x2+b=w1x1+w2x2+w0x0=X1×3W3×1其中,yyy 表示输出,房价;x1x_1x1原创 2020-06-07 20:15:03 · 90 阅读 · 0 评论 -
026-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
10 一个实际操作机器学习的例子10.1 数据分析准备10.1.1 输入输出场景任务在第一步中,我们要根据手头的数据情况来确定场景与任务。 假设我们的输入数 据是这样的:import pandas as pdimport numpy as nparea = pd.Series([100, 89, 160, 89, 240])bedroom = pd.Series([3, 2, 4, 3, 5])price = pd.Series([30, 25, 40, 26, 55])houses_原创 2020-05-31 22:54:21 · 145 阅读 · 0 评论 -
025-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
9.3 训练效果的评估工具9.3.1 可视化工具matplotlib和seaborn通常训练结束后,我们得到一个具体的映射函数关系。 有时为了分析得到的这个 映射关系的的好坏, 我们会使用这两个 Python 工具包。 其主要用途就画图,比如曲 线图,散点图。这两个工具的功能很强大, 学习资料和文档也〸分丰富, 网上也比较好找。 所 以,在本书中我们就直接用, 不做过多的解释。 大家对一些语句有疑惑的话, 在网 上搜索一下,应该都可以解决。 我在这里就不细讲了。from matplotlib imp原创 2020-05-24 18:15:28 · 79 阅读 · 0 评论 -
024-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
9.2 输入数据简单处理与NumPy数据读到 pandas 的 DataFrame 里面以后, 有时要对一个 Series中所有值做些简单 处理。 比如说,对房屋面积这个 Series 中的每个值取个对数 Log值。 这会使用另一个 Python工具包 NumPy 。import numpy as npnp.log(area)看到这里,一切显得那么自然,很简单吧。 我问一个问题,为什么pandas 生成的 数据 area 可以直接被另一个 NumPy工具使用? 这么说,有些小白可能不明白。 我问原创 2020-05-16 17:56:51 · 103 阅读 · 0 评论 -
023-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
9.1 输入数据准备与pandaspandas 是一个输入数据处理的Python工具包。 它提供了以「列」为处理单元的方 便好用的 API 函数, 可供你方便的读取普通文本型的数据。 其中, pandas 的两个数 据结构上的概念〸分重要。 1• DataFrame (数据框)• Series (数据序列)DataFrame 其实类似于一个有表头的 Excel 的表格。 每个 DataFr...原创 2020-05-02 16:47:31 · 99 阅读 · 0 评论 -
022-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
9 训练工具-再谈机器学习第三步在实际工作中,除了最有技术含量的建模以外, 还有些事情没啥技术,但是也必 不可少, 俗称脏活。 而像输入的数据的整理, 非法数据的剔除都属于这一类脏活。一个输入数据, 通常被数字化以后, 会被存放在计算机的存储设备中。 有的时 候,为了存取简单,会使用文件的形式存放的, 有的时候,为了存取高效,会用专业 的数据库软件来存放。 因为当前大量的数据是通过文本文件存放...原创 2020-04-27 17:25:31 · 74 阅读 · 0 评论 -
021-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
8.1.3 TensorFlow背后的运行机制TensorFlow 运行机制包括两个部分:1.) a graph protocol buffer2.) a runtime that executes the (distributed) graph当前你可以用 Python代码(code)与 Python解释器(interpreter)来类比理解。Graph protocol buffer ...原创 2020-04-17 17:35:27 · 109 阅读 · 0 评论 -
020-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
8.1.2 TensorFlow 的工具箱有些初学者会对机器学习的工具有不少问题,如下的一些例子。1.) 听说TensorFlow 是用 Python 开发的, 是不是应该先去学会 Python 语言?2.) 听说机器学习算法是跑在GPU上的, 是不是还要学一下并行开发的知识?3.) 听说谷歌还有 TPU,和 CPU,GPU 啥关系?为了回答上面的问题, 我们先看一张图,如图7所示。 ...原创 2020-04-10 16:48:12 · 145 阅读 · 0 评论 -
019-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
8.1 Google TensorFlow先看「TensorFlow」这个概念,TensorFlow is a computational framework for building machine learning models.从后往前读,其可用来建立机器学习的模型。 它是什么类型的工具?一个计算框 架。 很多程度员没太弄清楚框架(Framework)和库(Library)的区别。 概...原创 2020-04-05 21:07:06 · 99 阅读 · 0 评论 -
018-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
8 一谈建模工具-机器学习第一步在第 4 章节时, 我们略过机器学习第一步的内容。 现在,我们要探究一下「机器 学习第一步」中所涉及的技术及其思路, 让我们开始吧。如果大家在大学校园里面待过,就听说过一些建模比赛。 比如本科生的『全国大 学生数学建模竞赛』, 『美国大学生数学建模竞赛』, 或者『中国研究生数学建模竞赛』。 组队人数一般为三人, 分工上一般来说分为数学+编程+论文三部分。 每个人...原创 2020-03-29 16:26:56 · 104 阅读 · 0 评论 -
017-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
7.4 训练并行化我们先解释两个名词: 并行(parallel)与并发(concurrence)。 这两个单词在计算机 知识体系中会经常用到, 很多人概念搞不清,造成实际机器学习应用中用错了,还找 不到原因。 11.) 并行(parallel)的语义前提是,有「多个」物理或抽象计算单元, 这些计算单元 在 相同的时间尺度(宏观或微观)上同时运行多个任务。 强调的是「多个」, 「无任务在等待」的...原创 2020-03-22 10:44:31 · 81 阅读 · 0 评论 -
016-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
7.3 再谈梯度下降法前面,我们提到梯度下降法的目的是找到模型中那些更好的 的函数映射关系。房 价估算的例子中, 要让当前这个人去推荐下一个水平更高的房产专家。通常的机器学习的书里面会画这样一张图, 如图5所示。 这是一张简单的损失曲 线图。xxx横轴是模型中一个参数的系数wiw_iwi的取值,yyy纵轴是模型由于这个参数 wiw_iwi的变化计算得到的损失值。我们假设最先随机选wi=...原创 2020-03-14 17:14:57 · 99 阅读 · 0 评论 -
015-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
7.2 训练和模型看到这里时候,大家仿佛,好像搞明白一些机器学习的道理了。 但是请大家再次 思考几个问题:1.) 啥是「模型 model」或者说模型里有什么(what)?2.) 啥是「训练 training」?3.) 啥是「训练模型 training model」?4.) 谁(who)来「训练模型」?接下来,对上述问题,我们一个一个分析。 在 §2.1 小节中,我们强调过, 模型 是一...原创 2020-02-25 23:59:35 · 122 阅读 · 0 评论 -
014-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
7模型训练7.1 次数的定义在训练的过程中, 我们会遇到两个关于次数的定义。 一个是 epoch, 一个是 batch。 这里,我们说它是怎么做的,然后解释它背后的思路。假设,你的训练数据集中收集到了 100 笔输入数据。 开始时,你把这些输入数据 一笔笔送到模型中,计算一下其最后的损失值。 (这里的「计算」一词,文献中被称 evaluate.) 接着,把刚刚得到的这 100 个损失值求个平...原创 2020-02-22 09:51:48 · 99 阅读 · 0 评论 -
013-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
6.2 梯度下降法我们一直强调, 概念是知识体系中最重要的基础。 梯度下降法(Gradient Descent)是用来找到合适函数的方法。 为什么叫这个名字?我们把这个词拆开分三部分 「梯」、「度」、「下降」。 (前方预警,此章节文字纯属个人观点。)先拿出第一个字,「梯」。你肯定头脑中会想到木梯子或楼梯的样子。 人们借助 这个工具到达房顶等高处或是下到一个深坑里。 试想一下, 你正在一个迷宫里...原创 2020-02-17 11:19:13 · 118 阅读 · 0 评论 -
012-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
6 机器学习第三步到这里为止,我们设计了一个包括众多函数的集合, 也确认了判断一个函数合适 与否的比较准则。 接下来,我们要在这个函数集合中找到这个函数。6.1 迭代法你也许听过什么梯度下降法,牛顿法, 随机梯度下降法(SGD)等各式各样的洋气 方法。 但是其实它们都不是朴素的思维。 在这一步背后的朴素的思维,用一个词就可 以描述:「迭代法」。在解释迭代法之前,我问一个问题,为啥用迭代...原创 2020-02-11 20:13:15 · 112 阅读 · 0 评论 -
011-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
5.2 误差或损失误差或损失(Loss), 简单地讲,是指针对一个确定好参数的映射关系, 输入了一笔数据x(1)x^{(1)}x(1), 经过映射关系,计算得到一个输出值y^(1)\widehat{y}^{(1)}y(1),用一个实数表示。 我们把这个输出值y^(1)\widehat{y}^{(1)}y(1)与真实值y(1)y^{(1)}y(1)相减, 看看它们二者的差值。 由于输入数据集中...原创 2020-02-07 17:46:53 · 129 阅读 · 0 评论 -
010-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
5 机器学习第二步在第一步中,我们已经设计好一个函数映射的集合, 接下来,我们要确定一个在 函数集合中挑选最佳函数的挑选准则。5.1 技术术语每门学科的建立, 为了显得与其它学科的不同, 甚至让普通人听到后有些神秘 感, 通常会对已有概念再起个别名。 就像江湖黑话一样, 警察叫条子, 富二代叫小 开。 圈子里的人知道是啥意思,入行的人刚开始一听,一脸懵。• 数字化:这里的数字化其实就是离散...原创 2020-02-04 12:44:35 · 111 阅读 · 0 评论 -
009-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
4 机器学习第一步这一章节放这的目的,就是为了目录好看一点,没有别的意思。 我们会把这部分 内容,放在以后再讲。 现在我们假设已经设计好了一个函数映射的集合。...原创 2020-02-04 12:38:27 · 78 阅读 · 0 评论 -
008-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
3.4 机器学习的目标前面我们先把一些当前听起来特别热的概念回顾了一下。 接下来,我们把视角抬 高一些,回到问题的本质。 什么是机器学习?准确的说,机器学习只是一个方法而已, 它本身不是目标。那目标是什么? 目标 是人工智能,那么什么是人工智能(Artificial Intelligence,简称 AI)? AI 的意思是, 机器或程序可以像人类一样有智能。 这种回答和没说一样。用概念本身组成...原创 2020-01-30 21:07:55 · 142 阅读 · 0 评论 -
007-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
3.3 人工智能的派别人工智能的目标是让机器通过某种方式具备类似于人类的智慧。 而这种方式,自 打这门学科创立以后,有两个派别:1.) 唯物主义派, 其核心思维是重建人类的大脑。 我们要造一个可以模拟大脑神 经网络的机器或是程序。先别管大脑为啥长这个样, 用大量的数据去让这个 机器自己去学就好了。 其方法论是,世界本身就是随机的,那么我们让机器 通过数据去找到统计的规律。 比如,想让它识别猫狗...原创 2020-01-30 21:05:23 · 230 阅读 · 0 评论 -
006-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
3.2 杰出的人物在机器学习的领域,杰出人物极多。我个人认为,当下有三个人贡献突出。 他们 是:Jeoffrey Hinton,吴恩达和李飞飞。Jeoffrey Hinton,其贡献在于设计优秀的机器学习算法。 其提出了在深度学习的 网络中, 使用降维和逐层训练的方法及应用的办法。他解决了优秀的算法应该如何做 的问题。 1吴恩达(Andrew Ng), 其贡献在于机器学习的推广, 特别是对 ...原创 2020-01-20 23:46:30 · 119 阅读 · 0 评论 -
005-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
3 周边的相关概念3.1 概念之间的关系编程、程序员和机器学习: 在一般的IT公司中, 程序员只要基于常识性的知识就 可以对业务理解, 再辅以充足的时间和编程技巧,已经足够完成任务。 而机器学习, 其实是一种数据编程的思路,确定好一个函数的大模样, 让程序通过数据自己去确定 函数参数的具体值。科学家与工程师: 在一般人的想象中,科学家更喜欢纸上谈兵,就是发文章,写 书籍和学术著作。 当前,在...原创 2020-01-20 23:42:16 · 117 阅读 · 0 评论 -
004-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
2.2 机器学习的步骤机器学习的任务是输入一些数据,再输出一些数据, 其实就是一种数据转换器。 从数学意义上讲,就是一个合适的函数映射。 我们的目的是要找到一个可以完成任务 的映射函数。 或者说,要找到一个输入数据与输出数据之间的关系。 这个关系,被学 者取名为模型(Model)。 模型本质是描述输入与输出之间关系。 更进一步讲,模型 就是关系(Relationship)。 如何寻找这种关系呢?...原创 2020-01-20 23:31:55 · 102 阅读 · 0 评论 -
000-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
本文档介绍机器学习过程中所涉及的基础概念与基本流程, 使得准备 进入机器学习领域的人员能够有清晰且正确的概念, 少走些弯路,少被人忽悠。声明:文档的写作原因。 一来,我发现市面上,机器学习方面的书籍都不讲这 方面的内容; 二来,我对机器学习和与之相关的技术有些自己的看法,而这些 看法又不能发表在正经的学术论文里; 三来,这么多年,对许多技术和工具都 使用过一段时间,并且, 对其发展过程的起...原创 2020-01-18 11:39:12 · 137 阅读 · 0 评论 -
003-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
2.1 概念层次的划分概念层次的划分包括三个方面:数据输入,数据输出和问题的复杂度。 依照数据 的输入来划分「场景型」概念, 依照数据的输出来划分「任务型」概念, 依照问题的 复杂度来划分「方法型」概念。 如图1所示,1.) 首先, 从输入的数据(Input)来划分场景。 机器学习中概念是通过已有的数据 来区分学习的场景(Scenario)。 先看输入数据的整体, 根据是否所有的输 入数据都...原创 2020-01-18 11:19:20 · 206 阅读 · 0 评论 -
002-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
2 机器学习框架概念机器学习技术发展时间很长,产生很多名词和概念。我们先罗列一些常见的:• 线性回归 linear regression• 逻辑回归 logistic regresssion• 决策树 decision tree• 随机森林 random tree• 最近邻算法 k-nearest neighbor, KNN• 朴素贝叶斯 naive bayes• 支持向量机 su...原创 2020-01-18 11:14:53 · 114 阅读 · 0 评论 -
001-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
1 技术小白的学习方法论从方法论的角度讲,从笛卡尔时代开始, 人们知识的来源有两个。1.) 第一个是源于生活的经验或上帝的启示;2.) 第二个是人们通过理性对第一种知识进行考量, 进而获得真知。后一种方式,就是通过理性的推理来去伪存真。 这里的「理性」又分成两类: 第 一类是指实践,即去动手做各种各样的实验或试验, 看看猜想、概念、理论与实际情 况的符合程度。 这有点像中学物理化学中的实验...原创 2020-01-18 11:11:50 · 148 阅读 · 0 评论