发布于2020-02-10 17:28 阅读(883) 评论(0) 点赞(3) 收藏(3)
我的一点理解
在某种意义上讲,深度学习=神经网络
是一个多层处理的过程
x0 -> y_1=f(Wx0) -> y_2=f(Wx1) -> y_3=f(Wx2) -> . . . -> y=f(Wx(n-1))
其中每一层
先进行一轮“直”(线性的)的操作——y。=Wx,就是个加权,y。中的每一个数据都是对x中所有数据的一个加权和
再进行一轮“弯”(非线性的)的操作——y_ =f(y。),其中f()是一个非线性的函数,它把直的掰弯,可以构造更多的可能,拓展了深度学习的应用领域
*注:完整的“直”(线性的)操作部分应该还有一个偏置b,即y。= Wx+b,这里为了简化说明,就默认b=0了
Pytorch是一个机器学习库,封装了大量机器学习的方法,这里说一下其中的激活函数,就是上面说的 f()
直接通过程序说明,解释在代码中注释
导入支持包
import torch
import torch.nn.functional as F # 激励函数都在这
from torch.autograd import Variable
生成输入数据
# 做一些假数据来观看图像
x = torch.linspace(-5,5,200).unsqueeze(1) # .unsqueeze()作用为增加1个维度,x.size=(200,1)
x = torch.tensor(x) # x data (tensor), shape=(100, 1)
x = Variable(x)
“直”(线性)的操作
激活函数可以理解为 y_=f(Wx) ,
为了后面更好的观察激活函数的效果, 这里令W=“1”, 即y=x,则y_=f(Wx)=f(x)
整个网络假设就这么一层
W = torch.eye(200) # 对角矩阵
# 当传入值为5是,W=
# tensor([[1., 0., 0., 0., 0.],
# [0., 1., 0., 0., 0.],
# [0., 0., 1., 0., 0.],
# [0., 0., 0., 1., 0.],
# [0., 0., 0., 0., 1.]])
W = Variable(W)
y_ = Wx
y_ = W.mm(x) # Wx, mm()是pytorch中的矩阵点乘
激活
# 几种常用的 激励函数 y_activate=f(y)=f(Wx)
y_relu = F.relu(y_)
y_sigmoid = F.sigmoid(y_)
y_tanh = F.tanh(y_)
y_softplus = F.softplus(y_)
# y_softmax = F.softmax(y) softmax 比较特殊, 不能直接显示, 不过他是关于概率的, 用于分类
作图观察
# 作图观察
import matplotlib.pyplot as plt # python 的可视化模块
plt.figure(1, figsize=(8, 6))
plt.subplot(221)
plt.plot(x, y_relu, c='red', label='relu')
plt.ylim((-1, 5))
plt.legend(loc='best')
plt.subplot(222)
plt.plot(x, y_sigmoid, c='red', label='sigmoid')
plt.ylim((-0.2, 1.2))
plt.legend(loc='best')
plt.subplot(223)
plt.plot(x, y_tanh, c='red', label='tanh')
plt.ylim((-1.2, 1.2))
plt.legend(loc='best')
plt.subplot(224)
plt.plot(x, y_softplus, c='red', label='softplus')
plt.ylim((-0.2, 6))
plt.legend(loc='best')
plt.show()
说明
程序主要来自 激励函数 (Activation),略有修改
将程序按顺序复制即可执行
参考文献
作者:小兔子乖乖
链接:https://www.pythonheidong.com/blog/article/231017/d8b9b24b85de3053b154/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!