Introduction to deep learning
深度学习是指训练神经网络
1.什么是神经网络?
引例:房价预测
1)由房屋面积这一单一因素/特征值预测房价,这样拟合的函数就是一个简单的神经网络。该单神经元网络完成的是由size/area—>price的线性运算。 根据线性回归,可将该问题拟合成如下函数 有这样特征的函数被叫做ReLU函数(rectified linear unit) rectify:take a max of zero(取>=0的值) 类似于搭积木,由多个单神经元网络可以构成复杂的神经网络。 2)由多个因素/特征值(如房屋面积、卧室数量、邮政编码、富裕程度等)间接预测房价,即房价决定于家庭成员数、步行化程度、学校质量等。其中的每个隐藏的单神经元都可能是ReLU函数。 该问题抽象出来的神经网络如下: 每个单神经元网络的输入是全体数据,它会自己决定作何种运算。例如,我们不会说第一个节点就是预测family number 且只由X1、X2决定。 中间的神经网络层会做出从输入层到输出层的精准映射。
2.用神经网络进行监督学习(supervised learning)及为什么深度学习会兴起
应用及其经济价值
序列数据(Sequence data)是生活中很常见的一种数据,如一句话、一段时间某个广告位的流量、一连串运动视频的截图等。
结构化数据、半结构化数据和非结构化数据
结构化数据
结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据。 半结构化数据
半结构化数据是非关系模型的,有基本固定结构模式的数据,例如日志文件、XML 文档、JSON 文档、Email 等。包含相关标记,用来分隔语义元素以及对记录和字段进行分层。因此,它也被称为自描述的结构。
常见的半结构数据有XML和JSON
<person>
<name>A</name>
<age>13</age>
<gender>female</gender>
</person>
var country =
{
name: "中国",
provinces: [
{ name: "黑龙江", cities: { city: ["哈尔滨", "大庆"]} },
{ name: "广东", cities: { city: ["广州", "深圳", "珠海"]} },
{ name: "台湾", cities: { city: ["台北", "高雄"]} },
{ name: "新疆", cities: { city: ["乌鲁木齐"]} }
]
}
非结构化数据
没有固定结构的数据。各种文档、图片、视频、音频等都属于非结构化数据。对于这类数据,我们一般直接整体进行存储,而且一般存储为二进制的数据格式。
Scale drives deep learning progress
1)更大规模的神经网络 + 更大规模的数据 = 高性能
如果用m表示训练集的规模/训练样本的数量,则当m较小时,解决问题的效果通常取决于手工设计组件的性能和算法处理上的一些细节,只有在大数据范围内,即当m很大时,才能看出神经网络稳定领先于其他算法。 2)算法创新
①提高计算速度,从而训练出更大规模的神经网络
ReLU函数的激活功能 例如,sigmoid函数向ReLU函数的转变,避免了sigmoid函数梯度为0时,机器学习缓慢的问题,从而使”梯度下降法“执行得更快。这是因为,对于ReLU函数的梯度,输入为正值时,输出为1,故其梯度不会趋向于0。
②提高idea——code——experience相互改进的迭代速度,从而完善设计思路和实验结果,减少迭代(训练)时间。 使用更新的深度学习算法可以使我们能够更快地训练好模型(即使更换CPU / GPU硬件)
|