Python数据分析与机器学习37-神经网络概述

一. 什么是人工智能

1.1 学习的能力,是智能的本质

image.png

1.2 大数据时代,万物互联

其实人工智能诞生比较找,大数据时代的来临,大大加速了人工智能的应用。
image.png

1.3 李世石 VS 阿法狗

4:1 李世石惨败
image.png

二. 神经网络概述

2.1 人工智能 VS 深度学习

随着数据规模的增加,传统人工智能算法的瓶颈就会出现,此时应该选择深度学习算法。
image.png

2.2 述说图片的故事

这些字幕是深度学习程序写的
image.png

2.3 无人驾驶汽车

  1. 物体检测
  2. 行人检测
  3. 标志识别
  4. 速度识别

image.png

2.4 黑科技:Image Transfer

Content + Style = Interesting thing

image.png

2.5 图像分类

图像分类是计算机视觉的核心任务。

假设我们有一系列的标签:狗,猫,汽车,飞机。。。
我们怎么才能判断下面这张图是猫呢?
image.png

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

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

2.5.1 挑战: 照射角度

image.png

2.5.2 挑战:光照强度

image.png

2.5.3 挑战: 形状改变

image.png

2.5.4 挑战: 部分遮蔽

image.png

2.5.5 挑战: 背景混入

背景混入是目前最麻烦的一种情况
image.png

2.6 图像分类常规套路

  1. 收集数据并给定标签
  2. 训练一个分类器
  3. 测试,评估

image.png

三. K近邻

3.1 K近邻概述

image.png
image.png

对于未知类别属性数据集中的点:

  1. 计算已知类别数据集中的点与当前点的距离
  2. 按照距离依次排序
  3. 选取与当前点距离最小的K个点
  4. 确定前K个点所在类别的出现概率
  5. 返回前K个点出现频率最高的类别作为当前点预测分类。

概述:
KNN 算法本身简单有效,它是一种lazy-learning 算法。
分类器不需要使用训练集进行训练,训练时间复杂度为0。
KNN 分类的计算复杂度和训练集中的文档数目成正比,也就是说,如果训练集中文档总数为n,那么KNN 的分类时间复杂度为O(n)。

3.2 K 值的选择

距离度量和分类决策规则是该算法的三个基本要素

问题:
该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K 个邻居中大容量类的样本占多数

解决:
不同的样本给予不同权重项

3.3 数据库样例: CIFAR-10

10类标签
50000个训练数据
10000个测试数据
大小均为32*32
image.png

3.4 如何计算距离

image.png

测试结果:
准确率较低
image.png

3.5 最近邻代码

image.png

3.6 超参数

image.png

3.7 K近邻小结

问题:

  1. 对于距离如何设定?
  2. 对于K近邻的K该如何选择?
  3. 如果有的话,其它的超参数该怎么设定呢?

交叉验证:
image.png

选取超参数的正确方法:

  1. 选取超参数的正确方法是:将原始训练集分为训练集和验证集,我们在验证集上尝试不同的超参数,最后保留表现最好那个。

  2. 如果训练数据量不够,使用交叉验证方法,它能帮助我们在选取最优超参数的时候减少噪音。

  3. 一旦找到最优的超参数,就让算法以该参数在测试集跑且只跑一次,并根据测试结果评价算法。

  4. 最近邻分类器能够在CIFAR-10上得到将近40%的准确率。该算法简单易实现,但需要存储所有训练数据,并且在测试的时候过于耗费计算能力。

  5. 最后,我们知道了仅仅使用L1和L2范数来进行像素比较是不够的,图像更多的是按照背景和颜色被分类,而不是语义主体分身。

整体步骤:

  1. 预处理你的数据:对你数据中的特征进行归一化(normalize),让其具有零平均值(zero mean)和单位方差(unit variance)。

  2. 如果数据是高维数据,考虑使用降维方法,比如PCA。

  3. 将数据随机分入训练集和验证集。按照一般规律,70%-90% 数据作为训练集。

  4. 在验证集上调优,尝试足够多的k值,尝试L1和L2两种范数计算方式。

四. 线性分类

每个类别的得分
image.png

得分函数:
image.png

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

image.png

image.png

五. 损失函数

5.1 损失函数概述

image.png

从上例可以看到,最终的评分效果不理想,预测值与实际值之间存在较大的差异,这个引入了损失函数。
image.png
从上图可以看出,模型评估的效果越差的话,损失函数的值就越大。

image.png

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

5.2 正则化

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

5.3 损失函数终极版

image.png

六. Softmax 分类器

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

6.1 Sigmoid函数

Sigmoid是符号函数:
image.png

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

6.2 Softmax 分类器概述

Softmax的输出(归一化的分类概率)

损失函数:交叉熵损失(cross-entropy loss)
image.png

image.png
上图被称作softmax函数

其输入值是一个向量,向量中元素为任意实数的评分值

输出一个向量,其中每个元素值在0到1之间,且所有元素之和为1
image.png

七. 最优化

image.png

粗暴的想法:
image.png

得到的结果:
image.png

7.1 找到山坡的最低点

image.png

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

跟随梯度:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IYJswv5W-1659234249640)(https://upload-images.jianshu.io/upload_images/2638478-2962a7e9f53e5658.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
image.png

7.2 梯度下降

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

image.png
上图是 训练网络时的LOSS值视化结果。

7.3 学习率

训练网络时的LOSS值视化结果
image.png

image.png

7.4 反向传播

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

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

八. 神经网络

8.1 神经网络概述

image.png

image.png

image.png

image.png

image.png

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

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

8.2 激活函数

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

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

image.png

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

8.3 数据预处理

image.png

全零值初始化?
image.png

image.png

8.4 DROP-OUT

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

参考:

  1. https://study.163.com/course/introduction.htm?courseId=1003590004#/courseDetail?tab=1
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值