(以“人脸识别<br />”为内容创建页面) |
|||
(相同用户的11个中间修订版本未显示) | |||
第1行: | 第1行: | ||
− | [[文件: | + | |
+ | |||
+ | ===电子实习-智能硬件挑战课程实验日志=== | ||
+ | '''实验日志7/5''' | ||
+ | *完成智能路灯模型设计,功能描述如下:在ALS检测的光照强度小于100时,LED灯发光,并能根据不同光照强度发出不同颜色的灯光。 | ||
+ | *分别完成语音播报和人脸识别的demo测试,在合并成语音迎宾系统时出现问题 | ||
+ | '''实验日志7/6''' | ||
+ | *python是编译解释性语言 | ||
+ | 面向对象Object Oriented | ||
+ | 支持函数式编程Lambda:非常热门 | ||
+ | ---python3 | ||
+ | ---空格缩进---unexpected intent | ||
+ | 1,交互式环境 | ||
+ | 2,python脚本<br /> | ||
+ | python 通过import来引进包 | ||
+ | pip是包管理工具 | ||
+ | pip -install | ||
+ | pip list<br /> | ||
+ | i**2 i的平方<br /> | ||
+ | python的循环语句有点像iterater | ||
+ | ---items = [1, 2, 3, 4, 5]<br /> | ||
+ | ---for i in items:<br /> | ||
+ | 用StackOverflow来debug | ||
+ | |||
+ | *Git的使用<br /> | ||
+ | git init | ||
+ | git clone克隆下来的是一个完整的仓库比如stis-2019,这两个完全无关 | ||
+ | git add和git commit 是一起的 | ||
+ | git push origin master代码共享与修改的请求 | ||
+ | 千人项目的操作clone ->commit->push--->pull<br /> | ||
+ | branches方式 | ||
+ | git checkout -b <branch> | ||
+ | git checkout master...... | ||
+ | git的基本思想:全世界码农联合起来完成一个大项目 | ||
+ | |||
+ | |||
+ | *tensorflow的tensor<br /> | ||
+ | tensor是tf内部计算的基本数据类型 | ||
+ | 有Constant,Placeholder,Variable三种表现形式<br /> | ||
+ | --权重需要被修改,权重一般用Variable来表达 | ||
+ | --Placeholder一般和计算有关,训练批次几万张图片分成很多批,一次十张,占位符和这个有关<br /> | ||
+ | 属性有rank,shape,datatype<br /> | ||
+ | tensorflow代码分成两部分 | ||
+ | 前半部分用来描述Graph,并不计算(Graph) | ||
+ | 后半部分才开始执行计算(Session) | ||
+ | |||
+ | *Neuron | ||
+ | --神经元被建模为一个函数σ(Wx+b),其中W是权重,x是输入,b是偏移量 | ||
+ | --输入线性加权叠加、 | ||
+ | --一个非线性函数σ作用,σ被称为激活函数 | ||
+ | --neuron.py | ||
+ | |||
+ | *loss&GD | ||
+ | 1,定义距离loss 2,GD迭代优化 | ||
+ | DNN思考,学习率与收敛问题,xor问题(不是个线性问题,2个relu可解) | ||
+ | 随机森林random forest 最近邻方法 | ||
+ | |||
+ | *人工智能机器智能简述 | ||
+ | 设计实现计算机系统软件,使其表现出智能的行为<br /> | ||
+ | 机器认知(Cognition)<br /> | ||
+ | --机器学习 | ||
+ | --自动推理 | ||
+ | --人工意识 | ||
+ | --知识表<br /> | ||
+ | 机器感知(Perception)<br /> | ||
+ | --语音识别 | ||
+ | --视觉识别 | ||
+ | --运动控制 | ||
+ | |||
+ | *机器学习:利用经验集E提升任务T的性能P的方法就是机器学习<br /> | ||
+ | deep learning:机器学习的分支<br /> | ||
+ | 机器学习的过程1,学习learn 2,推断predict | ||
+ | 机器学习可以看成一种数学建模<br /> | ||
+ | 目的:推广Generalization 推广误差 Generalization error | ||
+ | GE = AE + EE + OE(Approximation error, Estimation error, Optimization error) | ||
+ | 误差原因:模型规模,数据集规模,算法设计 | ||
+ | echospot<br /> | ||
+ | 标志性论文 | ||
+ | deep belief nets 2006 | ||
+ | AlexNet 2012 | ||
+ | “imageNet classification with deep convolutional neural networks” | ||
+ | |||
+ | *tensorflow主要用来建模神经网络 | ||
+ | neuron 1接受区触发区传导区输出区:接受的线性与触发的非线性 | ||
+ | activation function: sigmoid, tanh, ReLU | ||
+ | 连接主义方法connectionism:复杂神经网络可以通过大量的简单神经元搭建 | ||
+ | 多层前馈网络(全连接网络)Multilayer feedforward networks | ||
+ | 全连接网络:层间完全二分图(输入层,隐藏层,输出层) | ||
+ | 输入和输出看成向量,权重看成矩阵。 | ||
+ | 深度学习的本质是一个函数逼近问题 | ||
+ | 万能近似器(Universal Approximators),可以以任意精度近似从一个有限维空间映射到另一个有限维空间的连续函数 | ||
+ | |||
+ | *CNN&RNN Dense&CNN 学习路线<br /> | ||
+ | 比如一个4*5*6的tensor | ||
+ | --rank(秩):3d | ||
+ | --length:4,5,6 | ||
+ | --shape:[4,5,6] | ||
+ | --volume: 4*5*6 = 120<br /> | ||
+ | 从neuron到layer | ||
+ | 单个神经元:输入是1d,参数是1d,输出是0d,一层神经元构成一个layer | ||
+ | 输出的shape和layer的shape一致<br /> | ||
+ | batch_size(批尺寸) | ||
+ | --会影响输出的shape,不会影响参数的shape | ||
+ | |||
+ | *神经网络训练原理 | ||
+ | --采用带标签的训练样本对神经网络进行训练,确定网络的权重参数 | ||
+ | ---数据集(x1,y1)(x2,y2)(x3,y3)...... | ||
+ | --神经网络输出 | ||
+ | ---要求预测值yi'与实际值yi相差较小 | ||
+ | --差异最小化 | ||
+ | ---度量函数:绝对值求和,平方和,交叉熵<br /> | ||
+ | 反向传播算法backprop:根据损失函数的性质以及链式求导法则,反向逐层计算损失函数对权重的梯度(各个偏导数),通过骗到的方向调整权重:梯度下降法(gradient descent) | ||
+ | --也称最速下降法,核心是参数值更新(梯度算子),寻找到一个最小值 | ||
+ | |||
+ | *神经网络的实际训练过程 | ||
+ | --分批训练 | ||
+ | --随机梯度下降法(每次只选取一个随机样本)<br /> | ||
+ | 整个训练集成为一个批次(batch) | ||
+ | 每个迷你批次minibatch的数据被依次送入网络训练,每次训练完被称为“一次迭代”iteration | ||
+ | 一个时代(epoch)指训练集中所有的训练样本被送入神经网络,完成一次训练的过程 | ||
+ | |||
+ | *deep learning数值计算方法的实现 | ||
+ | 数值计算-数值量化,数值分析<br /> | ||
+ | 1,避免两个相近数的相减 | ||
+ | 2,避免除数远远小于被除数 | ||
+ | 3,举例:softmax function,当接近0的数被四舍五入时发生下溢underflow | ||
+ | |||
+ | *求导运算 | ||
+ | 在tensorflow中用的是符号微分 | ||
+ | --符号微分原理:1,统一定义基本运算Op2,统一定义初等函数导数运算3,定义四则运算求导法则4,定义导数的链式法则<br /> | ||
+ | 学习率就是步长。 | ||
+ | 计算图CG,tensorflow是一种元编程(meta programming) | ||
+ | --sess开始之后才可以开始喂数据 | ||
+ | --在图上,由后向前查找相关结点求导插入并更新计算图 | ||
+ | |||
+ | '''实验日志7/7''' | ||
+ | *softmax function,交叉熵cross entropy,权重是分层的,右上标括号内数字表示层数。 | ||
+ | |||
+ | *BP算法机智地避开了这种冗余,它对于每一个路径只访问一次就能求顶点对所有下层节点的偏导值。 | ||
+ | 从最上层的节点e开始,初始值为1,以层为单位进行处理。对于e的下一层的所有子节点,将1乘以e到某个节点路径上的偏导值,并将结果“堆放”在该子节点中。等e所在的层按照这样传播完毕后,第二层的每一个节点都“堆放”些值,然后我们针对每个节点,把它里面所有“堆放”的值求和,就得到了顶点e对该节点的偏导。然后将这些第二层的节点各自作为起始顶点,初始值设为顶点e对它们的偏导值,以”层”为单位重复上述传播过程,即可求出顶点e对每一层节点的偏导数。 | ||
+ | |||
+ | *CNN卷积神经网络,RNN循环神经网络。 | ||
+ | CNN主要应用于图像领域,RNN主要应用于语音识别,NLP。 | ||
+ | Dense(全连接网络)&CNN(松散连接网络,和大脑中的神经连接模式更加类似) | ||
+ | |||
+ | '''实验日志7/8''' | ||
+ | *RNN有一个问题就是vanishing gradient over time,可以用LSTM长短时记忆,将早期记忆单独记录于cell,并通过门控的方式选择记忆或者遗忘。cell state | ||
+ | *门电路:input->X(<-control(类似一个单独的神经元))->output | ||
+ | *LSTM: | ||
+ | 1,cell gate | ||
+ | 2,input gate | ||
+ | 3,update | ||
+ | 4,output gate | ||
+ | *Gated Recurrent Unit(GRU)<br /> | ||
+ | --combine the input gate and the forget gate into the update gate<br /> | ||
+ | --merge the cell state and the hidden gate<br /> | ||
+ | Stacked-lstm准确率提高,时间延迟比较严重(多层GRU-LSTM的叠加) | ||
+ | |||
+ | *Neuron Turing Machines,DNC | ||
+ | 语音处理技术 | ||
+ | --ASR,TTS(语音识别,语音合成) | ||
+ | 声控智能硬件(AI唤醒万物) | ||
+ | IBM watson,参与危险边缘综艺节目,需要用自然语言给出70%问题的答案,正确率要高于80% | ||
+ | --基本思路:问题分类-线索-答案 | ||
+ | --语法分析,知识提取,文本类证据获取与分析 | ||
+ | |||
+ | *实验过程:<br /> | ||
+ | audioPlot:笔记本或者手机<br /> | ||
+ | (1)录音生成对应语音指令的录音文件<br /> | ||
+ | (2)对应文件生成时频谱图(spectrogram)<br /> | ||
+ | audioNet:GPU工作站<br /> | ||
+ | (3)用tensorflow搭一个深度神经网络<br /> | ||
+ | (4)使用录音集进行训练<br /> | ||
+ | (5)验证神经网络准确率<br /> | ||
+ | androidAudioRec<br /> | ||
+ | (6)部署神经网络到硬件平台上<br /> | ||
+ | --wav文件通过stfft(傅里叶变换),转化为时频谱图<br /> | ||
+ | --涵盖了两种信息,时间和波形<br /> | ||
+ | [[文件:下载 (1).png|200px|thumb|left|人脸识别]] | ||
+ | [[文件:IMG 20190708 093439.jpg|200px|thumb|left|硅智能音箱主板]]<br /><br /> |
2019年7月8日 (一) 07:27的最后版本
电子实习-智能硬件挑战课程实验日志
实验日志7/5
- 完成智能路灯模型设计,功能描述如下:在ALS检测的光照强度小于100时,LED灯发光,并能根据不同光照强度发出不同颜色的灯光。
- 分别完成语音播报和人脸识别的demo测试,在合并成语音迎宾系统时出现问题
实验日志7/6
- python是编译解释性语言
面向对象Object Oriented
支持函数式编程Lambda:非常热门
---python3
---空格缩进---unexpected intent
1,交互式环境
2,python脚本
python 通过import来引进包
pip是包管理工具
pip -install
pip list
i**2 i的平方
python的循环语句有点像iterater
---items = [1, 2, 3, 4, 5]
---for i in items:
用StackOverflow来debug
- Git的使用
git init
git clone克隆下来的是一个完整的仓库比如stis-2019,这两个完全无关
git add和git commit 是一起的
git push origin master代码共享与修改的请求
千人项目的操作clone ->commit->push--->pull
branches方式
git checkout -b <branch>
git checkout master......
git的基本思想:全世界码农联合起来完成一个大项目
- tensorflow的tensor
tensor是tf内部计算的基本数据类型
有Constant,Placeholder,Variable三种表现形式
--权重需要被修改,权重一般用Variable来表达
--Placeholder一般和计算有关,训练批次几万张图片分成很多批,一次十张,占位符和这个有关
属性有rank,shape,datatype
tensorflow代码分成两部分
前半部分用来描述Graph,并不计算(Graph)
后半部分才开始执行计算(Session)
- Neuron
--神经元被建模为一个函数σ(Wx+b),其中W是权重,x是输入,b是偏移量 --输入线性加权叠加、 --一个非线性函数σ作用,σ被称为激活函数 --neuron.py
- loss&GD
1,定义距离loss 2,GD迭代优化 DNN思考,学习率与收敛问题,xor问题(不是个线性问题,2个relu可解) 随机森林random forest 最近邻方法
- 人工智能机器智能简述
设计实现计算机系统软件,使其表现出智能的行为
机器认知(Cognition)
--机器学习
--自动推理
--人工意识
--知识表
机器感知(Perception)
--语音识别
--视觉识别
--运动控制
- 机器学习:利用经验集E提升任务T的性能P的方法就是机器学习
deep learning:机器学习的分支
机器学习的过程1,学习learn 2,推断predict
机器学习可以看成一种数学建模
目的:推广Generalization 推广误差 Generalization error
GE = AE + EE + OE(Approximation error, Estimation error, Optimization error)
误差原因:模型规模,数据集规模,算法设计
echospot
标志性论文
deep belief nets 2006
AlexNet 2012
“imageNet classification with deep convolutional neural networks”
- tensorflow主要用来建模神经网络
neuron 1接受区触发区传导区输出区:接受的线性与触发的非线性 activation function: sigmoid, tanh, ReLU 连接主义方法connectionism:复杂神经网络可以通过大量的简单神经元搭建 多层前馈网络(全连接网络)Multilayer feedforward networks 全连接网络:层间完全二分图(输入层,隐藏层,输出层) 输入和输出看成向量,权重看成矩阵。 深度学习的本质是一个函数逼近问题 万能近似器(Universal Approximators),可以以任意精度近似从一个有限维空间映射到另一个有限维空间的连续函数
- CNN&RNN Dense&CNN 学习路线
比如一个4*5*6的tensor
--rank(秩):3d
--length:4,5,6
--shape:[4,5,6]
--volume: 4*5*6 = 120
从neuron到layer
单个神经元:输入是1d,参数是1d,输出是0d,一层神经元构成一个layer
输出的shape和layer的shape一致
batch_size(批尺寸)
--会影响输出的shape,不会影响参数的shape
- 神经网络训练原理
--采用带标签的训练样本对神经网络进行训练,确定网络的权重参数
---数据集(x1,y1)(x2,y2)(x3,y3)......
--神经网络输出
---要求预测值yi'与实际值yi相差较小
--差异最小化
---度量函数:绝对值求和,平方和,交叉熵
反向传播算法backprop:根据损失函数的性质以及链式求导法则,反向逐层计算损失函数对权重的梯度(各个偏导数),通过骗到的方向调整权重:梯度下降法(gradient descent)
--也称最速下降法,核心是参数值更新(梯度算子),寻找到一个最小值
- 神经网络的实际训练过程
--分批训练
--随机梯度下降法(每次只选取一个随机样本)
整个训练集成为一个批次(batch)
每个迷你批次minibatch的数据被依次送入网络训练,每次训练完被称为“一次迭代”iteration
一个时代(epoch)指训练集中所有的训练样本被送入神经网络,完成一次训练的过程
- deep learning数值计算方法的实现
数值计算-数值量化,数值分析
1,避免两个相近数的相减
2,避免除数远远小于被除数
3,举例:softmax function,当接近0的数被四舍五入时发生下溢underflow
- 求导运算
在tensorflow中用的是符号微分
--符号微分原理:1,统一定义基本运算Op2,统一定义初等函数导数运算3,定义四则运算求导法则4,定义导数的链式法则
学习率就是步长。
计算图CG,tensorflow是一种元编程(meta programming)
--sess开始之后才可以开始喂数据
--在图上,由后向前查找相关结点求导插入并更新计算图
实验日志7/7
- softmax function,交叉熵cross entropy,权重是分层的,右上标括号内数字表示层数。
- BP算法机智地避开了这种冗余,它对于每一个路径只访问一次就能求顶点对所有下层节点的偏导值。
从最上层的节点e开始,初始值为1,以层为单位进行处理。对于e的下一层的所有子节点,将1乘以e到某个节点路径上的偏导值,并将结果“堆放”在该子节点中。等e所在的层按照这样传播完毕后,第二层的每一个节点都“堆放”些值,然后我们针对每个节点,把它里面所有“堆放”的值求和,就得到了顶点e对该节点的偏导。然后将这些第二层的节点各自作为起始顶点,初始值设为顶点e对它们的偏导值,以”层”为单位重复上述传播过程,即可求出顶点e对每一层节点的偏导数。
- CNN卷积神经网络,RNN循环神经网络。
CNN主要应用于图像领域,RNN主要应用于语音识别,NLP。 Dense(全连接网络)&CNN(松散连接网络,和大脑中的神经连接模式更加类似)
实验日志7/8
- RNN有一个问题就是vanishing gradient over time,可以用LSTM长短时记忆,将早期记忆单独记录于cell,并通过门控的方式选择记忆或者遗忘。cell state
- 门电路:input->X(<-control(类似一个单独的神经元))->output
- LSTM:
1,cell gate 2,input gate 3,update 4,output gate
- Gated Recurrent Unit(GRU)
--combine the input gate and the forget gate into the update gate
--merge the cell state and the hidden gate
Stacked-lstm准确率提高,时间延迟比较严重(多层GRU-LSTM的叠加)
- Neuron Turing Machines,DNC
语音处理技术 --ASR,TTS(语音识别,语音合成) 声控智能硬件(AI唤醒万物) IBM watson,参与危险边缘综艺节目,需要用自然语言给出70%问题的答案,正确率要高于80% --基本思路:问题分类-线索-答案 --语法分析,知识提取,文本类证据获取与分析
- 实验过程:
audioPlot:笔记本或者手机
(1)录音生成对应语音指令的录音文件
(2)对应文件生成时频谱图(spectrogram)
audioNet:GPU工作站
(3)用tensorflow搭一个深度神经网络
(4)使用录音集进行训练
(5)验证神经网络准确率
androidAudioRec
(6)部署神经网络到硬件平台上
--wav文件通过stfft(傅里叶变换),转化为时频谱图
--涵盖了两种信息,时间和波形