2024-04-16 21:51阅读: 17评论: 0推荐: 0

吴恩达机器学习-第二课-第二周

吴恩达机器学习

学习视频参考b站:吴恩达机器学习
本文是参照视频学习的随手笔记,便于后续回顾

TensorFlow实现神经网络

image

模型训练细节

训练步骤与和逻辑回归的比较

训练模型分为三步:
1.确定f(x)函数
2.确定损失函数和代价函数
3.通过数据训练寻找最小值
image

详细介绍

1.创建模型
image
2.损失和代价函数
如果模型解决回归而不是分类问题,可以用别的损失函数,例如下方的MeanSquareError()
image
3.梯度下降
调用model.fit函数设定输入输出与迭代次数
image
Neural network libraries--神经网络库:像是TensorFlow和PyTorch

激活函数(Activation Function)

sigmoid激活函数替代(Alternatives to the sigmoid activation)

需求预测模型
替代函数像是ReLU(Rectified Linear Unit)
image
常用的激活函数
使用线性激活函数经常说是没有使用激活函数,因为g(z)=z
image

如何选择激活函数

如果是二进制分类问题,使用sigmoid函数
如果是回归,输出有正负,使用线型激活函数
如果是回归,输出只有正,使用ReLU函数
image
现如今大多数都是使用ReLU函数而不是sigmoid函数,原因:
1.sigmoid要取幂等等操作,繁琐
2.ReLU左边一段是平的,而sigmoid两边都是平的,会导致梯度下降会很慢,图像有很多平坦
image

Summary

隐藏层建议只使用ReLU,输出层如果是二进制分类问题,可以使用sigmoid
image
还有很多不同不同的激活函数,在某些具体情况可能效率高

为什么需要激活函数

如果激活函数都是用线性函数,模型训练会跟线性回归没有什么区别
image
image
全部使用线性函数,模型做的就是线性回归,只在最后输出层使用sigmoid函数,模型做的就是逻辑回归
所以不要在隐藏层使用线性函数
image

多分类问题(Multiclass

定义&示例

定义:不只是取0,1两个值,可以取少量的超过两个的值
image
示例:划分空间界限,求不同值的概率
image

Softmax(Regression Algorithm)

输出值a的表达式

是逻辑回归的推广,是多类分类上下文的二进制分类算法
4个可能输出示例(Softmax):
所有值的可能性相加为1,如果输出值只有2个,那么Softmax回归算法和逻辑回归算法一样
image

损失函数与代价函数

image

神经网络的Softmax输出

使用Softmax函数的输出层常常称为Softmax层
Softmax层的每一个输出值都需要z1......z10所有的函数值作为输入
image

TensorFlow实现

损失函数使用SparseCategoricalCrossentropy(稀疏分类交叉熵)函数
以下这个版本的代码不推荐使用,下面会提供效果更好的实施版本,使用下面标题的代码!!!
image

TensorFlow的改进实现

同一个值,通过不同的计算方式减少舍入误差
image
image

逻辑回归改进

直接指定他的loss函数而不是通过中间值a来传值,效果会更好
from_logits=true指的是通过z来传值,就像是跳过中间值a直接指定loss函数
image

Softmax函数改进

记住输出层的激活函数要改成线性函数,因为要直接提供z
image
因为输出层改成线性函数,所以输出值不再是输出概率a1......a10,而是值z1......z10
image
image

多个输出的多分类(Classification with multiple outputs)

每个图都检测三个01的分类问题(多标签分类)
image
用一个神经网络解决三个分类问题,输出层使用sigmoid函数(解决01问题),而不是用三个神经网络
image

高级优化方法

为什么需要优化方法?

在梯度下降过程中,学习率或大或小,导致梯度下降参数更新的效率并不高,所以需要一个算法更新学习率α
因此引入Adam算法
image

Adam算法

并没有全局单一的学习率α
image
梯度下降朝着正确的方向进行,就可以增大学习率,如果来回震荡,就可以适当减少学习率
具体实现比较复杂,在此不做讲解
image
Adam需要设置初始学习率,这里设置的是0.03
image

其他的网络层类型

之前学习的网络层都是密集层类型(dense),每一个神经元都使用上一层的所有输出
image
这里介绍一个不同的类型,像是卷积层(Convolutional Layer)
每一个神经元都使用前一层的一部分输出作为输入
原因:
1.加快计算速度
2.可以使用更少的训练数据,并且不太容易过拟合(Overfitting)
image
如果有多个卷积层,就称为卷积神经网络(Convolutional Neural Network)
示例心电图
把列数据分为x1......x100作为输入
image

Summary

本周主要学习了以下内容:
1.如何使用TensorFlow实现神经网络,模型训练的步骤
2.如何选择激活函数,为什么需要激活函数
3.Softmax回归算法实现多分类,损失函数与代价函数,代码实现,代码改进
4.高级优化方法Adam算法
5.卷积层与卷积神经网络的概念

本文作者:猫猫不会吃芋头

本文链接:https://www.cnblogs.com/Mmbhcyt/p/18133513

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   猫猫不会吃芋头  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 Spiral LONGMAN
Spiral - LONGMAN
00:00 / 00:00
An audio error has occurred.

作词 : HIROYA HIRAI

作曲 : HIROYA HIRAI

编曲 : LONGMAN/Naoki Itai

描いた地図は引き裂いた

世界はあの日のまま

僕はまた

誰かのせいにした

嫌になっちゃうな

このまま何かを待ち続けるフリするの

このまま何かを待ち続けるフリするの

ここから僕はやりなおせますか

どこまでも行ける気がした

どこまでも行ける気がした

あの時の僕はどこだ

きっと大人になったとか

そういうことじゃなくてさ

あと少しだけの勇気で

あと少しだけの勇気で

変えられた明日はあった

それさえ気づけなかったんだ

そんな瞬間は何度あったんだろう

結んだ糸は解いた

結んだ糸は解いた

世界はあの日のまま

僕はまた

繰り返してばかり

嫌になっちゃうな

身勝手な夢を抱いて自ら砕いて

身勝手な夢を抱いて自ら砕いて

何がしたいの

いつかこの闇を切り裂いてくれないか

Oh My Life

僕たちの正義はきっと

僕たちの正義はきっと

誰かには邪魔なものさ

きっと仕方なかったとか

そういうことじゃなくてさ

あと少し強くなれば

あと少し強くなれば

守られる明日があって

全て変わった夜も

またここからと

笑えたらな

捻くれた感情

捻くれた感情

出てこないでね

きっと変われたんだもう

君にサヨナラ

僕は君にとって

誰かにとって

明けない夜の

消えない星に

なりたかった

なれなかった

僕らはこのまま

あと少しだけの勇気で

あと少しだけの勇気で

変えられた明日はあった

それさえ気づけなかったんだ

そんな日はもうたくさんだ

いつまでもなんてないんだ

いつまでもなんてないんだ

終わりゆくその前に

一歩踏み出してみた

受け入れながら

祈りながら