Stephen Wolfram:神经网络

Neural Nets 

神经网络

OK, so how do our typical models for tasks like image recognition actually work? The most popular—and successful—current approach uses neural nets. Invented—in a form remarkably close to their use today—in the 1940s, neural nets can be thought of as simple idealizations of how brains seem to work.

好的,那么我们对于图像识别等典型任务的模型实际上是如何工作的呢?目前最流行且最成功的方法是使用神经网络。神经网络在 20 世纪 40 年代发明,其形式与现在的使用非常接近,可以被看作是对大脑工作原理的简单理想化。

In human brains there are about 100 billion neurons (nerve cells), each capable of producing an electrical pulse up to perhaps a thousand times a second. The neurons are connected in a complicated net, with each neuron having tree-like branches allowing it to pass electrical signals to perhaps thousands of other neurons. And in a rough approximation, whether any given neuron produces an electrical pulse at a given moment depends on what pulses it’s received from other neurons—with different connections contributing with different “weights”.

人类大脑中有约 1000 亿个神经元(神经细胞),每个神经元每秒可以产生电脉冲多达数千次。神经元通过复杂的网络连接在一起,每个神经元都有类似树枝的分支,使其能够将电信号传递给数千个其他神经元。在粗略的近似下,任何给定神经元在给定时刻是否产生电脉冲取决于其从其他神经元接收到的脉冲,不同的连接以不同的“权重”进行贡献。

When we “see an image” what’s happening is that when photons of light from the image fall on (“photoreceptor”) cells at the back of our eyes they produce electrical signals in nerve cells. These nerve cells are connected to other nerve cells, and eventually the signals go through a whole sequence of layers of neurons. And it’s in this process that we “recognize” the image, eventually “forming the thought” that we’re “seeing a 2” (and maybe in the end doing something like saying the word “two” out loud).

当我们“看到一张图像”时,光子从图像上落在我们眼睛背后的“光感受器”细胞上,它们会在神经元中产生电信号。这些神经元与其他神经元相连,信号经过一系列层的神经元。在这个过程中,我们“识别”图像,最终“形成思维”,认为我们“看到了一个 2”(最后可能会做出说出“2”这样的动作)。

The “black-box” function from the previous section is a “mathematicized” version of such a neural net. It happens to have 11 layers (though only 4 “core layers”):

前面部分的“黑盒子”函数是这样一个“数学化”的神经网络版本。它有 11 层(但只有 4 个“核心层”):

2528172a6b0a4bda877f0512458d957e.png

There’s nothing particularly “theoretically derived” about this neural net; it’s just something that—back in 1998—was constructed as a piece of engineering, and found to work. (Of course, that’s not much different from how we might describe our brains as having been produced through the process of biological evolution.)

这个神经网络并没有什么特别“理论上的推导”;它只是在 1998 年构建为一项工程,并被发现有效。(当然,这与我们可能描述人类大脑是如何通过生物进化过程产生的方式并没有太大区别。)

OK, but how does a neural net like this “recognize things”? The key is the notion of attractors. Imagine we’ve got handwritten images of 1’s and 2’s:

那么,像这样的神经网络是如何“识别事物”的呢?关键在于吸引子的概念。假设我们有手写的 1 和 2 的图像:

6a989b1fa1e403fde47f6fc7d4718d18.png

We somehow want all the 1’s to “be attracted to one place”, and all the 2’s to “be attracted to another place”. Or, put a different way, if an image is somehow “closer to being a 1” than to being a 2, we want it to end up in the “1 place” and vice versa.

我们希望所有的 1 都能“被吸引到一个地方”,而所有的 2 都能“被吸引到另一个地方”。换句话说,如果一个图像在某种程度上“更接近 1”而不是 2,我们希望它最终位于“1 的地方”,反之亦然。

As a straightforward analogy, let’s say we have certain positions in the plane, indicated by dots (in a real-life setting they might be positions of coffee shops). Then we might imagine that starting from any point on the plane we’d always want to end up at the closest dot (i.e. we’d always go to the closest coffee shop). We can represent this by dividing the plane into regions (“attractor basins”) separated by idealized “watersheds”:

作为一个直观的类比,我们假设平面上有一些位置,由点(在现实生活中它们可能是咖啡店的位置)表示。然后我们可以想象,从平面上的任意一点出发,我们总是希望最终到达最近的点(也就是我们总是去最近的咖啡店)。我们可以通过将平面划分为由理想化的“分水岭”分隔的区域(“吸引子盆地”)来表示这一点:

f6fb54f179eeda7edbe2d95502f5da19.png

We can think of this as implementing a kind of “recognition task” in which we’re not doing something like identifying what digit a given image “looks most like”—but rather we’re just, quite directly, seeing what dot a given point is closest to. (The “Voronoi diagram” setup we’re showing here separates points in 2D Euclidean space; the digit recognition task can be thought of as doing something very similar—but in a 784-dimensional space formed from the gray levels of all the pixels in each image.)

我们可以将此视为实现“识别任务”的一种方式,我们并不是在做类似于确定给定图像“看起来最像哪个数字”的事情,而是直接看给定点最接近的是哪个点。(我们在这里展示的“沃罗诺伊图”设置将 2D 欧氏空间中的点分隔开;数字识别任务可以认为是在 784 维空间中进行,该空间由每个图像中所有像素的灰度级组成。)

So how do we make a neural net “do a recognition task”? Let’s consider this very simple case:

那么,我们如何使神经网络“执行识别任务”呢?让我们考虑这个非常简单的例子:

952951639417344d7c3b8a6a38783605.png

Our goal is to take an “input” corresponding to a position {x,y}—and then to “recognize” it as whichever of the three points it’s closest to. Or, in other words, we want the neural net to compute a function of {x,y} like:

我们的目标是将“输入”转换为对应于位置{x,y}的点,并将其“识别”为最接近的三个点之一。换句话说,我们希望神经网络计算关于{x,y}的函数,如下所示:

3be5be0cf56fda866f889381605d2baa.png

So how do we do this with a neural net? Ultimately a neural net is a connected collection of idealized “neurons”—usually arranged in layers—with a simple example being:

那么我们如何用神经网络实现这个呢?从根本上讲,神经网络是由一系列理想化的“神经元”相互连接而成的,通常按层排列,一个简单的例子是:

66f04df5618f2733db8e52b37a4b73f9.png

Each “neuron” is effectively set up to evaluate a simple numerical function. And to “use” the network, we simply feed numbers (like our coordinates x and y) in at the top, then have neurons on each layer “evaluate their functions” and feed the results forward through the network—eventually producing the final result at the bottom:

每个“神经元”实际上被设置为评估一个简单的数值函数。为了“使用”网络,我们只需在顶部输入数字(例如我们的坐标 x 和 y),然后在每个层上的神经元“评估它们的函数”并将结果通过网络向前传递——最终在底部产生最终结果:

2b0a842de17325e74d6d215bba425240.png

In the traditional (biologically inspired) setup each neuron effectively has a certain set of “incoming connections” from the neurons on the previous layer, with each connection being assigned a certain “weight” (which can be a positive or negative number). The value of a given neuron is determined by multiplying the values of “previous neurons” by their corresponding weights, then adding these up and adding a constant—and finally applying a “thresholding” (or “activation”) function. In mathematical terms, if a neuron has inputs x = {x1, x2 …} then we compute f[w . x + b], where the weights w and constant b are generally chosen differently for each neuron in the network; the function f is usually the same.

在传统的(生物启发式的)设置中,每个神经元实际上都有来自上一层神经元的一组“输入连接”,每个连接都被赋予某个“权重”(可以是正数或负数)。给定神经元的值是通过将“上一层神经元”的值与它们对应的权重相乘,然后相加并加上一个常数——最后应用一个“阈值”(或“激活”)函数来确定的。在数学上,如果一个神经元具有输入 x = {x1,x2...},那么我们计算 f[w·x + b],其中权重 w 和常数 b 通常对于网络中的每个神经元选择不同;函数 f 通常是相同的。

Computing w . x + b is just a matter of matrix multiplication and addition. The “activation function” f introduces nonlinearity (and ultimately is what leads to nontrivial behavior). Various activation functions commonly get used; here we’ll just use Ramp (or ReLU):

计算 w·x + b 只是矩阵乘法和加法的问题。激活函数 f 引入了非线性(最终导致不平凡的行为)。通常会使用不同的激活函数;在这里,我们使用了 Ramp(或 ReLU):

85aaec78574dcac2197832f9a08bb15e.png

For each task we want the neural net to perform (or, equivalently, for each overall function we want it to evaluate) we’ll have different choices of weights. (And—as we’ll discuss later—these weights are normally determined by “training” the neural net using machine learning from examples of the outputs we want.)

对于我们希望神经网络执行的每个任务(或等效地,我们希望它评估的每个整体函数),我们都有不同的权重选择。(我们稍后将讨论这些权重通常是通过使用机器学习来从我们希望的输出的示例中“训练”神经网络得到的。)

Ultimately, every neural net just corresponds to some overall mathematical function—though it may be messy to write out. For the example above, it would be:

归根结底,每个神经网络只对应于某个整体数学函数——尽管可能很难写出。对于上面的例子,它将是:

f823721323b48bf8a1b86edc3a11759c.png

The neural net of ChatGPT also just corresponds to a mathematical function like this—but effectively with billions of terms.

ChatGPT 的神经网络也只是对应于这样一个数学函数——但是有效地有数十亿个项。

But let’s go back to individual neurons. Here are some examples of the functions a neuron with two inputs (representing coordinates x and y) can compute with various choices of weights and constants (and Ramp as activation function):

不过让我们回到单个神经元。以下是一个具有两个输入(表示坐标 x 和 y)的神经元根据不同的权重和常数(以及 Ramp 作为激活函数)所计算的一些函数示例:

cc3b9c0e72b3205e42b4c1c3e0cd9651.png

But what about the larger network from above? Well, here’s what it computes:

那么上面的较大网络呢?好吧,它计算的是这个:

613edfff23162b0320d2f619cd1e6545.png

It’s not quite “right”, but it’s close to the “nearest point” function we showed above.

这并不完全“正确”,但它接近我们之前展示的“最近点”函数。

Let’s see what happens with some other neural nets. In each case, as we’ll explain later, we’re using machine learning to find the best choice of weights. Then we’re showing here what the neural net with those weights computes:

让我们看看其他神经网络发生了什么。在每种情况下,正如我们稍后将解释的,我们都在使用机器学习来找到最佳的权重选择。然后我们在这里展示这些权重的神经网络计算的结果:

bfd9034770940b78051fa4b94ab3c4a8.png

Bigger networks generally do better at approximating the function we’re aiming for. And in the “middle of each attractor basin” we typically get exactly the answer we want. But at the boundaries—where the neural net “has a hard time making up its mind”—things can be messier.

更大的网络通常在逼近我们目标函数方面做得更好。在各个“吸引子盆地”的中部,我们通常可以得到我们想要的确切答案。但在边界处——神经网络“很难做出决定”的地方——事情可能会更混乱。

With this simple mathematical-style “recognition task” it’s clear what the “right answer” is. But in the problem of recognizing handwritten digits, it’s not so clear. What if someone wrote a “2” so badly it looked like a “7”, etc.? Still, we can ask how a neural net distinguishes digits—and this gives an indication:

在这个简单的数学风格的“识别任务”中,很明显是什么是“正确答案”。但在识别手写数字的问题中,情况并不那么明确。如果有人把“2”写得很糟糕,看起来像“7”之类的数字,怎么办?尽管如此,我们可以问神经网络如何区分数字,这会给出一个指示:

129d017ea12afc16962e3fb84d6303bd.png

Can we say “mathematically” how the network makes its distinctions? Not really. It’s just “doing what the neural net does”. But it turns out that that normally seems to agree fairly well with the distinctions we humans make.

我们能否以“数学”的方式描述神经网络是如何进行区分的呢?其实不能。它只是在“做神经网络该做的事”。但结果表明,这通常与我们人类所做的区分相当一致。

Let’s take a more elaborate example. Let’s say we have images of cats and dogs. And we have a neural net that’s been trained to distinguish them. Here’s what it might do on some examples:

让我们看一个更复杂的例子。假设我们有猫和狗的图片,还有一个经过训练的神经网络,用于区分它们。在一些例子中,它可能会这么做:

1c9f9651e80f2ecfe046c60be20067ef.png

Now it’s even less clear what the “right answer” is. What about a dog dressed in a cat suit? Etc. Whatever input it’s given the neural net will generate an answer, and in a way reasonably consistent with how humans might. As I’ve said above, that’s not a fact we can “derive from first principles”. It’s just something that’s empirically been found to be true, at least in certain domains. But it’s a key reason why neural nets are useful: that they somehow capture a “human-like” way of doing things.

现在“正确答案”变得更加不清楚。如果有一只穿着猫装的狗呢?等等。无论输入是什么,神经网络都会生成一个答案,并以与人类相当一致的方式。就像我前面所说的,这并不是一个我们可以“从第一原则推导出来”的事实。这只是一些经验性的发现,至少在某些领域是成立的。但这是为什么神经网络是有用的关键原因:它们以某种方式捕捉了“类似于人类”的处理方式。

Show yourself a picture of a cat, and ask “Why is that a cat?”. Maybe you’d start saying “Well, I see its pointy ears, etc.” But it’s not very easy to explain how you recognized the image as a cat. It’s just that somehow your brain figured that out. But for a brain there’s no way (at least yet) to “go inside” and see how it figured it out. What about for an (artificial) neural net? Well, it’s straightforward to see what each “neuron” does when you show a picture of a cat. But even to get a basic visualization is usually very difficult.

向自己展示一张猫的图片,然后问:“为什么这是一只猫?”或许你会开始说:“嗯,我看到它尖尖的耳朵等等。”但解释你如何识别出这是一张猫的图片并不容易。只是不知怎么的,你的大脑就搞定了。但对于大脑来说,目前(至少)没有办法“进入”并看看它是如何弄清楚的。那么对于(人造的)神经网络呢?嗯,很难将其可视化。

In the final net that we used for the “nearest point” problem above there are 17 neurons. In the net for recognizing handwritten digits there are 2190. And in the net we’re using to recognize cats and dogs there are 60,650. Normally it would be pretty difficult to visualize what amounts to 60,650-dimensional space. But because this is a network set up to deal with images, many of its layers of neurons are organized into arrays, like the arrays of pixels it’s looking at.

在我们上面使用的最终网络中,有 17 个神经元。在用于识别手写数字的网络中,有 2190 个神经元。在我们用于识别猫和狗的网络中,有 60650 个神经元。通常,对于一个拥有 60650 维度的空间,将其可视化是非常困难的。但由于这是一个处理图像的网络,它的许多神经元层都组织成类似于它正在查看的像素阵列。

And if we take a typical cat image,

如果我们拿一个典型的猫的图片

8465046703e897b576986581e62c531a.png

then we can represent the states of neurons at the first layer by a collection of derived images—many of which we can readily interpret as being things like “the cat without its background”, or “the outline of the cat”:

然后我们可以通过一系列衍生图片来表示第一层的神经元的状态,其中很多图片我们可以轻松解释为“没有背景的猫”,或者“猫的轮廓”等:

a415118ba840c95f9277ed4fb72d484e.png

By the 10th layer it’s harder to interpret what’s going on:

到第 10 层,很难解释正在发生什么:

a2c1b089f2429bf846b2f4cc5f02771a.png

But in general we might say that the neural net is “picking out certain features” (maybe pointy ears are among them), and using these to determine what the image is of. But are those features ones for which we have names—like “pointy ears”? Mostly not.

但总的来说,我们可以说神经网络“挑选出某些特征”,然后使用这些特征来确定图像所代表的是什么。但这些特征是否与我们有名称的特征相似,比如“尖尖的耳朵”?大多数并不是。

Are our brains using similar features? Mostly we don’t know. But it’s notable that the first few layers of a neural net like the one we’re showing here seem to pick out aspects of images (like edges of objects) that seem to be similar to ones we know are picked out by the first level of visual processing in brains.

我们的大脑是否使用类似的特征?我们大多数情况下并不知道。但值得注意的是,我们在这里展示的网络的前几层似乎会提取出与大脑中视觉处理的第一层所提取的相似的图像特征(如物体边缘)。

But let’s say we want a “theory of cat recognition” in neural nets. We can say: “Look, this particular net does it”—and immediately that gives us some sense of “how hard a problem” it is (and, for example, how many neurons or layers might be needed). But at least as of now we don’t have a way to “give a narrative description” of what the network is doing. And maybe that’s because it truly is computationally irreducible, and there’s no general way to find what it does except by explicitly tracing each step. Or maybe it’s just that we haven’t “figured out the science”, and identified the “natural laws” that allow us to summarize what’s going on.

但是,假设我们想要一个神经网络中的“猫识别理论”。我们可以说:“看,这个特定的网络能做到这一点”——这立刻让我们对“问题有多难”有了一定的了解(例如,可能需要多少神经元或层数)。但至少到目前为止,我们还没有办法“用叙述性的方式描述”网络在做什么。也许这是因为它在计算上是不可化简的,除非我们显式地追踪每一步。或者也许是因为我们还没有“解释这个科学”,找到了允许我们总结发生的事情的“自然法则”。

We’ll encounter the same kinds of issues when we talk about generating language with ChatGPT. And again it’s not clear whether there are ways to “summarize what it’s doing”. But the richness and detail of language (and our experience with it) may allow us to get further than with images.

当我们讨论使用 ChatGPT 生成语言时,我们将遇到相同类型的问题。同样,目前还不清楚是否有办法“总结它在做什么”。但是语言的丰富性和细节(以及我们对它的经验)可能使我们在这方面取得更大的进展。

09adaa88d2ec24a0bda32d2eea7fce1c.jpeg

“点赞有美意,赞赏是鼓励”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/15850.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

django自定义app,创建子应用

1.工程里创建apps包 ; 2.创建子应用,pycharm terminal 运行:python ./nanage.py startapp app名称; 3.子应用移动到apps包里; 4.settings.py里设置INSTALLED_APPS如“apps.users”,该名字跟子应用apps.py文…

红宝石阅读笔记

第七章 迭代器与生成器 7.3 生成器 乍一看理解,仔细想没理解,然后自己让n2,还原nTimes,等价于 function* nTimes() {if (true) {yield* (function* A() {if (true) {yield* (function* B() { })();yield 0;}})();yield 1;} } 最…

NO1.使用命令行创建Maven工程

①在工作空间目录下打开命令窗口 ②使用命令行生成Maven工程 mvn archetype:generate 运行 MVN 原型:生成命令,下面根据提示操作 选择一个数字或应用过滤器(格式:[groupId:]artifactId,区分大小写包含)&a…

Jquery笔记

DOM对象通过jquery获取 所有的代码都是基于引入jquery.js文件 var mydiv $(#div);//直接获取到DOM对象元素id var mydiv$(.div);//通过class获取DOM对象,如果有同名class只会获取第一个 var mysapn$(span);//通过元素的标签名获取DOM对象 var divarr$(…

无涯教程-jQuery - outerWidth( margin])方法函数

outerWidth([margin])方法获取第一个匹配元素的外部宽度(默认情况下包括边框和填充)。 此方法适用于可见和隐藏元素。由于父项被隐藏的元素不支持此功能。 outerWidth( [margin] ) - 语法 selector.outerWidth( [margin] ) 这是此方法使用的所有参数的描述- margin - 此…

JS学习之ES6

一、ES简介 ES6是一个泛指,指EDMAJavaScript之后的版本。它是JS的语言标准。 Nodejs 简介:它是一个工具,主攻服务器,使得利用JS也可以完成服务器代码的编写。 安装: 安装Nodejs的同时,会附带一个npm命令…

抓紧收藏,Selenium无法定位元素的几种解决方案

01、frame/iframe表单嵌套 WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌的页面元素无法直接定位。 解决方法: driver.switch_to.frame(id/name/obj) switch_to.frame()默认可以直接取表单的id或name属性。如果没有可用的id和…

一文教你搭建工程化开发环境!

搭建工程化开发环境 下载 Node.js 官方下载地址 https://nodejs.org/zh-cn/download/releases node.js 版本迭代的非常快,目前官方已经推出到 v19.2.0 版本了,相对是一个比较新的版本了。建议下载 v14.18.3 版本,至少这个版本目前在很多项…

Android跨进程传大图思考及实现——附上原理分析

1.抛一个问题 这一天,法海想锻炼小青的定力,由于Bitmap也是一个Parcelable类型的数据,法海想通过Intent给小青传个特别大的图片 intent.putExtra("myBitmap",fhBitmap)如果“法海”(Activity)使用Intent去传递一个大的Bitmap给“…

iOS开发-聊天emoji表情与自定义动图表情左右滑动控件

iOS开发-聊天emoji表情与自定义动图表情左右滑动控件 之前开发中遇到需要实现聊天emoji表情与自定义动图表情左右滑动控件。使用UICollectionView实现。 一、效果图 二、实现代码 UICollectionView是一种类似于UITableView但又比UITableView功能更强大、更灵活的视图&#x…

无涯教程-jQuery - jQuery.post( url, data, callback, type)方法函数

jQuery.post(url,[data],[callback],[type])方法使用POST HTTP请求从服务器加载页面。 该方法返回XMLHttpRequest对象。 jQuery.post( url, [data], [callback], [type] ) - 语法 $.post( url, [data], [callback], [type] ) 这是此方法使…

JMeter常用内置对象:vars、ctx、prev

在前文 Beanshell Sampler 与 Beanshell 断言 中,初步阐述了JMeter beanshell的使用,接下来归集整理了JMeter beanshell 中常用的内置对象及其使用。 注:示例使用JMeter版本为5.1 1. vars 如 API 文档 所言,这是定义变量的类&a…

【数据结构篇C++实现】- 图

友情链接:C/C系列系统学习目录 文章目录 🚀一、图的基本概念和术语1、有向图和无向图3、基本图和多重图4、完全图5、子图6、连通、连通图和连通分量7、强连通图、强连通分量8、生成树、生成森林9、顶点的度、入度和出度10、边的权和网11、稠密图、稀疏图…

Ubuntu Server版 之 共享文件 samba和NFS 两种方法

NFS 和 Samba NFS : linux之间资源共享 Samba: 是windows系统与Linux系统之间资源共享的 samba 安装samba 工具 sudo apt install samba 创建共享目录 sudo mkdir /home/shared sudo chmod 777 /home/shared 配置sambd sudo vim /etc/samba/smb.con…

mysql的整体架构

服务层-引擎层-硬盘层 一条语句执行的整体过程: 先建立连接(mysql -h -p 密码)–预处理-词法分析-语法分析-优化器选择用什么索引表如何连接等-执行器 到这里都是属于server层,大多数功能包括视图,存储过程,触发器都是…

机器学习笔记之优化算法(一)无约束优化概述

机器学习笔记之优化算法——无约束优化概述 引言回顾:关于支持向量机的凸二次优化问题无约束优化问题概述解析解与数值解数值解的单调性关于优化问题的策略线搜索方法信赖域方法 引言 从本节开始,将介绍优化算法 ( Optimization Algorithm ) (\text{Opt…

用DBeaver进行数据备份与恢复

一、数据备份 1、选择需要备份的数据库或数据表,鼠标右击。 2、选择“工具-转存数据库” 3、勾选需要导出备份的数据库和数据表 可自行设置,这里直接点击开始; 导出完成 二、数据恢复 1、选择需要恢复的数据库或数据表,鼠标右…

台灯头灯手电筒UL153亚马逊美国站测试要求

在将台灯、头灯或手电筒上架到亚马逊美国站之前,UL153测试是必不可少的一项认证。UL153是美国安全实验室(Underwriters Laboratories)颁布的一项标准,旨在确保产品的安全性和可靠性。那么,我们应该如何办理UL153测试报…

锌离子荧光探针TSQ,109628-27-5,具有很好的选择性荧光探针

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ PART1----外观以及性质: 锌离子荧光探针TSQ(CAS号:109628-27-5),锌离子荧光探针TSQ是用于检测锌离子的荧光探针。 TSQ与Zn离子结合后,吸收波长和发射波…

无显示器设置家庭服务器树莓派4B,开启SSH,VNC,WIFI,配置内网穿透

前言 没有显示器对树莓派配置稍微有些繁琐,写一篇博客记录。 配置网络 以下都是在烧录好的sd卡根目录操作 创建一个ssh名字的空文件创建Wi-Fi配置,文件名称:wpa_supplicant.conf,内容: countryCN ctrl_interfaceDI…