- 博客(41)
- 资源 (4)
- 收藏
- 关注
原创 000-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
本文档介绍机器学习过程中所涉及的基础概念与基本流程, 使得准备 进入机器学习领域的人员能够有清晰且正确的概念, 少走些弯路,少被人忽悠。声明:文档的写作原因。 一来,我发现市面上,机器学习方面的书籍都不讲这 方面的内容; 二来,我对机器学习和与之相关的技术有些自己的看法,而这些 看法又不能发表在正经的学术论文里; 三来,这么多年,对许多技术和工具都 使用过一段时间,并且, 对其发展过程的起...
2020-01-18 11:39:12 158
原创 机器学习与统计术语对照表
机器学习术语与统计术语对照表机器学习术语与统计术语对照表Machine Learning(机器学习)Statistics (统计)Networks, GraphModelWeightsParametersLearningFittingGeneralizationTest set performanceSupervised learningRegression/ClassificationUn-supervised learningdesity
2021-06-07 14:56:13 153
原创 RealTime Linux
RealTime Linux 2021-04-20DefinitionReal time is NOT:Fast responses or Fast executionHigher performanceBut,Timing guarantee with a specific time frame.Determinism with a specific time frame.[1] Reference Link 1
2021-04-20 11:33:37 168
原创 预警报警规则编写原则
《预警报警规则编写原则》2020-11-12序言在对一个复杂系统设计时,对系统的工作状态进行监视,并且对未来可能发生的故障进行预测,是运维模块的必不可少的功能。尤其是,挑选预警对象与编写预警规则,对系统/运维工程师分析和设计的功力提出了很高的要求。假如此部分工作没有做好,系统上线后,会使运维工作出现一些不尽如人意的情况:如虚假报警过多,导致真正的故障报警被运维人员忽视;或是报警或预警模块对重要故障不能及时或提前告知,运维人员不及时处理;或是大量/海量的报警消息出现,导致真正重要的信息被淹没在报警消
2020-11-12 10:23:07 2070 1
原创 代码审查实践(Code Review)
代码审查实践最近在做一些软件开发管理工作,撰写一个代码审查的实践文档。序言在软件开发的过程中,代码审查(Code Review)通常是最难且感觉上最耗时的工作之一。如果代码审查工作不能规划好,往往会出现得不偿失,同时,还会造成程序员们对代码审查工作的抵触和报怨情绪。因此,在程序开发团队内部明确代码审查的目的,并且定义一个「合理可行」的代码审查规范及相应职责,是极其重要的。代码审查的目的2.1 浅层的目的○ 做为代码开发流程中的一个闭环结点;○ 统一团队代码风格;○ 校验已完成的代码与
2020-11-07 10:57:52 447
原创 032-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
11.3 编程思路的转换在学校里的教授的如C、Python、Java等编程语言, 采用的命令式编程的思路。 你需要下达一个指令,让计算机做一个动作, 希望得到是一个程序中业务逻辑变量的 状态转换。 其背后的理论基础是形式语言与自动机理论, 程序抽象为一个有穷自动 机。而在TensorFlow中的编程思路会略有不同,初学时应该引起注意。 其与符号式编 程类似,其通过数学模型对数理逻辑进行抽象,计算单元是函数, 而不是指令。上面这段话,可能有些抽象,我们通过两段程序代码来说明一下。 这两段程序代码都是要找
2020-10-08 10:40:17 107
原创 031-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
11.2 TensorFlow 数据流图TensorFlow的数据流图(graph),类比于一个工厂流水线的设计图。 你要设计每一 个车间的功能,每一个车间与其上下游车间的关系, 保证原材料可以流畅地从第一车 间开始, 经过粗加工,精加工,装配,包装等等工序, 最后成为一个产品。 既然是 图, 一定包括「边」和「结点 node」。 又因为它一个有向图, 所以, 边是带箭头指 明数据的流动方向。 前面我们也多次提到, 一个概念的名字就是这个概念最简洁的 解释。 Tensor就是多维数据,Flow就是流动。
2020-09-20 12:24:36 96
原创 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 113
原创 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 85
原创 出题:C++的面试题
因为公司要招聘C++的程序员,所以让我出几道面试题。基本题Class 和 Struct 的区别和联系,Union的区别与联系;面向对象中的Object和实例Instance的区别与联系;C++为什么要引入 namespace这个机制,引入后的最大的优点是什么?头文件header.h会被包含在其主调用的CPP代码中,为什么 C++20 还要引入一个新的关键字 import?指针与引用的区别?int x =2;int y =3;int &r1 = x;int &r2 .
2020-07-14 10:37:57 166
原创 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 106
原创 附录003《 React 的开发》
文档:《 React 的开发》作者:燕志伟时间:2020-06-21版权:原创原因尽管我们是一个后端的 AI 应用,但仍旧要在前端部署一个页面来处理一些用户的操作,所以要写一部分代码。考察了一个当前的前端框架,感觉 Facebook 的 React 还不错。React 的产生传统 UI 操作,对于程序员来讲,细节太多,容易失控。应用程序的状态机也太复杂,导致程序员 bug 增加。以前,JQuery 的函数也太多,包括四大类:selectors, attribute/css, ma.
2020-06-21 23:06:33 120
原创 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 112
原创 附录002《 Git 中的重要概念》
文档:《 Git 中的重要概念》作者:燕志伟时间:2020-06-02版权:原创前言在进行深度学习的过程中,不免会接触到 Git 这个代码版本管理工具。对于小白而言,上手一些常用的命令通常不难,但是一旦遇到一些版本冲突问题的时,往往感觉不太好处理。主要原因是,大家只是对 Git 命令熟悉,对于 Git 引入的概念不太清晰。因此,我重点说明或解释一下 Git 中的重要的概念。Brach - 分支分支 Brach 是用来组织多个独立的,有序的 commits 链表为单位的一个概念。这个概念有以.
2020-06-02 12:01:49 463
原创 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 166
原创 025-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
9.3 训练效果的评估工具9.3.1 可视化工具matplotlib和seaborn通常训练结束后,我们得到一个具体的映射函数关系。 有时为了分析得到的这个 映射关系的的好坏, 我们会使用这两个 Python 工具包。 其主要用途就画图,比如曲 线图,散点图。这两个工具的功能很强大, 学习资料和文档也〸分丰富, 网上也比较好找。 所 以,在本书中我们就直接用, 不做过多的解释。 大家对一些语句有疑惑的话, 在网 上搜索一下,应该都可以解决。 我在这里就不细讲了。from matplotlib imp
2020-05-24 18:15:28 98
原创 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 126
原创 023-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
9.1 输入数据准备与pandaspandas 是一个输入数据处理的Python工具包。 它提供了以「列」为处理单元的方 便好用的 API 函数, 可供你方便的读取普通文本型的数据。 其中, pandas 的两个数 据结构上的概念〸分重要。 1• DataFrame (数据框)• Series (数据序列)DataFrame 其实类似于一个有表头的 Excel 的表格。 每个 DataFr...
2020-05-02 16:47:31 122
原创 022-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
9 训练工具-再谈机器学习第三步在实际工作中,除了最有技术含量的建模以外, 还有些事情没啥技术,但是也必 不可少, 俗称脏活。 而像输入的数据的整理, 非法数据的剔除都属于这一类脏活。一个输入数据, 通常被数字化以后, 会被存放在计算机的存储设备中。 有的时 候,为了存取简单,会使用文件的形式存放的, 有的时候,为了存取高效,会用专业 的数据库软件来存放。 因为当前大量的数据是通过文本文件存放...
2020-04-27 17:25:31 97
原创 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 131
原创 020-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
8.1.2 TensorFlow 的工具箱有些初学者会对机器学习的工具有不少问题,如下的一些例子。1.) 听说TensorFlow 是用 Python 开发的, 是不是应该先去学会 Python 语言?2.) 听说机器学习算法是跑在GPU上的, 是不是还要学一下并行开发的知识?3.) 听说谷歌还有 TPU,和 CPU,GPU 啥关系?为了回答上面的问题, 我们先看一张图,如图7所示。 ...
2020-04-10 16:48:12 170
原创 019-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
8.1 Google TensorFlow先看「TensorFlow」这个概念,TensorFlow is a computational framework for building machine learning models.从后往前读,其可用来建立机器学习的模型。 它是什么类型的工具?一个计算框 架。 很多程度员没太弄清楚框架(Framework)和库(Library)的区别。 概...
2020-04-05 21:07:06 128
原创 018-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
8 一谈建模工具-机器学习第一步在第 4 章节时, 我们略过机器学习第一步的内容。 现在,我们要探究一下「机器 学习第一步」中所涉及的技术及其思路, 让我们开始吧。如果大家在大学校园里面待过,就听说过一些建模比赛。 比如本科生的『全国大 学生数学建模竞赛』, 『美国大学生数学建模竞赛』, 或者『中国研究生数学建模竞赛』。 组队人数一般为三人, 分工上一般来说分为数学+编程+论文三部分。 每个人...
2020-03-29 16:26:56 122
原创 017-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
7.4 训练并行化我们先解释两个名词: 并行(parallel)与并发(concurrence)。 这两个单词在计算机 知识体系中会经常用到, 很多人概念搞不清,造成实际机器学习应用中用错了,还找 不到原因。 11.) 并行(parallel)的语义前提是,有「多个」物理或抽象计算单元, 这些计算单元 在 相同的时间尺度(宏观或微观)上同时运行多个任务。 强调的是「多个」, 「无任务在等待」的...
2020-03-22 10:44:31 99
原创 016-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
7.3 再谈梯度下降法前面,我们提到梯度下降法的目的是找到模型中那些更好的 的函数映射关系。房 价估算的例子中, 要让当前这个人去推荐下一个水平更高的房产专家。通常的机器学习的书里面会画这样一张图, 如图5所示。 这是一张简单的损失曲 线图。xxx横轴是模型中一个参数的系数wiw_iwi的取值,yyy纵轴是模型由于这个参数 wiw_iwi的变化计算得到的损失值。我们假设最先随机选wi=...
2020-03-14 17:14:57 123
原创 附录001《 FloydHub 的入门教程》
文档:《 FloydHub 的入门教程》作者:燕志伟时间:2020-03-02版权:原创前言Floydhub 网站的组织结构与文档逻辑写得有些零碎,且分散在多处,对初学者不太友好,所以,我写这个简单的入门教程,抛砖引玉。注册一个帐号在官网 https://www.floydhub.com/ 注册一个账号。免费的资源只有CPU只有2小时,用途不大。收费的GPU有两种:...
2020-03-03 11:15:57 192
原创 015-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
7.2 训练和模型看到这里时候,大家仿佛,好像搞明白一些机器学习的道理了。 但是请大家再次 思考几个问题:1.) 啥是「模型 model」或者说模型里有什么(what)?2.) 啥是「训练 training」?3.) 啥是「训练模型 training model」?4.) 谁(who)来「训练模型」?接下来,对上述问题,我们一个一个分析。 在 §2.1 小节中,我们强调过, 模型 是一...
2020-02-25 23:59:35 147
原创 014-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
7模型训练7.1 次数的定义在训练的过程中, 我们会遇到两个关于次数的定义。 一个是 epoch, 一个是 batch。 这里,我们说它是怎么做的,然后解释它背后的思路。假设,你的训练数据集中收集到了 100 笔输入数据。 开始时,你把这些输入数据 一笔笔送到模型中,计算一下其最后的损失值。 (这里的「计算」一词,文献中被称 evaluate.) 接着,把刚刚得到的这 100 个损失值求个平...
2020-02-22 09:51:48 117
原创 013-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
6.2 梯度下降法我们一直强调, 概念是知识体系中最重要的基础。 梯度下降法(Gradient Descent)是用来找到合适函数的方法。 为什么叫这个名字?我们把这个词拆开分三部分 「梯」、「度」、「下降」。 (前方预警,此章节文字纯属个人观点。)先拿出第一个字,「梯」。你肯定头脑中会想到木梯子或楼梯的样子。 人们借助 这个工具到达房顶等高处或是下到一个深坑里。 试想一下, 你正在一个迷宫里...
2020-02-17 11:19:13 137
原创 012-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
6 机器学习第三步到这里为止,我们设计了一个包括众多函数的集合, 也确认了判断一个函数合适 与否的比较准则。 接下来,我们要在这个函数集合中找到这个函数。6.1 迭代法你也许听过什么梯度下降法,牛顿法, 随机梯度下降法(SGD)等各式各样的洋气 方法。 但是其实它们都不是朴素的思维。 在这一步背后的朴素的思维,用一个词就可 以描述:「迭代法」。在解释迭代法之前,我问一个问题,为啥用迭代...
2020-02-11 20:13:15 131
原创 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 159
原创 010-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
5 机器学习第二步在第一步中,我们已经设计好一个函数映射的集合, 接下来,我们要确定一个在 函数集合中挑选最佳函数的挑选准则。5.1 技术术语每门学科的建立, 为了显得与其它学科的不同, 甚至让普通人听到后有些神秘 感, 通常会对已有概念再起个别名。 就像江湖黑话一样, 警察叫条子, 富二代叫小 开。 圈子里的人知道是啥意思,入行的人刚开始一听,一脸懵。• 数字化:这里的数字化其实就是离散...
2020-02-04 12:44:35 129
原创 009-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
4 机器学习第一步这一章节放这的目的,就是为了目录好看一点,没有别的意思。 我们会把这部分 内容,放在以后再讲。 现在我们假设已经设计好了一个函数映射的集合。...
2020-02-04 12:38:27 100
原创 008-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
3.4 机器学习的目标前面我们先把一些当前听起来特别热的概念回顾了一下。 接下来,我们把视角抬 高一些,回到问题的本质。 什么是机器学习?准确的说,机器学习只是一个方法而已, 它本身不是目标。那目标是什么? 目标 是人工智能,那么什么是人工智能(Artificial Intelligence,简称 AI)? AI 的意思是, 机器或程序可以像人类一样有智能。 这种回答和没说一样。用概念本身组成...
2020-01-30 21:07:55 166
原创 007-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
3.3 人工智能的派别人工智能的目标是让机器通过某种方式具备类似于人类的智慧。 而这种方式,自 打这门学科创立以后,有两个派别:1.) 唯物主义派, 其核心思维是重建人类的大脑。 我们要造一个可以模拟大脑神 经网络的机器或是程序。先别管大脑为啥长这个样, 用大量的数据去让这个 机器自己去学就好了。 其方法论是,世界本身就是随机的,那么我们让机器 通过数据去找到统计的规律。 比如,想让它识别猫狗...
2020-01-30 21:05:23 248
原创 006-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
3.2 杰出的人物在机器学习的领域,杰出人物极多。我个人认为,当下有三个人贡献突出。 他们 是:Jeoffrey Hinton,吴恩达和李飞飞。Jeoffrey Hinton,其贡献在于设计优秀的机器学习算法。 其提出了在深度学习的 网络中, 使用降维和逐层训练的方法及应用的办法。他解决了优秀的算法应该如何做 的问题。 1吴恩达(Andrew Ng), 其贡献在于机器学习的推广, 特别是对 ...
2020-01-20 23:46:30 149
原创 005-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
3 周边的相关概念3.1 概念之间的关系编程、程序员和机器学习: 在一般的IT公司中, 程序员只要基于常识性的知识就 可以对业务理解, 再辅以充足的时间和编程技巧,已经足够完成任务。 而机器学习, 其实是一种数据编程的思路,确定好一个函数的大模样, 让程序通过数据自己去确定 函数参数的具体值。科学家与工程师: 在一般人的想象中,科学家更喜欢纸上谈兵,就是发文章,写 书籍和学术著作。 当前,在...
2020-01-20 23:42:16 145
原创 004-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
2.2 机器学习的步骤机器学习的任务是输入一些数据,再输出一些数据, 其实就是一种数据转换器。 从数学意义上讲,就是一个合适的函数映射。 我们的目的是要找到一个可以完成任务 的映射函数。 或者说,要找到一个输入数据与输出数据之间的关系。 这个关系,被学 者取名为模型(Model)。 模型本质是描述输入与输出之间关系。 更进一步讲,模型 就是关系(Relationship)。 如何寻找这种关系呢?...
2020-01-20 23:31:55 134
原创 003-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
2.1 概念层次的划分概念层次的划分包括三个方面:数据输入,数据输出和问题的复杂度。 依照数据 的输入来划分「场景型」概念, 依照数据的输出来划分「任务型」概念, 依照问题的 复杂度来划分「方法型」概念。 如图1所示,1.) 首先, 从输入的数据(Input)来划分场景。 机器学习中概念是通过已有的数据 来区分学习的场景(Scenario)。 先看输入数据的整体, 根据是否所有的输 入数据都...
2020-01-18 11:19:20 245
原创 002-机器学习背后的思维-针对入门小白的概念算法及工具的朴素思考
2 机器学习框架概念机器学习技术发展时间很长,产生很多名词和概念。我们先罗列一些常见的:• 线性回归 linear regression• 逻辑回归 logistic regresssion• 决策树 decision tree• 随机森林 random tree• 最近邻算法 k-nearest neighbor, KNN• 朴素贝叶斯 naive bayes• 支持向量机 su...
2020-01-18 11:14:53 142
VS2005 与 ActiveX
2014-03-25
P2P 协议的讲解
2014-03-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人