1.tensorflow基础
1.tensorflow基础
1. 神经网络:前面层在抽特征,后面用于分类
2. multitask learning:神经网络的多层结果,使得它纯天然适合
数据形态差距比较大
多语种语音识别: 人类语言有一些共性
渐进式神经网络/progressive neural networks
原始数据映射成特征
域/Domain分类器:domain label d
检查不出来时,则说明抽取出来的有共性特征
最大标签分类准确率,努力学到同性的特征
domain classifier
数据量会影响大结果的效果
domain adversarial training
消除domain的特征,共性的特正\
zero-short learning
神经网络用来识别属性 足够多的属性值
递归网络卷积网络结合(CNN+RNN)
1. CNN + RNN
CNN卷积神经网络 RNN递归神经网络
1.1 相同点:
- 都是传统神经网络的扩展 空间和时间扩展
- 前向计算产生结果,反向计算模型更新
- 每层神经网络横向可以多个神经元共存,纵向可以有多层神经网络连接 深度和广度
注:梯度衰减: CNN ReLU不会衰减,
RNN U参数梯度会大于或者小于1
1.2 不同点:
- CNN空间扩展,神经元与特征卷积; RNN时间扩展,神经元与多个时间输出计算
- RNN可以用于描述时间上连续状态的输出,有记忆功能,CNN用于静态输出
- CNN高级深度100+深度,RNN深度有限
1.2 组合意义
- 大量信息同时具备时间空间特性
- 带有图像的对话,文本表达更具体
- 视频相对图片描述的内容更加完善
图片标注: CNN特征提取,用于RNN语句生成
视频分类: RNN特征提取用于CNN内容分类
图片问答: CNN特征提取用于对话问答
1.3 组合方式实现
- 特征提取:LSTM输出,FC层输出
- 特征合并:Concatenate层,Attention相乘
- 结果输出:连续语句输出LSTM,组合分类回归DNN(深度神经网络)
2. 图片标注
2.1 问题描述:有图片及标注信息,想要的模型是给图片,机器学习给标注
- CNN网络中全连接层特征描述图片,特征与LSTM进行结构组合
2.2 模型设计 - 数据准备
- 图片CNN特征提取
- 图片标注生成Word2Vect向量
- 生成训练数据:图片特征+第n单词向量:第n+1单词向量
2.3 模型设计
- 运用迁移学习,CNN特征,语句特征应用已有模型
- 最终输出模型是LSTM,训练过程参数设定:梯度上限,学习率调整
- 训练时间很长
2.4 模型运行
- CNN特征提取
- CNN特征+语句开头,单词逐个预测
2.5 图片标注升级- 详细标注
Loss:目标探测loss 目标识别loss 区域标注loss
训练方式:end-to-end
开放性探测识别
3. 视频行为识别
3.1. CNN特征简单组合
3.2. 3D版本CNN
图像特征的前后关系没有很好的区别
- CNN特征提取
- LSTM判断
- 多次识别结果分析
4. 图片/视频问答
4.1 图片问答的意义
- 是对纯文本语言问答系统的扩展
- 图片理解和语言处理的深度融合
- 提高人工智能能应用范围- 观察,思考,表达
4.2 方法流程
- 按照语言问答流程解决
- 图片特征同语言特征融合
- 训练数据: 问题 + 图片 + 答案
FCN
1. 递归神经网络RNN原理
1.1 工作过程:
- 文本处理(训练)
- 一个神经元,不同时刻
- 每个时刻都有输出
1.2 损失函数
1.3 反向计算
- 参数的优化方法
- 计算损失函数对参数的导数
- 每个输出都对参数有影响
w是本身激励,U是前导激励
多层网络,双向网络
输入信息正向,反向输入RNN,原因:信息的依赖关系顺序不定的
2. 升级版RNN: LSTM
U最大特征值大于1 爆炸,小于1 消失
设计Gate,保存重要记忆
核心内容:Ct
信息流控制的关键,参数决定了ht传递过程中,哪些被保存,哪些被舍弃,参数被Gate影响
sigmoid函数系数决定Ct参数的变化
2.1 第一步,对部分信息进行去除
记忆能力就是矩阵参数
2.2 Ct信息舍弃→Ct局部生成→Ct更新→Ct运算
Gate作用:输出It,ft,引导Ct生成
有用信息怎么保存?训练后,Ct相关参数为1
2.3 LSTM变种
- peephole connection
Ct受到Gate的相互影响
- GRU
遗忘,更新Gate结合
- Gate忘记/更新不再独立
- 中间层的特征可以最终输出或者所有输出
- 额外参数:单双向/梯度上限/梯度计算范围
3. 语言处理特征提取: Word2Vec
语言文本信息的表达形式:字符串形式难以直接理解
机器学习的输入输出数据形式:向量或多维数组
3.1 建立字典one-hot编码
3.2 训练数据集构建 词的临近处理 形成pair
3.3 简单神经网络,N-M-N
学到词与词的临近关系
3.4 生成最终Vect
- 训练model特征提取
- 每个noe-hot
特点:
-
SVM:
1.线性可分
支撑向量
硬间隔
SVM:
识别,检测,分割,分类,检索
1. 目标检测介绍
1.1 什么是目标探测:找到位置,位置是什么东西
单个目标,多个目标
直接思路:
- 回归问题,直接将目标位置变为坐标值
- 局部识别问题,在很多位置进行尝试识别,能够完成识别的地方就是目标位置,需要候选区域产生
2.传统方法-DPM
2.1 提取图形特征,制作出激励模板,在原始图像中滑动计算,得到激励效果图,根据激励分布确认目标位置HOG特征
2.2 目标可能会变形,各个部分单独考虑
- 产生多个模板,整体模板以及不同局部模板
- 不同模板同输入图片"卷积"产生特征图
- 特征图组合形成融合特征
- 对融合特征进行传统分类,回归,得到目标位置
2.3 优点
- 方法简单直观
- 运行速度快
- 适应运动物体变形
3.神经网络分类:R-CNN系列方法
3.1 分类思想:对多个位置,不同尺寸,用卷积神经网络判断区域内图片是不是某物
候选位置提出方法:EdgeBox
3.2 类别减少 训练过程
3.3 特征生成faster R-CNN
feature
4.神经网络回归:Yolo,SSD系列方法
一目标分类基本框架:
1.数据准备
1.1 数据来源:
- 现有数据集,网络采集,现有数据人工标注
- 图像效果算子:更模糊,更清楚unsharp,动作模糊motion
1.2 数据扩充:
- 原始数据切割,噪声颜色等像素变化,旋转平移等姿态变化
- 平移旋转后的label不变,相当于数据扩充了
1.3 数据规范
- 均值处理,归一化,大小调整
2.模型设计
2.1 任务模型
任务类型:
- 分类: 表情分类,属于什么种类,人群分类
- 分类+回归: 表情+程度,种类+信心,什么人+人数
- 多目标分类: 面部行为,群体行为,车流预测
2.2 现有模型(the state of the art)
2.3 局部更改-从头设计
- 更改: 哪里改变,新参数确定
- 设计: 新结构特点,为什么可行
3.训练细节
3.1 GPU-Batch size 是否并行
3.2 数据循环方式,平衡性考虑
- 数量较少的类别,数据是否需要补偿
- 从头到尾多次循环
- 每次随机选取部分数据
3.3 网络深度宽度确定
- 深度与卷积核关系: 层数变多,参数变少
3.4 损失函数设计
分类:softmax,直接拟合
3.5学习率变化方式,模型各层学习率是否一致
3.6 评价方式: 准确率,F1_score
精确率,召回率
二- 迁移学习
1. AlexNet(现代神经网络起源):
1.1 AlexNet,
1.2 卷积神经网络基本构成
卷积层CNN+池化层+全连接层FC
全连接层:
top5:说5个结果,有一个是对的就是对的
2. VGG(AlexNet增强版):
在AlexNet中增加多个卷积层group
结构简单:同AlexNet结构类似,误差减少50%
同googleNet.ResNet相比,表现近似
选择最多的基本模型方便优化,SSD RCNN,等任务的基本模型
3. GoogleNet(多维度识别):
3.1 参数总数:5m,没有全连接
3.2 全卷积结构(FCN)
没有全连接层
特点: 输入图片大小无限制,空间信息有丢失,参数更少,表达力更强
4. ResNet(机器超越人类识别):
为什么ResNet有效:
4.1 前向计算:低层卷积网络高层卷积网络信息融合,层数越深,模型表现力越强
4.2 反向计算:导数传递更直接,越过模型,直达各层
5. DeepFace(结构化图片的特殊处理):
人脸识别:通过观察人脸确认对应身份,在应用中更多的是确认(verification)
将图片位置对准,然后进行卷积层计算,提取出特征,不同区域希望单独考虑,希望不同的filter对应不同的部位进行训练使每个对应位置一个卷积核
结构化:所有人脸,组成相抵,理论上能够实现对其
差异化:相同位置,形貌不同
二维对准 三维对准,三维映射到二维
缺陷:
大量对准,对对准要求高,原始信息可能丢失
卷积参数数量很大,模型收敛难度大,需要大量数据
模型可扩展性差
6. U-Net(图片生成网络):
通过卷积神经网络生成特殊类型的图片
图片所有pixel需要生成,多目标回归
借助VGG结构
反池化:记住原来位置,不是resize
逆卷积:有学习能力的上采样
卷积神经网络(CNN)
1.链式反向梯度传导
1.1 链式法则的计算
y=f(x),z=g(y)
1.2 神经网络中链式法则
顺序:从loss向输入传播
每层的导数()结果进行存储,用于下一层导数的计算
2.卷积层
2.1 卷积层
边界扩充:为确保卷积后特征图尺度一致
确定方法:卷积核的宽度2i+1,添加pad宽度为i
卷积层关键参数:常见宽度
2.2 卷积核
3.功能层
非线性激励层ReLU函数
池化层pooling layer max 数据降维,方便计算存储 池化过程中,每张图单独降维
归一化层:原因:特征数scale不一致,加速训练,提高精度
切分层:
merge
1.一个缩进是四个空格
2.python是使用缩进来
1.p
1.开发环境IDE集成开发环境,解释器的外挂而已
2.IDLE也有交互模式()和开发模式
1.解释型,面向对象的语言
2.可移植跨平台
3.丰富的库,可扩展性,可嵌入C和C++语言
4.应用范围: 科学计算 人工智能 大数据 云计算
5.不该用python场景: 性能比较低,速度比较低
6.python解释器去执行写的python的代码
- Cpython解释器