python深度学习学习笔记
人气:0一.什么是深度学习:
1. 人工智能,机器学习,深度学习的关系:
深度学习是机器学习的一个分支领域:它是从数据中学习表示的一种新方法,强调从连续
的层(layer)中进行学习,这些层对应于越来越有意义的表示。“深度学习”中的“深度”指
的并不是利用这种方法所获取的更深层次的理解,而是指一系列连续的表示层。数据模型中
包含多少层,这被称为模型的深度(depth)。这一领域的其他名称包括分层表示学习(layered
representations learning)和层级表示学习(hierarchical representations learning)。现代深度学习
通常包含数十个甚至上百个连续的表示层,这些表示层全都是从训练数据中自动学习的。与此
相反,其他机器学习方法的重点往往是仅仅学习一两层的数据表示,因此有时也被称为浅层学
习(shallow learning)。
2.深度学习系统的架构
深度学习系统有深度层,每层都有自己的权重,数据流经每一层最后流向损失函数。损失函数的输入是网络预测值与真实目标值,然后计算一个距离值,衡量该网络在这个示例上的效果好坏。深度学习的基本技巧是利用这个距离值作为反馈信号来对权重值进行微调,以降低当前损失值。这种调节由优化器(optimizer)来完成,它实现了所谓的反向传播(backpropagation)算法,这是深度学习的核心算法。
3.深度学习历史
老的学习算法如支持向量机,随机深林只是浅层学习系统。现在普遍使用的是深度学习算法深度卷积神经网络。
二:神经网络的数学基础
1.神经网络的数据表示
当前所有机器学习系统都使用张量作为基本数据结构。张量对这个领域非常重要,重要到Google 的
TensorFlow 都以它来命名。张量这一概念的核心在于,它是一个数据容器。它包含的数据几乎总是数值数据,因此它
是数字的容器。你可能对矩阵很熟悉,它是二维张量。张量是矩阵向任意维度的推广[注意,
张量的维度(dimension)通常叫作轴(axis)。
1.1 标量
仅包含一个数字的张量叫作标量(scalar,也叫标量张量、零维张量、0D 张量)。在Numpy中,一个float32 或float64 的数字就是一个标量张量(或标量数组)。你可以用ndim 属性来查看一个Numpy 张量的轴的个数。标量张量有0 个轴(ndim == 0)。张量轴的个数也叫作阶(rank)。下面是一个Numpy 标量。
>>> import numpy as np
>>> x = np.array(12)
>>> x
array(12)
>>> x.ndim
0
1.2 向量(1D 张量)
数字组成的数组叫作向量(vector)或一维张量(1D 张量)。一维张量只有一个轴。下面是
一个Numpy 向量。
>>> x = np.array([12, 3, 6, 14, 7])
>>> x
array([12, 3, 6, 14, 7])
>>> x.ndim
1
这个向量有5 个元素,所以被称为5D 向量。不要把5D 向量和5D 张量弄混! 5D 向量只有一个轴,沿着轴有5 个维度,而5D 张量有5 个轴(沿着每个轴可能有任意个维度)。维度(dimensionality)可以表示沿着某个轴上的元素个数(比如5D 向量),也可以表示张量中轴的个数(比如5D 张量),这有时会令人感到混乱。对于后一种情况,技术上更准确的说法是5 阶张量
(张量的阶数即轴的个数),但5D 张量这种模糊的写法更常见。
加载全部内容