当前位置: 首页 > news >正文

网站设计技术有哪些?it运维发展方向

网站设计技术有哪些?,it运维发展方向,centos 如何建立网站,网站项目建设周期一、说明 深度学习如此有效#xff0c;这真是一个谜。尽管有一些关于深度神经网络为何如此有效的线索#xff0c;但事实是没有人完全确定#xff0c;并且深度学习的理论理解是一个非常活跃的研究领域。 在本教程中#xff0c;我们将以一种不寻常的方式触及问题的一个小方面… 一、说明         深度学习如此有效这真是一个谜。尽管有一些关于深度神经网络为何如此有效的线索但事实是没有人完全确定并且深度学习的理论理解是一个非常活跃的研究领域。         在本教程中我们将以一种不寻常的方式触及问题的一个小方面。我们将让神经网络为我们绘制抽象图像然后我们将解释这些图像以便对幕后可能发生的事情有更好的直觉。此外作为奖励在本教程结束时您将能够生成如下所示的图像所有内容都少于 100 行 PyTorch 代码。请在此处查看随附的 Jupyter 笔记本 我的神经网络长大后想成为一名画家。 二、这个图像是如何生成的         该图像是由一个称为组合模式生成网络CPPN的简单架构生成的我是通过这篇博客文章介绍的。在那篇博客文章中作者通过用 JavaScript 编写的神经网络生成抽象图像。该文的代码在 PyTorch 中实现了它们。         通过神经网络生成图像的一种方法是让它们一次性输出完整图像如下所示称为“生成器”的神经网络将随机噪声作为输入并在输出层中生成整个图像其中尺寸宽*高。 图片来自生成对抗网络简短介绍         与输出整个图像相反CPPN我们将要探索的架构输出给定位置的像素颜色作为输入输入。 通过使用 TensorFlow 生成抽象模式的图像         忽略上图中的 z 和 r请注意网络正在接收像素的x、y坐标并输出该像素应该是什么颜色由c表示。这种网络的 PyTorch 模型如下所示         请注意它需要 2 个输入并有 3 个输出像素的 RGB 值。生成整个图像的方法是输入所需图像特定尺寸的所有 x,y 位置并继续将这些 x,y 位置的颜色设置为网络输出的颜色。 三、神经网络实验         我第一次尝试运行上面看到的神经网络时我最终生成了这些图像。         如果我有买家购买这件艺术品我会立即卖掉它。         我花了很多时间摸不着头脑想知道为什么无论我提供什么 x,y 位置作为输入网络输出都是灰色的。理想情况下这种情况不应该发生因为对于如此深的网络。改变输入值应该改变输出值。我还知道每次初始化神经网络时由于其参数权重和偏差的随机初始化它有可能生成全新的图像。但显然即使经过几次尝试我从神经网络中得到的只是这种灰色的酱缸。为什么         我的怀疑集中在所使用的特定激活函数上tanh。也许后续层中的多个tanh序列将所有输入数字压缩到接近 0.5。在输出层代表灰色。然而我关注的博客文章也使用了tanh。我所做的就是将博客的用 JavaScript 编写的神经网络转换为 PyTorch*没有*任何更改。         我终于找到了罪魁祸首。这就是 PyTorch 在初始化新神经网络时初始化权重的方式。根据他们的用户论坛他们使用从 -1/sqrt(N) 到 1/sqrt(N) 范围内随机抽取的数字来初始化权重其中 N 是层中传入连接的数量。因此如果隐藏层 N16权重将从 -1/4 初始化到 1/4。我对为什么这会导致灰色酱缸的假设是因为权重来自一个小范围并且变化不大。         如果网络中的所有权重都在 -1/4 到 1/4 之间当乘以任何输入并相加时也许会发生像中心极限定理这样的效果。 中心极限定理 (CLT) 规定在某些情况下添加独立的随机变量即使原始变量本身不是正态分布它们的正确归一化总和也趋向于正态分布非正式的“钟形曲线”         回想一下后续层上的值是如何计算的。 图片来自For Dummies — 我们都需要的神经网络简介         在我们的例子中第一个输入层有 2 个值 (x,y)第二个隐藏层有 16 个神经元。因此第二层上的每个神经元都会获得 2 个值乘以从 -1/4 到 1/4 得出的权重。将它们相加然后在从激活函数tanh出发后成为要传递到第三层的新值。         现在从第二层开始有 16 个输入要传递到第三层中的 16 个神经元中的每一个。想象一下每个值都由z 表示。那么第三层每个神经元的值是         这是我们做出另一个猜测的地方。因为权重的方差较小-1/4 到 1/4所以 z 的值输入 x,y 乘以权重然后通过tanh函数传递也不会变化很大因此将会类似。所以方程可以看作         每个神经元从 -0.25 到 0.25 的 16 个权重之和最有可能为零。即使在第一层中总和不接近于零网络的八层也为上述方程提供了足够的机会最终产生接近于零的值。因此无论输入值 (x, y) 如何进入激活函数的总值权重总和 * 输入始终接近零值tanh 映射为零因此所有后续层中的值保持为零 。 X 轴是 TanH 的输入Y 轴是输出。请注意0 被映射到 0。         颜色呈灰色是什么原因这是因为 sigmoid最后一层的激活函数将传入值设为 0并将其映射到 0.5代表灰色0 表示黑色1 表示白色。         注意 Sigmoid 如何将 0 输入值映射到 0.5 四、如何修复灰色酱缸         由于罪魁祸首是权重的微小差异我的下一步就是增加它。我更改了默认初始化函数将权重从 -100 分配到 100而不是 -1/4 到 1/4。现在运行神经网络这就是我得到的 瞧灰色粘液现在变成了一些颜色斑点。 现在这是一些进展。我的假设是正确的。但生成的图像仍然没有太多结构。这很简单。 这个神经网络在底层所做的就是将输入与权重相乘将它们推入tanh最后通过 sigmoid 输出颜色。既然我固定了权重我可以固定输入以使输出图像更有趣吗唔。 请注意上面的图像是当我输入 X,Y 作为原始像素坐标时生成的从 0,0 开始到 128, 128这是图像的大小结束。这意味着我的网络从未将负数视为输入而且由于这些数字很大比如 X,Y 可能是 100、100tanh要么得到一个非常大的数字它被压缩为 1要么得到一个非常小的数字它被压缩到-1。这就是为什么我看到原色的简单组合例如0,1,1 的 R、G、B 输出代表您在上图中看到的青色。 五、如何让图像变得更有趣         就像在原来的博客文章我正在关注的中一样我决定标准化 X 和 Y。因此我不会输入 X而是输入 (X/image_size)-0.5。这意味着 X 和 Y 的值范围为 -0.5 到 0.5与图像大小无关。这样做我得到了以下图像         还有一些进步         有趣的是在上一张图像中线条向右下角增长因为 X、Y 值在增加。此处由于 X、Y 值已归一化并且现在包含负数因此线条均匀地向外生长。然而图像仍然不够漂亮。 六、如何让图像变得更有趣         如果你仔细观察你会发现在图像的中间似乎比边缘有更多的结构。这是数学之神的暗示我们应该放大那里去发现美。         向图像中心放大的方法有以下三种 生成大图像。由于像素坐标已标准化我们可以简单地运行神经网络来生成更大的图像。之后我们可以通过图像编辑工具放大中间看看我们发现了什么。将 X 和 Y 输入乘以少量缩放系数这将有效地实现与先前方法相同的效果并避免我们在其余不感兴趣的区域上进行浪费计算由于输出是由输入 * 权重决定的因此我们也可以通过将权重值从 -100、100 减少到 3、-3 等其他值来进行缩放同时记住不要减少太多。记住如果权重在 -0.25 到 0.25 范围内就会出现灰色粘液         当我采用第二种方法并将 X 和 Y 乘以 0.01 时得到的结果如下 我称之为神经蒙德里安 当我采用第三种方法并将权重初始化为 -3 和 3 之间时这是我得到的图像。 你的心已经被震撼了吗 七、更多实验         我将权重初始化更改为正态分布平均值为 0标准差为 1并生成多个图像通过随机初始化。 当我删除所有隐藏层仅输入到输出映射时 0 个隐藏层 当我只保留一个隐藏层而不是默认的 8 个隐藏层时 1个隐藏层 当我将隐藏层数量加倍至 16 时 16 个隐藏层每个隐藏层 16 个神经元 正如您可以想象的那样随着隐藏层数量的增加图像变得更加复杂。我想知道如果我不将层数加倍而是将层数保持不变 (8)但将每层的神经元数量加倍从 16 个增加到 32 个会发生什么。这是我得到的 8 个隐藏层每个隐藏层 32 个神经元         请注意即使在上述两种情况下网络中的权重总数相似但具有双倍层的网络比每层具有双倍神经元的网络更加像素化。像素表明在这些区域中函数变化剧烈因此如果我们进一步放大就会发现更多结构。而对于具有原始层数但每层神经元数量加倍的网络功能非常平滑因此不太“可缩放”。         当然所有这些都是深度使神经网络更具表现力的另一种说法。正如《论深度神经网络的表达能力》论文所建议的那样 计算函数的复杂度随着深度呈指数增长         这正是我们所看到的。万能逼近定理表明理论上一个足够大的神经网络即使只有一个隐藏层也可以表达任何函数。但实际上网络越深输入 - 输出映射就越复杂。 八、毫无意义但很有趣的实验         如果我们将每层的神经元数量从 8 个增加到 128 个增加一个数量级会怎样 神经波洛克         如果我们从每个隐藏层 128 个神经元开始但在每个后续层中逐渐将它们减半如下所示。这是我得到的 这个看起来比其他的更“自然”。         人们可以进行“大量”更多实验并获得有趣的图像因此我将其留在这里供您使用代码Jupyter Notebook。尝试更多架构、激活和层。如果您发现有趣的事情请在 Twitter 上标记我或在 Medium 上发表评论我将在我的网络中分享。         或者你可以将神经网络生成的图像与神经网络生成的哲学结合起来并做出如下的东西 九 参考代码 9.1 torch代码 import torch import torch.nn as nn import torch.nn.functional as F import numpy as np import matplotlib.pyplot as plt from IPython import display from matplotlib import colors import os, copy from PIL import Imagedef init_normal(m):if type(m) nn.Linear:nn.init.normal_(m.weight)class NN(nn.Module):def __init__(self, activationnn.Tanh, num_neurons16, num_layers9):num_layers must be at least twosuper(NN, self).__init__()layers [nn.Linear(2, num_neurons, biasTrue), activation()]for _ in range(num_layers - 1):layers [nn.Linear(num_neurons, num_neurons, biasFalse), activation()]layers [nn.Linear(num_neurons, 3, biasFalse), nn.Sigmoid()]self.layers nn.Sequential(*layers)def forward(self, x):return self.layers(x)def gen_new_image(size_x, size_y, saveTrue, **kwargs):net NN(**kwargs)net.apply(init_normal)colors run_net(net, size_x, size_y)plot_colors(colors)if save is True:save_colors(colors)return net, colorsdef run_net(net, size_x128, size_y128):x np.arange(0, size_x, 1)y np.arange(0, size_y, 1)colors np.zeros((size_x, size_y, 2))for i in x:for j in y:colors[i][j] np.array([float(i) / size_y - 0.5, float(j) / size_x - 0.5])colors colors.reshape(size_x * size_y, 2)img net(torch.tensor(colors).type(torch.FloatTensor)).detach().numpy()return img.reshape(size_x, size_y, 3)def plot_colors(colors, fig_size4):plt.figure(figsize(fig_size, fig_size))plt.imshow(colors, interpolationnearest, vmin0, vmax1)def save_colors(colors):plt.imsave(str(np.random.randint(100000)) .png, colors)def run_plot_save(net, size_x, size_y, fig_size8):colors run_net(net, size_x, size_y)plot_colors(colors, fig_size)save_colors(colors)n,c gen_new_image(128, 128, saveFalse, num_neurons32) plt.imshow(c) plt.axis(on) # 关掉坐标轴为 off plt.title(image) # 图像题目 plt.show()run_plot_save(n, 1080, 720) for num_layers in range(2, 30, 3):print(f{num_layers} layers)n,c gen_new_image(128, 128, saveFalse, num_layersnum_layers)plt.imshow(c)plt.axis(on) # 关掉坐标轴为 offplt.title(image) # 图像题目plt.show()for i in range(1, 10, 2):print(f{num_layers} layers)n,c gen_new_image(128, 128, saveFalse, num_neurons2**i)plt.imshow(c)plt.axis(on) # 关掉坐标轴为 offplt.title(image) # 图像题目plt.show() 9.2 js代码 // actual size of generated imagevar sizeh 320; var sizew 320;// settings of nnet:var networkSize 16; // 16 neurons in each layervar nHidden 8; // depth of 8 layersvar nOut 3; // r, g, b layers// support variables:var img; // this is where we hold the imagevar G new R.Graph(false); // graph object from recurrent.jsvar initModel function() {var model [];// define the model below:model.w_in R.RandMat(networkSize, 3); // x, y, and biasfor (var i 0; i lt; nHidden; i) {model[w_i] R.RandMat(networkSize, networkSize);}model.w_out R.RandMat(nOut, networkSize); // output layerreturn model; };var model initModel();var forwardNetwork function(G, model, x_, y_) {var x new R.Mat(3, 1); // inputvar i;x.set(0, 0, x_);x.set(1, 0, y_);x.set(2, 0, 1.0); // bias.var out;out G.tanh(G.mul(model.w_in, x));for (i 0; i lt; nHidden; i) {out G.tanh(G.mul(model[w_i], out));}out G.sigmoid(G.mul(model.w_out, out));return out; };function getColorAt(x, y) {// function that returns a color given coord (x, y)var r, g, b;var out forwardNetwork(G, model, x, y);r out.w[0]*255.0;g out.w[1]*255.0;b out.w[2]*255.0;return color(r, g, b); }// ... rest of the code populates img using getColorAt(x, y)
http://www.w-s-a.com/news/936905/

相关文章:

  • 织梦 做网站 教程百度登录个人中心官网
  • ftp怎么修改网站wordpress分享积分
  • 营销策划方案的步骤西安关键词优化软件
  • 南宁自己的网站移动互联网技术学什么
  • 2017湖北建设教育协会网站自己接单做网站
  • 定制网站建设制作h5网站要多久
  • 泰安中呼网站建设有限公司 概况个人网站的设计与实现参考文献
  • 圣诞节网站怎么做怎么获取网站的图片
  • 想找个人做网站音乐网站建设教程视频教程
  • 网站收录一键提交阿里巴巴做网站多少钱
  • 怎么做网站投放广告商务网站建设实训报告
  • 服装代销的网站源码国内电子商务网站有哪些
  • qq空间怎么做网站做企业平台的网站有哪些
  • 网站的优缺点wordpress手机适配模板中文
  • 福州网站建设H5广告公司简介简短
  • 网站404页面的作用app开发郑州
  • 亚马逊中国网站建设目标网站建设的策划
  • 林州网站建设服务徐州网站建设
  • 如何检测网站死链景德镇网站建设哪家好
  • 旅游网站开发目标天津专业做网站公司
  • 名者观看网站快手小程序
  • 网络架构扁平化windows优化大师好不好
  • 安康养老院收费价格表兰州seo整站优化服务商
  • 网站开发技术方案模板无锡网站建设推荐
  • 自助建站系统注册三维家3d设计软件免费
  • 做seo网站标题重要吗郑州众诚建设监理有限公司网站
  • 建设网站南沙区百度关键词推广怎么做
  • 网站建设公司做销售前景好不好石家庄外贸网站制作
  • windows2008做网站网站首页打开速度
  • 做外贸要做什么网站服装设计图