Kera之父Python深度学习笔记(二)神经网络的数学基础
目录
- 神经网络的数据表示
- 标量(0D张量)
- 向量(1D张量)
- 矩阵(2D张量)
- 3D张量以及更高维张量
- 关键属性
- 在Numpy中操作张量
- 数据批量的概念
- 现实世界中的数据张量
- 向量数据
- 时间序列数据和序列数据
- 图像数据
- 视频数据
一些说明:
机器学习中,分类问题中的某个类别叫作类(class),数据点叫作样本(sample),某个样本对应的类叫作标签(label)。
在该学习过程中用到MINIST数据集。具体请参考https://www.jianshu.com/p/d282bce1a999
神经网络的数据表示
深度学习和机器学习中多用多维Numpy数组来存储数据,即张量(tensor)。
张量是一种数据容器(因为常常存储数据,所以也可以叫作 数值容器)。
标量(0D张量)
仅包含一个数字
维数为0
//导入numpy源
import numpy as np
>>x = np.array(12)
>>x
向量(1D张量)
包含一组数字,相当于一个行向量
>>x = np.array([12, 3, 4, 16])
>>x
矩阵(2D张量)
矩阵的行为张量的第一个轴,列为第二个轴。
>>x = np.array([[5, 3, 26, 0],[6, 8, 12, 7],[45, 7, 2, 1]])
>>x
3D张量以及更高维张量
将多个矩阵组成一个新的数组,即可得到3D张量,以此类推得到更高维的张量。
ps:深度学习通常处理的是0D到4D的张量,处理视频会用到5D。
下图帮助理解3D张量
>>x = np.array([[[1, 2, 3, 4],[5, 6, 7, 8]],[[7, 8, 9, 0],[12, 3, 6, 8]]])
>>x
下图帮助理解4D张量
关键属性
轴的个数(阶数):即张量的维数(Numpy库中叫ndim)
形状:是一个整数元组,表示张量每一个轴的元素个数(Numpy库中叫shape)
数据类型:张量中所包含数据的类型,如uint8(Numpy库中为dtype)·
在Numpy中操作张量
简单介绍一下张量切片
ex:选择train_images[*]中的第10—100个数字(不含第100个)装在形状为(90, 28, 28)形状的数组中。
>>>my_slice = train_images[10:100]
>>>print(my_slice.shape)
(90, 28, 28)
等效的算法还有
>>>my_slice = train_images[10:100, :, :]
以及
>>>my_slice = train_image[10:100, 0:28, 0:28]
一般而言,可以沿着张量的每个轴在任意两个索引之间选择
接上面28×28的例子
在所有图像的右下角选出14×14的像素区域
my_slice = train_images[:, 14:, 14:,]
数据批量的概念
深度学习通常将数据拆分成小批量来处理。
所有张量数据的第一个轴叫作批量轴(0轴),均为样本轴。
具体看minist的一个批量
batch = train_images[:128]
//批量大小为128
//下一个批量
batch = train_images[128:256]
//第n个批量 注:索引从0开始
batch = train_images[128*n:128*(n+1)]
现实世界中的数据张量
向量(2D):(samples,features)
时间序列数据或序列数据(3D):(samples, timesteps,features)
图像(4D):(samples,height,width,channels)或(samples,channels,height,width) 后文解释
视频(5D):(samples,frames,height,width,channels)或(samples,frames,channels,height,width)
向量数据
第一个轴样本轴
第二个轴特征轴
通常数据集的样本数即为第一个轴的量,每个样本所包含的值的个数就是特征轴的量。
时间序列数据和序列数据
时间轴始终是第二个轴
图像数据
3 dimensions:高度、宽度、颜色深度
下图为图像张量组成的4D张量
视频数据
帧:3D
一系列帧:4D
批量视频组:5D
Kera之父Python深度学习笔记(二)神经网络的数学基础相关推荐
- Kera之父Python深度学习笔记(一)什么是深度学习
目录 机器学习 深度学习 其他机器学习(简史) 概率建模 早期神经网络 核方法 决策树.随机森林与梯度提升机 机器学习 学习:寻找数据自动搜索的优化过程 假设空间:一组实现定义好的操作(机器学习寻找变 ...
- July深度学习笔记之神经网络与反向传播算法
July深度学习笔记之神经网络与反向传播算法 一.神经网络 神经网络的大致结构如下: 大致可以分为输入层.隐藏层与输出层. 而我们可以单独拿出来一个结点,可以发现,其实它就是类似一个逻辑回归(LR), ...
- 吴恩达深度学习笔记——卷积神经网络(Convolutional Neural Networks)
深度学习笔记导航 前言 传送门 卷积神经网络(Convolutional Neural Networks) 卷积神经网络基础(Foundations of Convolutional Neural N ...
- Python深度学习(循环神经网络)--学习笔记(十三)
6.2 理解循环神经网络 目前见过的所有神经网络(比如密集连接网络和卷积神经网络)都有一个特点,那就是它们都没有记忆.它们单独处理每个输入,在输入与输入之间没有保存任何状态.对于这样的网络,要想处理数 ...
- 1.4)深度学习笔记------深层神经网络
目录 1)Deep L-layer neural network 2)Forward Propagation in a Deep Network(重点) 3)Getting your matrix d ...
- Python深度学习之循环神经网络的高级用法
Deep Learning with Python 这篇文章是我学习<Deep Learning with Python>(第二版,François Chollet 著) 时写的系列笔记之 ...
- 吴恩达深度学习笔记(21)-神经网络的权重初始化为什么要随机初始化?
随机初始化(Random+Initialization) 当你训练神经网络时,权重随机初始化是很重要的. 对于逻辑回归,把权重初始化为0当然也是可以的. 但是对于一个神经网络,如果你把权重或者参数都初 ...
- 吴恩达深度学习笔记——卷积神经网络(CNN)
目录 一.计算机视觉(Computer vision) 二.边缘检测示例(Edge detection example) 三.更多的边缘检测内容(More edge detection) 四.Padd ...
- 深度学习笔记——循环神经网络RNN/LSTM
原文来自知乎专栏NLP进阶之路,作者韦伟. 以下文章是摘录了原文部分内容的学习笔记,侵删. 循环神经网络(Rerrent Neural Network) RNN是神经网络的一种,RNN对具有序列特性的 ...
最新文章
- 机器学习中的偏差和方差是什么?
- Python Module_openpyxl_处理Excel表格
- ftime()函数的用法----算函数运行时间
- Bochs调试Linux内核初步学习 - 3
- Linux-编写Shell的几个技巧_02
- [mmu/cache]-cache在linux和optee中的应用-InProgress
- Cisco三层交换机DHCP中继简单配置
- python ioc di_Sping(一)——IOC/DI
- html wap php,wap.php
- Windows上Python3.5安装Scrapy(lxml) 以及与twisted有关错误的解决
- LOGO与BASIC语言编程入门pdf
- 线性代数笔记(5) 矩阵多项式的运用——哈密顿-凯莱定理
- 优化 | 线性化:两个0-1变量相乘的线性化
- Mac 终端连接和操作服务器常用命令
- SNS:六度分隔理论
- 小程序生成图片保存到系统相册_iSee图片专家下载|iSee图片专家 3.930 官方版
- flash 图表(XML动态获取数据)
- 判断所输入的数是否为“四叶玫瑰数”
- 再高贵的打工人都得在体检报告前低下高贵的头颅
- 新支点ICG聚合路由器在新闻发布会直播的应用方案