一. 什么是人工智能
1.1 学习的能力,是智能的本质

1.2 大数据时代,万物互联
其实人工智能诞生比较找,大数据时代的来临,大大加速了人工智能的应用。

1.3 李世石 VS 阿法狗
4:1 李世石惨败

二. 神经网络概述
2.1 人工智能 VS 深度学习
随着数据规模的增加,传统人工智能算法的瓶颈就会出现,此时应该选择深度学习算法。

2.2 述说图片的故事
这些字幕是深度学习程序写的

2.3 无人驾驶汽车
- 物体检测
- 行人检测
- 标志识别
- 速度识别
......

2.4 黑科技:Image Transfer
Content + Style = Interesting thing

2.5 图像分类
图像分类是计算机视觉的核心任务。
假设我们有一系列的标签:狗,猫,汽车,飞机。。。
我们怎么才能判断下面这张图是猫呢?

一张图片被表示成三维数组的形式,每个像素的值从0到255
例如:3001003
(最后的3代表颜色 RGB. R代表red,G代表Green,B代表Black)

计算机视觉会存在很多干扰项。

2.5.1 挑战: 照射角度

2.5.2 挑战:光照强度

2.5.3 挑战: 形状改变

2.5.4 挑战: 部分遮蔽

2.5.5 挑战: 背景混入
背景混入是目前最麻烦的一种情况

2.6 图像分类常规套路
- 收集数据并给定标签
- 训练一个分类器
- 测试,评估

三. K近邻
3.1 K近邻概述


对于未知类别属性数据集中的点:
- 计算已知类别数据集中的点与当前点的距离
- 按照距离依次排序
- 选取与当前点距离最小的K个点
- 确定前K个点所在类别的出现概率
- 返回前K个点出现频率最高的类别作为当前点预测分类。
概述:
KNN 算法本身简单有效,它是一种lazy-learning 算法。
分类器不需要使用训练集进行训练,训练时间复杂度为0。
KNN 分类的计算复杂度和训练集中的文档数目成正比,也就是说,如果训练集中文档总数为n,那么KNN 的分类时间复杂度为O(n)。
3.2 K 值的选择
距离度量和分类决策规则是该算法的三个基本要素
问题:
该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K 个邻居中大容量类的样本占多数
解决:
不同的样本给予不同权重项
3.3 数据库样例: CIFAR-10
10类标签
50000个训练数据
10000个测试数据
大小均为32*32

3.4 如何计算距离

测试结果:
准确率较低

3.5 最近邻代码

3.6 超参数

3.7 K近邻小结
问题:
- 对于距离如何设定?
- 对于K近邻的K该如何选择?
- 如果有的话,其它的超参数该怎么设定呢?
交叉验证:

选取超参数的正确方法:
-
选取超参数的正确方法是:将原始训练集分为训练集和验证集,我们在验证集上尝试不同的超参数,最后保留表现最好那个。
-
如果训练数据量不够,使用交叉验证方法,它能帮助我们在选取最优超参数的时候减少噪音。
-
一旦找到最优的超参数,就让算法以该参数在测试集跑且只跑一次,并根据测试结果评价算法。
-
最近邻分类器能够在CIFAR-10上得到将近40%的准确率。该算法简单易实现,但需要存储所有训练数据,并且在测试的时候过于耗费计算能力。
-
最后,我们知道了仅仅使用L1和L2范数来进行像素比较是不够的,图像更多的是按照背景和颜色被分类,而不是语义主体分身。
整体步骤:
-
预处理你的数据:对你数据中的特征进行归一化(normalize),让其具有零平均值(zero mean)和单位方差(unit variance)。
-
如果数据是高维数据,考虑使用降维方法,比如PCA。
-
将数据随机分入训练集和验证集。按照一般规律,70%-90% 数据作为训练集。
-
在验证集上调优,尝试足够多的k值,尝试L1和L2两种范数计算方式。
四. 线性分类
每个类别的得分

得分函数:

实例:
0.256 - 0.5231 + 0.124 + 2.02 + 1.1 = -96.8



五. 损失函数
5.1 损失函数概述

从上例可以看到,最终的评分效果不理想,预测值与实际值之间存在较大的差异,这个引入了损失函数。

从上图可以看出,模型评估的效果越差的话,损失函数的值就越大。

损失函数:

根据上图的损失函数,结合下图的x , w1, w2
会出现 f(x,w1) = f(x,w2)
但是w1只对一个变量设置了权重值,而w2却对所有变量设置了权重值,虽然模型评分相同,但是理论上将更多的变量加入到模型中是更好的方法。



5.2 正则化
为了解决上面提出的问题,于是引入了正则化惩罚项
可以理解的理解 λ 就是
y(x,w1) = 11 = 1
y(x,w2) = 0.250.25 + 0.250.25 + 0.250.25 + 0.25*0.25 = 0.25
此时y(x,w2) 的损失函数就小于y(x,w1),解决了上面的问题。

5.3 损失函数终极版

六. Softmax 分类器
Softmax 分类器 是 多类别分类,Softmax的输出是概率。

6.1 Sigmoid函数
Sigmoid是符号函数:

x取值范围是(-∞,+∞),而y的取值范围是[0-1]
刚好我们的概率取值范围也是[0-1],于是可以对应起来。

6.2 Softmax 分类器概述
Softmax的输出(归一化的分类概率)
损失函数:交叉熵损失(cross-entropy loss)


上图被称作softmax函数
其输入值是一个向量,向量中元素为任意实数的评分值
输出一个向量,其中每个元素值在0到1之间,且所有元素之和为1

七. 最优化

粗暴的想法:

得到的结果:

7.1 找到山坡的最低点

第一个位置是随机的,然后不挺的迭代,找到最低点

跟随梯度:


7.2 梯度下降


Bachsize通常是2的整数倍(32,64,128)

上图是 训练网络时的LOSS值视化结果。
7.3 学习率
训练网络时的LOSS值视化结果


7.4 反向传播
函数运行的结果与验证集存在偏差(损失函数大),此时可以通过反馈结果,调整权重参数,尽可能的将 损失函数的值变小。





加法门单元:均等分配
MAX门单元:给最大的
乘法门单元:互换的感觉

八. 神经网络
8.1 神经网络概述





正则化项在神经网络中的重要作用

越多的神经元,就越能够表达能复杂的模型

8.2 激活函数
激活函数是用来解决 预测结果与变量之间的非线性关系的问题。

最开始的激活函数就是Sigmoid,但是他会存在一个梯度消失的问题。



于是引入了新的激活函数ReLUctant
当x<=0的时候,y=0
当x > 0 的时候,y=x

8.3 数据预处理

全零值初始化?


8.4 DROP-OUT
左图是全连接,模型效果更优,但是模型也更复杂,计算量也大。
所以有了右图的DROP-OUT,将一些不重要的连接去掉,保证模型效果的同时,尽量减少一些不必要的计算量。

网友评论