深度学习02-神经网络01
1. 机器学习的基本概念
其实无论是机器学习还是深度学习,很大程度上,我们都是为了"预知未来"。
再机器学习的时候,我们经常需要依赖某个领域的专家来做特征提取,或者直接预测。(更加依赖专家)
但是在深度学习中,我们可以建立一个模型,让这个模型学习某些知识,成为专家。然后再去做预测。
算法:根据历史数据实现预测的计算步骤或者计算方法。
机器学习:使用计算机实现算法,是的计算机可以学习数据,经验并实现预测或者得出结果。
随着 算力,数据,算法的发展,深度学习越来越流行了。
机器学习的可解释性是很强的,但是深度学习算法的可解释性相对较差。
1.1 样本、特征、标签
机器学习中:
标签:目标变量,比如鸢尾花的类型,红酒的种类。
样本:所有的输入数据或者所有给定的数据。
特征:输入的数据的列。通常一列代表一个特征。
深度学习中:
通常输入都是高纬度的Tensor,我们认为一个索引对应的对象就是一个样本。
比如结构[32,1,28,28] 实际就是32个,1 * 28 * 28的三位矩阵,构成了四维矩阵。每一个我们能用索引出来的对象,就是一个样本输入。很多时候,我们的样本输入都是高纬度的。
深度学习中,输入往往是三维,四维。(图像,视频等)
1.1 分类与回归
机器学习往往用来解决的问题,主要分为两类:分类和回归。
分类:结果是有限个数据。(不连续数据,离散数据)
回归:结果可能是无穷个。(联系数据)
1.2 有监督学习和无监督学习
有监督学习:有标签的。
没有标签的:聚类分析,协同过滤(推荐系统的核心)等。许多时候,我们用来作为辅助算法,增强有监督学习的学习效果。可以帮我们提取特征,特征工程。
1.3 如何判断一个模型是好模型
模型评估三角形:

模型效果:有些时候,我们需要效果达到100%。比如人脸识别,判断是否有癌症等。
神经网络的一个方向:提升运算速度。
2. 理解Pytorch框架
pytorch是Torch库的python版本,所以我们import的时候,是引入的torch.
学习过程,很多时候,我们是理解网络,然后整合不同的网络解决我们的问题。

3. 线性回归
线性回归算法基本算是深度学习中最简单的算法。跟我们初中学习的方程一样,只是我们是多元一次方程。

更加的,我们学完矩阵的时候,我们可以把该方程写成矩阵的方式。
在机器学习中,我们默认所有的一维向量都是列向量。

线性回归的任务就是预测一个函数,来映射输入标签和输出的关系。因为是线性回归,所以就是对直线拟合的过程。就是我们所说的模型。而构造这个模型的核心,就是求解W的过程。
(就是使用 已经给定的y和x,通过求解一个w来拟合y和x的关系)

3.1 矩阵乘法
养成习惯,创建torch对象的时候,都直接指定dtype
矩阵的乘法使用 torch.mutual或者@
最好在创建的时候,就直接写上dtype,这样效率更高
import torch
X = torch.Tensor([[1, 1, 2], [1, 3, 4], [1, 1, 1], [1, 2, 3]])
w = torch.Tensor([1, 1, 1])
x1 = torch.tensor([1, 2, 3], dtype=torch.float)
def LinearR(x, w):
return torch.matmul(x, w)
def LinearR1(x, w):
return x @ w
print(LinearR(X, w))
torch.nn包含两个模块,一个nn.Module,包含神经网络的各种层。
nn.function 神经网络的各种激活函数和损失函数。

比如 torch.nn.Linear 就实现了我们的 矩阵乘法(X @ w)。
3.2 使用torch.nn 实现最简单的正向传播
当我们调用nn.Module模块下的内容时,都会自动的生成随机的w和b。也就是说,我们只需要传递X即可。
import torch
import torch.nn as nn
X = torch.tensor([[1, 2], [3, 4],[5,6], [7, 8]], dtype=torch.float)
torch.random.manual_seed(0)
# 建立线性层, 会默认随机初始化权重和偏置
linear = nn.Linear(2, 1)
# 查看权重和偏置
weights, bias = linear.weight, linear.bias
# Q: 因为权重和偏置都是随机的,那么我应该怎么才能固定权重和偏置呢?
# 第五行,设置随机数种子
print(weights, bias)
output = linear(X)
print(output)
这就实现了最简单的前向传播。
其实前向传播就是计算从输入到输出的过程。
更多推荐


所有评论(0)