
🔥人工智能
笔记和资料,涉及到深度学习、自动驾驶等领域。
🔥机器人
包括ROS机器人框架笔记。Beginer Friendly

✅Python教程
从0到1,在深入人工智能的全套Python笔记。

❤️经验经历
过往的感悟和思考。发病日记。

✨碎片技术
学习工作中遇到的很赞的技术碎片,整理好了。

✨学习积累
相对于碎片技术的,已经沉淀为自己的资本的内容。
【深度学习】概述
注:封面画师:新雨林-触站
说明
本页面无手机端适配,强制缩放阅读。
使用纯html格式,保存教学用ppt,添加了部分个人笔记。
目录工作正常,可以跳转。
b{color:rgba(0,0,0,0.75)}
深度学习概述
深度学习概述
引入
深度学习巨大影响
人工智能划时代事件
什么是深度学习
深度神经网络
深度学习与机器学习的关系
深度学习的定义
深度学习的特点
深度学习的应用
深度学习的优点
深度学习的缺点
深度学习与机器学习对比
课程内容与特点
为什么要学习深度学习
深度学习发展史
深度学习的特点
深度学习的应用
课程内容
课程特点
学习资源推荐
深度学习发展简史
深度网络演化过程
引入
知识讲解
人工智能划时代事件
• 2016年3月,Google公司研发的AlphaGo以
4:1击败世界围棋顶级选手李世石。次年,AlphaGo2.0对战世界最年轻的围棋四冠王柯洁,以3:0击败对方。背后支撑AlphaGo具备如此强大能力的,就是“深度学习”(Deep Learning)。
...
【机器学习】第七部分:模型优化
验证曲线与学习曲线① 验证曲线验证曲线是指根据不同的评估系数,来评估模型的优劣. 例如,构建随机森林,树的数量不同,模型预测准确度有何不同?以下是一个验证曲线的示例:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556# 验证曲线示例import numpy as npimport sklearn.preprocessing as spimport sklearn.ensemble as seimport sklearn.model_selection as msimport matplotlib.pyplot as mpdata = []with open("../data/car.txt", "r") as f: for line in f.readlines(): data.append(line.replace("\n", "" ...
【机器学习】第六部分:模型评估
性能度量① 错误率与精度错误率和精度是分类问题中常用的性能度量指标,既适用于二分类任务,也适用于多分类任务.
错误率(error rate):指分类错误的样本占样本总数的比例,即 ( 分类错误的数量 / 样本总数数量)
精度(accuracy):指分类正确的样本占样本总数的比例,即 (分类正确的数量 / 样本总数数量)
$$精度 = 1 - 错误率$$
② 查准率、召回率与F1得分错误率和精度虽然常用,但并不能满足所有的任务需求。例如,在一次疾病检测中,我们更关注以下两个问题:
检测出感染的个体中有多少是真正病毒携带者?
所有真正病毒携带者中,有多大比例被检测了出来?
类似的问题在很多分类场景下都会出现,“查准率”(precision)与“召回率”(recall)是更为适合的度量标准。对于二分类问题,可以将真实类别、预测类别组合为“真正例”(true positive)、“假正例”(false positive)、“真反例”(true negative)、“假反例”(false negative)四种情形,见下表:
样例总数:TP + F ...
【机器学习】第五部分:降维问题
参见:机器学习四大降维方法
PCA降维参见:【机器学习】降维——PCA(非常详细)参见:机器学习实战8-sklearn降维(PCA/LLE)
LDA降维参见:【机器学习实战】降维方法的sklearn实现—-PCA和LDA
LLE降维参见:机器学习实战8-sklearn降维(PCA/LLE)
拉普拉斯特征映射参见:python实现拉普拉斯特征图降维示例
【机器学习】第四部分:聚类问题
聚类问题概述聚类(cluster)与分类(class)问题不同,聚类是属于无监督学习模型,而分类属于有监督学习。聚类使用一些算法把样本分为N个群落,群落内部相似度较高,群落之间相似度较低。在机器学习中,通常采用“距离”来度量样本间的相似度,距离越小,相似度越高;距离越大,相似度越低.
相似度度量方式① 欧氏距离相似度使用欧氏距离来进行度量. 坐标轴上两点$x_1, x_2$之间的欧式距离可以表示为:$$|x_1-x_2| = \sqrt{(x_1-x_2)^2}$$平面坐标中两点$(x_1, y_1), (x_2, y_2)$欧式距离可表示为:$$|(x_1,y_1)-(x_2, y_2)| = \sqrt{(x_1-x_2)^2+(y_1-y_2)^2}$$三维坐标系中$(x_1, y_1, z_1), (x_2, y_2, z_2)$欧式距离可表示为:$$|(x_1, y_1, z_1),(x_2, y_2, z_2)| = \sqrt{(x_1-x_2)^2+(y_1-y_2)^2+(z_1-z_2)^2}$$以此类推,可以推广到N维空间.$$|(x ...
【机器学习】第三部分肆:朴素贝叶斯
朴素贝叶斯是一组功能强大且易于训练的分类器,它使用贝叶斯定理来确定给定一组条件的结果的概率,“朴素”的含义是指所给定的条件都能独立存在和发生. 朴素贝叶斯是多用途分类器,能在很多不同的情景下找到它的应用,例如垃圾邮件过滤、自然语言处理等.
概率定义概率是反映随机事件出现的可能性大小. 随机事件是指在相同条件下,可能出现也可能不出现的事件. 例如:
(1)抛一枚硬币,可能正面朝上,可能反面朝上,这是随机事件. 正/反面朝上的可能性称为概率;
(2)掷骰子,掷出的点数为随机事件. 每个点数出现的可能性称为概率;
(3)一批商品包含良品、次品,随机抽取一件,抽得良品/次品为随机事件. 经过大量反复试验,抽得次品率越来越接近于某个常数,则该常数为概率.
我们可以将随机事件记为A或B,则P(A), P(B)表示事件A或B的概率.
联合概率与条件概率① 联合概率指包含多个条件且所有条件同时成立的概率,记作$P ( A , B )$ ,或$P(AB)$,或$P(A \bigcap B)$
② 条件概率已知事件B发生的条件下,另一个事件A发生的概率称为条件概率,记为:$P(A ...
【机器学习】第三部分贰:决策树分类
什么是决策树决策树是一种常见的机器学习方法,其核心思想是相同(或相似)的输入产生相同(或相似)的输出,通过树状结构来进行决策,其目的是通过对样本不同属性的判断决策,将具有相同属性的样本划分到一个叶子节点下,从而实现分类或回归. 以下是几个生活中关于决策树的示例.
【示例1】
男生看女生与女生看男生的决策树模型
【示例2】
挑选西瓜的决策树模型
在上述示例模型中,通过对西瓜一系列特征(色泽、根蒂、敲声等)的判断,最终我们得出结论:这是否为一个好瓜. 决策过程中提出的每个判定问题都是对某个属性的“测试”,例如“色泽=?”,“根蒂=?”. 每个测试的结果可能得到最终结论,也可能需要进行下一步判断,其考虑问题的范围是在上次决策结果限定范围之内. 例如若在“色泽=青绿”之后再判断“根蒂=?”.
决策树的结构一般来说,一棵决策树包含一个根节点、若干个内部节点和若干个叶子节点. 叶子节点对应最终的决策结果,其它每个节点则对应与一个属性的测试. 最终划分到同一个叶子节点上的样本,具有相同的决策属性,可以对这些样本的值求平均值来实现回归,对这些样本进行投票(选取样本数量最多的类别)实现分类. ...
【机器学习】第三部分叁:支持向量机(SVM)
基本概念什么是支持向量机支持向量机(Support Vector Machines)是一种二分类模型,在机器学习、计算机视觉、数据挖掘中广泛应用,主要用于解决数据分类问题,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化(即数据集的边缘点到分界线的距离d最大,如下图),最终转化为一个凸二次规划问题来求解。通常SVM用于二元分类问题,对于多元分类可将其分解为多个二元分类问题,再进行分类。所谓“支持向量”,就是下图中虚线穿过的边缘点。支持向量机就对应着能将数据正确划分并且间隔最大的直线(下图中红色直线)。
最优分类边界什么才是最优分类边界?什么条件下的分类边界为最优边界呢?
如图中的A,B两个样本点,B点被预测为正类的确信度要大于A点,所以SVM的目标是寻找一个超平面,使得离超平面较近的异类点之间能有更大的间隔,即不必考虑所有样本点,只需让求得的超平面使得离它近的点间隔最大。超平面可以用如下线性方程来描述:$$w^T x + b = 0$$其中,$x=(x_1;x_2;…;x_n)$,$w=(w_1;w_2;…;w_n)$,$b$为偏置项. ...
【机器学习】第三部分壹:逻辑回归
逻辑回归概述什么是逻辑回归逻辑回归(Logistic Regression) 虽然被称为回归,但其实际上是分类模型,常用于二分类。逻辑回归因其简单、可并行化、可解释强而受到广泛应用。二分类(也称为逻辑分类)是常见的分类方法,是将一批样本或数据划分到两个类别,例如一次考试,根据成绩可以分为及格、不及格两个类别,如下表所示:
姓名
成绩
分类
Jerry
86
1
Tom
98
1
Lily
58
0
……
……
……
这就是逻辑分类,将连续值映射到两个类别中。
逻辑函数逻辑回归是一种广义的线性回归,其原理是利用线性模型根据输入计算输出(线性模型输出值为连续),并在逻辑函数作用下,将连续值转换为两个离散值(0或1),其表达式如下:$$y = h(w_1x_1 + w_2x_2 + w_3x_3 + … + w_nx_n + b)$$其中,括号中的部分为线性模型,计算结果在函数$h()$的作用下,做二值化转换,函数$h()$的定义为:$$h= \frac{1}{1+e^{-t}}$$$$\quad t=w^Tx+b$$
该函数称为Si ...
【机器学习】第二部分下:决策树回归
决策树回归核心思想:相似的输入必会产生相似的输出。例如预测某人薪资:
年龄:1-青年,2-中年,3-老年学历:1-本科,2-硕士,3-博士经历:1-出道,2-一般,3-老手,4-骨灰性别:1-男性,2-女性
年龄
学历
经历
性别
==>
薪资
1
1
1
1
==>
6000(低)
2
1
3
1
==>
10000(中)
3
3
4
1
==>
50000(高)
…
…
…
…
==>
…
1
3
2
2
==>
?
12345678样本数量非常庞大 100W个样本换一种数据结构,来提高检索效率树形结构回归 : 均值分类 : 投票(概率)
为了提高搜索效率,使用树形数据结构处理样本数据:$$\text{年龄}=1\left{\begin{aligned}\text{学历}1 \\text{学历}2 \\text{学历}3 \\end{aligned}\right.\quad\ ...
【机器学习】第二部分上:线性回归
线性模型线性模型是自然界最简单的模型之一,它描述了一个(或多个)自变量对另一个因变量的影响是呈简单的比例、线性关系.例如:
住房每平米单价为1万元,100平米住房价格为100万元,120平米住房为120万元;
一台挖掘机每小时挖$100m^3$沙土,工作4小时可以挖掘$400m^3$沙土.
线性模型在二维空间内表现为一条直线,在三维空间内表现为一个平面,更高维度下的线性模型很难用几何图形来表示(称为超平面).如下图所示:
二维空间下线性模型表现为一条直线
三维空间下线性模型表现为一个平面
线性回归是要根据一组输入值和输出值(称为样本),寻找一个线性模型,能最佳程度上拟合于给定的数值分布,从而再给定新的输入时预测输出.样本如下表所示:
输入(x)
输出(y)
0.5
5.0
0.6
5.5
0.8
6.0
1.1
6.8
1.4
6.8
根据样本拟合的线性模型如下图所示:
线性模型定义设给定一组属性$x, x=(x_1;x_2;…;x_n)$,线性方程的一般表达形式为:$$y = w_1x_1 + w_2x_2 + w_3 ...
【机器学习】第一部分:概述
人工智能课程概述什么是人工智能人工智能(Artificial Intelligence)是计算机科学的一个分支学科,主要研究用计算机模拟人的思考方式和行为方式,从而在某些领域代替人进行工作.
人工智能的学科体系以下是人工智能学科体系图:
机器学习(Machine Learning):人工智能的一个子学科,研究人工智能领域的基本算法、原理、思想方法,机器学习研究的内容在其它子学科都会用到
计算机视觉(Computer Vision):研究计算机处理、识别、理解图像、视频的相关技术
自然语言处理(Natural Language Processing):研究计算机理解人类自然语言的相关技术
语言处理:研究计算机理解识别、理解、合成语音的相关技术
人工智能与传统软件的区别
传统软件:执行人的指令和想法,在执行之前人已经有了解决方案,无法超越人的思想和认识范围
人工智能:尝试突破人的思想和认识范围,让计算机学习到新的能力,尝试解决传统软件的难题
课程介绍课程内容课程内容主要包括:
课程特点
内容多:包括机器学习、深度学习、计算机视觉、NLP、常用框架
难度大:学习难度较大,入门难、提 ...
Pandas 和 Numpy 中的统计
数值型描述统计算数平均值$S = [s_1, s_2, …, s_n]$
样本中的每个值都是真值与误差的和。
$mean = \frac{(s_1 + s_2 + … + s_n) }{n}$
算数平均值表示对真值的无偏估计。
123m = np.mean(array)m = array.mean()m = df.mean(axis=0)
案例:针对电影评分数据做均值分析:
123mean = ratings['John Carson'].mean()mean = np.mean(ratings['John Carson'])means = ratings.mean(axis=1)
加权平均值求平均值时,考虑不同样本的重要性,可以为不同的样本赋予不同的权重。
样本:$S = [s_1, s_2, s_3 … s_n]$
权重:$W =[w_1, w_2, w_3 … w_n]$
加权平均值:$$a = \frac{s_1w_1 + s_2w_2 + … + s_nw_n}{w_1+w_2+…+ ...
Matplotlib 笔记
:star2:基本绘图
:star:绘图核心API案例: 绘制简单直线
123456789101112131415161718192021import numpy as npimport matplotlib.pyplot as plt# 绘制简单直线x = np.array([1, 2, 3, 4, 5])y = np.array([3, 6, 9, 12, 15])# 绘制水平线、垂线plt.axhline(y=6, ls=":", c="blue") # 添加水平直线plt.axvline(x=4, ls="-", c="red") # 添加垂直直线# 绘制多段垂线plt.vlines([2, 3, 3.5], # 垂线的x坐标值 [10, 20, 30], # 每条垂线起始y坐标 [25, 35, 45]) # 每条垂线结束y坐标 [],[],[] 位置,开始位置,结束位置 plt.plot(x, y) ************ ...
Pandas笔记
:star2:pandas介绍Python Data Analysis Library
pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入 了大量库和一些标准的数据模型,提供了高效地操作大型结构化数据集所需的工具。
:star2:pandas核心数据结构数据结构是计算机存储、组织数据的方式。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
:star:SeriesSeries可以理解为一个一维的数组,只是index名称可以自己改动。类似于定长的有序字典,有Index和 value。
1234567891011121314import pandas as pdimport numpy as np# 创建一个空的系列s = pd.Series()# 从ndarray创建一个Seriesdata = np.array(['张三','李四','王五','赵柳'])s = pd.Series(data)s ...