1、什么是深度学习?
深度学习是一种机器学习的分支,它建立在人工神经网络的基础上。深度学习通过多个处理层(也称为隐藏层)对数据进行表征学习,以便可以使用非线性变换和高级抽象来提取复杂特征。
2、神经网络与深度学习关系
1、神经网络是深度学习的基本模型之一,深度学习则是在神经网络的基础上发展起来的一种方法。
2、可以说,神经网络是深度学习的基础框架,而深度学习则是在神经网络的基础上进行更深层次、更复杂的学习和模式识别。
3、深度学习的特点是能够自动学习和提取特征,无需手动设计特征,适用于各种大规模、复杂的数据集和任务。(ps:这一点就是深度学习和机器学习最大不同)
3、手撕一个神经网络模型
3、1神经网络结构
好了,这就是一个全连接神经网络,我们可以发现,输入层,输出层。
那接下来,我带你们看其中一个中间隐藏层一个神经元:
那么这个神经元它是怎么工作呢?
w1,w2,w3,w4是权重,也就是说x1,x2,x3,x4对这个a隐藏输出影响程度
则 , 然后通过激活函数relu为例,输出a
那relu函数是什么呢?(matlab实现图像)
x = linspace(-10, 10, 100);
y = max(0, x);
plot(x, y, 'LineWidth', 2);
xlabel('x');
ylabel('ReLU(x)');
title('ReLU函数');
grid on;
3、2反向传播
输入层,输出层都是确定的,那么怎么调节w权重呢?就要找让损失下降的参数,
在神经网络中,损失(loss)是用于衡量模型预测输出与实际标签之间差异的指标。损失函数是一个数学函数,它接收模型的输出和实际标签作为输入,并计算它们之间的差异。
常见的损失函数包括均方误差(Mean Squared Error, MSE)、交叉熵(Cross Entropy)和对数损失(Log Loss)等。
例如,在回归问题中,常用的损失函数是均方误差(MSE),它计算预测值与真实值之间的平方差的均值。均方误差可以表示为:
y_reall 是y应该输出的,也就是真实值,y_output是通过w参数实际输出的,接下来我们都用一个样例,n=1.
3、3具体例子
如图所示神经网络,b设置为0,Relu为激活函数,a=2,b=3,y1=5,求y1输出,调整参数w11,求梯度。
我们把输入层看成一个矩阵,
卷积层也可以看成一个矩阵,
接下来我们为权重设置参数编码,w11=1,w21=1 其余都是0,那我们编码规则是什么呢?
以W21为例,2代表卷积层所在矩阵行数,1代表卷积层所在矩阵行数,第一个参数是卷积层,第二个参数是输入层。
关于梯度知识:
梯度:
梯度的本意是一个
向量
(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大
值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
以下是loss与w11函数关系,matlab作图,就要找让loss最小。
w11new=w1-*w1*grad
是learning_rate, grad是梯度,为什么用减号呢?
答:因为我们要找到loss最小,假如w11在随便某点,怎么找呢,就像爬上坡一样,假如你在一个山坡,随便一个位置,我们就要走一小步,图像也是一样,那怎么算一小步呢,深度学习里学习率就是调整步调大小参数。
那好了,我们就开始算这个神经网络:
3、4pytorch框架实现
import torch
x1 = torch.tensor(2.)
x2 = torch.tensor(3.)
Y = torch.tensor(5.)
w11, w21, w1, w2 = torch.tensor([1., 1., 1., 1.], requires_grad=True)
w12, w22, w31, w32, w3 = torch.tensor([0., 0., 0., 0., 0.], requires_grad=True)
w11.retain_grad()
def relu(x):
if x > 0:
return x
else:
return 0
z1 = w11 * x1 + w12 * x2
a1 = relu(z1)
z2 = w21 * x1 + w22 * x2
a2 = relu(z2)
z3 = w31 * x1 + w32 * x2
a3 = relu(z3)
y = w1 * a1 + w2 * a2 + w3 * a3
y = relu(y)
loss = y - Y
loss = pow(loss, 2)
loss.backward()
print(w11.grad)
w11 = w11 - 0.001 * w11.grad
print(w11)
好啦,这就是一个神经网络学习过程,大家不会的欢迎私信或者评论!!!
好文阅读
大家都在找:
深度学习:深度学习框架
人工智能:人工智能专业大学排名
发表评论