吴恩达机器学习笔记EP7

【多分类问题和Sigmoid的替代品】吴恩达机器学习笔记EP7(P61-P70)

从今天开始我将学习吴恩达教授的机器学习视频,下面是课程的连接1.1 欢迎来到机器学习!_哔哩哔哩_bilibili。一共有142个视频,争取都学习完成吧。


Sigmoid的替代品

之前介绍过多种激活函数,将多种激活函数自由组合,便能建立功能更强大的神经网络。

这里再介绍一个新的激活函数——ReLU。

ReLU函数的功能基本就是当输入z小于0时,输出0;当z大于等于0时输出z本身。

选择激活函数

输出层中激活函数的选择可以根据实际不同的问题用不同的函数。

比如分类问题中我们一般选择Sigmoid函数。

回归问题当中我们一般选择Linear activation function或者ReLU函数。

梯度下降的时候,g(z)平坦时,梯度下降慢。

Sigmoid函数有两处平坦,ReLU函数只有一处平坦。

所以相对来说,ReLU训练的时候会快一些,所以隐藏层当中一般用ReLU函数。

总的来说,隐藏层中默认使用ReLU作为激活函数。

输出层的激活函数要根据实际的问题选择。

为什么我们需要激活函数?

如果用线性函数构建神经网络,不管叠了多少层,最后的整个模型都是一个线性回归。

线性代数里面的知识:线性函数的线性函数还是线性函数。

所以不要在隐藏层中使用线性函数当激活函数(用ReLU)

多类

之前说的分类都是将数据分成两类。

多类问题做的就是分类多个类别的数据。

Softmax

Softmax就是出力多累问题的激活函数,下面是Softmax函数跟分两个类之间做法的不同和函数的定义:

Softmax的损失函数

Softmax的损失函数如下图所示:

它的损失函数是一个负对数。

对应的a越小,损失越大。

神经网络的Softmax输出

因为要分多个类,所以将输出层的神经元改为多个。

下面是多分类用TensorFlow实现代码:

里面的SparseCategoricalCrossentropy是用于多分类问题的交叉熵。

# 这里的损失函数是用于多分类问题的交叉熵
model.compile(loss=SparseCategoricalCrossentropy())

Softmax的改进实现

因为数据存储方式的影响,代码中计算数据的小数位可能会丢失或者被四舍五入。

因此减少此影响的方式是尽可能减少或减去中间变量。

model = Sequential(
    [               
        tf.keras.Input(shape=(400,)),    #specify input size
        Dense(25, activation='relu'),  # 第一个全连接隐藏层,25个单元,ReLU 激活
        Dense(15, activation='relu'),  # 第二个全连接隐藏层,15个单元,ReLU 激活
        Dense(10, activation='sigmoid') # 输出层,10个单元,Sigmoid 激活
    ]
)

model.compile(loss=BinaryCrossEntropy(from_logits=True))

Softmax里面也是如此,不使用中间变量a,直接写其展开式。

多个输出的分类

要更多分类区分的是多类问题。

多个输出的分类,多类其本质是一个输入输出多个类别。(也就是一个输入中有多个类需要分)

多类的输出向量的每个元素就代表一个类。

高级优化算法

在梯度下降的时候,如果W或者b一直在一个方向上移动,我们就希望增大学习率α;如果W或者b一直持续震荡,我们希望减小学习率α。

因此我们需要一个可以自动调整α的算法。

Adam就是这样一个算法。

Adam算法可以通过用不同的α动态地根据情况改变α。

有关Adam算法的解释较为复杂,这里不展开,但是你可以直接在TensorFlow中调用它。

额外种类的层

除了前面提到的几种层,卷积层也是常用的一种层。

卷积层中每个神经元只看输入的一部分。

所以它的好处就是可以加快计算的速度,还有需要更少的训练数据(更不容易发生过拟合)。

如下图卷积层的每个神经元都只看前一层的一部分。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇