hubojing / EasyLearnConcept

说人话系列

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EasyLearnConcept

说人话系列

初衷

了解相关概念的本质,剥开科学的外衣,忘掉高深莫测的名词,用通俗形象的例子(即说人话)解释。
当然,说人话往往也意味着不是那么地严谨,因此,用于入门和辅助理解甚好。
本来打算写成博文,但想着会不断更新(往往是突然看到一篇极佳的解释),还是开一个repo记录更佳。

Maching Learning 机器学习

根据训练数据是否拥有标记信息,学习任务大致分为“监督学习”和“无监督学习”。

假设我们给电脑一堆图片。并告诉电脑红色的是花,绿色的是叶子。现在给一张红色的图片,电脑预测它是花。这是监督学习。标记信息是红色和绿色。
假设我们给电脑一堆图片。电脑根据图片的像素点位置不同,自己划分成了两类。现在给一张图片,电脑预测它是两类中的某一类。这是非监督学习。因为我们没有事先告诉电脑什么是红色,什么是绿色。

Supervised Learning 监督学习
代表:分类和回归

假设我们手中有历史30天下雨量的数据。
问:明天是雨天还是晴天?这是分类。
问:明天下雨量为多少ml?这是回归。

简单谈之,分类是离散点,回归是连续点。

Unsupervised Learning 非监督学习
代表:聚类

支持向量机(Support Vector Machine, SVM)

找一个最鲁棒的超平面将两类训练样本分开。
支持向量机(SVM)是什么意思?

计算机视觉

卷积

如何通俗易懂地解释卷积?

操作系统

你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。
你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。 (不一定是同时的)
你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。
——并发和并行区别秒懂

做个简单的比喻:进程=火车,线程=车厢
线程在进程下行进(单纯的车厢无法运行
一个进程可以包含多个线程(一辆火车可以有多个车厢)
不同进程间数据很难共享(一辆火车上的乘客很难换到另外一辆火车,比如站点换乘)
同一进程下不同线程间数据很易共享(A车厢换到B车厢很容易)
进程要比线程消耗更多的计算机资源(采用多列火车相比多个车厢更耗资源)
进程间不会相互影响,一个线程挂掉将导致整个进程挂掉(一列火车不会影响到另外一列火车,但是如果一列火车上中间的一节车厢着火了,将影响到所有车厢)【补充:java中如果一个线程爆栈了或者OOM了,其他线程不会受影响。】
进程可以拓展到多机,进程最多适合多核(不同火车可以开在多个轨道上,同一火车的车厢不能在行进的不同的轨道上)
进程使用的内存地址可以上锁,即一个线程使用某些共享内存时,其他线程必须等它结束,才能使用这一块内存。(比如火车上的洗手间)-"互斥锁"
进程使用的内存地址可以限定使用量(比如火车上的餐厅,最多只允许多少人进入,如果满了需要在门口等,等有人出来了才能进去)-“信号量”
——线程和进程的区别是什么?

计算机网络

所谓递归查询过程就是 “查询的递交者” 更替, 而迭代查询过程则是 “查询的递交者”不变。
举个例子来说,你想知道某个一起上法律课的女孩的电话,并且你偷偷拍了她的照片,回到寝室告诉一个很仗义的哥们儿,这个哥们儿二话没说,拍着胸脯告诉你,甭急,我替你查(此处完成了一次递归查询,即,问询者的角色更替)。然后他拿着照片问了学院大四学长,学长告诉他,这姑娘是xx系的;然后这哥们儿马不停蹄又问了xx系的办公室主任助理同学,助理同学说是xx系yy班的,然后很仗义的哥们儿去xx系yy班的班长那里取到了该女孩儿电话。(此处完成若干次迭代查询,即,问询者角色不变,但反复更替问询对象)最后,他把号码交到了你手里。完成整个查询过程。
——《Go Web编程》

存储

系统扩展方式 scale up和scale out

一是传统火车和动车。传统的存储Scale-up架构的存储就好像传统的火车一样,当后面的磁盘越挂越多的时候,控制器性能以及背板带宽却不能相应提升,因此传统存储在磁盘容量扩容到一定程度时候,往往性能下降。
集群存储就好像新一代的“动车组”火车一样,当火车车厢增加的时候,前面的火车头动力也随之增加,因此不会发生性能瓶颈。
所谓动车组的设计理念和传统火车设计理念的最大区别在于传统火车主要动力来自于火车头(就像传统模块化阵列的两个控制器),而动车组则不一样,除了车头配有动力装置外,每一节车厢都配有动力推动装置。集群存储大多都是由一个个节点(X86 服务器)组成,每一个节点添加进去后,不仅能够添加容量,还能够添加整个存储器的整体处理能力。
另外一个鱼缸的比喻:
当你只有六七条鱼的时候, 一个小型鱼缸就够了;可是过一段时间新生了三十多条小鱼,这个小缸显然不够大了。
如果用Scale up解决方案,那么你就需要去买一个大缸,把所有沙、水草、布景、加热棒、温度计都从小缸里拿出来,重新布置到大缸。这个工程可不简单哦,不是十分钟八分钟能搞得定的,尤其水草,纠在一起很难分开。
那么现在换个思路,用Scale out方案,就相当于是你在这个小缸旁边接了一个同样的小缸,两个缸联通。鱼可以自动分散到两个缸,你也就省掉了上面提到的那一系列挪沙、水草、布景等的折腾了。
——系统扩展方式 scale up和scale out

数学篇

高等数学

如何通俗地解释泰勒公式?

线性代数

理解矩阵(一)
理解矩阵(二)
理解矩阵(三)
如何理解矩阵的「秩」?

概率论与数理统计

通信篇

卷积

计算机视觉类别下也有卷积的解释,这一篇偏重于信号方面的解释。
如何通俗易懂地解释卷积?

傅里叶变换

傅里叶分析之掐死教程(完整版)
傅立叶分析和小波分析之间的关系

应用

什么是盲水印

编程语言

Python

python中yield的用法详解——最简单,最清晰的解释

About

说人话系列