Kaggle翻译,第十九天:深度学习入门 1/6

这篇博客介绍了深度学习的基础,从单一神经元开始,阐述了线性单元的作用和工作原理。内容包括神经元的数学表示、如何使用线性单元进行预测,以及在Keras中构建简单的线性模型。通过实例展示了如何用单一神经元处理多个输入特征,并解释了在Keras中创建线性模型的步骤。
摘要由CSDN通过智能技术生成

单一神经元

学习关于线性单元:深度学习的基石

欢迎来到深度学习!

欢迎来到kaggle的深度学习介绍课程系列!你将学到要建立自己的深度神经网络的所有知识。借助Keras和Tensor flow,你将学到:

  • 如何让创建全连接的神经网络架构;
  • 将神经网络应用于两类经典的机器学习问题:回归和聚类
  • 使用随机梯度下降训练神经网络
  • 使用省略(dropout)和批量正常化(batch normalization)和其他技巧来提升性能。

介绍中将使用完全可运行的例子,在练习中,你将深入了解这些话题,并且将他们应用于实际数据集中。

让我们开始吧!

什么是深度学习?

  • 近些年最深入人心的人工智能成果就是在深度学习领域的。自然语言翻译、图像识别、还有游戏AI都是深度学习模型接近甚至超过人类能力的产物。
  • 那什么是深度学习呢?深度学习时一种以大量计算为特性的机器学习方法。如此大量的计算已经使得深度学习模型解决了许多来自生活数据集、极具挑战性、复杂且具有层级特征的规律问题。
  • 由于它的能力和可扩展性,神经网络已经成为深度学习的代名词。神经网络式由众多神经元构成的,每个神经元仅负责一个简单计算。而神经网络的能力则来源于这些神经元连接的复杂性。

线性单元

  • 那么让我们从神经网络的基本元素:单一神经元开始吧;
  • 单一神经元可以表示为式子:y = wx + b
  • x 表示输入,神经元本身有一个 权重 w。无论什么输入流经神经元,你都将输入值乘权重。所以对于每个输入的 x 到达神经元时就变成了 w * x 神经元通过调节权重来“学习”。
  • 其中 b 表示一中特殊的权重叫 偏差。偏差和输入数据无关,相反,如果我们将输入看成1,那么经过神经元后得到的就是 b 。偏差提供了一种与输入无关的修改输出的方式。
  • y 作为神经元的最终输出。想要获得就走公式 y = w * x + b。我们又称这个神经元的激活值是 y = w * x + b

式子 y = w * x + b 看着熟悉不?
没错,就是直线的斜截式,w是斜率,y表示截距。

案例:使用单一神经元做模型

  • 虽然单一神经元仅仅在更大的网络中发挥作用,但是我们从单一神经元作为基础开始学习要方便很多。
  • 设想一下我们使用80麦片的数据集。模型将 Suger (每克含糖量)作为输入,要求计算calories (每份的卡路里量)作为输出,我们就能得到偏差值是90,权重为2.5 。我们可以来估测提供的每5克糖的卡路里量是 calories=2.5×5+90=102.5 。

多重输入

  • 80麦片数据集中不止有糖分作为特征,如果我们想将模型中包括纤维、蛋白质怎么办?很简单。我们可以将众多输入接入神经元,每一个代表不同的特征,要得到输出,我们就分别将输入乘权重加上偏差值,最后在求和就可以了。这个神经元的公式就变成了:y=w0x0+w1x1+w2x2+b 。有两个输入的单一神经元就组成一个平面,多个输入的神经元就组成一个超平面。

Keras中的线性单元

  • 创建模型的最简单方法就是使用keras.Sequential,它创建一个许多 构成的神经网络,我们可以使用Dense层来创建上面提到的模型(这个我们下节再说)。
  • 我们可以定义一个线性模型输入三种特征(‘sugars’, ‘fiber’, ‘protein’),外加单个输出(‘calories’)
from tensorflow import keras
from tensorflow.keras import layers

# Create a network with 1 linear unit
model = keras.Sequential([
    layers.Dense(units=1, input_shape=[3])
])
  • 第一个参数 units表示我们要几个输出,这里只有一个;
  • 第二个参数 input_shape 告诉Keras输入的维度,我们将它设置为 input_shape=[3] 保证模型将接收三个特征作为输入(‘sugars’, ‘fiber’, ‘protein’)
  • 那么,这个模型就可以用数据来训练啦!

为什么 input_shape 是一个Python列表?
我们这里用到的数据是表格式数据,例如Pandas的数据框架。我们每个数据集中的特征作为一个输入。特征是按一列一列排列的。所以input_shape=[num_columns]。Keras这里允许使用列表是因为要使用更复杂的数据集,例如图片数据可能就要使用三维:[高度,宽度,通道]。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值