2021-02-23

2021/2/23

ubuntu使用总结:

显卡使用情况查看:nvidia-smi

环境激活:conda activate base

环境退出:conda deactivate

手写体识别mnist

https://github.com/geektutu/tensorflow-tutorial-samples

存在问题导入数据集(踩坑):

https://github.com/legendjack/Handwritten-Numeral-Recognition_CNN

ubuntu 显卡驱动黑屏:

ubuntu-drivers devices

sudo ubuntu-drivers autoinstall

机器学习编码方式 

One-hot编码(独热编码)

独热编码使用N位代表N种状态,任意时候只有其中一位有效。

采用独热编码的例子

numpy.argmax()可以取得最大值的下标

1
2
3
4
5
性别:  
[0, 1]代表女,[1, 0]代表男

数字0-9: 
[0,0,0,0,0,0,0,0,0,1]代表9,[0,1,0,0,0,0,0,0,0,0]代表1

损失函数(loss function)

损失函数评估网络模型的好坏,值越大,表示模型越差,值越小,表示模型越好。因为传入大量的训练集训练的目标,就是将损失函数的值降到最小。

  • 差的平方和 sum((y - label)^2)
1
2
3
[0, 0, 1] 与 [0.1, 0.3, 0.6]的差的平方和为 0.01 + 0.09 + 0.16 = 0.26
[0, 0, 1] 与 [0.2, 0.2, 0.6]的差的平方和为 0.04 + 0.04 + 0.16 = 0.24
[0, 0, 1] 与 [0.1, 0, 0.9]的差的平方和为 0.01 + 0.01 = 0.02
  • 交叉熵 -sum(label * log(y))
1
2
3
4
[0, 0, 1] 与 [0.1, 0.3, 0.6]的交叉熵为 -log(0.6) = 0.51
[0, 0, 1] 与 [0.2, 0.2, 0.6]的交叉熵为 -log(0.6) = 0.51
[0, 0, 1] 与 [0.1, 0, 0.9]的交叉熵为 -log(0.9) = 0.10

 

回归模型

我们可以将网络理解为一个函数,回归模型,其实是希望对这个函数进行拟合。
比如定义模型为 Y = X * w + b,对应的损失即

1
2
3
loss = (Y - labal)^2
     = -(X * w - b - label)^2
这里损失函数用方差计算,这个函数是关于w和b的二次函数,所以神经网络训练的目的是找到w和b,使得loss最小。

 

softmax激活函数

本文不展开讲解softmax激活函数。事实上,再计算交叉熵前的Y值是经过softmax后的,经过softmax后的Y,并不影响Y向量的每个位置的值之间的大小关系。大致有2个作用,一是放大效果,二是梯度下降时需要一个可导的函数。

1
2
3
4
5
6
def softmax(x):
    import numpy as np
    return np.exp(x) / np.sum(np.exp(x), axis=0)

softmax([4, 5, 10])

梯度下降法

解释:https://blog.csdn.net/qq_41800366/article/details/86583789

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值