文章目录
学习能力是智能的重要标志之一。机器学习是人工智能的核心研究课题之一。
为方便记忆和回顾,根据个人学习,总结人工智能基础知识和思维导图形成系列。

学习的概念
机器学习的概念
直观上理解,机器学习(Machine Learning,ML)是研究计算机模拟人类的学习活动,获取知识和技能的理论和方法,改善系统性能的学科。
机器学习的过程
因为计算机系统中“经验‘通常以数据的形式存在,所以机器要利用经验,就必须对数据
进行分析。因此其过程可以简述如下:
(1) 按学习任务分类
回归、分类、聚类是机器学习最常见的三大任务。
回归是一种数学模型,利用数据统计原理,对大量统计数据进行数学处理,确定因变量与某些自变量的相关关系,建立一个相关性较好的回归方程(函数表达式)。
分类就是对数据分进行分类,把它们分到已知的每一个类别。
聚类就是对未知类别的样本进行划分,将它们按照一定的规则划分成若干个类族,把相似(距高相近)的样本聚在同一个类簇中。
降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中,用一个相对低维的向量来表示原始高维度的特征。
密度估计是是概率统计学的基本问题之一,就是由给定样本集合求解随机变量的分布密度函数问题。大多数人已经熟悉了其中一种常用的密度估计技术:直方图。
排序学习是信息检索和搜索引擎研究的核心问题之一,通过机器学习方法学习一个分值函数对待排序的候选进行打分,再根据分值的高低确定序关系。
主要算法有:
(2)按学习方式分类
有监督学习指利用一组带标签的数据(已知输出的数据)训练学习模型,然后用经训练的模型对未知数据进行预测。
无监督学习根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题。
强化学习(Reinforcement Learning,RL)又称为再励学习、评价学习,是一种通过模拟大脑神经细胞中的奖励信号来改善行为的机器学习方法。
(3) 按学习模型划分
| 模型 | 简单说明 | 子模型 | 典型算法 |
|---|---|---|---|
| Geometric 几何 | 采用线、面、距离或流形等几何模型构建学习算法 | Line 线 | Linear Regression 线性回归 |
| Plane 面 | SVM 支持向量机 | ||
| Distance 距离 | k-NN k近邻 | ||
| Manifold 流形 | Isomap 等距映射 | ||
| Logical逻辑 | 采用逻辑模型构建学习算法 | Logic逻辑 | Inductive Logic Program归纳逻辑编程 |
| Rule规则 | Association Rule相关规则 | ||
| Network 网格 | 采用网络模式构建机器学习算法 | Shallow 浅层 | Perceptron 感知机 |
| Deep 深层 | CNN 卷积神经网络 | ||
| Probabilistic 概率 | 采用概率模式来表示随机变量之间的条件相关性 | Bayes 贝叶斯 | Bayesian Network 贝叶斯网络 |
| Generative 生成 | Probabilistic Program 概率规划 | ||
| Statistic 统计 | Linear Regression 线性回归 |
其他分类方法
回归、分类、排序算法都属于有监督的学习。在实际应用中,机器学习主要以有监督的学习为主。
有监督的学习的一个典型特征为:拿已知结果的数据对模型进行训练。
单层感知机、CNN和RNN网络模型也都属于有监督的模型。
线性回归是最简单的回归算法。
线性回归假定输入变量(X)和单个输出变量(Y)之间呈线性关系。即
y = wx+b
其中,x=(x1,x2,…,xn) 为n维输入变量,w=(w1,w2,…,wn)为线性系数,b是偏置项。
目标是找到系数w的最佳估计,使得预测值Y的误差最小。
通常使用最小二乘法估计w和b,即:使样本的y值与y=wx+b预测的值之间的差的平方和最小。
像线性回归一样,多项式回归使用多项式变量x和y之间的关系,可以是二阶多项式、三阶多项式,也可以是n阶多项式。
比如:
y = ax**2+bx+c
y = ax1**2+bx2**2+cx1x2+dx1+ex2+f
支持向量机是最受欢迎、讨论最广的机器学习分类方法之一。是一种线型分类器。
基本原理:
在二维空间内,超平面可被视为一条直线,假设所有的输入点都可以被该直线完全分开,
两类边界由超平面式g(x)决定。
g(x) = wx-b=0
w为法向量,b为阈值,根据带标签的数据训练求出

SVM的目标:找到一组分割系数w、b,使一个超平面能够对数据x进行最佳分割,即能将两类正确分开,且分类间隔最大。
主要优点:
主要缺点:
k-最近邻(K-NN,k-NearestNeighbor)可用于分类,也可用于回归。
K-NN分类是最简单的多分类技术。
K-NN基本原理:
K-NN分类的基本概念是找到与新样本距离最近的K个训练样本(已确定分类)。
新样本从K个已确定分类的邻居获得分类标签。
- 对于回归问题,它可能是输出变量的平均值;
- 对于分类问题,它可能是模式类别值。
主要过程:
1. 计算训练样本和测试样本中每个样本点的距离
+ 常见的距离度量
- 欧氏距离(最常见)
- 曼哈顿距离
- 明氏距离
- 切氏距离
2. 对计算所得所有距离值进行排序
3. 对每个测试样本点选前k个最小距离的训练样本
4. 根据这k个训练样本的标签进行投票,得出测试样本点的预测分类
朴素贝叶斯也称为简单贝叶斯,是一种十分简单的分类算法。
朴素贝叶斯分类器的基础是贝叶斯定理。
P(类别|特征) = P(特征,类别)/P(特征) = P(特征|类别)P(类别)/P(特征)
以特征=咳嗽,类别=肺炎为例:
P(咳嗽):咳嗽的概率
P(肺炎):肺炎的概率
P(咳嗽,肺炎):咳嗽且得肺炎的概率
P(肺炎|咳嗽):在已知咳嗽的条件下,肺炎的概率
P(咳嗽|肺炎):在已知得肺炎的条件下,咳嗽的概率
- P(肺炎)为先验概率,即已知的根据经验或统计直接估计的概率
- P((咳嗽|肺炎)为已知结果,出现某个特征的条件概率
- 所以已知先验概率和条件概率,就可以对已知特征进行分类。
实际情况中,特征会有多个,比如肺炎可能具有咳嗽、疼痛、流鼻涕、鼻塞等多个特征。假设特征相互独立,就可以用全概率公式计算多个特征时的概率。因此,朴素贝叶斯模型假设特征之间相互独立。
朴素贝叶斯分类算法的特点:
决策树(Decision Tree)是一种基本的分类与回归方法,此处主要指分类的决策树。
决策树算法的基本原理:

集成学习是将多个分类器集成在一起的技术。可以用与回归,也可以用于分类。
集成学习用于分类的基本思路:
最流行的集成分类技术包括:Bagging算法、随机森林算法、Boosting算法
Bagging算法
套袋(Bagging)算法是一种最简单的集成学习方法。
流程:
Bagging算法的分类器可以选用SVM、决策树、DNN等。
随机森林算法
随机森林是当今最流行的套袋集成技术,由许多决策树分类器组成,并利用
Bagging算法进行训练。
随机森林算法基本思路:
过程:

随机森林的特点:
所以在深度学习出现之前一直比较流行。并且经常会成为很多分类问题的首选方法。
Boosting算法
Boosting算法是一种框架算法。
它首先会在对训练集进行转化后重新训练出分类器,即通过对样本集进行操作获得样本子集,然后用弱分类算法在样本子集上训练生成一系列的分类器,从而对当前分类器不能很好分类的数据点实现更好的分类。
Boosting主要算法有:
AdaBoost是一种迭代算法。
Boosting算法与Bagging算法的不同之处:
Boosting算法的主要应用领域包括模式识别、计算机视觉等,
其可以用于二分类场景,也可以用于多分类场景。
聚类、降维算法都是无监督学习算法
聚类算法根据数据的特征,将数据分割为多个集合,每个集合称为一个聚类。
k-均值聚类算法将对象根据它们的特征分割为k个聚类。
k-means聚类算法中k表示为样本分配的聚类的数量。
k-means聚类算法是一种迭代求解的算法,基本思路:

传统机器学习一般善于处理小规模数据问题。对于大规模数据,尤其对于图像类型的数据,人工很难获得数据特征以用于对图像进行分类,因此长期以来,传统机器学习产生的机器智能是十分有限的。直到深度学习出现之后才得以改观。
深度学习作为机器学习算法中的一个新兴技术,通常与深度神经网络有关联,是一种特殊的机器学习算法。

与感知机相比:多层感知器实际是只含有一层隐藏层节点的学习模型。
本质是对数据进行分层特征表示,实现将低级特征通过神经网络来进一步抽象
成高级特征。
以辛顿为首的新联结主义者强调,神经网络深度优于宽度。
强化学习(Reinforcement Learning,RL)又称为再励学习、评价学习,是一种通过模拟大脑神经细胞中的奖励信号来改善行为的机器学习方法。
强化学习的目标是学习一个最优策略,以使智能体(人、动物或机器人)通过接收奖励信号并将其作为回报,进而获得一个整体度量的最大化奖励。
个人总结,部分内容进行了简单的处理和归纳,如有谬误,希望大家指出,
持续修订更新中。
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame
我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or
如何学习ruby的正则表达式?(对于假人) 最佳答案 http://www.rubular.com/在Ruby中使用正则表达式时是一个很棒的工具,因为它可以立即将结果可视化。 关于ruby-我如何学习ruby的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1881231/
深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG
文章目录1、自相关函数ACF2、偏自相关函数PACF3、ARIMA(p,d,q)的阶数判断4、代码实现1、引入所需依赖2、数据读取与处理3、一阶差分与绘图4、ACF5、PACF1、自相关函数ACF自相关函数反映了同一序列在不同时序的取值之间的相关性。公式:ACF(k)=ρk=Cov(yt,yt−k)Var(yt)ACF(k)=\rho_{k}=\frac{Cov(y_{t},y_{t-k})}{Var(y_{t})}ACF(k)=ρk=Var(yt)Cov(yt,yt−k)其中分子用于求协方差矩阵,分母用于计算样本方差。求出的ACF值为[-1,1]。但对于一个平稳的AR模型,求出其滞
目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标