吴恩达机器学习笔记EP5

【神经网络与TensorFlow】吴恩达机器学习笔记EP5(P42-P50)

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


神经元和大脑

参考大脑去构建机器学习中的神经元。

简易地说,输入数据经过神经元,得到输出。

如下图所示,数据量和大的神经网络结合就会有高的性能表现。

需求预测

在具体例子当中,比如需求预测问题中,我们还是利用logistic回归作为模型,在神经元中将它称为激活函数。

如下图,在简单的单需求问题中,简答构建了单个神经元。

多个神经元可以组合成一个层。多个特征可以组成向量作为输入层的输入。

在输入层输入相同或相似的特征,经过中间由多个神经元构成的层(中间的层称为隐藏层)得到a向量,最后a向量经过输出层输出最终的结果。

隐藏层可以有多个

如下图,隐藏层可以有多个,实际上目前做的好的模型拥有几十甚至上百个隐藏层。

神经网络在图像中的应用

这里举一个神经网络的应用例子。神经网络在图像处理中的应用。下面是一个脸部识别的案例。

图片是一个含有较多参数的矩阵。将矩阵拉直成一个向量输入到神经网络当中作为输入。

然后经过若干个层,比如用第一个隐藏层看相对较小的窗口寻找边缘。然后后面的若干层分别依次去看更大的窗口。

神经网络中的层

每一个神经元中都是一个函数或者说模型,这里以logistic回归为例。

先给隐藏层中的参数做个定义,在参数前面加角标[n],说明这个参数是来自第n个隐藏层的。

如下图神经元中激活函数a的定义就是将当前层的权值向量w与输入的特征向量x点乘然后加上对应的b值参数。

神经网络中前一层的输出是后一层的输入。

在神经网络的输出层后加一个判断模块可以进行分类任务。

更复杂的神经网络

多个隐藏层组成了更为复杂的神经网络。

这里说明中间的隐藏层的激活函数a的计算方式,就是用当前层的权值向量w和前一层的输出向量a点乘,然后加上当前层的b值。

推理:做出预测(前向传播)

如下图是一个手写数字识别的案例。

前向传播就是从输入向量x计算到后面的向量a[1]、向量a[2]、向量a[3]的过程。

一般来说,越接近输出层,隐藏层中的神经元就越少。

前向传播就是推理的过程。也就是如果有别人训练好的神经网络和对应的权重等参数,我们就可以拿来推理自己的数据。

利用TensorFlow构建模型

下面是用tensorflow框架构建模型的实现方式。

构建一个隐藏层:

x = np.array([[200.0, 17.0]])
layer_1 = Dense(units=3, activation='sigmoid')
a1 = layer_1(x)

再加一个隐藏层:

layer_2 = Dense(units=1, activation='sigmoid')
a2 = layer_2(a1)

下面是在神经网络后面加上条件判断的代码:

yhat = np.zeros_like(predictions)
for i in range(len(predictions)):
    if predictions[i] >= 0.5:
        yhat[i] = 1
    else:
        yhat[i] = 0
print(f"decisions = \n{yhat}")

TensorFlow中的数据

下图是关于TensorFlow中的数据写法,下图是numpy的矩阵写法:

TensorFlow中使用张量,张量可以理解为更一般的矩阵。

暂无评论

发送评论 编辑评论


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