深度学习之图像处理与分析
深度学习之图像处理与分析
目录
- 人工智能和深度学习概论
- 图像基础
- 深度学习基础
- 深度学习的基本数学
- 理解的人工神经网络
人工智能和深度学习概论
中国的AI
- 2017年7月,国务院发布白皮书,使中国到2030年成为全球AI领导者,行业价值1500亿美元
- 到2030年投资70亿美元,其中包括在北京的一个研究园的20亿美元
- 全球AI资金占主导地位48%,而美国在2017年为38%
- 中国的AI公司总数为23%,而美国2017年为42%
AI与ML与DL
- Artificial intelligence(人工智能)
- 使人类通常执行的智力任务自动化的努力
- Machine Learning(机器学习)
- 使系统无需进行显式编程即可自动从数据进行改进
- Deep Learning(深度学习)
- 机器学习的特定子领域
- 侧重于学习越来越有意义的表示形式的连续层
人工神经网络
- 最初于1950年代进行调查,始于1980年代
- 不是真正的大脑模型
- 受到神经生物学研究的宽松启发
深度学习的深度如何?
- 深度学习是人工神经网络的重塑,具有两层以上
- “深入”并不是指通过这种方法获得的更深刻的理解
- 它代表连续表示层的想法
深度学习框架
我们的深度学习技术堆栈
GPU和CUDA
- GPU(Graphics Processing Unit):
- 数百个更简单的内核
- 数千个并发的硬件线程
- 最大化浮点吞吐量
- CUDA(Compute Unified Device Architecture)
- 并行编程模型,可通过利用GPU显着提高计算性能
- cuDNN(CUDA深度神经网络库)
- GPU加速的神经网络原语库
- 它为以下方面提供了高度优化的实现:卷积,池化,规范化和**层
设置深度学习环境
- 安装Anaconda3-5.2.0
- 安装DL框架
- $ conda install -c conda-forge tensorflow
- $ conda install -c conda-forge keras
- 启动Jupyter Server
- $ jupyter notebook
图像处理基础
像素
- 像素是图像的原始构建块。 每个图像都包含一组像素
- 像素被认为是在图像中给定位置出现的光的“颜色”或“强度”
- 图片的分辨率为1024x768,即1024像素
- 宽768像素高
灰度与颜色
- 在灰度图像中,每个像素的标量值为0到255之间,其中零对应于黑色,而255为白色。 0到255之间的值是变化的灰色阴影
- RGB颜色空间中的像素由三个值的列表表示:红色代表一个值,绿色代表一个值,蓝色代表另一个值
- 通过执行均值减法或缩放对输入图像进行预处理,这是将图像转换为浮点数据类型所必需的
图像表示
- 我们可以将RGB图像概念化,该图像由宽度W和高度H的三个独立矩阵组成,每个RGB分量一个
- RGB图像中的给定像素是[0; 255]范围内的三个整数的列表:红色代表一个值,绿色代表第二个值,蓝色代表最终值
- RGB图像可以以形状(高度,宽度,深度)存储在3D NumPy多维数组中。
图像分类
- 图像分类是从一组预定义的类别中为图像分配标签的任务
- 假设计算机看到的只是一个很大的像素矩阵,那么如何以计算机可以理解的过程来表示图像
- 应用特征提取以获取输入图像,应用算法并获得量化内容的特征向量
- 我们的目标是应用深度学习算法来发现图像集合中的潜在模式,从而使我们能够正确分类算法尚未遇到的图像
深度学习基础
数据处理
- 向量化
- 将原始数据转换为张量
- 正常化
- 所有特征值均在同一范围内,标准偏差为1,平均值为0
- 特征工程
- 通过在建模之前将人类知识应用于数据来使算法更好地工作
什么是模型
- 在训练数据集上训练ML算法时生成的函数
- 例如。 找出w和b的值,因此f(x)= wx + b紧密匹配数据点。
模型重量
- 模型权重=参数=内核
- 从训练数据中学到的模型的可学习部分
- 学习开始之前,这些参数的值会随机初始化
- 然后调整为具有最佳输出的值
- 模型超参数:
- 在实际优化模型参数之前手动设置变量
- 例如 学习率,批量大小,时代等
Optimizer(优化器)
- 通过动态调整学习率来确定如何更新网络权重
- 热门优化器:
- SGD(随机梯度下降)
- RMSProp(均方根传播)
- 动量•Adam(自适应矩估计)
Loss Function(损失函数)
- 也称为误差函数或成本函数
- 通过汇总整个数据集的误差并求平均值来量化模型预测与地面真实程度的接近程度
- 查找权重组合以最小化损失函数
- 广泛使用的损失函数
- 交叉熵(对数损失)
- 均方误差(MSE)
- 均值绝对误差(MAE)
Weight Updates
学习率
- 控制我们在损耗梯度方面调整网络权重的程度
- 系数,用于衡量模型在损失函数中权重的大小
- 它确定算法的下一步要使用多少梯度。
指标
- 研究人员使用度量标准来在每个时期后根据验证集判断模型的性能
- 分类指标
- 准确性
- 精确
- 召回
- 回归指标:
- 平均绝对误差
- 均方误差
深度学习的基本数学
- 线性代数:矩阵运算
- 微积分:微分,梯度下降
- 统计: 概率
Tensors(张量)
- 张量:
- 数值数据的容器
- 多维数组
- 机器学习的基本数据结构
Tensor Operations(张量运算)
-
Element-wise product
- 将一个元素的每个元素与另一个元素的每个元素相乘
- 将一个元素的每个元素与另一个元素的每个元素相乘
Broadcasting(广播)
- 广播较小的张量以匹配较大的张量的形状
Dot Product Example(点积的例子)
- 第一个矩阵的列数必须等于第二个矩阵的行数
- A(m, n) x B(n, k) = C(m, k)
Derivative vs. Gradient (导数与梯度)
- 导数测量标量值的函数的“变化率”
- 梯度是张量的导数,导数的多维泛化
- 在一个变量的函数上定义了导数,而梯度为 用于几个变量的函数。
-
梯度下降
- 梯度下降法是找到一个函数的局部最小值
- 成本函数告诉我们离全局最小值有多远
人工神经网络
- 许多简单的单元在没有集中控制单元的情况下并行工作
- ANN由输入/输出层和隐藏层组成
- 每层中的单元都完全连接到前馈神经网络中相邻层中的所有单元。
神经元
- 神经元是人工神经网络的数学功能和基本处理元素
- 人工神经网络中的每个神经元都会对其所有输入进行加权求和,添加一个恒定的偏差,然后通过非线性**函数提供结果
层数
- 一层是一个数据处理模块,使用张量作为输入和输出张量。
- 隐藏层是网络外部无法观察到的层
- 大多数层具有权重,而有些则没有权重
- 每个层具有不同数量的单位
连接权重和偏差
- 放大输入信号并抑制网络单元噪声的系数。
- 通过减小某些权重,另一些权重较大,可以使某些功能有意义,并最小化其他功能,从而了解哪些结果有用。
- 偏差为标量值 输入,以确保无论信号强度如何,每层至少**几个单位
- 本质上,ANN旨在优化权重和偏差以最小化误差
Activation Functions(**函数)
- 当一个非零值从一个单元传递到另一个单元时,该值被**
- **功能将输入,权重和偏差的组合从一层转换到下一层
- 将非线性引入网络的建模功能
流行的Activation Functions
- Sigmoid
- Tanh
- ReLU
- Leaky ReLU
- Softmax
- SoftPlus
案例研究:手写数字分类
- LeCun等在1980年代组装的MNIST数据集
- 70,000个具有28 x 28像素正方形的样本图像
- 多类分类问题
输入层
- 使用28 x 28 = 784像素作为前馈网络输入层中的输入向量
Sigmoid Functions
- 逻辑函数,可通过将任意值转换为[0,1]来预测输出的可能性
- 每次梯度信号流过S型门时,其幅值始终最多减少0.25
Softmax Functions
- Softmax返回互斥输出类上的概率分布
- 结果向量清楚地显示了max元素,该元素接近1,并保持顺序
输出层
- 在输出层上使用Softmax将输出转换为类似概率的值
Classification Loss Function(分类损失函数)
-
分类交叉熵衡量了多分类模型的性能
-
-
在以上示例中,Y’是真实目标,而Y是模型的预测输出。 输出层由Sigmoid**
SGD, Batch and Epoch
- 随机梯度下降(SGD),用于计算梯度并更新每个单个训练样本上的权重矩阵
- SGD使计算速度更快,而使用整个数据集会使矢量化效率降低。
- 而不是对整个数据集或单个样本计算梯度, 我们通常在mini-batch(16,32,64)上评估梯度,然后更新权重矩阵
- Epoch是所有训练样本的一个前向通过加一个向后通过