《神经网络与深度学习》
在前面四天的学习过程中,对机器学习和深度学习有了一定的认识,今天换了本教材再重新回顾一下相关知识
大致来讲就是输入x---->model(模型)---->输出y
数据预处理:构建可用于机器学习训练的数据 特征提取:在原始数据中提取一些高质量数据 特征转换:对特征进行进一步的加工,升维或者降维 预测:机器学习的核心部分
深度学习需要解决 的关键问题是贡献度分配问题,即一个系统中不同的组件(component)或其参数对最终系统输出结果的贡献或影响。
模型的种类有很多也很复杂
机器学习三要素:模型 学习准则 优化
常见的机器学习的类型:监督学习 无监督学习 强化学习
优化的方法:梯度下降法
机器学习≠优化:有时候优化过度会导致过拟合的情况 可能在测试集当中准确率非常高 但是在未知数据(测试集)当中会错误率很高
正则化:所有损害优化的方法
增加优化约束 干扰优化过程(权重衰减、随机梯度下降、提前停止)
模型选择:如果模型的复杂度较高,容易发生过拟合 而如果模型的复杂度比较低,会导致欠拟合
反向传播算法有效地解决了多层神经网络的学习问题
线性模型
W为D维的权重向量
应用场景:图像分类 文本分类
案例与实践: torch的广播机制
满足下面的条件就可以:
if 这两个维度的大小相等
elif 某个维度 一个张量有,一个张量没有
elif 某个维度 一个张量有,一个张量也有但大小是1
import torch
x=torch.ones((2,3,1,5))
y=torch.ones((3,4,1))
z = x + y
print('broadcasting with two different shape tensor:', z.shape)
x、y对应维度不相等的时候,size为1的维度会被广播得和对应维度一样大。
错误例子:
import torch
x=torch.ones((2,3,4))
y=torch.ones((2,3,6))
z = x + y
print('broadcasting with two different shape tensor:', z.shape)