小白也能看懂的深度学习2

好了,承接上文思路的总体讲解,想必你一定对接下来的深度学习充满了信心。

话不多说,我们直接开始。

1.3监督学习。

什么是监督学习?其实关于神经网络也有很多的种类,考虑到它们的使用效果,有些使用起来恰到好处,但事实表明,到目前几乎所有由神经网络创造的经济价值,本质上都离不开一种叫做监督学习的机器学习类别。

举个例子说,如今应用深度学习获利最多的一个领域,就是在线广告。这也许不是最鼓舞人心的,但真的很赚钱。具体就是通过在网站上输入一个广告的相关信息,因为也输入了用户的信息,
于是网站就会考虑是否向你展示广告。 
神经网络已经非常擅长预测你是否会点开这个广告,通过向用户展示最有可能点开的广告,这就是神经网络在很多家公司难以置信地提高获利的一种应用。因为有了这种向你展示你最有可能点击的广告的能力,而这一点击的行为的改变会直接影响到一些大型的在线广告公司的收入。

这就是我们通常说的流量为王。大数据杀熟。同时,根据上一篇我们所说的预测房价的不断精确的精准映射函数。我们也会发现这也是一种监督学习。

什么是监督学习?

监督学习是机器学习中的一种方法,其主要特点是使用带有标签的数据集进行训练。在监督学习中,算法通过学习输入数据(特征)与对应的输出数据(标签或目标变量)之间的关系来构建一个模型。这个模型可以用来预测新的、未见过的数据的输出。

现在监督学习基本分为两种:

分类问题:当输出变量是类别型时,我们称之为分类问题。例如,根据邮件内容判断是否为垃圾邮件;根据图像识别图片中的物体属于哪个类别等。
回归问题:如果输出变量是连续数值型,则称为回归问题。比如,基于房屋面积、位置等因素预测房价;或者根据天气条件预测第二天的温度等。

在实际应用中,为了评估监督学习模型的好坏,通常会将数据集划分为训练集和测试集两部分。

就像素质教育里面的考试和作业习题。其目的都是为了更好的学习和进步。

同时我们这看到的类别型,都是有一定结构的,我们称为结构化数据。结构化数据意味着数
据的基本数据库。例如在房价预测中,你可能有一个数据库,有专门的几列数据告诉你卧室
的大小和数量,这就是结构化数据。

相反非结构化数据是指比如音频,原始音频或者你想要识别的图像或文本中的内容。这
里的特征可能是图像中的像素值或文本中的单个单词。

并不是明确的数据类型。这就需要我们的神经网络去辨别。也就是说,神经网络的应用极大地促使了非结构化数据在今天的使用。有些人会说,音频这些东西,我们人类是很容易使用的,或者说,最先开始使用的就是非结构化数据。人很容易就理解了结构化数据,但是计算机不行。但是非结构化数据在生活中占据了很大的一部分,如何运用非结构化数据会给人们的生活带来巨大的便利,也会给企业带来巨大的技术利润。参考就是语音转文字功能。

所以我们尝试用神经网络来模仿人体大脑的认知逻辑,来构筑一个全新的信息化生活。神经网络的取名就来源于此。那深度学习也不难理解了,基础的学习已经不满足了。简单的语音转文字已经不能满足随着社会生活的变迁而产生的新词汇了。需要迭代是为什么?很简单,现有逻辑跟不上了。所以需要多层隐层的神经网络来判断,我们说话不再是1+1=2了而是1.12+0.122了需要满足一些隐性条件才能正确的翻译处理非结构化数据了。

1.4

为什么深度学习会兴起?

有一个特点便是单隐层的神经网络需要的算力是非常庞大的,可以这么说,在深度学习萌芽的初期,数据的规模以及计算量,局限在我们对于训练一个特别大的神经网络的能力,无论是在 CPU 还是 GPU 上面,那都使得我们取得了巨大 的进步。但是渐渐地,尤其是在最近这几年,我们也见证了算法方面的极大创新。许多算法 方面的创新,一直是在尝试着使得神经网络运行的更快。

这里讲一下视例,神经网络方面的一个巨大突破是从 sigmoid 函数转换到一个 ReLU函数

ok,为什么说sigmoid函数没有relu函数好呢?

可以知道的一个使用 sigmoid 函数和机器学习问题是,在这个区域,也就是这个 sigmoid 函数的梯度会接近零,所以学习的速度会变得非常缓慢,因为当你实现梯度下降以及梯度接近零的时候,参数会更新的很慢,所以学习的速率也会变的很慢,而通过改变这个被叫做激活函数的东西,神经网络换用这一个函数,叫做 ReLU 的函数(修正线性单元),ReLU 它的梯度对于所有输入的负值都是零,因此梯度更加不会趋向逐渐减少到零。

而这里的梯度,这条线的斜率在这左边是零,仅仅通过将 Sigmod 函数转换成 ReLU 函数,便能够使得一个叫做梯度下降(gradient descent)的算运行的更快,这就是一个或许相对比较简单的算法创新的例子。

但是根本上算法创新所带来的影响,实际上是对计算带来的优化,所以有很多像这样的例子,我们通过改变算法,使得代码运行的更快,这也使得我们能够训练规模更大的神经网络,或者是多端口的网络。

什么是梯度下降法呢?

梯度下降法是一种常用的优化算法,用于最小化函数(通常是损失函数或成本函数)的值。它通过迭代地调整参数来找到使函数值最小化的参数值。

比较狭隘的理解的话你可以认为,梯度下降法,就是在找最小化的值,或者说是在找寻,损失函数里面斜率最大的地方,因为损失函数是y=-kx+b这种类型负减函数的,当然可能不止一次。

下面是一个用py实现的梯度下降的代码

import numpy as np

# 定义目标函数及其梯度
def f(x):
    return x ** 2

def df(x):
    return 2 * x

# 初始化参数
x = 10.0
learning_rate = 0.1
num_iterations = 100

# 梯度下降法
for i in range(num_iterations):
    gradient = df(x)
    x = x - learning_rate * gradient
    if i % 10 == 0:
        print(f"Iteration {i}: x = {x}, f(x) = {f(x)}")

print(f"Final x: {x}, f(x) = {f(x)}")

如果看不懂暂时没关系,不过还是需要一点python的基础,特别是后面会用到矩阵化算法。

好了,如果你能看到这里,那真的很棒

感谢观看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值