<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.swarma.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mugicaxu2</id>
	<title>集智百科 - 复杂系统|人工智能|复杂科学|复杂网络|自组织 - 用户贡献 [zh-cn]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.swarma.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mugicaxu2"/>
	<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php/%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/Mugicaxu2"/>
	<updated>2026-11-02T18:38:43Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E4%BA%BA%E7%89%A9%E6%A8%A1%E6%9D%BF&amp;diff=34680</id>
		<title>人物模板</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E4%BA%BA%E7%89%A9%E6%A8%A1%E6%9D%BF&amp;diff=34680"/>
		<updated>2024-05-14T08:06:11Z</updated>

		<summary type="html">&lt;p&gt;Mugicaxu2：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 基本信息 ==&lt;br /&gt;
 &lt;br /&gt;
[[人物图片|大小(单位px)|图片位置(如居中等)]]&lt;br /&gt;
 &lt;br /&gt;
//人物名（中英文）、出生日期、出生地、身份、学位信息、家庭经历、主要成就等，内容要尽量充实但语言尽量凝练&lt;br /&gt;
（我认为可以做成一个类似表格一样的结构 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 类别 !! 信息&lt;br /&gt;
|-&lt;br /&gt;
| 出生日期 || 示例&lt;br /&gt;
|-&lt;br /&gt;
| 国籍： || 示例&lt;br /&gt;
|-&lt;br /&gt;
| 母校： || 示例&lt;br /&gt;
|-&lt;br /&gt;
| 成就： || 示例&lt;br /&gt;
|-&lt;br /&gt;
| 主要研究方向： || 示例&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
然后在做一个经历的介绍）&lt;br /&gt;
&lt;br /&gt;
== 研究领域 ==&lt;br /&gt;
 &lt;br /&gt;
//取得成就的研究领域&lt;br /&gt;
 &lt;br /&gt;
== 博士生导师 ==&lt;br /&gt;
 &lt;br /&gt;
//可以有名字、图片、链接等等&lt;br /&gt;
 &lt;br /&gt;
== 学生 ==&lt;br /&gt;
 &lt;br /&gt;
//可以有名字、图片、链接等等&lt;br /&gt;
 &lt;br /&gt;
== 合作学者 ==&lt;br /&gt;
 &lt;br /&gt;
//可以有名字、图片、链接等等&lt;br /&gt;
 &lt;br /&gt;
== xxx（人名）与集智 ==&lt;br /&gt;
 &lt;br /&gt;
//有些大佬参加过集智举办的活动或有过合作课题，都可以写上去&lt;br /&gt;
 &lt;br /&gt;
== 就职企业、机构或院校 ==&lt;br /&gt;
 &lt;br /&gt;
=== （机构名） ===&lt;br /&gt;
 &lt;br /&gt;
//机构详细信息及该人物在机构中主要负责哪方面的研究/工作、取得过什么样的成就或发展，可以有图片等信息&lt;br /&gt;
 &lt;br /&gt;
== 主要文章及著作 ==&lt;br /&gt;
 &lt;br /&gt;
* [文章链接 文章名]发表信息（发表年份/日期，被引次数）&lt;br /&gt;
//注意大佬们文章都很多，但是不要照搬，摘取重点影响力高的即可（如谷歌学术中被引次数多的），重点书籍可以适当展开说明，但是需要注意使用下一级标题和排版&lt;br /&gt;
 &lt;br /&gt;
== 研究课题 ==&lt;br /&gt;
 &lt;br /&gt;
=== [课题链接 课题名称] （名称翻译） ===&lt;br /&gt;
 &lt;br /&gt;
//课题是哪个领域的、主要实现了什么功能/有什么发现、研究思路、主要应用等，如果有图片可以说明就更好了。&lt;br /&gt;
 &lt;br /&gt;
== 近期报道 ==&lt;br /&gt;
 &lt;br /&gt;
//可转载部分关于人物的报道，帮助认识人物，但内容需要凝练不要长篇大论。&lt;br /&gt;
 &lt;br /&gt;
== 联系方式 ==&lt;br /&gt;
 &lt;br /&gt;
//可以是电子邮箱、工作地址、所在机构的电话号码等等，注意使用序列排版。&lt;br /&gt;
 &lt;br /&gt;
== 相关链接 ==&lt;br /&gt;
 &lt;br /&gt;
=== 视频 ===&lt;br /&gt;
 &lt;br /&gt;
[视频网址 视频名称]：视频主题&lt;br /&gt;
//可展开说明视频的重点内容、影响、背后的故事等等。&lt;br /&gt;
 &lt;br /&gt;
=== 更多信息 ===&lt;br /&gt;
 &lt;br /&gt;
[网址 名称]&lt;br /&gt;
//可以是wiki词条地址、百度百科、人物个人主页或博客主页等。&lt;br /&gt;
&lt;br /&gt;
[[category:使用说明]][[category:人物]]&lt;br /&gt;
[[Category:待润色]]&lt;/div&gt;</summary>
		<author><name>Mugicaxu2</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E6%B5%81%E7%BD%91%E7%BB%9C%E7%9A%84%E5%B9%B3%E8%A1%A1&amp;diff=34679</id>
		<title>流网络的平衡</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E6%B5%81%E7%BD%91%E7%BB%9C%E7%9A%84%E5%B9%B3%E8%A1%A1&amp;diff=34679"/>
		<updated>2024-05-14T08:04:32Z</updated>

		<summary type="html">&lt;p&gt;Mugicaxu2：/* 加边法（Naive Method） */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[流网络]]的平衡方法是指将不满足平衡条件：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sum_{j=0}^{N}f_{ji}=\sum_{j=1}^{N+1}f_{ij},   0\leq i \leq N&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
的[[流网络]]通过人工调整流量、增加连边的方法，将网络变成平衡的算法。&lt;br /&gt;
==加边法（Naive Method）==&lt;br /&gt;
这是一种最简单、直接的平衡流网络的方法。如果某一个节点的出流大于入流，我们就添加从源到该节点的流；否则如果入流大于出流，则添加从该节点到汇的流。其中流量都等于出流与入流的差的绝对值。&lt;br /&gt;
&lt;br /&gt;
具体地，对于任意的节点i，如果：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sum_{j=0}^{N}f_{ji}&amp;gt;\sum_{j=1}^{N+1}f_{ij},   0\leq i \leq N&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
则将流矩阵的0行i列元素改变为：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f_{0i}=\sum_{j=0}^{N}f_{ji}-\sum_{j=1}^{N+1}f_{ij}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
而如果：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sum_{j=0}^{N}f_{ji}&amp;lt;\sum_{j=1}^{N+1}f_{ij},   0\leq i \leq N&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
则将流矩阵的i行N+1列元素改变为：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f_{i,N+1}=\sum_{j=1}^{N+1}f_{ij}-\sum_{j=0}^{N}f_{ji}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这样，整个流网络就处于平衡了&lt;br /&gt;
&lt;br /&gt;
[[Category:待润色]]&lt;/div&gt;</summary>
		<author><name>Mugicaxu2</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E8%87%AA%E7%94%B1%E8%83%BD%E5%8E%9F%E7%90%86&amp;diff=34678</id>
		<title>自由能原理</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E8%87%AA%E7%94%B1%E8%83%BD%E5%8E%9F%E7%90%86&amp;diff=34678"/>
		<updated>2024-05-13T13:38:33Z</updated>

		<summary type="html">&lt;p&gt;Mugicaxu2：/* 编者推荐 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#seo:&lt;br /&gt;
|keywords=自由能原理,非平衡稳态,主动推理&lt;br /&gt;
|description=解释了生物系统和非生物系统如何通过将自己限制在有限的几个状态而保持在非平衡稳态。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''自由能原理 Free energy principle'''是一个正式的陈述，它解释了生物系统和非生物系统如何通过将自己限制在有限的几个状态而保持在非平衡稳态。&amp;lt;ref&amp;gt;Ashby, W. R. (1962). [http://csis.pace.edu/~marchese/CS396x/Computing/Ashby.pdf Principles of the self-organizing system].in Principles of Self-Organization: Transactions of the University of Illinois Symposium, H. Von Foerster and G. W. Zopf, Jr. (eds.), Pergamon Press: London, UK, pp. 255–278.&amp;lt;/ref&amp;gt;它表明系统最小化了内部状态的自由能函数，而内部状态包含了对环境中隐藏状态的信任。自由能的内隐最小化在形式上与变分贝叶斯方法 Variational Bayesian methods有关，最初由Karl Friston引入，作为神经科学中对具身知觉的解释，&amp;lt;ref&amp;gt;{{cite journal | last1=Friston | first1=Karl | last2=Kilner | first2=James | last3=Harrison | first3=Lee | title=A free energy principle for the brain | journal=Journal of Physiology-Paris | publisher=Elsevier BV | volume=100 | issue=1–3 | year=2006 | issn=0928-4257 | doi=10.1016/j.jphysparis.2006.10.001 | pmid=17097864 | pages=70–87|url=http://www.fil.ion.ucl.ac.uk/~karl/A%20free%20energy%20principle%20for%20the%20brain.pdf}}&amp;lt;/ref&amp;gt;在那里它也被称为“主动推理”。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
自由能原理解释了一个给定系统的存在，它通过一个[[马尔可夫毯 Markov blanket]]建模，试图最小化他们的世界模型和他们的感觉和相关知觉之间的差异。这种差异可以被描述为“出其不意”，并通过不断修正系统的世界模型来减少这种差异。因此，这个原理是基于贝叶斯的观点，即大脑是一个“推理机”。弗里斯顿为最小化增加了第二条路线：行动。通过积极地将世界改变为预期的状态，系统也可以使系统的自由能最小化。弗里斯顿认为这是所有生物反应的原理。&amp;lt;ref name=&amp;quot;wired20181112&amp;quot;&amp;gt;Shaun Raviv: [https://www.wired.com/story/karl-friston-free-energy-principle-artificial-intelligence/ The Genius Neuroscientist Who Might Hold the Key to True AI]. In: Wired, 13. November 2018&amp;lt;/ref&amp;gt;弗里斯顿还认为，他的原则即适用于精神障碍也适用于人工智能。基于主动推理原则的人工智能实现比其他方法显示出优势。&amp;lt;ref name=&amp;quot;wired20181112&amp;quot; /&amp;gt;关于这一原则的讨论也受到批评，认为它引用的形而上学假设与可检验的科学预测相去甚远，使这一原则不可证伪。在2018年的一次采访中，弗里斯顿承认，自由能原理不能被恰当地证伪: “自由能原理就是它的本来面目——一个原理。就像汉密尔顿的静止作用原理一样，它不能被证伪。这是不能被推翻的。事实上，除非你问可衡量的系统是否符合这一原则，否则你用它做不了什么。”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
自由能原理被批评为很难理解，甚至对专家来说也是如此。&amp;lt;ref&amp;gt;{{cite journal | last=Freed | first=Peter | title=Research Digest | journal=Neuropsychoanalysis | publisher=Informa UK Limited | volume=12 | issue=1 | year=2010 | issn=1529-4145 | doi=10.1080/15294145.2010.10773634 | pages=103–106}}&amp;lt;/ref&amp;gt;对这一原则的讨论也被批评为援引了形而上学远离可检验的科学预测的假设，使这一原则成为不可证伪的。&amp;lt;ref&amp;gt;{{cite journal | last1=Colombo | first1=Matteo | last2=Wright | first2=Cory | title=First principles in the life sciences: the free-energy principle, organicism, and mechanism | journal=Synthese | publisher=Springer Science and Business Media LLC | date=2018-09-10 | issn=0039-7857 | doi=10.1007/s11229-018-01932-w | page=|doi-access=free}}&amp;lt;/ref&amp;gt;在2018年的一次采访中，弗里斯顿承认自由能原则并不恰当[[可证伪性|可证伪性]]：“自由能原则就是它的本来面目-一个原则。与[[最小作用原理|哈密顿定常作用原理]]一样，它是不可证伪的。这是无法反驳的。事实上，除非你问可测量系统是否符合这一原则，否则你对此无能为力。”&amp;lt;ref&amp;gt;{{Cite journal|last=Friston|first=Karl|date=2018|title=Of woodlice and men: A Bayesian account of cognition, life and consciousness. An interview with Karl Friston (by Martin Fortier &amp;amp; Daniel Friedman)|url=https://www.aliusresearch.org/bulletin02.html|journal=ALIUS Bulletin|volume=2|pages=17–43|via=}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 背景==&lt;br /&gt;
自我组织的生物系统——比如细胞或大脑——可以被理解为最小化变分自由能的概念，是基于亥姆霍兹在无意识推理&amp;lt;ref name=&amp;quot;Helmholtz&amp;quot;&amp;gt;Helmholtz, H. (1866/1962). Concerning the perceptions in general. In Treatise on physiological optics (J. Southall, Trans., 3rd ed., Vol. III). New York: Dover.&amp;lt;/ref&amp;gt;以及随后的心理学&amp;lt;ref&amp;gt;{{cite journal | title=Perceptions as hypotheses | journal=Philosophical Transactions of the Royal Society of London. B, Biological Sciences | publisher=The Royal Society | volume=290 | issue=1038 | date=1980-07-08 | issn=0080-4622 | doi=10.1098/rstb.1980.0090 | pmid=6106237 | bibcode=1980RSPTB.290..181G | pages=181–197|jstor=2395424| last1=Gregory | first1=R. L. | doi-access=free }}&amp;lt;/ref&amp;gt;和机器学习&amp;lt;ref name=&amp;quot;Dayan&amp;quot;&amp;gt;{{cite journal | last1=Dayan | first1=Peter | last2=Hinton | first2=Geoffrey E. | last3=Neal | first3=Radford M. | last4=Zemel | first4=Richard S. | title=The Helmholtz Machine | journal=Neural Computation | publisher=MIT Press - Journals | volume=7 | issue=5 | year=1995 | issn=0899-7667 | doi=10.1162/neco.1995.7.5.889 | pmid=7584891 | pages=889–904|url=http://www.gatsby.ucl.ac.uk/~dayan/papers/hm95.pdf}}&amp;lt;/ref&amp;gt;治疗方面的工作。变分自由能是观测值及其隐含原因的概率密度的函数。这个变分密度的定义关系到一个概率模型，从假设的原因产生预测观测。在这种情况下，自由能提供了一个近似贝叶斯模型&amp;lt;ref&amp;gt;Beal, M. J. (2003). [http://www.cse.buffalo.edu/faculty/mbeal/papers/beal03.pdf Variational Algorithms for Approximate Bayesian Inference]. Ph.D. Thesis, University College London.&amp;lt;/ref&amp;gt;的证据。因此，它的最小化可以被看作是一个贝叶斯推断过程。当一个系统积极地进行观测以最小化自由能时，它隐含地进行了积极推理并最大化其世界模型的证据。&lt;br /&gt;
&lt;br /&gt;
然而，自由能也是结果自信息的一个上限，长期的平均值是[[熵]]。这意味着，如果一个系统采取行动来最小化自由能，它将隐含地放置一个熵的结果-或感官状态-它的样本上限。&amp;lt;ref name=&amp;quot;Friston&amp;quot;&amp;gt;{{cite journal | last=Karl | first=Friston | title=A Free Energy Principle for Biological Systems | journal=Entropy | publisher=MDPI AG | volume=14 | issue=11 | date=2012-10-31 | issn=1099-4300 | doi=10.3390/e14112100 | pmid=23204829 | bibcode=2012Entrp..14.2100K | pages=2100–2121| pmc=3510653 |url=http://www.fil.ion.ucl.ac.uk/~karl/A%20Free%20Energy%20Principle%20for%20Biological%20Systems.pdf|doi-access=free}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal | last1=Colombo | first1=Matteo | last2=Wright | first2=Cory | title=First principles in the life sciences: the free-energy principle, organicism, and mechanism | journal=Synthese | publisher=Springer Science and Business Media LLC | date=2018-09-10 | issn=0039-7857 | doi=10.1007/s11229-018-01932-w | page=|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 与其他理论的关系===&lt;br /&gt;
主动推理与良好的调节器定理以及自组织的相关理论，如自组装、模式形成、自创生和拓扑实践密切相关。它涉及控制论、协同学和具身认知理论中所考虑的主题。由于自由能可以用变分密度下观测值的期望能量减去其熵来表示，因此它也与最大熵原理有关。最后，由于能量的时间平均值是作用量，因此最小变分自由能原理是最小作用量原理。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
主动推理与[[灵活调整|好调节器定理]]密切相关&amp;lt;ref&amp;gt;Conant, R. C., &amp;amp; Ashby, R. W. (1970). [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.161.3702&amp;amp;rep=rep1&amp;amp;type=pdf Every Good Regulator of a system must be a model of that system]. Int. J. Systems Sci. , 1 (2), 89–97.&amp;lt;/ref&amp;gt;以及与[[自组织]]的内容相关，&amp;lt;ref&amp;gt;Kauffman, S. (1993). [https://books.google.com/books?hl=en&amp;amp;lr=&amp;amp;id=lZcSpRJz0dgC&amp;amp;oi=fnd&amp;amp;pg=PR13&amp;amp;dq=%22The+Origins+of+Order:+Self-Organization+and+Selection+in+Evolution%22&amp;amp;ots=9_GMeW6MVv&amp;amp;sig=9qVR16wmBt2M6QL9xJu9wkeqGtg#v=onepage&amp;amp;q=%22The%20Origins%20of%20Order%3A%20Self-Organization%20and%20Selection%20in%20Evolution%22&amp;amp;f=false The Origins of Order: Self-Organization and Selection in Evolution]. Oxford: Oxford University Press.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Nicolis, G., &amp;amp; Prigogine, I. (1977). Self-organization in non-equilibrium systems. New York: John Wiley.&amp;lt;/ref&amp;gt; 例如自组装，模式形成，自生&amp;lt;ref&amp;gt;Maturana, H. R., &amp;amp; Varela, F. (1980). [http://topologicalmedialab.net/xinwei/classes/readings/Maturana/autopoesis_and_cognition.pdf Autopoiesis: the organization of the living]. In V. F. Maturana HR (Ed.), Autopoiesis and Cognition. Dordrecht, Netherlands: Reidel.&amp;lt;/ref&amp;gt;和实践&amp;lt;ref&amp;gt;Nikolić, D. (2015). [https://www.sciencedirect.com/science/article/pii/S002251931500106X Practopoiesis: Or how life fosters a mind]. Journal of theoretical biology, 373, 40-61.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
它解决了[[控制论]]，[[协同学]]中考虑的主题&amp;lt;ref&amp;gt;Haken, H. (1983). Synergetics: An introduction. Non-equilibrium phase transition and self-organisation in physics, chemistry and biology (3rd ed.). Berlin: Springer Verlag.&amp;lt;/ref&amp;gt;以及[[具身认知]]。由于自由能可以表示为变分密度下观测值的期望能量减去其熵，因此它也与[[最大熵原理]]有关。&amp;lt;ref&amp;gt;Jaynes, E. T. (1957). [http://bayes.wustl.edu/etj/articles/theory.1.pdf Information Theory and Statistical Mechanics]. Physical Review Series II, 106 (4), 620–30.&amp;lt;/ref&amp;gt; 最后，由于能量的时间平均是作用量，最小变分自由能原理是一种[[最小作用原理]]。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
这些示意图说明了如何将状态划分为内部状态和隐藏状态或外部状态，这些状态由一个马尔可夫毯（包括感觉状态和活动状态）分隔开来。下面的面板显示了这个分区，因为它将应用于大脑中的动作和感知；活动和内部状态将感官状态的自由能功能最小化。随后内部状态的自组织与感知相对应，而动作将大脑状态与外部状态耦合。上面的面板显示完全相同的依赖性，但重新排列，使内部状态与细胞内状态相关联，而感觉状态成为细胞膜的表面状态覆盖活性状态（例如，细胞骨架的肌动蛋白丝）。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 定义 ==&lt;br /&gt;
[[Image:MarokovBlanketFreeEnergyFigure.jpg|500px|right|thumb|这些示意图说明了将状态划分为内部状态和隐藏状态或外部状态，这些状态由一个马尔可夫毯（包括感觉状态和活动状态）隔开。下面的面板显示了这个分区，因为它将应用于大脑中的动作和感知；活动和内部状态将感官状态的自由能功能最小化。随后内部状态的自组织与感知相对应，而动作将大脑状态与外部状态耦合。上面的面板显示了完全相同的依赖性，但重新排列，使内部状态与细胞内状态相关联，而感觉状态则成为细胞膜上覆盖活性状态的表面状态（例如，细胞骨架的肌动蛋白丝）]]&lt;br /&gt;
&lt;br /&gt;
定义（连续公式）：主动推理依赖于元组&amp;lt;math&amp;gt;(\Omega,\Psi,S,A,R,q,p)&amp;lt;/math&amp;gt; ,&lt;br /&gt;
&lt;br /&gt;
*“一个样本空间”&amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt;–从中提取随机波动&amp;lt;math&amp;gt;\Omega\in\Omega&amp;lt;/math&amp;gt;&lt;br /&gt;
*“隐藏或外部状态”&amp;lt;math&amp;gt;\Psi:\Psi\times A\times\Omega\to\mathbb{R}&amp;lt;/math&amp;gt;——引起感觉状态并依赖于动作&lt;br /&gt;
*“感觉状态”&amp;lt;math&amp;gt;S:\Psi\times A\times\Omega\to\mathbb{R}&amp;lt;/math&amp;gt;——动作和隐藏状态的概率映射&lt;br /&gt;
*“动作”&amp;lt;math&amp;gt;A:S\times R \to \mathbb{R}&amp;lt;/math&amp;gt;——这取决于感觉和内部状态&lt;br /&gt;
*“内部状态”&amp;lt;math&amp;gt;R:R\times S\to\mathbb{R}&amp;lt;/math&amp;gt;——引起动作并依赖于感觉状态&lt;br /&gt;
*“生成密度”&amp;lt;math&amp;gt;p(s, \psi \mid m)&amp;lt;/math&amp;gt;——在生成模型下的感觉和隐藏状态&lt;br /&gt;
*“变分密度”&amp;lt;math&amp;gt;q(\psi \mid \mu)&amp;lt;/math&amp;gt;–由R中的内部状态&amp;lt;math&amp;gt;\mu \in R&amp;lt;/math&amp;gt;参数化的隐藏状态&amp;lt;math&amp;gt;\psi \in \Psi&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
其目的是最大限度地提高模型的证据，或者最大限度地减少惊喜。这通常涉及隐状态的棘手边缘化，因此用变分自由能上界代替惊奇。这个公式建立在一个马尔可夫毯子(包括行动和感官状态) ，分离内部和外部状态。如果内部状态和作用力使自由能最小化，那么它们在感觉状态的熵上设置了一个上限&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===行动与感知===&lt;br /&gt;
目标是最大化模型证据&amp;lt;math&amp;gt;p(s\mid m)&amp;lt;/math&amp;gt;或最小化意外&amp;lt;math&amp;gt;-\log p(s\mid m)&amp;lt;/math&amp;gt;。这通常涉及隐藏态的难以处理的边缘化，因此意外被一个较高的变分自由能边界所取代。&amp;lt;ref name=&amp;quot;Dayan&amp;quot;/&amp;gt;然而，这意味着内部状态也必须最小化自由能，因为自由能是感官和内部状态的函数：&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;  a(t) = \underset{a}{\operatorname{arg\,min}}   \{ F(s(t),\mu(t)) \}&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;\mu(t) = \underset{\mu}{\operatorname{arg\,min}} \{ F(s(t),\mu)) \}  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\underset{\mathrm{free-energy}} {\underbrace{F(s,\mu)}} = \underset{\mathrm{energy}} {\underbrace{ E_q[-\log p(s,\psi \mid m)]}} - \underset{\mathrm{entropy}} {\underbrace{ H[q(\psi \mid \mu)]}}&lt;br /&gt;
= \underset{\mathrm{surprise}} {\underbrace{ -\log p(s \mid m)}} + \underset{\mathrm{divergence}} {\underbrace{ D_{\mathrm{KL}}[q(\psi \mid \mu) \parallel p(\psi \mid s,m)]}} &lt;br /&gt;
  \geq \underset{\mathrm{surprise}} {\underbrace{ -\log p(s \mid m)}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
这导致了一个双重最小化的行动和内部状态，分别对应于行动和感知。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==自由能最小化==&lt;br /&gt;
===自由能最小化和自组织===&lt;br /&gt;
&lt;br /&gt;
变分自由能是一种信息论泛函，不同于热力学（亥姆霍兹）自由能。然而，变分自由能的复杂性项与亥姆霍兹自由能具有相同的固定点（假设系统是热力学闭合的，而不是孤立的）。这是因为如果感觉干扰暂停（适当长的时间） ，复杂性是最小的（因为准确性可以忽略）。在这一点上，系统处于平衡状态，内部状态通过最小能量原理使亥姆霍兹自由能最小。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
自由能最小化被认为是[[自组织系统]]的一个标志。&amp;lt;ref&amp;gt;Crauel, H., &amp;amp; Flandoli, F. (1994). [https://www.researchgate.net/profile/Hans_Crauel/publication/227072665_Attractor_for_random_dynamical_systems/links/57c2033708aed246b0fe05b5/Attractor-for-random-dynamical-systems.pdf Attractors for random dynamical systems]. Probab Theory Relat Fields, 100, 365–393.&amp;lt;/ref&amp;gt; 这个公式建立在一个[[马尔可夫毯]]（包括行动和感觉状态）分离内部和外部状态。如果内部状态和行为使自由能最小化，那么它们就给感官状态的熵设置了一个上限。&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; \lim_{T\to\infty} \frac{1}{T} \underset{\text{free-action}} {\underbrace{\int_0^T F(s(t),\mu (t))\,dt}}  \ge&lt;br /&gt;
\lim_{T\to\infty} \frac{1}{T} \int_0^T \underset{\text{surprise}}{\underbrace{-\log p(s(t)\mid m)}} \, dt = H[p(s\mid m)] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
自由能最小化相当于最大化感观状态和内部状态之间的互信息，使变分密度参数化（对于固定熵变分密度）。利用信息论描述最优行为的相关处理。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
这是因为在遍历假设下，惊喜的长期平均值是熵。这个界限抵抗了一种自然的无序倾向，这种无序倾向与[[热力学第二定律]]和[[涨落定理]]有关。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===自由能最小化与贝叶斯推理===&lt;br /&gt;
&lt;br /&gt;
自由能最小化为在不确定性条件下建立神经元推理和学习的规范（贝叶斯最优）模型提供了一种有用的方法，因此符合贝叶斯脑假设。由自由能最小化描述的神经元过程取决于隐藏状态的性质：&amp;lt;math&amp;gt; \Psi = X \times \Theta \times \Pi &amp;lt;/math&amp;gt;，它可以包括时间相关变量、时不变参数和随机波动的精度（逆方差或温度）。最小化变量、参数和精度分别对应于推理、学习和不确定性编码。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
所有的贝叶斯推断都可以用自由能最小化来表示，例如，&amp;lt;ref&amp;gt;Roweis, S., &amp;amp; [[Zoubin Ghahramani|Ghahramani, Z.]] (1999). [http://authors.library.caltech.edu/13697/1/ROWnc99.pdf A unifying review of linear Gaussian models]. Neural Computat. , 11 (2), 305–45. {{doi|10.1162/089976699300016674}}&amp;lt;/ref&amp;gt;当自由能相对于内部态最小化时，隐态上变分密度和后验密度之间的[[Kullback–Leibler散度]]最小化。当变分密度的形式固定时，这对应于近似的[[贝叶斯推理]]，否则对应于精确的[[贝叶斯推理]]。因此，自由能最小化提供了贝叶斯推理和滤波的一般描述（例如，[[卡尔曼滤波]]）。它也用于贝叶斯模型选择，其中自由能可以有效地分解为复杂性和准确性：&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; \underset{\text{free-energy}} {\underbrace{ F(s,\mu)}} = \underset{\text{complexity}} {\underbrace{ D_\mathrm{KL}[q(\psi\mid\mu)\parallel p(\psi\mid m)]}} - \underset{\mathrm{accuracy}} {\underbrace{E_q[\log p(s\mid\psi,m)]}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
自由能最小化使知觉中的无意识推理的概念正规化&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
具有最小自由能的模型提供了数据的精确解释，降低了复杂性成本（参见奥卡姆剃刀和计算成本的更正式的处理方法&amp;lt;ref&amp;gt;Ortega, P. A., &amp;amp; Braun, D. A. (2012). [http://rspa.royalsocietypublishing.org/content/469/2153/20120683 Thermodynamics as a theory of decision-making with information processing costs].  Proceedings of the Royal Society A, vol. 469, no. 2153 (20120683) .&amp;lt;/ref&amp;gt;)。这里，复杂性是变分密度和关于隐藏状态的先验信念（即用于解释数据的有效自由度）之间的差异。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===自由能最小化与热力学===&lt;br /&gt;
&lt;br /&gt;
变分自由能是一种信息论泛函，不同于热力学[[Helmholtz自由能]]。&amp;lt;ref&amp;gt;Evans, D. J. (2003). [http://rscweb.anu.edu.au/~evans/papers/NEFET.pdf A non-equilibrium free energy theorem for deterministic systems]. Molecular Physics , 101, 15551–4.&amp;lt;/ref&amp;gt;然而，变分自由能的复杂性项与Helmholtz自由能具有相同的不动点（假设系统是热力学封闭而非孤立的）。这是因为如果感官干扰被暂停（一段适当长的时间），复杂性被最小化（因为准确度可以忽略）。此时，系统处于平衡状态，内部状态根据[[最小能量原理]]&amp;lt;ref&amp;gt;Jarzynski, C. (1997). [https://arxiv.org/abs/cond-mat/9610209 Nonequilibrium equality for free energy differences]. Phys. Rev. Lett., 78, 2690.&amp;lt;/ref&amp;gt;使亥姆霍兹自由能最小化。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===自由能最小化与信息论===&lt;br /&gt;
&lt;br /&gt;
自由能最小化相当于最大化感官状态和内部状态之间的[[互信息]]，使变分密度参数化（对于固定熵变分密度）&amp;lt;ref name=&amp;quot;Friston&amp;quot; /&amp;gt;这将自由能最小化与最小冗余原则联系起来。&amp;lt;ref&amp;gt;Barlow, H. (1961). [http://www.trin.cam.ac.uk/horacebarlow/21.pdf Possible principles underlying the transformations of sensory messages]  In W. Rosenblith (Ed.), Sensory Communication (pp. 217-34). Cambridge, MA: MIT Press.&amp;lt;/ref&amp;gt;并且联系到用信息论描述最优行为的相关处理&amp;lt;ref&amp;gt;Linsker, R. (1990).[https://www.annualreviews.org/doi/pdf/10.1146/annurev.ne.13.030190.001353 Perceptual neural organization: some approaches based on network models and information theory]. Annu Rev Neurosci. , 13, 257–81.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Bialek, W., Nemenman, I., &amp;amp; Tishby, N. (2001). [http://www.princeton.edu/~wbialek/our_papers/bnt_01a.pdf Predictability, complexity, and learning]. Neural Computat., 13 (11), 2409–63.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==神经科学中的自由能最小化==&lt;br /&gt;
&lt;br /&gt;
自由能最小化为在不确定性条件下建立神经元推理和学习的规范（Bayes最优）模型提供了一种有效的方法&amp;lt;ref&amp;gt;Friston, K. (2010). [http://www.fil.ion.ucl.ac.uk/~karl/The%20free-energy%20principle%20A%20unified%20brain%20theory.pdf The free-energy principle: a unified brain theory?] Nat Rev Neurosci. , 11 (2), 127–38.&amp;lt;/ref&amp;gt; 因此符合[[贝叶斯脑]]假说&amp;lt;ref&amp;gt;Knill, D. C., &amp;amp; Pouget, A. (2004). [http://mrl.isr.uc.pt/pub/bscw.cgi/d27540/ReviewKnillPouget2.pdf The Bayesian brain: the role of uncertainty in neural coding and computation]. Trends Neurosci. , 27 (12), 712–9.&amp;lt;/ref&amp;gt;。由自由能最小化描述的神经元过程取决于隐藏状态的性质：&amp;lt;math&amp;gt;\Psi=X\times\Theta\times\Pi&amp;lt;/math&amp;gt;，它可以包括时间相关变量、时不变参数和随机波动的精度（逆方差或温度）。最小化变量、参数和精度分别对应于推理、学习和不确定性编码。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===感性推理与分类===&lt;br /&gt;
&lt;br /&gt;
自由能最小化使知觉中的[[无意识推理]]概念正式化&amp;lt;ref name=&amp;quot;Helmholtz&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;Dayan&amp;quot; /&amp;gt;并提供了神经元处理的规范（贝叶斯）理论。神经元动力学的相关过程理论是基于通过梯度下降最小化自由能。这对应于[[广义滤波|广义贝叶斯滤波]]（其中~表示广义运动坐标中的变量，&amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;是一个导数矩阵运算符）：&amp;lt;ref&amp;gt;Friston, K., Stephan, K., Li, B., &amp;amp; Daunizeau, J. (2010). [http://www.fil.ion.ucl.ac.uk/~karl/Generalised%20Filtering.pdf Generalised Filtering]. Mathematical Problems in Engineering, vol., 2010, 621670&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\dot{\tilde{\mu}} = D \tilde{\mu} - \partial_{\mu}F(s,\mu)\Big|_{\mu = \tilde{\mu}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
通常，定义自由能的生成模型是非线性和层次结构的（就像大脑中的皮层层次结构）。广义滤波的特殊情况包括[[卡尔曼滤波]]，它在形式上等价于[预测编码]]&amp;lt;ref&amp;gt;Rao, R. P., &amp;amp; Ballard, D. H. (1999). [https://www.cs.utexas.edu/users/dana/nn.pdf Predictive coding in the visual cortex: a functional interpretation of some extra-classical receptive-field effects]. Nat Neurosci. , 2 (1), 79–87.&amp;lt;/ref&amp;gt; 一种关于大脑中信息传递的流行隐喻。在分层模型下，预测编码涉及到上升（自下而上）预测错误和下降（自上而下）预测的循环交换&amp;lt;ref name=&amp;quot;Mumford&amp;quot;&amp;gt;Mumford, D. (1992). [http://cs.brown.edu/people/tld/projects/cortex/course/suggested_reading_list/supplements/documents/MumfordBC-92.pdf On the computational architecture of the neocortex]. II. Biol. Cybern. , 66, 241–51.&amp;lt;/ref&amp;gt;这与感觉器官的解剖学和生理学&amp;lt;ref&amp;gt;Bastos, A. M., Usrey, W. M., Adams, R. A., Mangun, G. R., Fries, P., &amp;amp; Friston, K. J. (2012). [http://www.fil.ion.ucl.ac.uk/~karl/Canonical%20Microcircuits%20for%20Predictive%20Coding.pdf Canonical microcircuits for predictive coding]. Neuron , 76 (4), 695–711.&amp;lt;/ref&amp;gt;以及动力系统&amp;lt;ref&amp;gt;Adams, R. A., Shipp, S., &amp;amp; Friston, K. J. (2013). [http://www.fil.ion.ucl.ac.uk/~karl/Predictions%20not%20commands%20-%20active%20inference%20in%20the%20motor%20system.pdf Predictions not commands: active inference in the motor system]. Brain Struct Funct. , 218 (3), 611–43&amp;lt;/ref&amp;gt;是一致的。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===知觉学习与记忆===&lt;br /&gt;
&lt;br /&gt;
在预测编码中，通过自由能（自由作用）时间积分的梯度上升来优化模型参数会降低到联想或[[Hebbian理论| Hebbian可塑性]]，并与大脑中的[[synaptic可塑性]]相关。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===知觉的精确性、注意力和显著性===&lt;br /&gt;
&lt;br /&gt;
优化精度参数对应于优化预测误差的增益（参见Kalman增益）。在预测性编码的神经元似是而非的实现中，&amp;lt;ref name=&amp;quot;Mumford&amp;quot; /&amp;gt;这对应于优化浅表锥体细胞的兴奋性，并被解释为注意增益。&amp;lt;ref name=&amp;quot;Feldman&amp;quot;&amp;gt;Feldman, H., &amp;amp; Friston, K. J. (2010). [http://www.fil.ion.ucl.ac.uk/~karl/Attention%20uncertainty%20and%20free-energy.pdf Attention, uncertainty, and free-energy]. Frontiers in Human Neuroscience, 4, 215.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:PESAIM.jpg|thumb|400px|在多目标环境下，通过对名为PE-SAIM的SAIM进行贝叶斯重构，模拟选择性注意任务的结果。图表显示了知识网络中FOA和两个模板单元激活的时间过程。]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
关于自上而下与自下而上的争论，已经被作为一个主要的开放性问题的注意，一个计算模型已经成功地说明了自上而下和自下而上机制之间的往复循环性质。利用已建立的注意涌现模型SAIM，作者提出了一个称为PE-SAIM的模型，与标准模型相比，该模型从自上而下的立场接近选择性注意。该模型考虑了发送到同一级别或更高级别的转发预测误差，以最小化表示数据及其原因之间的差异的能量函数，换句话说，生成模型和后验模型之间的差异。为了提高有效性，他们还在模型中加入了刺激物之间的神经竞争。该模型的一个显著特点是仅根据任务执行过程中的预测误差来重新构造自由能函数。&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\partial E^{total}(Y^{VP},X^{SN},x^{CN},y^{KN})}{\partial y^{SN}_{mn}}=x^{CN}_{mn}-b^{CN}\varepsilon^{CN}_{nm}+b^{CN}\sum_{k}(\varepsilon^{KN}_{knm})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
其中，&amp;lt;math&amp;gt;E^{total}&amp;lt;/math&amp;gt;是神经网络的总[[能量函数]]，&amp;lt;math&amp;gt;\varepsilon^{KN}_{knm}&amp;lt;/math&amp;gt;是生成模型（先验）和后验随时间变化的预测误差。&amp;lt;ref name=&amp;quot;Abadi&amp;quot;&amp;gt;Abadi K.A., Yahya K., Amini M., Heinke D. &amp;amp; Friston, K. J. (2019). [https://royalsocietypublishing.org/doi/full/10.1098/rsif.2018.0344 Excitatory versus inhibitory feedback in Bayesian formulations of scene construction]. 16 R. Soc. Interface&amp;lt;/ref&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
比较这两个模型的结果发现他们的结果之间有显著的相似性，同时指出了一个显著的差异，即在SAIM的标准版本中，模型的重点主要是兴奋性连接，而在PE-SAIM中，抑制性连接将被用来进行推断。该模型对人体实验的脑电和功能磁共振数据具有较高的预测精度。该模型还被证明适合以高精度预测从人体实验中提取的 EEG 和 fMRI 数据。同样，Yahya 等人。还应用自由能原理提出了一个主要依赖于 SAIM 的隐性选择性视觉注意中的模板匹配计算模型。&amp;lt;ref name=&amp;quot;Yahya&amp;quot;&amp;gt; Yahya K., Fard P.R., &amp;amp; Friston, K.J. (2014). [DOI: 10.1007/s10339-013-0597-6 A free energy approach to visual attention: a connectionist model]. Cogn Process (2014) 15:107. &amp;lt;/ref&amp;gt;根据这项研究，通过在原始神经网络中插入自上而下的信号来达到整个状态空间的总自由能，由此我们推导出一个包含前馈和后向预测误差的动力学系统。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==主动推理==&lt;br /&gt;
当梯度下降应用于动作&amp;lt;math&amp;gt; \dot{a} = -\partial_aF(s,\tilde{\mu}) &amp;lt;/math&amp;gt;时，运动控制可以理解为通过下降（皮质脊髓）预测参与的经典反射弧。这提供了一种形式主义，将平衡点解推广到[[自由度问题]]&amp;lt;ref&amp;gt;Feldman, A. G., &amp;amp; Levin, M. F. (1995). [http://e.guigon.free.fr/rsc/article/FeldmanLevin95.pdf The origin and use of positional frames of reference in motor control]. Behav Brain Sci. , 18, 723–806.&amp;lt;/ref&amp;gt;移动轨迹。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===主动推理与最优控制===&lt;br /&gt;
主动推理与[[最优控制]]有关，它用状态转移或流的先验信念替换价值或成本函数。&amp;lt;ref&amp;gt;Friston, K., (2011). [http://www.fil.ion.ucl.ac.uk/~karl/What%20Is%20Optimal%20about%20Motor%20Control.pdf What is optimal about motor control?]. Neuron, 72(3), 488–98.&amp;lt;/ref&amp;gt;这充分利用了贝叶斯滤波和[[Bellman方程]]解之间的紧密联系。然而，主动推理从状态空间的标量&amp;lt;math&amp;gt;V（x）&amp;lt;/math&amp;gt;和向量&amp;lt;math&amp;gt;W（x）&amp;lt;/math&amp;gt;值函数（c.f.，Helmholtz分解）指定的流&amp;lt;math&amp;gt;f=\Gamma\cdot\nabla V+\nabla\times W&amp;lt;/math&amp;gt;开始。这里，&amp;lt;math&amp;gt;\Gamma&amp;lt;/math&amp;gt;是随机波动的幅度，成本是&amp;lt;math&amp;gt;c（x）=f\cdot\nabla V+\nabla\cdot\Gamma\cdot V&amp;lt;/math&amp;gt;。流上的先验&amp;lt;math&amp;gt;p（\tilde{x}\mid m）&amp;lt;/math&amp;gt;诱导了一个先验的超状态&amp;lt;math&amp;gt;p（x\mid m）=\exp（V（x））&amp;lt;/math&amp;gt;这是相应的正向[[Kolmogorov方程]]的解。&amp;lt;ref&amp;gt;Friston, K., &amp;amp; Ao, P. (2012). [http://www.fil.ion.ucl.ac.uk/~karl/Free%20Energy%20Value%20and%20Attractors.pdf Free-energy, value and attractors]. Computational and mathematical methods in medicine, 2012, 937860.&amp;lt;/ref&amp;gt;相反，在假设&amp;lt;math&amp;gt;W=0的情况下，最优控制优化了给定成本函数的流量（即，流量没有旋度或具有详细平衡）。通常，这需要向后求解[[Kolmogorov方程]]。&amp;lt;ref&amp;gt;Kappen, H., (2005). [https://arxiv.org/abs/physics/0505066 Path integrals and symmetry breaking for optimal control theory]. Journal of Statistical Mechanics: Theory and Experiment, 11, p. P11011.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===主动推理与最优决策（博弈）理论===&lt;br /&gt;
&lt;br /&gt;
[[最优决策]]问题（通常表示为[[部分可观测马尔可夫决策过程]]）通过将[[效用|效用函数]]吸收到先验信念中，在主动推理中处理。在此设置中，具有高效用（低成本）的状态是代理希望占用的状态。通过给生成模型配备模型控制的隐藏状态，最小化可变自由能的策略（控制序列）会导致高效用状态。 &amp;lt;ref&amp;gt;Friston, K., Samothrakis, S. &amp;amp; Montague, R., (2012). [http://www.fil.ion.ucl.ac.uk/~karl/Active%20inference%20and%20agency%20optimal%20control%20without%20cost%20functions.pdf Active inference and agency: optimal control without cost functions]. Biol. Cybernetics, 106(8–9), 523–41.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
神经生物学上，神经调节剂[[多巴胺]]被认为通过调节编码预测误差的主细胞的增益来报告预测误差的准确性。&amp;lt;ref name=&amp;quot;Friston_a&amp;quot;&amp;gt;Friston, K. J. Shiner T, FitzGerald T, Galea JM, Adams R, Brown H, Dolan RJ, Moran R, Stephan KE, Bestmann S. (2012). [http://www.fil.ion.ucl.ac.uk/~karl/Dopamine%20Affordance%20and%20Active%20Inference.pdf Dopamine, affordance and active inference]. PLoS Comput. Biol., 8(1), p. e1002327.&amp;lt;/ref&amp;gt; 这与多巴胺在报告预测错误“本身”中的作用密切相关，但在形式上与之不同&amp;lt;ref&amp;gt;Fiorillo, C. D., Tobler, P. N. &amp;amp; Schultz, W., (2003). [http://e.guigon.free.fr/rsc/article/FiorilloEtAl03.pdf Discrete coding of reward probability and uncertainty by dopamine neurons]. Science, 299(5614), 1898–902.&amp;lt;/ref&amp;gt;以及与计算账户相关&amp;lt;ref&amp;gt;Frank, M. J., (2005). [http://ski.cog.brown.edu/papers/Frank_JOCN.pdf Dynamic dopamine modulation in the basal ganglia: a neurocomputational account of cognitive deficits in medicated and nonmedicated Parkinsonism]. J Cogn Neurosci., Jan, 1, 51–72.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===主动推理与认知神经科学===&lt;br /&gt;
主动推理已被用于解决[[认知神经科学]]、脑功能和神经精神病学的一系列问题，包括：行动观察，&amp;lt;ref&amp;gt;Friston, K., Mattout, J. &amp;amp; Kilner, J., (2011). [http://www.fil.ion.ucl.ac.uk/~karl/Action%20understanding%20and%20active%20inference.pdf Action understanding and active inference]. Biol Cybern., 104, 137–160.&amp;lt;/ref&amp;gt;镜像神经元，&amp;lt;ref&amp;gt;Kilner, J. M., Friston, K. J. &amp;amp; Frith, C. D., (2007). [http://www.fil.ion.ucl.ac.uk/~karl/Predictive%20coding%20an%20account%20of%20the%20mirror%20neuron%20system.pdf Predictive coding: an account of the mirror neuron system]. Cogn Process., 8(3), pp. 159–66.&amp;lt;/ref&amp;gt; 扫视和视觉搜索，&amp;lt;ref&amp;gt;Friston, K., Adams, R. A., Perrinet, L. &amp;amp; Breakspear, M., (2012). [http://www.fil.ion.ucl.ac.uk/~karl/Perceptions%20as%20hypotheses%20saccades%20as%20experiments.pdf Perceptions as hypotheses: saccades as experiments]. Front Psychol., 3, 151.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Mirza, M., Adams, R., Mathys, C., Friston, K. (2018). [https://journals.plos.org/plosone/article/authors?id=10.1371/journal.pone.0190429 Human visual exploration reduces uncertainty about the sensed world]. PLoS One, 13(1): e0190429 &amp;lt;/ref&amp;gt; 眼球运动，&amp;lt;ref&amp;gt;Perrinet L, Adams R,  Friston, K. [https://link.springer.com/content/pdf/10.1007%2Fs00422-014-0620-8.pdf Active inference, eye movements and oculomotor delays]. Biological Cybernetics, 108(6):777-801, 2014.&amp;lt;/ref&amp;gt;  睡眠，&amp;lt;ref&amp;gt;Hobson, J. A. &amp;amp; Friston, K. J., (2012). [https://www.sciencedirect.com/science/article/pii/S0301008212000706 Waking and dreaming consciousness: Neurobiological and functional considerations]. Prog Neurobiol, 98(1), pp. 82–98.&amp;lt;/ref&amp;gt;幻觉，&amp;lt;ref&amp;gt;Brown, H., &amp;amp; Friston, K. J. (2012). [http://www.fil.ion.ucl.ac.uk/~karl/Free-energy%20and%20illusions%20the%20Cornsweet%20effect.pdf Free-energy and illusions: the cornsweet effect]. Front Psychol , 3, 43.&amp;lt;/ref&amp;gt; 注意，&amp;lt;ref name=&amp;quot;Feldman&amp;quot; /&amp;gt; 动作选择，&amp;lt;ref name=&amp;quot;Friston_a&amp;quot; /&amp;gt; 意识，&amp;lt;ref&amp;gt;{{Cite journal|last1=Rudrauf|first1=David|last2=Bennequin|first2=Daniel|last3=Granic|first3=Isabela|last4=Landini|first4=Gregory|last5=Friston|first5=Karl|last6=Williford|first6=Kenneth|date=2017-09-07|title=A mathematical model of embodied consciousness|journal=Journal of Theoretical Biology|volume=428|pages=106–131|doi=10.1016/j.jtbi.2017.05.032|pmid=28554611|issn=0022-5193|url=http://discovery.ucl.ac.uk/10057795/1/DR_et_al_A_math_model_of_embodied_consciousness_JTBiol_final_revision_for_submission.pdf}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite journal|title=The Projective Consciousness Model and Phenomenal Selfhood|journal = Frontiers in Psychology|volume = 9|pages = 2571|last1=K|first1=Williford|last2=D|first2=Bennequin|date=2018-12-17|language=en|pmid=30618988|pmc = 6304424|last3=K|first3=Friston|last4=D|first4=Rudrauf|doi = 10.3389/fpsyg.2018.02571}}&amp;lt;/ref&amp;gt; hysteria&amp;lt;ref&amp;gt;Edwards, M. J., Adams, R. A., Brown, H., Pareés, I., &amp;amp; Friston, K. J. (2012). [http://www.fil.ion.ucl.ac.uk/~karl/A%20Bayesian%20account%20of%20hysteria.pdf A Bayesian account of 'hysteria']. Brain , 135(Pt 11):3495–512.&amp;lt;/ref&amp;gt; 还有精神病。&amp;lt;ref&amp;gt;Adams RA, Perrinet LU, Friston K. (2012). [https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0047502 Smooth pursuit and visual occlusion: active inference and oculomotor control in schizophrenia]. PLoS One. , 12;7(10):e47502&amp;lt;/ref&amp;gt; 对主动推理中行为的解释常常依赖于这样一种观点，即大脑有“顽固的预测”，它无法更新，从而导致使这些预测成真的行为。&amp;lt;ref&amp;gt;{{Cite journal|last1=Yon|first1=Daniel|last2=Lange|first2=Floris P. de|last3=Press|first3=Clare|date=2019-01-01|title=The Predictive Brain as a Stubborn Scientist|url=https://www.cell.com/trends/cognitive-sciences/abstract/S1364-6613(18)30239-0|journal=Trends in Cognitive Sciences|language=English|volume=23|issue=1|pages=6–8|doi=10.1016/j.tics.2018.10.003|issn=1364-6613|pmid=30429054}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==参考文献==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==编者推荐==&lt;br /&gt;
[[File:自由能原理.jpg|400px|thumb|[https://zhuanlan.zhihu.com/p/365654509 自由能专题1：原理及常见方法]]]&lt;br /&gt;
===集智课程===&lt;br /&gt;
====[https://campus.swarma.org/course/1525 临界现象的标度性与超标度关系]====&lt;br /&gt;
本课程中，将从自由能的奇异部分的齐次性，推出临界现象的标度性与超标度关系。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===知乎文章===&lt;br /&gt;
*[https://zhuanlan.zhihu.com/p/365654509 自由能专题1：原理及常见方法]&lt;br /&gt;
*[https://zhuanlan.zhihu.com/p/365732420 自由能专题2：计算与分析指南（译）]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
本条目由[[用户:水流心不竞|水流心不竞]]翻译，[[用户:Evangeline|Evangeline]]审校，[[用户:薄荷|薄荷]]编辑，如有问题，欢迎在讨论页面进行讨论。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''本词条内容源自wikipedia及公开资料，遵守 CC3.0协议。'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:生物系统]]&lt;br /&gt;
[[Category:系统论]]&lt;br /&gt;
[[Category:计算神经科学]]&lt;br /&gt;
[[Category:数学和理论生物学]]&lt;br /&gt;
[[Category:待润色]]&lt;/div&gt;</summary>
		<author><name>Mugicaxu2</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E8%87%AA%E7%94%B1%E8%83%BD%E5%8E%9F%E7%90%86&amp;diff=34677</id>
		<title>自由能原理</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E8%87%AA%E7%94%B1%E8%83%BD%E5%8E%9F%E7%90%86&amp;diff=34677"/>
		<updated>2024-05-13T13:38:12Z</updated>

		<summary type="html">&lt;p&gt;Mugicaxu2：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#seo:&lt;br /&gt;
|keywords=自由能原理,非平衡稳态,主动推理&lt;br /&gt;
|description=解释了生物系统和非生物系统如何通过将自己限制在有限的几个状态而保持在非平衡稳态。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''自由能原理 Free energy principle'''是一个正式的陈述，它解释了生物系统和非生物系统如何通过将自己限制在有限的几个状态而保持在非平衡稳态。&amp;lt;ref&amp;gt;Ashby, W. R. (1962). [http://csis.pace.edu/~marchese/CS396x/Computing/Ashby.pdf Principles of the self-organizing system].in Principles of Self-Organization: Transactions of the University of Illinois Symposium, H. Von Foerster and G. W. Zopf, Jr. (eds.), Pergamon Press: London, UK, pp. 255–278.&amp;lt;/ref&amp;gt;它表明系统最小化了内部状态的自由能函数，而内部状态包含了对环境中隐藏状态的信任。自由能的内隐最小化在形式上与变分贝叶斯方法 Variational Bayesian methods有关，最初由Karl Friston引入，作为神经科学中对具身知觉的解释，&amp;lt;ref&amp;gt;{{cite journal | last1=Friston | first1=Karl | last2=Kilner | first2=James | last3=Harrison | first3=Lee | title=A free energy principle for the brain | journal=Journal of Physiology-Paris | publisher=Elsevier BV | volume=100 | issue=1–3 | year=2006 | issn=0928-4257 | doi=10.1016/j.jphysparis.2006.10.001 | pmid=17097864 | pages=70–87|url=http://www.fil.ion.ucl.ac.uk/~karl/A%20free%20energy%20principle%20for%20the%20brain.pdf}}&amp;lt;/ref&amp;gt;在那里它也被称为“主动推理”。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
自由能原理解释了一个给定系统的存在，它通过一个[[马尔可夫毯 Markov blanket]]建模，试图最小化他们的世界模型和他们的感觉和相关知觉之间的差异。这种差异可以被描述为“出其不意”，并通过不断修正系统的世界模型来减少这种差异。因此，这个原理是基于贝叶斯的观点，即大脑是一个“推理机”。弗里斯顿为最小化增加了第二条路线：行动。通过积极地将世界改变为预期的状态，系统也可以使系统的自由能最小化。弗里斯顿认为这是所有生物反应的原理。&amp;lt;ref name=&amp;quot;wired20181112&amp;quot;&amp;gt;Shaun Raviv: [https://www.wired.com/story/karl-friston-free-energy-principle-artificial-intelligence/ The Genius Neuroscientist Who Might Hold the Key to True AI]. In: Wired, 13. November 2018&amp;lt;/ref&amp;gt;弗里斯顿还认为，他的原则即适用于精神障碍也适用于人工智能。基于主动推理原则的人工智能实现比其他方法显示出优势。&amp;lt;ref name=&amp;quot;wired20181112&amp;quot; /&amp;gt;关于这一原则的讨论也受到批评，认为它引用的形而上学假设与可检验的科学预测相去甚远，使这一原则不可证伪。在2018年的一次采访中，弗里斯顿承认，自由能原理不能被恰当地证伪: “自由能原理就是它的本来面目——一个原理。就像汉密尔顿的静止作用原理一样，它不能被证伪。这是不能被推翻的。事实上，除非你问可衡量的系统是否符合这一原则，否则你用它做不了什么。”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
自由能原理被批评为很难理解，甚至对专家来说也是如此。&amp;lt;ref&amp;gt;{{cite journal | last=Freed | first=Peter | title=Research Digest | journal=Neuropsychoanalysis | publisher=Informa UK Limited | volume=12 | issue=1 | year=2010 | issn=1529-4145 | doi=10.1080/15294145.2010.10773634 | pages=103–106}}&amp;lt;/ref&amp;gt;对这一原则的讨论也被批评为援引了形而上学远离可检验的科学预测的假设，使这一原则成为不可证伪的。&amp;lt;ref&amp;gt;{{cite journal | last1=Colombo | first1=Matteo | last2=Wright | first2=Cory | title=First principles in the life sciences: the free-energy principle, organicism, and mechanism | journal=Synthese | publisher=Springer Science and Business Media LLC | date=2018-09-10 | issn=0039-7857 | doi=10.1007/s11229-018-01932-w | page=|doi-access=free}}&amp;lt;/ref&amp;gt;在2018年的一次采访中，弗里斯顿承认自由能原则并不恰当[[可证伪性|可证伪性]]：“自由能原则就是它的本来面目-一个原则。与[[最小作用原理|哈密顿定常作用原理]]一样，它是不可证伪的。这是无法反驳的。事实上，除非你问可测量系统是否符合这一原则，否则你对此无能为力。”&amp;lt;ref&amp;gt;{{Cite journal|last=Friston|first=Karl|date=2018|title=Of woodlice and men: A Bayesian account of cognition, life and consciousness. An interview with Karl Friston (by Martin Fortier &amp;amp; Daniel Friedman)|url=https://www.aliusresearch.org/bulletin02.html|journal=ALIUS Bulletin|volume=2|pages=17–43|via=}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 背景==&lt;br /&gt;
自我组织的生物系统——比如细胞或大脑——可以被理解为最小化变分自由能的概念，是基于亥姆霍兹在无意识推理&amp;lt;ref name=&amp;quot;Helmholtz&amp;quot;&amp;gt;Helmholtz, H. (1866/1962). Concerning the perceptions in general. In Treatise on physiological optics (J. Southall, Trans., 3rd ed., Vol. III). New York: Dover.&amp;lt;/ref&amp;gt;以及随后的心理学&amp;lt;ref&amp;gt;{{cite journal | title=Perceptions as hypotheses | journal=Philosophical Transactions of the Royal Society of London. B, Biological Sciences | publisher=The Royal Society | volume=290 | issue=1038 | date=1980-07-08 | issn=0080-4622 | doi=10.1098/rstb.1980.0090 | pmid=6106237 | bibcode=1980RSPTB.290..181G | pages=181–197|jstor=2395424| last1=Gregory | first1=R. L. | doi-access=free }}&amp;lt;/ref&amp;gt;和机器学习&amp;lt;ref name=&amp;quot;Dayan&amp;quot;&amp;gt;{{cite journal | last1=Dayan | first1=Peter | last2=Hinton | first2=Geoffrey E. | last3=Neal | first3=Radford M. | last4=Zemel | first4=Richard S. | title=The Helmholtz Machine | journal=Neural Computation | publisher=MIT Press - Journals | volume=7 | issue=5 | year=1995 | issn=0899-7667 | doi=10.1162/neco.1995.7.5.889 | pmid=7584891 | pages=889–904|url=http://www.gatsby.ucl.ac.uk/~dayan/papers/hm95.pdf}}&amp;lt;/ref&amp;gt;治疗方面的工作。变分自由能是观测值及其隐含原因的概率密度的函数。这个变分密度的定义关系到一个概率模型，从假设的原因产生预测观测。在这种情况下，自由能提供了一个近似贝叶斯模型&amp;lt;ref&amp;gt;Beal, M. J. (2003). [http://www.cse.buffalo.edu/faculty/mbeal/papers/beal03.pdf Variational Algorithms for Approximate Bayesian Inference]. Ph.D. Thesis, University College London.&amp;lt;/ref&amp;gt;的证据。因此，它的最小化可以被看作是一个贝叶斯推断过程。当一个系统积极地进行观测以最小化自由能时，它隐含地进行了积极推理并最大化其世界模型的证据。&lt;br /&gt;
&lt;br /&gt;
然而，自由能也是结果自信息的一个上限，长期的平均值是[[熵]]。这意味着，如果一个系统采取行动来最小化自由能，它将隐含地放置一个熵的结果-或感官状态-它的样本上限。&amp;lt;ref name=&amp;quot;Friston&amp;quot;&amp;gt;{{cite journal | last=Karl | first=Friston | title=A Free Energy Principle for Biological Systems | journal=Entropy | publisher=MDPI AG | volume=14 | issue=11 | date=2012-10-31 | issn=1099-4300 | doi=10.3390/e14112100 | pmid=23204829 | bibcode=2012Entrp..14.2100K | pages=2100–2121| pmc=3510653 |url=http://www.fil.ion.ucl.ac.uk/~karl/A%20Free%20Energy%20Principle%20for%20Biological%20Systems.pdf|doi-access=free}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal | last1=Colombo | first1=Matteo | last2=Wright | first2=Cory | title=First principles in the life sciences: the free-energy principle, organicism, and mechanism | journal=Synthese | publisher=Springer Science and Business Media LLC | date=2018-09-10 | issn=0039-7857 | doi=10.1007/s11229-018-01932-w | page=|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 与其他理论的关系===&lt;br /&gt;
主动推理与良好的调节器定理以及自组织的相关理论，如自组装、模式形成、自创生和拓扑实践密切相关。它涉及控制论、协同学和具身认知理论中所考虑的主题。由于自由能可以用变分密度下观测值的期望能量减去其熵来表示，因此它也与最大熵原理有关。最后，由于能量的时间平均值是作用量，因此最小变分自由能原理是最小作用量原理。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
主动推理与[[灵活调整|好调节器定理]]密切相关&amp;lt;ref&amp;gt;Conant, R. C., &amp;amp; Ashby, R. W. (1970). [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.161.3702&amp;amp;rep=rep1&amp;amp;type=pdf Every Good Regulator of a system must be a model of that system]. Int. J. Systems Sci. , 1 (2), 89–97.&amp;lt;/ref&amp;gt;以及与[[自组织]]的内容相关，&amp;lt;ref&amp;gt;Kauffman, S. (1993). [https://books.google.com/books?hl=en&amp;amp;lr=&amp;amp;id=lZcSpRJz0dgC&amp;amp;oi=fnd&amp;amp;pg=PR13&amp;amp;dq=%22The+Origins+of+Order:+Self-Organization+and+Selection+in+Evolution%22&amp;amp;ots=9_GMeW6MVv&amp;amp;sig=9qVR16wmBt2M6QL9xJu9wkeqGtg#v=onepage&amp;amp;q=%22The%20Origins%20of%20Order%3A%20Self-Organization%20and%20Selection%20in%20Evolution%22&amp;amp;f=false The Origins of Order: Self-Organization and Selection in Evolution]. Oxford: Oxford University Press.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Nicolis, G., &amp;amp; Prigogine, I. (1977). Self-organization in non-equilibrium systems. New York: John Wiley.&amp;lt;/ref&amp;gt; 例如自组装，模式形成，自生&amp;lt;ref&amp;gt;Maturana, H. R., &amp;amp; Varela, F. (1980). [http://topologicalmedialab.net/xinwei/classes/readings/Maturana/autopoesis_and_cognition.pdf Autopoiesis: the organization of the living]. In V. F. Maturana HR (Ed.), Autopoiesis and Cognition. Dordrecht, Netherlands: Reidel.&amp;lt;/ref&amp;gt;和实践&amp;lt;ref&amp;gt;Nikolić, D. (2015). [https://www.sciencedirect.com/science/article/pii/S002251931500106X Practopoiesis: Or how life fosters a mind]. Journal of theoretical biology, 373, 40-61.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
它解决了[[控制论]]，[[协同学]]中考虑的主题&amp;lt;ref&amp;gt;Haken, H. (1983). Synergetics: An introduction. Non-equilibrium phase transition and self-organisation in physics, chemistry and biology (3rd ed.). Berlin: Springer Verlag.&amp;lt;/ref&amp;gt;以及[[具身认知]]。由于自由能可以表示为变分密度下观测值的期望能量减去其熵，因此它也与[[最大熵原理]]有关。&amp;lt;ref&amp;gt;Jaynes, E. T. (1957). [http://bayes.wustl.edu/etj/articles/theory.1.pdf Information Theory and Statistical Mechanics]. Physical Review Series II, 106 (4), 620–30.&amp;lt;/ref&amp;gt; 最后，由于能量的时间平均是作用量，最小变分自由能原理是一种[[最小作用原理]]。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
这些示意图说明了如何将状态划分为内部状态和隐藏状态或外部状态，这些状态由一个马尔可夫毯（包括感觉状态和活动状态）分隔开来。下面的面板显示了这个分区，因为它将应用于大脑中的动作和感知；活动和内部状态将感官状态的自由能功能最小化。随后内部状态的自组织与感知相对应，而动作将大脑状态与外部状态耦合。上面的面板显示完全相同的依赖性，但重新排列，使内部状态与细胞内状态相关联，而感觉状态成为细胞膜的表面状态覆盖活性状态（例如，细胞骨架的肌动蛋白丝）。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 定义 ==&lt;br /&gt;
[[Image:MarokovBlanketFreeEnergyFigure.jpg|500px|right|thumb|这些示意图说明了将状态划分为内部状态和隐藏状态或外部状态，这些状态由一个马尔可夫毯（包括感觉状态和活动状态）隔开。下面的面板显示了这个分区，因为它将应用于大脑中的动作和感知；活动和内部状态将感官状态的自由能功能最小化。随后内部状态的自组织与感知相对应，而动作将大脑状态与外部状态耦合。上面的面板显示了完全相同的依赖性，但重新排列，使内部状态与细胞内状态相关联，而感觉状态则成为细胞膜上覆盖活性状态的表面状态（例如，细胞骨架的肌动蛋白丝）]]&lt;br /&gt;
&lt;br /&gt;
定义（连续公式）：主动推理依赖于元组&amp;lt;math&amp;gt;(\Omega,\Psi,S,A,R,q,p)&amp;lt;/math&amp;gt; ,&lt;br /&gt;
&lt;br /&gt;
*“一个样本空间”&amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt;–从中提取随机波动&amp;lt;math&amp;gt;\Omega\in\Omega&amp;lt;/math&amp;gt;&lt;br /&gt;
*“隐藏或外部状态”&amp;lt;math&amp;gt;\Psi:\Psi\times A\times\Omega\to\mathbb{R}&amp;lt;/math&amp;gt;——引起感觉状态并依赖于动作&lt;br /&gt;
*“感觉状态”&amp;lt;math&amp;gt;S:\Psi\times A\times\Omega\to\mathbb{R}&amp;lt;/math&amp;gt;——动作和隐藏状态的概率映射&lt;br /&gt;
*“动作”&amp;lt;math&amp;gt;A:S\times R \to \mathbb{R}&amp;lt;/math&amp;gt;——这取决于感觉和内部状态&lt;br /&gt;
*“内部状态”&amp;lt;math&amp;gt;R:R\times S\to\mathbb{R}&amp;lt;/math&amp;gt;——引起动作并依赖于感觉状态&lt;br /&gt;
*“生成密度”&amp;lt;math&amp;gt;p(s, \psi \mid m)&amp;lt;/math&amp;gt;——在生成模型下的感觉和隐藏状态&lt;br /&gt;
*“变分密度”&amp;lt;math&amp;gt;q(\psi \mid \mu)&amp;lt;/math&amp;gt;–由R中的内部状态&amp;lt;math&amp;gt;\mu \in R&amp;lt;/math&amp;gt;参数化的隐藏状态&amp;lt;math&amp;gt;\psi \in \Psi&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
其目的是最大限度地提高模型的证据，或者最大限度地减少惊喜。这通常涉及隐状态的棘手边缘化，因此用变分自由能上界代替惊奇。这个公式建立在一个马尔可夫毯子(包括行动和感官状态) ，分离内部和外部状态。如果内部状态和作用力使自由能最小化，那么它们在感觉状态的熵上设置了一个上限&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===行动与感知===&lt;br /&gt;
目标是最大化模型证据&amp;lt;math&amp;gt;p(s\mid m)&amp;lt;/math&amp;gt;或最小化意外&amp;lt;math&amp;gt;-\log p(s\mid m)&amp;lt;/math&amp;gt;。这通常涉及隐藏态的难以处理的边缘化，因此意外被一个较高的变分自由能边界所取代。&amp;lt;ref name=&amp;quot;Dayan&amp;quot;/&amp;gt;然而，这意味着内部状态也必须最小化自由能，因为自由能是感官和内部状态的函数：&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;  a(t) = \underset{a}{\operatorname{arg\,min}}   \{ F(s(t),\mu(t)) \}&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;\mu(t) = \underset{\mu}{\operatorname{arg\,min}} \{ F(s(t),\mu)) \}  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\underset{\mathrm{free-energy}} {\underbrace{F(s,\mu)}} = \underset{\mathrm{energy}} {\underbrace{ E_q[-\log p(s,\psi \mid m)]}} - \underset{\mathrm{entropy}} {\underbrace{ H[q(\psi \mid \mu)]}}&lt;br /&gt;
= \underset{\mathrm{surprise}} {\underbrace{ -\log p(s \mid m)}} + \underset{\mathrm{divergence}} {\underbrace{ D_{\mathrm{KL}}[q(\psi \mid \mu) \parallel p(\psi \mid s,m)]}} &lt;br /&gt;
  \geq \underset{\mathrm{surprise}} {\underbrace{ -\log p(s \mid m)}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
这导致了一个双重最小化的行动和内部状态，分别对应于行动和感知。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==自由能最小化==&lt;br /&gt;
===自由能最小化和自组织===&lt;br /&gt;
&lt;br /&gt;
变分自由能是一种信息论泛函，不同于热力学（亥姆霍兹）自由能。然而，变分自由能的复杂性项与亥姆霍兹自由能具有相同的固定点（假设系统是热力学闭合的，而不是孤立的）。这是因为如果感觉干扰暂停（适当长的时间） ，复杂性是最小的（因为准确性可以忽略）。在这一点上，系统处于平衡状态，内部状态通过最小能量原理使亥姆霍兹自由能最小。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
自由能最小化被认为是[[自组织系统]]的一个标志。&amp;lt;ref&amp;gt;Crauel, H., &amp;amp; Flandoli, F. (1994). [https://www.researchgate.net/profile/Hans_Crauel/publication/227072665_Attractor_for_random_dynamical_systems/links/57c2033708aed246b0fe05b5/Attractor-for-random-dynamical-systems.pdf Attractors for random dynamical systems]. Probab Theory Relat Fields, 100, 365–393.&amp;lt;/ref&amp;gt; 这个公式建立在一个[[马尔可夫毯]]（包括行动和感觉状态）分离内部和外部状态。如果内部状态和行为使自由能最小化，那么它们就给感官状态的熵设置了一个上限。&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; \lim_{T\to\infty} \frac{1}{T} \underset{\text{free-action}} {\underbrace{\int_0^T F(s(t),\mu (t))\,dt}}  \ge&lt;br /&gt;
\lim_{T\to\infty} \frac{1}{T} \int_0^T \underset{\text{surprise}}{\underbrace{-\log p(s(t)\mid m)}} \, dt = H[p(s\mid m)] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
自由能最小化相当于最大化感观状态和内部状态之间的互信息，使变分密度参数化（对于固定熵变分密度）。利用信息论描述最优行为的相关处理。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
这是因为在遍历假设下，惊喜的长期平均值是熵。这个界限抵抗了一种自然的无序倾向，这种无序倾向与[[热力学第二定律]]和[[涨落定理]]有关。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===自由能最小化与贝叶斯推理===&lt;br /&gt;
&lt;br /&gt;
自由能最小化为在不确定性条件下建立神经元推理和学习的规范（贝叶斯最优）模型提供了一种有用的方法，因此符合贝叶斯脑假设。由自由能最小化描述的神经元过程取决于隐藏状态的性质：&amp;lt;math&amp;gt; \Psi = X \times \Theta \times \Pi &amp;lt;/math&amp;gt;，它可以包括时间相关变量、时不变参数和随机波动的精度（逆方差或温度）。最小化变量、参数和精度分别对应于推理、学习和不确定性编码。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
所有的贝叶斯推断都可以用自由能最小化来表示，例如，&amp;lt;ref&amp;gt;Roweis, S., &amp;amp; [[Zoubin Ghahramani|Ghahramani, Z.]] (1999). [http://authors.library.caltech.edu/13697/1/ROWnc99.pdf A unifying review of linear Gaussian models]. Neural Computat. , 11 (2), 305–45. {{doi|10.1162/089976699300016674}}&amp;lt;/ref&amp;gt;当自由能相对于内部态最小化时，隐态上变分密度和后验密度之间的[[Kullback–Leibler散度]]最小化。当变分密度的形式固定时，这对应于近似的[[贝叶斯推理]]，否则对应于精确的[[贝叶斯推理]]。因此，自由能最小化提供了贝叶斯推理和滤波的一般描述（例如，[[卡尔曼滤波]]）。它也用于贝叶斯模型选择，其中自由能可以有效地分解为复杂性和准确性：&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; \underset{\text{free-energy}} {\underbrace{ F(s,\mu)}} = \underset{\text{complexity}} {\underbrace{ D_\mathrm{KL}[q(\psi\mid\mu)\parallel p(\psi\mid m)]}} - \underset{\mathrm{accuracy}} {\underbrace{E_q[\log p(s\mid\psi,m)]}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
自由能最小化使知觉中的无意识推理的概念正规化&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
具有最小自由能的模型提供了数据的精确解释，降低了复杂性成本（参见奥卡姆剃刀和计算成本的更正式的处理方法&amp;lt;ref&amp;gt;Ortega, P. A., &amp;amp; Braun, D. A. (2012). [http://rspa.royalsocietypublishing.org/content/469/2153/20120683 Thermodynamics as a theory of decision-making with information processing costs].  Proceedings of the Royal Society A, vol. 469, no. 2153 (20120683) .&amp;lt;/ref&amp;gt;)。这里，复杂性是变分密度和关于隐藏状态的先验信念（即用于解释数据的有效自由度）之间的差异。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===自由能最小化与热力学===&lt;br /&gt;
&lt;br /&gt;
变分自由能是一种信息论泛函，不同于热力学[[Helmholtz自由能]]。&amp;lt;ref&amp;gt;Evans, D. J. (2003). [http://rscweb.anu.edu.au/~evans/papers/NEFET.pdf A non-equilibrium free energy theorem for deterministic systems]. Molecular Physics , 101, 15551–4.&amp;lt;/ref&amp;gt;然而，变分自由能的复杂性项与Helmholtz自由能具有相同的不动点（假设系统是热力学封闭而非孤立的）。这是因为如果感官干扰被暂停（一段适当长的时间），复杂性被最小化（因为准确度可以忽略）。此时，系统处于平衡状态，内部状态根据[[最小能量原理]]&amp;lt;ref&amp;gt;Jarzynski, C. (1997). [https://arxiv.org/abs/cond-mat/9610209 Nonequilibrium equality for free energy differences]. Phys. Rev. Lett., 78, 2690.&amp;lt;/ref&amp;gt;使亥姆霍兹自由能最小化。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===自由能最小化与信息论===&lt;br /&gt;
&lt;br /&gt;
自由能最小化相当于最大化感官状态和内部状态之间的[[互信息]]，使变分密度参数化（对于固定熵变分密度）&amp;lt;ref name=&amp;quot;Friston&amp;quot; /&amp;gt;这将自由能最小化与最小冗余原则联系起来。&amp;lt;ref&amp;gt;Barlow, H. (1961). [http://www.trin.cam.ac.uk/horacebarlow/21.pdf Possible principles underlying the transformations of sensory messages]  In W. Rosenblith (Ed.), Sensory Communication (pp. 217-34). Cambridge, MA: MIT Press.&amp;lt;/ref&amp;gt;并且联系到用信息论描述最优行为的相关处理&amp;lt;ref&amp;gt;Linsker, R. (1990).[https://www.annualreviews.org/doi/pdf/10.1146/annurev.ne.13.030190.001353 Perceptual neural organization: some approaches based on network models and information theory]. Annu Rev Neurosci. , 13, 257–81.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Bialek, W., Nemenman, I., &amp;amp; Tishby, N. (2001). [http://www.princeton.edu/~wbialek/our_papers/bnt_01a.pdf Predictability, complexity, and learning]. Neural Computat., 13 (11), 2409–63.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==神经科学中的自由能最小化==&lt;br /&gt;
&lt;br /&gt;
自由能最小化为在不确定性条件下建立神经元推理和学习的规范（Bayes最优）模型提供了一种有效的方法&amp;lt;ref&amp;gt;Friston, K. (2010). [http://www.fil.ion.ucl.ac.uk/~karl/The%20free-energy%20principle%20A%20unified%20brain%20theory.pdf The free-energy principle: a unified brain theory?] Nat Rev Neurosci. , 11 (2), 127–38.&amp;lt;/ref&amp;gt; 因此符合[[贝叶斯脑]]假说&amp;lt;ref&amp;gt;Knill, D. C., &amp;amp; Pouget, A. (2004). [http://mrl.isr.uc.pt/pub/bscw.cgi/d27540/ReviewKnillPouget2.pdf The Bayesian brain: the role of uncertainty in neural coding and computation]. Trends Neurosci. , 27 (12), 712–9.&amp;lt;/ref&amp;gt;。由自由能最小化描述的神经元过程取决于隐藏状态的性质：&amp;lt;math&amp;gt;\Psi=X\times\Theta\times\Pi&amp;lt;/math&amp;gt;，它可以包括时间相关变量、时不变参数和随机波动的精度（逆方差或温度）。最小化变量、参数和精度分别对应于推理、学习和不确定性编码。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===感性推理与分类===&lt;br /&gt;
&lt;br /&gt;
自由能最小化使知觉中的[[无意识推理]]概念正式化&amp;lt;ref name=&amp;quot;Helmholtz&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;Dayan&amp;quot; /&amp;gt;并提供了神经元处理的规范（贝叶斯）理论。神经元动力学的相关过程理论是基于通过梯度下降最小化自由能。这对应于[[广义滤波|广义贝叶斯滤波]]（其中~表示广义运动坐标中的变量，&amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;是一个导数矩阵运算符）：&amp;lt;ref&amp;gt;Friston, K., Stephan, K., Li, B., &amp;amp; Daunizeau, J. (2010). [http://www.fil.ion.ucl.ac.uk/~karl/Generalised%20Filtering.pdf Generalised Filtering]. Mathematical Problems in Engineering, vol., 2010, 621670&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\dot{\tilde{\mu}} = D \tilde{\mu} - \partial_{\mu}F(s,\mu)\Big|_{\mu = \tilde{\mu}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
通常，定义自由能的生成模型是非线性和层次结构的（就像大脑中的皮层层次结构）。广义滤波的特殊情况包括[[卡尔曼滤波]]，它在形式上等价于[预测编码]]&amp;lt;ref&amp;gt;Rao, R. P., &amp;amp; Ballard, D. H. (1999). [https://www.cs.utexas.edu/users/dana/nn.pdf Predictive coding in the visual cortex: a functional interpretation of some extra-classical receptive-field effects]. Nat Neurosci. , 2 (1), 79–87.&amp;lt;/ref&amp;gt; 一种关于大脑中信息传递的流行隐喻。在分层模型下，预测编码涉及到上升（自下而上）预测错误和下降（自上而下）预测的循环交换&amp;lt;ref name=&amp;quot;Mumford&amp;quot;&amp;gt;Mumford, D. (1992). [http://cs.brown.edu/people/tld/projects/cortex/course/suggested_reading_list/supplements/documents/MumfordBC-92.pdf On the computational architecture of the neocortex]. II. Biol. Cybern. , 66, 241–51.&amp;lt;/ref&amp;gt;这与感觉器官的解剖学和生理学&amp;lt;ref&amp;gt;Bastos, A. M., Usrey, W. M., Adams, R. A., Mangun, G. R., Fries, P., &amp;amp; Friston, K. J. (2012). [http://www.fil.ion.ucl.ac.uk/~karl/Canonical%20Microcircuits%20for%20Predictive%20Coding.pdf Canonical microcircuits for predictive coding]. Neuron , 76 (4), 695–711.&amp;lt;/ref&amp;gt;以及动力系统&amp;lt;ref&amp;gt;Adams, R. A., Shipp, S., &amp;amp; Friston, K. J. (2013). [http://www.fil.ion.ucl.ac.uk/~karl/Predictions%20not%20commands%20-%20active%20inference%20in%20the%20motor%20system.pdf Predictions not commands: active inference in the motor system]. Brain Struct Funct. , 218 (3), 611–43&amp;lt;/ref&amp;gt;是一致的。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===知觉学习与记忆===&lt;br /&gt;
&lt;br /&gt;
在预测编码中，通过自由能（自由作用）时间积分的梯度上升来优化模型参数会降低到联想或[[Hebbian理论| Hebbian可塑性]]，并与大脑中的[[synaptic可塑性]]相关。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===知觉的精确性、注意力和显著性===&lt;br /&gt;
&lt;br /&gt;
优化精度参数对应于优化预测误差的增益（参见Kalman增益）。在预测性编码的神经元似是而非的实现中，&amp;lt;ref name=&amp;quot;Mumford&amp;quot; /&amp;gt;这对应于优化浅表锥体细胞的兴奋性，并被解释为注意增益。&amp;lt;ref name=&amp;quot;Feldman&amp;quot;&amp;gt;Feldman, H., &amp;amp; Friston, K. J. (2010). [http://www.fil.ion.ucl.ac.uk/~karl/Attention%20uncertainty%20and%20free-energy.pdf Attention, uncertainty, and free-energy]. Frontiers in Human Neuroscience, 4, 215.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:PESAIM.jpg|thumb|400px|在多目标环境下，通过对名为PE-SAIM的SAIM进行贝叶斯重构，模拟选择性注意任务的结果。图表显示了知识网络中FOA和两个模板单元激活的时间过程。]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
关于自上而下与自下而上的争论，已经被作为一个主要的开放性问题的注意，一个计算模型已经成功地说明了自上而下和自下而上机制之间的往复循环性质。利用已建立的注意涌现模型SAIM，作者提出了一个称为PE-SAIM的模型，与标准模型相比，该模型从自上而下的立场接近选择性注意。该模型考虑了发送到同一级别或更高级别的转发预测误差，以最小化表示数据及其原因之间的差异的能量函数，换句话说，生成模型和后验模型之间的差异。为了提高有效性，他们还在模型中加入了刺激物之间的神经竞争。该模型的一个显著特点是仅根据任务执行过程中的预测误差来重新构造自由能函数。&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\partial E^{total}(Y^{VP},X^{SN},x^{CN},y^{KN})}{\partial y^{SN}_{mn}}=x^{CN}_{mn}-b^{CN}\varepsilon^{CN}_{nm}+b^{CN}\sum_{k}(\varepsilon^{KN}_{knm})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
其中，&amp;lt;math&amp;gt;E^{total}&amp;lt;/math&amp;gt;是神经网络的总[[能量函数]]，&amp;lt;math&amp;gt;\varepsilon^{KN}_{knm}&amp;lt;/math&amp;gt;是生成模型（先验）和后验随时间变化的预测误差。&amp;lt;ref name=&amp;quot;Abadi&amp;quot;&amp;gt;Abadi K.A., Yahya K., Amini M., Heinke D. &amp;amp; Friston, K. J. (2019). [https://royalsocietypublishing.org/doi/full/10.1098/rsif.2018.0344 Excitatory versus inhibitory feedback in Bayesian formulations of scene construction]. 16 R. Soc. Interface&amp;lt;/ref&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
比较这两个模型的结果发现他们的结果之间有显著的相似性，同时指出了一个显著的差异，即在SAIM的标准版本中，模型的重点主要是兴奋性连接，而在PE-SAIM中，抑制性连接将被用来进行推断。该模型对人体实验的脑电和功能磁共振数据具有较高的预测精度。该模型还被证明适合以高精度预测从人体实验中提取的 EEG 和 fMRI 数据。同样，Yahya 等人。还应用自由能原理提出了一个主要依赖于 SAIM 的隐性选择性视觉注意中的模板匹配计算模型。&amp;lt;ref name=&amp;quot;Yahya&amp;quot;&amp;gt; Yahya K., Fard P.R., &amp;amp; Friston, K.J. (2014). [DOI: 10.1007/s10339-013-0597-6 A free energy approach to visual attention: a connectionist model]. Cogn Process (2014) 15:107. &amp;lt;/ref&amp;gt;根据这项研究，通过在原始神经网络中插入自上而下的信号来达到整个状态空间的总自由能，由此我们推导出一个包含前馈和后向预测误差的动力学系统。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==主动推理==&lt;br /&gt;
当梯度下降应用于动作&amp;lt;math&amp;gt; \dot{a} = -\partial_aF(s,\tilde{\mu}) &amp;lt;/math&amp;gt;时，运动控制可以理解为通过下降（皮质脊髓）预测参与的经典反射弧。这提供了一种形式主义，将平衡点解推广到[[自由度问题]]&amp;lt;ref&amp;gt;Feldman, A. G., &amp;amp; Levin, M. F. (1995). [http://e.guigon.free.fr/rsc/article/FeldmanLevin95.pdf The origin and use of positional frames of reference in motor control]. Behav Brain Sci. , 18, 723–806.&amp;lt;/ref&amp;gt;移动轨迹。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===主动推理与最优控制===&lt;br /&gt;
主动推理与[[最优控制]]有关，它用状态转移或流的先验信念替换价值或成本函数。&amp;lt;ref&amp;gt;Friston, K., (2011). [http://www.fil.ion.ucl.ac.uk/~karl/What%20Is%20Optimal%20about%20Motor%20Control.pdf What is optimal about motor control?]. Neuron, 72(3), 488–98.&amp;lt;/ref&amp;gt;这充分利用了贝叶斯滤波和[[Bellman方程]]解之间的紧密联系。然而，主动推理从状态空间的标量&amp;lt;math&amp;gt;V（x）&amp;lt;/math&amp;gt;和向量&amp;lt;math&amp;gt;W（x）&amp;lt;/math&amp;gt;值函数（c.f.，Helmholtz分解）指定的流&amp;lt;math&amp;gt;f=\Gamma\cdot\nabla V+\nabla\times W&amp;lt;/math&amp;gt;开始。这里，&amp;lt;math&amp;gt;\Gamma&amp;lt;/math&amp;gt;是随机波动的幅度，成本是&amp;lt;math&amp;gt;c（x）=f\cdot\nabla V+\nabla\cdot\Gamma\cdot V&amp;lt;/math&amp;gt;。流上的先验&amp;lt;math&amp;gt;p（\tilde{x}\mid m）&amp;lt;/math&amp;gt;诱导了一个先验的超状态&amp;lt;math&amp;gt;p（x\mid m）=\exp（V（x））&amp;lt;/math&amp;gt;这是相应的正向[[Kolmogorov方程]]的解。&amp;lt;ref&amp;gt;Friston, K., &amp;amp; Ao, P. (2012). [http://www.fil.ion.ucl.ac.uk/~karl/Free%20Energy%20Value%20and%20Attractors.pdf Free-energy, value and attractors]. Computational and mathematical methods in medicine, 2012, 937860.&amp;lt;/ref&amp;gt;相反，在假设&amp;lt;math&amp;gt;W=0的情况下，最优控制优化了给定成本函数的流量（即，流量没有旋度或具有详细平衡）。通常，这需要向后求解[[Kolmogorov方程]]。&amp;lt;ref&amp;gt;Kappen, H., (2005). [https://arxiv.org/abs/physics/0505066 Path integrals and symmetry breaking for optimal control theory]. Journal of Statistical Mechanics: Theory and Experiment, 11, p. P11011.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===主动推理与最优决策（博弈）理论===&lt;br /&gt;
&lt;br /&gt;
[[最优决策]]问题（通常表示为[[部分可观测马尔可夫决策过程]]）通过将[[效用|效用函数]]吸收到先验信念中，在主动推理中处理。在此设置中，具有高效用（低成本）的状态是代理希望占用的状态。通过给生成模型配备模型控制的隐藏状态，最小化可变自由能的策略（控制序列）会导致高效用状态。 &amp;lt;ref&amp;gt;Friston, K., Samothrakis, S. &amp;amp; Montague, R., (2012). [http://www.fil.ion.ucl.ac.uk/~karl/Active%20inference%20and%20agency%20optimal%20control%20without%20cost%20functions.pdf Active inference and agency: optimal control without cost functions]. Biol. Cybernetics, 106(8–9), 523–41.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
神经生物学上，神经调节剂[[多巴胺]]被认为通过调节编码预测误差的主细胞的增益来报告预测误差的准确性。&amp;lt;ref name=&amp;quot;Friston_a&amp;quot;&amp;gt;Friston, K. J. Shiner T, FitzGerald T, Galea JM, Adams R, Brown H, Dolan RJ, Moran R, Stephan KE, Bestmann S. (2012). [http://www.fil.ion.ucl.ac.uk/~karl/Dopamine%20Affordance%20and%20Active%20Inference.pdf Dopamine, affordance and active inference]. PLoS Comput. Biol., 8(1), p. e1002327.&amp;lt;/ref&amp;gt; 这与多巴胺在报告预测错误“本身”中的作用密切相关，但在形式上与之不同&amp;lt;ref&amp;gt;Fiorillo, C. D., Tobler, P. N. &amp;amp; Schultz, W., (2003). [http://e.guigon.free.fr/rsc/article/FiorilloEtAl03.pdf Discrete coding of reward probability and uncertainty by dopamine neurons]. Science, 299(5614), 1898–902.&amp;lt;/ref&amp;gt;以及与计算账户相关&amp;lt;ref&amp;gt;Frank, M. J., (2005). [http://ski.cog.brown.edu/papers/Frank_JOCN.pdf Dynamic dopamine modulation in the basal ganglia: a neurocomputational account of cognitive deficits in medicated and nonmedicated Parkinsonism]. J Cogn Neurosci., Jan, 1, 51–72.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===主动推理与认知神经科学===&lt;br /&gt;
主动推理已被用于解决[[认知神经科学]]、脑功能和神经精神病学的一系列问题，包括：行动观察，&amp;lt;ref&amp;gt;Friston, K., Mattout, J. &amp;amp; Kilner, J., (2011). [http://www.fil.ion.ucl.ac.uk/~karl/Action%20understanding%20and%20active%20inference.pdf Action understanding and active inference]. Biol Cybern., 104, 137–160.&amp;lt;/ref&amp;gt;镜像神经元，&amp;lt;ref&amp;gt;Kilner, J. M., Friston, K. J. &amp;amp; Frith, C. D., (2007). [http://www.fil.ion.ucl.ac.uk/~karl/Predictive%20coding%20an%20account%20of%20the%20mirror%20neuron%20system.pdf Predictive coding: an account of the mirror neuron system]. Cogn Process., 8(3), pp. 159–66.&amp;lt;/ref&amp;gt; 扫视和视觉搜索，&amp;lt;ref&amp;gt;Friston, K., Adams, R. A., Perrinet, L. &amp;amp; Breakspear, M., (2012). [http://www.fil.ion.ucl.ac.uk/~karl/Perceptions%20as%20hypotheses%20saccades%20as%20experiments.pdf Perceptions as hypotheses: saccades as experiments]. Front Psychol., 3, 151.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Mirza, M., Adams, R., Mathys, C., Friston, K. (2018). [https://journals.plos.org/plosone/article/authors?id=10.1371/journal.pone.0190429 Human visual exploration reduces uncertainty about the sensed world]. PLoS One, 13(1): e0190429 &amp;lt;/ref&amp;gt; 眼球运动，&amp;lt;ref&amp;gt;Perrinet L, Adams R,  Friston, K. [https://link.springer.com/content/pdf/10.1007%2Fs00422-014-0620-8.pdf Active inference, eye movements and oculomotor delays]. Biological Cybernetics, 108(6):777-801, 2014.&amp;lt;/ref&amp;gt;  睡眠，&amp;lt;ref&amp;gt;Hobson, J. A. &amp;amp; Friston, K. J., (2012). [https://www.sciencedirect.com/science/article/pii/S0301008212000706 Waking and dreaming consciousness: Neurobiological and functional considerations]. Prog Neurobiol, 98(1), pp. 82–98.&amp;lt;/ref&amp;gt;幻觉，&amp;lt;ref&amp;gt;Brown, H., &amp;amp; Friston, K. J. (2012). [http://www.fil.ion.ucl.ac.uk/~karl/Free-energy%20and%20illusions%20the%20Cornsweet%20effect.pdf Free-energy and illusions: the cornsweet effect]. Front Psychol , 3, 43.&amp;lt;/ref&amp;gt; 注意，&amp;lt;ref name=&amp;quot;Feldman&amp;quot; /&amp;gt; 动作选择，&amp;lt;ref name=&amp;quot;Friston_a&amp;quot; /&amp;gt; 意识，&amp;lt;ref&amp;gt;{{Cite journal|last1=Rudrauf|first1=David|last2=Bennequin|first2=Daniel|last3=Granic|first3=Isabela|last4=Landini|first4=Gregory|last5=Friston|first5=Karl|last6=Williford|first6=Kenneth|date=2017-09-07|title=A mathematical model of embodied consciousness|journal=Journal of Theoretical Biology|volume=428|pages=106–131|doi=10.1016/j.jtbi.2017.05.032|pmid=28554611|issn=0022-5193|url=http://discovery.ucl.ac.uk/10057795/1/DR_et_al_A_math_model_of_embodied_consciousness_JTBiol_final_revision_for_submission.pdf}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite journal|title=The Projective Consciousness Model and Phenomenal Selfhood|journal = Frontiers in Psychology|volume = 9|pages = 2571|last1=K|first1=Williford|last2=D|first2=Bennequin|date=2018-12-17|language=en|pmid=30618988|pmc = 6304424|last3=K|first3=Friston|last4=D|first4=Rudrauf|doi = 10.3389/fpsyg.2018.02571}}&amp;lt;/ref&amp;gt; hysteria&amp;lt;ref&amp;gt;Edwards, M. J., Adams, R. A., Brown, H., Pareés, I., &amp;amp; Friston, K. J. (2012). [http://www.fil.ion.ucl.ac.uk/~karl/A%20Bayesian%20account%20of%20hysteria.pdf A Bayesian account of 'hysteria']. Brain , 135(Pt 11):3495–512.&amp;lt;/ref&amp;gt; 还有精神病。&amp;lt;ref&amp;gt;Adams RA, Perrinet LU, Friston K. (2012). [https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0047502 Smooth pursuit and visual occlusion: active inference and oculomotor control in schizophrenia]. PLoS One. , 12;7(10):e47502&amp;lt;/ref&amp;gt; 对主动推理中行为的解释常常依赖于这样一种观点，即大脑有“顽固的预测”，它无法更新，从而导致使这些预测成真的行为。&amp;lt;ref&amp;gt;{{Cite journal|last1=Yon|first1=Daniel|last2=Lange|first2=Floris P. de|last3=Press|first3=Clare|date=2019-01-01|title=The Predictive Brain as a Stubborn Scientist|url=https://www.cell.com/trends/cognitive-sciences/abstract/S1364-6613(18)30239-0|journal=Trends in Cognitive Sciences|language=English|volume=23|issue=1|pages=6–8|doi=10.1016/j.tics.2018.10.003|issn=1364-6613|pmid=30429054}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==参考文献==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==编者推荐==&lt;br /&gt;
[[File:自由能原理.jpg|400px|thumb|[https://zhuanlan.zhihu.com/p/365654509 自由能专题1：原理及常见方法]]]&lt;br /&gt;
===集智课程===&lt;br /&gt;
====[https://campus.swarma.org/course/1525 临界现象的标度性与超标度关系]====&lt;br /&gt;
本课程中，将从自由能的奇异部分的齐次性，推出临界现象的标度性与超标度关系。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===知乎文章===&lt;br /&gt;
*[https://zhuanlan.zhihu.com/p/365654509 自由能专题1：原理及常见方法]&lt;br /&gt;
*[https://zhuanlan.zhihu.com/p/365732420 自由能专题2：计算与分析指南（译）]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
本条目由[[用户:水流心不竞|水流心不竞]]翻译，[[用户:Evangeline|Evangeline]]审校，[[用户:薄荷|薄荷]]编辑，如有问题，欢迎在讨论页面进行讨论。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''本词条内容源自wikipedia及公开资料，遵守 CC3.0协议。'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:生物系统]]&lt;br /&gt;
[[Category:系统论]]&lt;br /&gt;
[[Category:计算神经科学]]&lt;br /&gt;
[[Category:数学和理论生物学]]&lt;/div&gt;</summary>
		<author><name>Mugicaxu2</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%A9%BA%E9%97%B4%E4%BA%A4%E4%BA%92&amp;diff=34675</id>
		<title>空间交互</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%A9%BA%E9%97%B4%E4%BA%A4%E4%BA%92&amp;diff=34675"/>
		<updated>2024-05-13T13:23:33Z</updated>

		<summary type="html">&lt;p&gt;Mugicaxu2：/* 1. 发生空间交互的三个基础 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 此词条由城市科学读书会词条梳理志愿者（南宋万能的荆芥）整理，未经专家审核，带来阅读不便，请见谅。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;空间交互（spatial interaction）&amp;lt;/big&amp;gt;'''一般是指人口、商品、信息或者货币等在空间中两个地点之间的流动。通勤、购物、迁移、国际贸易、投资、拨打电话、互联网交易和旅游观光都是空间交互作用的表现形式&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;Anderson, W. P. (2012). ''Economic geography''. Routledge.&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
=== 1. 发生空间交互的三个基础 ===&lt;br /&gt;
爱德华·乌尔曼（Edward Ullman）的《Geography as Spatial Interaction》通常被认为是该概念的开创性陈述。在乌尔曼的概念中，有“空间交互作用的三个基础”，或者说，事物发生流动的三个原因：'''互补性'''、'''可转移性'''和'''干预机会'''&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
==== 1.1 互补性 ====&lt;br /&gt;
互补性（Complementarity）是指一个地点存在需求或赤字，而在另一个地点存在供应或盈余，没有这些，任何流动都没有经济理由。存在供应的地点是流动的起始地（Origin），而存在需求的地点是流动的目的地（Destination）。&lt;br /&gt;
&lt;br /&gt;
用物理学的概念来比喻，互补性就像一个潜在的梯度，货物和人员从高能量状态（处于盈余状态）流向较低能量状态（处于赤字状态）。比如，工厂或办公大楼等工作场所需要劳动力人口，而住宅区则提供了劳动力来源，那劳动力人口就会由住宅区流向工作区，产生通勤行为。&lt;br /&gt;
&lt;br /&gt;
==== 1.2 可转移性 ====&lt;br /&gt;
可转移性（Transferability）是指流动的顺畅程度。乌尔曼用两地之间的距离来度量流动的顺畅程度。克服距离而与产生的时间或费用成本被称为“距离摩擦”，如果两个地点之间的距离的摩擦太大，尽管存在互补的供需关系，但空间交互作用也不会发生。&lt;br /&gt;
&lt;br /&gt;
空间交互的类型有很多种，在某些情形下，距离可能并不是个好指标。譬如基于互联网的通信联络，在这种情形下，流动成本并非直接与距离成正比，它与距离没有关系。表1给出了不同空间交互类型下的可转移性指标。&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+表1 可转移性指标&lt;br /&gt;
!空间交互类型&lt;br /&gt;
!可转移性指标&lt;br /&gt;
|-&lt;br /&gt;
|通勤&lt;br /&gt;
|以时间或费用度量的通勤成本(1/x)&lt;br /&gt;
|-&lt;br /&gt;
|钢铁贸易&lt;br /&gt;
|运输成本(1/x)，关税(1/x)，共同标准&lt;br /&gt;
|-&lt;br /&gt;
|拨打电话&lt;br /&gt;
|成本(1/x)，共同语言&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== 1.3 干预机会 ====&lt;br /&gt;
干预机会（Intervening opportunity）是指能够提供更好的替代方案的地点（作为起始地或目的地）。例如，为了使客户与商店A发生空间交互，不能有更近的商店B提供类似的商品。否则，客户可能会光顾较近的商店B，而不会与商店A发生空间交互。在这里，客户与商店A之间的互补性与可转移性都没有发生变化，但商店B的干预减弱了客户与商店A之间的空间交互作用，由此构成一种干预机会。  &lt;br /&gt;
&lt;br /&gt;
干预机会作为两个地点之间发生空间交互作用的三个基础之一，其含义具有很重要的意义。它意味着，如果没有考虑一个或多个其他地点 (可供选择的目的地) 的特征，就不能准确度量发生在两个点之间(起始地和目的地) 的空间交互作用。因此，空间交互作用的研究不应局限在两个地点之间，应在区域系统层面上展开。在做城市规划时，忽视空间相互作用中的干预机会将会带来很大的风险。&lt;br /&gt;
&lt;br /&gt;
[[Category:待润色]]&lt;br /&gt;
&lt;br /&gt;
=== 2. 空间交互模型 ===&lt;br /&gt;
许多空间交互作用模型的基本假设是，流动量是起始地的属性、目的地的属性以及起始地和目的地之间距离摩擦的函数。空间交互模型的一般表述如下&amp;lt;ref&amp;gt;Rodrigue, J. P. (2020). ''The geography of transport systems''. Routledge.&amp;lt;/ref&amp;gt;：&lt;br /&gt;
&lt;br /&gt;
''T&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; = f(V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; ,W&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; , S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;)''&lt;br /&gt;
&lt;br /&gt;
* ''T&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;''：地点''i''（起始地）和地点''j''（目的地）之间的交互作用。它的计量单位多种多样，可能涉及乘客数量、货运吨数、交通量等。它还与时间段有关，例如按小时、天、月或年进行的交互。&lt;br /&gt;
* ''V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;'' ： 起始地 ''i''的属性''。''通常用于表示属性的变量通常是属于社会经济层面的，例如人口、可用工作数量、工业产出或经济活动水平的代理变量，例如国内生产总值。&lt;br /&gt;
* ''W&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;'' ：目的地 ''j'' 的属性。用于表示''W&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;''的变量与表示''V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;'' 的变量类似。&lt;br /&gt;
* ''S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;''：起始地i和目的地''j''之间的分离属性。也称为传输摩擦、距离摩擦或阻抗。通常用于表示这些属性的变量是距离、运输成本或行驶时间。该属性反向表征可转移性。&lt;br /&gt;
&lt;br /&gt;
''V''和''W''的属性倾向于配对，以最佳方式表达互补性。例如，测量不同地点之间的通勤流量（与工作相关的运动）可能会将工作年龄人口视为''V''和总就业人数为''W''等变量。从这个一般公式中，可以构建三种基本类型的交互模型：&lt;br /&gt;
&lt;br /&gt;
* '''重力模型'''（Gravity model）。测量所有可能的位置对之间的交互。&lt;br /&gt;
* '''潜在模型'''（Potential model）。测量一个位置与每个其他位置之间的交互。&lt;br /&gt;
* '''零售模型'''（Retail model）。根据各自交互的强度，测量在同一市场上竞争的两个地点之间的市场区域边界。&lt;br /&gt;
&lt;br /&gt;
==== 2.1 重力模型 ====&lt;br /&gt;
重力模型（Gravity model），有时也被翻译为引力模型，是空间交互模型中最常见的一种&amp;lt;ref&amp;gt;Haynes, K.E., &amp;amp; Fotheringham, A.S. (1985). Gravity and Spatial Interaction Models. Reprint. Edited by Grant Ian Thrall. WVU Research Repository, 2020.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Huff, D.L. and G.F. Jenks (1968) “A Graphic Interpretation of the Friction of Distance in Gravity Models”, Annals of the Association of American Geographers, Vol. 58, No. 4, pp. 814–824.&amp;lt;/ref&amp;gt;。之所以这样命名，是因为它使用了与牛顿万有引力定律类似的公式。即位置 ''i'' 和 ''j'' 之间的空间相互作用与它们各自的重要性成正比，与它们之间的分离程度成反比。&lt;br /&gt;
&lt;br /&gt;
重力模型一般形式的公式是&amp;lt;ref&amp;gt;Fotheringham, A.S. and M.E. O’Kelly. (1989) Spatial Interaction Models: Formulations and Applications. London: Kluwer Academic.&amp;lt;/ref&amp;gt;：&lt;br /&gt;
&lt;br /&gt;
''T&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; = κV&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;Wj /S&amp;lt;sup&amp;gt;β&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
其中，''κ''是与事件发生率相关的比例常数。''β''是与两个地点之间的运输系统效率相关的运输摩擦参数。&lt;br /&gt;
&lt;br /&gt;
使用重力模型的一个挑战是参数值的标定。''κ''在某种意义上不是常数，因为在不同地点不同时间上的空间交互作用形式不同，该常数的取值也就不同。在研究空间交互作用时，人们不可能对该常数进行精确的度量。最好的方法是将''κ''视为一个经验参数，用实际观测数据进行标定。起始地i和目的地''j''之间的分离属性''S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;''通过幂指数β得到放大。''S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;''在不同情况下又会发生变化，因此''β''也必须以观测数据为基础进行估计。&lt;br /&gt;
&lt;br /&gt;
=== 参考文献 ===&lt;/div&gt;</summary>
		<author><name>Mugicaxu2</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E9%9B%86%E4%BD%93%E6%B3%A8%E6%84%8F%E5%8A%9B&amp;diff=34673</id>
		<title>集体注意力</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E9%9B%86%E4%BD%93%E6%B3%A8%E6%84%8F%E5%8A%9B&amp;diff=34673"/>
		<updated>2024-05-13T13:02:23Z</updated>

		<summary type="html">&lt;p&gt;Mugicaxu2：/* 注意力流网络 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;每一秒钟,整个互联网上就有 60 万条信息在 Facebook 上分享,2 亿个 Email、10 万条 推文被发送,571 个新网站被建立,1.9E(10&amp;lt;sup&amp;gt;18&amp;lt;/sup&amp;gt;)字节数据被交换[1]。海量的信息不断涌现, 但是全球的互联网用户总数却仅有 30 多亿(截止到 2014 年底)[1]。正如诺贝尔经济学奖 得主 Herbert Simon 早在 1971 年指出的,“......在一个信息丰富的世界中,拥有了信息就意 味着另一种稀缺,......,(这)就是信息接受者的注意力。......”[2]。故而,在信息过载时 代,注意力成为了首要稀缺资源。注意力不仅是人类行为的原始驱动力,更反映了人类的需求与愿望。因此,研究互联网上人类群体的注意力是如何分配、流动及耗散的就具有重大意义。&lt;br /&gt;
&lt;br /&gt;
==集体注意力==&lt;br /&gt;
正是由于注意力的重要性与稀缺性,H. Simon[2]、M. Goldharbor 等人最早􏰀出并发展 了注意力经济的概念,开创了注意力定性研究的先河[3]。然而关于人类群体注意力的定量 化研究却直到 20 世纪 90 年代之后才真正展开 [4-6]。&lt;br /&gt;
&lt;br /&gt;
集体注意力(Collective attention)一词是由 B. Huberman 最早􏰀出的[5],指大量群体 对有限信息资源的关注与访问,包括点击、评论、点赞、修改等[5]。早先的研究集中在注 意力在单个信息资源上的分配。例如,Wu 和 Huberman 利用新闻网站 Digg 的数据研究了新 闻的流行性、创新性对注意力的影响,同时发现了一种由信息排序策略所引发的相变行为 [6]。近年来,社交媒体的深入发展促使学者研究多个信息资源对有限注意力的竞争[7],这 种竞争可以被简化为一个临界分支过程并蕴含着临界现象[8]。另一方面,集体注意力在时 间上也呈现出爆发的特性,特别是在热点事件到来前后会具有不同的爆发模式[9][10],且这 种爆发行为与人脑神经元的放电模式具有一定的相似性[11]。集体注意力不仅展现出丰富的 时空动态,还对知识的创造[12,13]、股票涨落的预测[14]、政党选举结果的预测[15]、科学 家研究兴趣的转移[16]、极端事件的预测[17]等等都有着非常重要的影响。&lt;br /&gt;
&lt;br /&gt;
===参考文献===&lt;br /&gt;
&lt;br /&gt;
* [1] Website of Internet live Stats, available from http://www.internetlivestats.com/&lt;br /&gt;
* [2] Simon, H. A., Designing Organizations for an Information-Rich World, in Martin Greenberger, Computers, Communication, and the Public Interest, Baltimore, MD: The Johns Hopkins Press, 1971 &lt;br /&gt;
* [3]张雷:西方注意力经济学派研究,中国社会科学出版社,2009&lt;br /&gt;
* [4] Huberman B A, Pirolli P L T, Pitkow J E, et al. Strong regularities in world wide web surfing. Science, 1998, 280(5360): 95-97.&lt;br /&gt;
* [5] Wu F, Huberman B A. Novelty and collective attention. Proceedings of the National Academy of Sciences, 2007, 104(45): 17599-17601.&lt;br /&gt;
* [6] Wu F, Huberman B A. Popularity, novelty and attention, Proceedings of the 9th ACM conference on Electronic commerce. ACM, 2008: 240-245.&lt;br /&gt;
* [7] Weng L, Flammini A, Vespignani A, et al. Competition among memes in a world with limited attention. Scientific reports, 2012, 2.&lt;br /&gt;
* [8] Gleeson J P, Ward J A, O’Sullivan K P, et al. Competition-induced criticality in a model of meme popularity. Physical review letters, 2014, 112(4): 048701.&lt;br /&gt;
* [9] Lehmann J, Gonçalves B, Ramasco J J, et al. Dynamical classes of collective attention in twitter, Proceedings of the 21st international conference on World Wide Web. ACM, 2012: 251-260.&lt;br /&gt;
* [10] Crane R, Sornette D. Robust dynamic classes revealed by measuring the response function of a social system. Proceedings of the National Academy of Sciences, 2008, 105(41): 15649-15653.&lt;br /&gt;
* [11] Sanli C, Lambiotte R. Local variation of collective attention in hashtag spike trains. arXiv preprint arXiv:1504.01637, 2015.&lt;br /&gt;
* [12] Ciampaglia G L, Flammini A, Menczer F. The production of information in the attention economy. Scientific reports, 2015, 5.&lt;br /&gt;
* [13] Wu L, Baggio J, Janssen M A. The Dynamics of Collaborative Knowledge Production. arXiv preprint arXiv:1509.05083, 2015.&lt;br /&gt;
* [14] Heiberger R H. Collective Attention and Stock Prices: Evidence from Google Trends Data on Standard and Poor's 100. PloS one, 2015, 10(8): e0135311.&lt;br /&gt;
* [15] Eom Y H, Puliga M, Smailović J, et al. Twitter-based analysis of the dynamics of collective attention to political parties. PloS one, 2015, 10(7): e0131184.&lt;br /&gt;
* [16] Huberman B A. Social Attention in the Age of the Web. Working together or apart: Promoting the next generation of digital scholarship, 2009, 62.&lt;br /&gt;
* [17] Miotto J M, Altmann E G. Predictability of extreme events in social media. PloS one, 2014, 9(11): e111506.&lt;br /&gt;
&lt;br /&gt;
==集体注意力流动==&lt;br /&gt;
&lt;br /&gt;
然而,人类注意力不会仅集中在同一个数字资源上,还会在多个资源上流动、转移。 本项目的研究重点则是关注这种集体注意力之流,即大量用户在网络空间中的连续动作序 列(如点击、回复、点赞等)所形成的流动[18]。这种流动反映了人类集体的兴趣转移,因 此具有十分广泛的工业应用背景,包括点击流分析[19],Web 挖掘[20]、计算广告学[21]等。&lt;br /&gt;
&lt;br /&gt;
===注意力流网络===&lt;br /&gt;
&lt;br /&gt;
[[Jake]]等人创立了一种新的分析方法——注意力流网络,用于从整体的角度研究注 意力在信息资源上的流动,它可以综合考虑资源之间的超链接结构与人类集体行为。所谓 的注意力流网络就是一个加权有向图,其中节点是信息资源,有向连边代表用户跳转,权 重值代表了注意力的流量(即有多少用户从一个节点跳转到另一个)[22, 23]。同时,在整 个网络中存在两个特殊的节点:源和汇,它们代表注意力流量的入口(表示用户上线)和 出口(表示用户离开)。我们可以直接按照会话(Session,通常就是指一个固定的时间间隔, 如一小时)划分的用户行为数据来构建这样的注意力流网络,如图1所示[24]。&lt;br /&gt;
&lt;br /&gt;
[[File:constructionofattentionflownetworkillustration.png|500px]]&lt;br /&gt;
&lt;br /&gt;
上图中，左边一栏为假想的多个用户分别在各自的一次会话中的浏览轨迹,A、B、C、...F 代表不同用户,1,2,3...5 代表数字资源。因此 A 用户在这一次会话中先后访问了 1、2、4、5 号数字资源。根据所有这些用 户的浏览轨迹可以构造注意力流网络如右图所示,其中连边上的数值表示有多少人次跳转。源代表用户的入口,有多少用户首先访问了资源 i,从源到 i 的流量就是多少。汇代表用户出口,从资源 i 有多少用户退出,从 i 到汇的流量就是多少。这种构造网络的方法可以保证流量平衡性,即除了源和汇以外,网络所有节点的总入流都等于总出流。&lt;br /&gt;
&lt;br /&gt;
如此构建的注意力流网络会自动处于流平衡状态(如图 1),这为我们提供了分析的便利性[25]。另外,由于源和汇的引入,注意力流网络也可以分析用户的进入与流失模式,这对于网站的流量分析来说非常重要[19]。目前,采用这套方法,我们已经研究了注意力流网络的去中心化程度[23]、网络论坛的粘性[24]、互联网生态系统的几何化表示[18]等问题, 收到了良好的成效。同时,这种流网络作为一般性方法也被广泛应用到了生态系统、国际贸易等其它领域[26,27,22]。&lt;br /&gt;
&lt;br /&gt;
在本项目中,我们主要关注两种不同尺度的注意力流网络,分别是域名级别的注意力流网络,以及网络社区的注意力流网络。如图2所示。&lt;br /&gt;
&lt;br /&gt;
[[File:twoscaleattentionflownetworkillustration.png|400px]]&lt;br /&gt;
&lt;br /&gt;
参考文献：&lt;br /&gt;
&lt;br /&gt;
* [18] Shi P, Huang X, Wang J, et al. A Geometric Representation of Collective Attention Flows. PloS one, 2015, 10(9): e0136243.&lt;br /&gt;
* [19] A. Kaushik: Web Analytics 2.0 The Art of Online Accountability &amp;amp; Science of Customer Centricity, Sybex; 1 edition, 2009&lt;br /&gt;
* [20] Liu B. Web data mining: exploring hyperlinks, contents, and usage data. Springer Science &amp;amp; Business Media, 2007.&lt;br /&gt;
* [21] 刘鹏,王超:计算广告,人民邮电出版社,2015&lt;br /&gt;
* [22] Guo L, Lou X, Shi P, et al. Flow distances on open flow networks. Physica A: Statistical Mechanics and its Applications, 2015, 437: 235-248.&lt;br /&gt;
* [23] Wu L, Zhang J. The decentralized flow structure of clickstreams on the web. The European Physical Journal B, 2013, 86(6): 1-6.&lt;br /&gt;
* [24] Wu L, Zhang J, Zhao M. The metabolism and growth of web forums. PloS one, 2014, 9(8): e102646.&lt;br /&gt;
* [25] Zhang J, Lou X, Guo L. Universal patterns and constructal law in open flow networks. International Journal of Heat and Technology, Volume 34 (2016), Special Issue 1, pp.S75-S82&lt;br /&gt;
* [26] Zhang J, Guo L. Scaling behaviors of weighted food webs as energy transportation networks. Journal of theoretical biology, 2010, 264(3): 760-770.&lt;br /&gt;
* [27] Shi P, Zhang J, Yang B, et al. Hierarchicality of trade flow networks reveals complexity of products. PloS one, 2014, 9(6): e98247.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:待润色]]&lt;br /&gt;
&lt;br /&gt;
===数据源===&lt;br /&gt;
&lt;br /&gt;
要研究集体注意力流，需要使用大量的用户行为数据。在这里，我们列出[[Jake]]研究组已经收集到的一系列数据集&lt;br /&gt;
&lt;br /&gt;
====印第安纳大学师生上网数据====&lt;br /&gt;
'''数据存放'''&lt;br /&gt;
&lt;br /&gt;
该数据存放在服务器中，需用户远程登入“210.31.72.215”连接服务器后,才能下载。&lt;br /&gt;
存放的路径为“E：/indiana/data”中，都是最终处理后得到的CSV文件。&lt;br /&gt;
&lt;br /&gt;
若通过ftp方式访问，详情参考[[服务器公共数据]]&lt;br /&gt;
&lt;br /&gt;
'''数据描述'''&lt;br /&gt;
&lt;br /&gt;
本组数据是一组匿名的印第安纳大学上网点击流数据，记录了校园内用户从2006年10月到2008年2月的上网浏览行为。尽管本组数据属于一组简单的有偏数据，但包含的信息仍然十分丰富。其中，包含了123137个网站以及45563567的日均流量。尤其是针对top网站的研究（Facebook， Myspace，Yahoo），这将会是一个不错的数据集。&lt;br /&gt;
数据是通过对通过印第安纳边界路由器流量的镜像应用伯克利过滤包产生的。过滤包会自动匹配那些去往TCP80端口的流量，如果数据包含有请求，收集系统就会生成如下的一条记录：&lt;br /&gt;
&lt;br /&gt;
*时间戳&lt;br /&gt;
*被请求的URL&lt;br /&gt;
*响应的URL&lt;br /&gt;
*一个布尔型的用户代理分类（浏览器或者机器人）&lt;br /&gt;
*一个布尔型的标记，该请求是否会产生内置或外置IU&lt;br /&gt;
&lt;br /&gt;
有几个需要注意的地方：&lt;br /&gt;
# 对于客户端的并没有能够区别他们的信息，即没有任何MAC、IP地址或者其他唯一的索引来区分用户。&lt;br /&gt;
# 这里没有尝试对数据流的重新组装以及服务器的响应进行分析。&lt;br /&gt;
&lt;br /&gt;
'''数据格式'''&lt;br /&gt;
&lt;br /&gt;
原始数据集有两个收集集：&lt;br /&gt;
# raw：大约250亿的请求，只保留了响应的主机名。收集了从2006年9月26日到2008年3月3日的信息，其中损失的信息为98天，包含整个2007年6月。&lt;br /&gt;
#raw-url：大约286亿请求，保留了响应所有全部URL。收集了从2008年3月3日到2010年5月31日的信息，其中损失的信息为179天，包含整个2008年12月，2009年1月和2月。&lt;br /&gt;
&lt;br /&gt;
整个数据集按小时划分为一个个文件。每个文件中的首行有一些列的标记，这些都可以被忽略点。每条记录的格式样例：&lt;br /&gt;
&lt;br /&gt;
XXXXADreferrer&lt;br /&gt;
&lt;br /&gt;
host&lt;br /&gt;
&lt;br /&gt;
path&lt;br /&gt;
&lt;br /&gt;
其中XXXX表示时间戳（32-bit unix值），A为每个用户代理标记（“B”为浏览器，其他为“？”），D为方向标记（“I”为外部的流进入IU接口，“O”代表内部的流到外部IU接口），referrer是访问来源的主机名或者URL（换行符终止），host为目标主机名（换行符终止），path为目标路径（换行符终止）.&lt;br /&gt;
&lt;br /&gt;
为了使用方便，我们对原始数据集进行了处理，分离出两类文件，一类文件按照每小时命名（例如：2008-02-10_00output.csv），记录网站跳转的情况。另一个记录了与之对应的具体网站名称（例如：2008-02-10_00webs.csv）。&lt;br /&gt;
&lt;br /&gt;
具体的python代码如下：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import csv&lt;br /&gt;
import datetime&lt;br /&gt;
import sys&lt;br /&gt;
import numpy as np&lt;br /&gt;
import time as tm&lt;br /&gt;
import random&lt;br /&gt;
from scipy.sparse import *&lt;br /&gt;
from scipy import *&lt;br /&gt;
import scipy as sp&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import networkx as nx&lt;br /&gt;
from urlparse import urlparse&lt;br /&gt;
def file_len(fname):&lt;br /&gt;
    with open(fname,'rb') as f:&lt;br /&gt;
        for i, l in enumerate(f):&lt;br /&gt;
            pass&lt;br /&gt;
    return i + 1&lt;br /&gt;
def parturlclean(url):&lt;br /&gt;
    try:&lt;br /&gt;
        if url.replace('.','').isdigit(): return 'None'&lt;br /&gt;
        else:&lt;br /&gt;
            if len(url.split('.')) &amp;gt;=2 :&lt;br /&gt;
                if url[-6:]=='com.cn': return '.'.join(url.split('.')[-3:])&lt;br /&gt;
                return '.'.join(url.split('.')[-2:])&lt;br /&gt;
        return ''&lt;br /&gt;
    except:&lt;br /&gt;
        return 'None'&lt;br /&gt;
&lt;br /&gt;
def ReadWholeHourNetwork(working_pathfile):&lt;br /&gt;
    filename=working_pathfile&lt;br /&gt;
    nums=0&lt;br /&gt;
    bfile=open(filename+&amp;quot;webs.csv&amp;quot;, &amp;quot;rb&amp;quot;)&lt;br /&gt;
    urls=[]&lt;br /&gt;
    with bfile as FileObj:&lt;br /&gt;
        for lines in FileObj:&lt;br /&gt;
            seg=lines.split('\r\n')&lt;br /&gt;
            urls.append(seg[0]) &lt;br /&gt;
            nums+=1&lt;br /&gt;
    bfile.close()&lt;br /&gt;
    lasttime=0&lt;br /&gt;
   &lt;br /&gt;
    smatrix=np.zeros([nums+2,nums+2])&lt;br /&gt;
    addresses={}&lt;br /&gt;
    with open(filename+'output.csv','rb') as FileObj:&lt;br /&gt;
        i=0&lt;br /&gt;
        for lines in FileObj:&lt;br /&gt;
            segments=lines.split(',')&lt;br /&gt;
            #bigstring=bigstring+lines&lt;br /&gt;
            inn=long(segments[0])&lt;br /&gt;
            out=long(segments[1])&lt;br /&gt;
            flux=long(segments[2])&lt;br /&gt;
            addresses[inn]=1&lt;br /&gt;
            addresses[out]=1&lt;br /&gt;
            smatrix[inn,out]=flux&lt;br /&gt;
            #eliminate self-loop flows&lt;br /&gt;
            #if inn==out:&lt;br /&gt;
            #   smatrix[inn,out]=0&lt;br /&gt;
            i+=1&lt;br /&gt;
    #print smatrix[21,:]&lt;br /&gt;
    list1=range(nums)&lt;br /&gt;
    list2=[v for v in addresses.iterkeys()]&lt;br /&gt;
    diff=list(set(list1)-set(list2))&lt;br /&gt;
    #if len(diff)&amp;gt;0:&lt;br /&gt;
    #    print 'error:'+str(len(diff))&lt;br /&gt;
    #print list(addresses.itervalues())&lt;br /&gt;
    return(smatrix,urls)&lt;br /&gt;
def residuals(p,xx,yy):&lt;br /&gt;
    k,b=p&lt;br /&gt;
    return np.log(yy) - (k*np.log(xx)+b)&lt;br /&gt;
from scipy.optimize import leastsq&lt;br /&gt;
import os.path&lt;br /&gt;
&lt;br /&gt;
#################################&lt;br /&gt;
&lt;br /&gt;
head='2007-09-16_'&lt;br /&gt;
tail1='_00_00_+3600'&lt;br /&gt;
tail2='_00_01_+3599'&lt;br /&gt;
dotclick='.click'&lt;br /&gt;
file_path='H:/clickstream/click/2007-09-16.click/'&lt;br /&gt;
for hour in range(24):&lt;br /&gt;
    if hour&amp;lt;10:&lt;br /&gt;
        hours='0'+str(hour)&lt;br /&gt;
    else:&lt;br /&gt;
        hours=str(hour)&lt;br /&gt;
    fullname=head+hours+tail1&lt;br /&gt;
    f1=os.path.isfile(file_path+fullname+dotclick)&lt;br /&gt;
    if not f1:&lt;br /&gt;
        fullname=head+hours+tail2&lt;br /&gt;
        f1=os.path.isfile(file_path+fullname+dotclick)&lt;br /&gt;
        if not f1:&lt;br /&gt;
            print 'bad'&lt;br /&gt;
    file_name=fullname+dotclick&lt;br /&gt;
    filename=fullname&lt;br /&gt;
    filelen=file_len(file_path+file_name)&lt;br /&gt;
    clicks={}&lt;br /&gt;
    i=0&lt;br /&gt;
    addresses={}&lt;br /&gt;
    clicks={}&lt;br /&gt;
    with open(file_path+file_name,'rb') as FileObj:&lt;br /&gt;
        last=''&lt;br /&gt;
        start=-1&lt;br /&gt;
        end=-1&lt;br /&gt;
        eventtime=-1&lt;br /&gt;
        for lines in FileObj:        &lt;br /&gt;
            if (i-1)%3==0:&lt;br /&gt;
                bys=bytes(lines)&lt;br /&gt;
                #if len(bys)==1:&lt;br /&gt;
                if len(bys)&amp;lt;4:&lt;br /&gt;
                    i=i-1&lt;br /&gt;
                    last=last+bys&lt;br /&gt;
                else:&lt;br /&gt;
                    decs=[ord(bys[j]) for j in range(len(bys))]&lt;br /&gt;
                    if len(last)&amp;gt;0:&lt;br /&gt;
                        lst=[ord(last[j]) for j in range(len(last))]&lt;br /&gt;
                        decs=lst+decs&lt;br /&gt;
                        last=''&lt;br /&gt;
                        #decs.insert(0,[ord(last[j]) for j in range(len(last))])&lt;br /&gt;
                        #decs.insert(0,ord(last))&lt;br /&gt;
                    &lt;br /&gt;
                    bins=[bin(decs[j])[2:].zfill(8) for j in range(4)]&lt;br /&gt;
                    binary=''.join(bins[::-1])&lt;br /&gt;
                    value=int(binary,2)&lt;br /&gt;
                    eventtime=value&lt;br /&gt;
                    year=datetime.datetime.fromtimestamp(value).year&lt;br /&gt;
                    if year!=2007:&lt;br /&gt;
                        print 'error'&lt;br /&gt;
                        print abc[0]&lt;br /&gt;
                    if decs[4]==66 and decs[5]==79:&lt;br /&gt;
                        addr=[chr(decs[v]) for v in range(6,len(decs)-1)]&lt;br /&gt;
                        addr=''.join(addr)&lt;br /&gt;
                        addr=parturlclean(addr)&lt;br /&gt;
                        if len(addr)==0:&lt;br /&gt;
                            inde=0&lt;br /&gt;
                        else:&lt;br /&gt;
                            inde=addresses.get(addr,len(addresses)+1)&lt;br /&gt;
                            addresses[addr]=inde&lt;br /&gt;
                        start=inde&lt;br /&gt;
                    last=''&lt;br /&gt;
            elif (i-1)%3==1:&lt;br /&gt;
                addr=lines[:-1]&lt;br /&gt;
                teep=addr&lt;br /&gt;
                addr=parturlclean(addr)&lt;br /&gt;
                if len(addr)==0:&lt;br /&gt;
                    inde=-1&lt;br /&gt;
                else:&lt;br /&gt;
                    inde=addresses.get(addr,len(addresses)+1)&lt;br /&gt;
                    addresses[addr]=inde&lt;br /&gt;
                end=inde&lt;br /&gt;
                if start&amp;gt;=0 and end&amp;gt;=0 and eventtime&amp;gt;0:&lt;br /&gt;
                    clicks[len(clicks)]={1:start,2:end,3:eventtime}&lt;br /&gt;
                    start=-1&lt;br /&gt;
                    end=-1&lt;br /&gt;
                    eventtime=-1&lt;br /&gt;
            i+=1&lt;br /&gt;
            if i%100000==0:&lt;br /&gt;
                print float(i)/float(filelen)&lt;br /&gt;
&lt;br /&gt;
file_path='G:/clickstream/click/2007-09-16.click/'&lt;br /&gt;
working_path='G:/clickstream/click/2007-09-16.click/indiana/data/'&lt;br /&gt;
allinflux=np.ndarray([0])&lt;br /&gt;
allflux=np.ndarray([0])&lt;br /&gt;
ks=np.ndarray([0])&lt;br /&gt;
bs=np.ndarray([0])&lt;br /&gt;
dissipationks=np.ndarray([0])&lt;br /&gt;
dissipationbs=np.ndarray([0])&lt;br /&gt;
dissipationtis={}&lt;br /&gt;
dissipationdis={}&lt;br /&gt;
head='2007-09-16_'&lt;br /&gt;
tail1='_00_00_+3600'&lt;br /&gt;
tail2='_00_01_+3599'&lt;br /&gt;
dotclick='.click'&lt;br /&gt;
influxes=np.zeros(24)&lt;br /&gt;
fluxes=np.zeros(24)&lt;br /&gt;
for hour in range(24):&lt;br /&gt;
    if hour&amp;lt;10:&lt;br /&gt;
        hours='0'+str(hour)&lt;br /&gt;
    else:&lt;br /&gt;
        hours=str(hour)&lt;br /&gt;
    fullname=head+hours+tail1&lt;br /&gt;
    f1=os.path.isfile(file_path+fullname+dotclick)&lt;br /&gt;
    if not f1:&lt;br /&gt;
        fullname=head+hours+tail2&lt;br /&gt;
        f1=os.path.isfile(file_path+fullname+dotclick)&lt;br /&gt;
        if not f1:&lt;br /&gt;
            print 'bad'&lt;br /&gt;
    file_name=fullname+dotclick&lt;br /&gt;
    filename=fullname&lt;br /&gt;
    filelen=file_len(file_path+file_name)&lt;br /&gt;
    print hour&lt;br /&gt;
    matrix,urls=ReadWholeHourNetwork(working_path+fullname)&lt;br /&gt;
&lt;br /&gt;
    if np.size(np.nonzero(matrix))&amp;gt;0:&lt;br /&gt;
        influx=np.sum(matrix[0,:])&lt;br /&gt;
        flux=np.sum(matrix)&lt;br /&gt;
        dissipations=np.sum(matrix,0)-np.sum(matrix,1)&lt;br /&gt;
        dissipations=dissipations[1:-1]&lt;br /&gt;
        tis=np.sum(matrix,0)&lt;br /&gt;
        tis=tis[1:-1]&lt;br /&gt;
        bools=(tis&amp;gt;0)&amp;amp;(dissipations&amp;gt;0)&lt;br /&gt;
        tis=tis[bools]&lt;br /&gt;
        dissipations=dissipations[bools]&lt;br /&gt;
        if np.size(dissipations)&amp;gt;2:&lt;br /&gt;
            logdiss=np.log(dissipations)&lt;br /&gt;
            logbins=np.linspace(np.amin(logdiss),np.amax(logdiss),np.size(logdiss)/60)&lt;br /&gt;
            avgTi=np.ndarray([0])&lt;br /&gt;
            avgDi=np.ndarray([0])&lt;br /&gt;
            for yy in range(np.size(logbins)-1):&lt;br /&gt;
                startt=logbins[yy]&lt;br /&gt;
                enddd=logbins[yy+1]&lt;br /&gt;
                bools=(logdiss&amp;gt;=startt)&amp;amp;(logdiss&amp;lt;enddd)&lt;br /&gt;
                tisstemp=tis[bools]&lt;br /&gt;
                tivalue=np.mean(np.log(tisstemp))&lt;br /&gt;
                divalue=(startt+enddd)/2&lt;br /&gt;
                avgTi=np.r_[avgTi,np.exp(tivalue)]&lt;br /&gt;
                avgDi=np.r_[avgDi,np.exp(divalue)]&lt;br /&gt;
            bools=(avgTi&amp;gt;0)&amp;amp;(avgDi&amp;gt;0)&lt;br /&gt;
            avgTi=avgTi[bools]&lt;br /&gt;
            avgDi=avgDi[bools]&lt;br /&gt;
            rr = leastsq(residuals,[1,1],args=(avgTi,avgDi))&lt;br /&gt;
            k,b=rr[0]&lt;br /&gt;
            dissipationks=np.r_[dissipationks,k]&lt;br /&gt;
            dissipationbs=np.r_[dissipationbs,b]&lt;br /&gt;
            dissipationtis[hour]=tis&lt;br /&gt;
            dissipationdis[hour]=dissipations&lt;br /&gt;
                &lt;br /&gt;
    influxes[hour]=influx&lt;br /&gt;
    fluxes[hour]=flux&lt;br /&gt;
rr = leastsq(residuals,[1,1],args=(influxes,fluxes))&lt;br /&gt;
k,b=rr[0]&lt;br /&gt;
xplt=influxes&lt;br /&gt;
yplt=xplt**k*np.exp(b)&lt;br /&gt;
plt.loglog(influxes,fluxes,'o')&lt;br /&gt;
plt.hold(True)&lt;br /&gt;
plt.loglog(xplt,yplt,'-')&lt;br /&gt;
plt.hold(True)    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
运行后，得到的.csv文件的内容如下图所示：&lt;br /&gt;
&lt;br /&gt;
[[File:read2.png]]&lt;br /&gt;
&lt;br /&gt;
其中，第一列为网站A的编号，第2列为网站B的编号，第三列为从A到B网站跳转的人数，具体的网址名可以从对应的‘webs’文件中查看。&lt;br /&gt;
&lt;br /&gt;
'''处理后的读入代码'''&lt;br /&gt;
&lt;br /&gt;
下面为读取处理过数据的matlab代码：&lt;br /&gt;
&lt;br /&gt;
[[File:read.png]]&lt;br /&gt;
&lt;br /&gt;
====CNNIC中国用户数据====&lt;br /&gt;
'''数据说明'''&lt;br /&gt;
&lt;br /&gt;
这个数据是中国互联网信息中心用五年的时间，收集来自30000名志愿者的电脑操作数据集。每个志愿者在个人的电脑上装有一个数据获取程序。这个程序将每2秒扫描一下当前的激活窗口，如果发现激活的窗口改变，将在数据集中加入一条新的记录。为了使得分析更加的方便，我们这里随机选取了其中1000个志愿者1个月的上网数据，大约有1.2*10^8次条记录。&lt;br /&gt;
&lt;br /&gt;
'''数据存放'''&lt;br /&gt;
&lt;br /&gt;
所有的原始数据存放在服务器中，用户需登入后才能下载。存放地址为“E/CNNIC中国用户数据/url_200/”,用户可以用此构建网络。&lt;br /&gt;
&lt;br /&gt;
若通过ftp方式访问，详情参考[[服务器公共数据]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''数据格式'''&lt;br /&gt;
&lt;br /&gt;
数据以每个志愿者作为单独的文件记录，一共是1000个csv文件，每个文件中的内容如下：&lt;br /&gt;
&lt;br /&gt;
[[File:read1.png]]&lt;br /&gt;
&lt;br /&gt;
'''数据读入'''&lt;br /&gt;
&lt;br /&gt;
[[File:data.png]]&lt;br /&gt;
&lt;br /&gt;
循环中的变量f就是整个文件后的读入结果。 其中f['T']为日期，f['URL']为站名&lt;br /&gt;
&lt;br /&gt;
====部分百度贴吧数据====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''数据描述'''&lt;br /&gt;
&lt;br /&gt;
本数据集的数据来自百度贴吧活跃程度排在前1000的贴吧，并使用了这些贴吧一天的总共24个小时的数据量。这些数据没有用户ID在内的个人身份信息，数据里只有时间（第几个小时）以及用户在点击浏览时，从一个帖子跳转到另一个帖子的帖子编号。每次点击一个帖子的号码，用户的行为可能多种多样的，比如是在浏览帖子，回复评论别人发表的帖子，自己发布新的帖子，等等。&lt;br /&gt;
&lt;br /&gt;
'''数据格式'''&lt;br /&gt;
&lt;br /&gt;
下表显示的是有一个用户在第1个小时，从编号为2182799068的帖子开始点击浏览，在继续点击浏览了4个帖子后，停止浏览或者退出了贴吧，其中“s”代表用户浏览行为结束。&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 时间（第几个小时）!! 前一个帖子编号 !! 后一个帖子编号&lt;br /&gt;
|-&lt;br /&gt;
|1 ||	2182799068 ||	2182804888&lt;br /&gt;
|-&lt;br /&gt;
|1 ||	2182804888 ||	2184359849&lt;br /&gt;
|-&lt;br /&gt;
|1 ||	2184359849 ||	2184586777&lt;br /&gt;
|-&lt;br /&gt;
|1 ||	2184586777 ||	2185975737&lt;br /&gt;
|-&lt;br /&gt;
|1 ||	2185975737 ||	s&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''读入代码'''&lt;br /&gt;
&lt;br /&gt;
1.首先是处理原始百度贴吧文件名，防止乱码报错&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
# 批量重命名&lt;br /&gt;
def rename_file(src_dir, base_name, sufix):&lt;br /&gt;
    src_files = os.listdir(src_dir)&lt;br /&gt;
    # print len(src_files)&lt;br /&gt;
    index = base_name&lt;br /&gt;
    for srcfile in src_files:&lt;br /&gt;
        new_name = str(index) + sufix&lt;br /&gt;
        old_file_path = os.path.join(src_dir, srcfile)&lt;br /&gt;
        new_file_path = os.path.join(src_dir, new_name)&lt;br /&gt;
        # print '正在将“%s”重命名为“%s”' % (old_file_path, new_file_path)&lt;br /&gt;
        if os.path.exists(new_file_path):&lt;br /&gt;
            continue&lt;br /&gt;
        os.rename(old_file_path, new_file_path)&lt;br /&gt;
        index += 1&lt;br /&gt;
&lt;br /&gt;
# 原始贴吧数据文件夹，包含全部1000个贴吧各自24小时的数据&lt;br /&gt;
# 实际运行时，需要修改&lt;br /&gt;
src_dir_ = 'F:\\Data\\20130228\\'&lt;br /&gt;
sufix_ = '.txt'&lt;br /&gt;
base_name_ = 2016000&lt;br /&gt;
rename_file(src_dir_, base_name_, sufix_)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.其次是处理贴吧数据并做保存（'''注意：需要自行安装networkx包'''）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import os&lt;br /&gt;
import networkx as nx&lt;br /&gt;
from collections import defaultdict&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def yield_file_path(main_path):&lt;br /&gt;
        dir_list = os.listdir(main_path)&lt;br /&gt;
        for _dir in dir_list:&lt;br /&gt;
            # 某一个贴吧24小时的数据所在目录&lt;br /&gt;
            parent_dir = os.path.join(self.main_path, _dir)&lt;br /&gt;
            data_file_list = os.listdir(parent_dir)&lt;br /&gt;
            for data_file in data_file_list:&lt;br /&gt;
                # 某一个贴吧某一小时的数据完整路径&lt;br /&gt;
                yield os.path.join(complete_parent_dir, data_file)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
class FlowNetwork(object):&lt;br /&gt;
&lt;br /&gt;
    def __init__(self, file_path):&lt;br /&gt;
        self.Di = defaultdict(int)          # 每个节点的Di&lt;br /&gt;
        self.Ti = defaultdict(int)          # 每个节点的Ti&lt;br /&gt;
        self.__source = 'o'                 # 源节点&lt;br /&gt;
        self.__sink = 's'                   # 汇节点&lt;br /&gt;
        self.__weight = 1                   # 默认权重&lt;br /&gt;
        self.__G = nx.MultiDiGraph()        # 图G&lt;br /&gt;
        self.G = nx.DiGraph()               # 合并重复边后的图G&lt;br /&gt;
        self.file_path = file_path          # 贴吧数据文件路径&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    # 构建流网络并计算个节点的Di和Ti&lt;br /&gt;
    def create_flow_network(self):&lt;br /&gt;
        last_node = ''&lt;br /&gt;
        # 构建流网络（相同连边重复出现）&lt;br /&gt;
        with open(self.file_path, 'r') as f:&lt;br /&gt;
            for line in f:&lt;br /&gt;
                # 行格式：xxx xxx xx(时间 节点1 节点2)&lt;br /&gt;
                u, v = line.strip().split()[1:]&lt;br /&gt;
                self.__G.add_weighted_edges_from([(u, v, self.__weight)])&lt;br /&gt;
                if last_node != u:&lt;br /&gt;
                    # 如果当前的节点1，即u节点与last_node不同，则添加：源节点-&amp;gt;u节点的连边&lt;br /&gt;
                    self.__G.add_weighted_edges_from([(self.__source, u, self.__weight)])&lt;br /&gt;
                last_node = v&lt;br /&gt;
&lt;br /&gt;
        # 合并相同连边并计算Di和Ti&lt;br /&gt;
        for v, nbrs in self.__G.adjacency_iter():&lt;br /&gt;
            for nbr, edict in nbrs.items():&lt;br /&gt;
                # 节点v与邻居节点nbr所有连边的权重之和&lt;br /&gt;
                sum_weight = sum([d['weight'] for d in edict.values()])&lt;br /&gt;
                self.G.add_edge(v, nbr, weight=sum_weight)&lt;br /&gt;
                self.Ti[v] += sum_weight&lt;br /&gt;
                if nbr == 's':&lt;br /&gt;
                    self.Di[v] += sum_weight&lt;br /&gt;
        # 验证&lt;br /&gt;
        # print 'source节点出度%d\tsink节点入度%d' %&lt;br /&gt;
        # (sum(self.Di.values()), self.Ti[self.__source])&lt;br /&gt;
&lt;br /&gt;
    # 保存流网络（格式：from,to,weight) 一个贴吧1个小时一份&lt;br /&gt;
    def save_flow_network(self, save_dir):&lt;br /&gt;
        # 当前需要保存的某小时贴吧文件名&lt;br /&gt;
        file_name = os.path.split(self.file_path)[1]&lt;br /&gt;
&lt;br /&gt;
        father_dir = os.path.split(self.file_path)[0]&lt;br /&gt;
        father_dir_name = os.path.split(father_dir)[1]&lt;br /&gt;
&lt;br /&gt;
        # 每一个贴吧24小时的流网络的保存目录&lt;br /&gt;
        save_dir = os.path.join(save_dir, father_dir_name)&lt;br /&gt;
        if not os.path.exists(save_dir):&lt;br /&gt;
            os.mkdir(save_dir)&lt;br /&gt;
&lt;br /&gt;
        # 每一个贴吧某一小时的流网络的保存路径&lt;br /&gt;
        save_path = os.path.join(save_dir, file_name)&lt;br /&gt;
        if os.path.exists(save_path):&lt;br /&gt;
            os.remove(save_path)&lt;br /&gt;
&lt;br /&gt;
        # print '正在处理文件:{0}'.format(file_name)&lt;br /&gt;
        with open(save_path, 'a') as fw:&lt;br /&gt;
            for v, nbrs in self.G.adjacency_iter():&lt;br /&gt;
                for nbr, edict in nbrs.items():&lt;br /&gt;
                    # 节点v与邻居节点nbr所有连边的权重之和&lt;br /&gt;
                    weight = edict['weight']&lt;br /&gt;
                    fw.write(v + ',' + nbr + ',' + str(weight) + '\n')&lt;br /&gt;
&lt;br /&gt;
    # 保存UVt和PVt 一个贴吧24小时一份&lt;br /&gt;
    def save_uvt_pvt(self, save_dir):&lt;br /&gt;
        _UVt = self.Ti[self.__source]&lt;br /&gt;
        _PVt = sum([val for val in self.Ti.values()]) - _UVt&lt;br /&gt;
        # print '点击流网络的UVt：{0}'.format(_UVt)&lt;br /&gt;
        # print '点击流网络的PVt：{0}'.format(_PVt)&lt;br /&gt;
&lt;br /&gt;
        father_dir = os.path.split(self.file_path)[0]&lt;br /&gt;
        father_dir_name = os.path.split(absolute_dir_path)[1]&lt;br /&gt;
&lt;br /&gt;
        if not os.path.exists(save_dir):&lt;br /&gt;
            os.mkdir(save_dir)&lt;br /&gt;
&lt;br /&gt;
        save_path = os.path.join(save_dir, father_dir_name+'.txt')&lt;br /&gt;
        if os.path.exists(save_path):&lt;br /&gt;
            os.remove(save_path)&lt;br /&gt;
&lt;br /&gt;
        # print '正在处理贴吧:{0}'.format(father_dir_name)&lt;br /&gt;
        with open(save_path, 'a') as fw:&lt;br /&gt;
            fw.write(str(_UVt)+' '+str(_PVt)+'\n')&lt;br /&gt;
&lt;br /&gt;
    # 保存Ti和Di （格式：ti di）一个贴吧24小时一份&lt;br /&gt;
    def save_ti_di(self, save_dir):&lt;br /&gt;
&lt;br /&gt;
        father_dir = os.path.split(self.file_path)[0]&lt;br /&gt;
        father_dir_name = os.path.split(father_dir)[1]&lt;br /&gt;
&lt;br /&gt;
        if not os.path.exists(save_dir):&lt;br /&gt;
            os.mkdir(save_dir)&lt;br /&gt;
&lt;br /&gt;
        save_path = os.path.join(save_dir, father_dir_name+'.txt')&lt;br /&gt;
        if os.path.exists(save_path):&lt;br /&gt;
            os.remove(save_path)&lt;br /&gt;
&lt;br /&gt;
        # print '正在处理贴吧:{0}'.format(father_dir_name)&lt;br /&gt;
        with open(save_path, 'a') as fres:&lt;br /&gt;
            for v in self.__G.nodes():&lt;br /&gt;
                if v == self.__source:&lt;br /&gt;
                    continue&lt;br /&gt;
                _ti = self.Ti[v]&lt;br /&gt;
                _di = self.Di[v]&lt;br /&gt;
                fres.write(str(_ti)+' '+str(_di)+'\n')&lt;br /&gt;
&lt;br /&gt;
    # 保存node数和edge数（格式：node edge）一个贴吧24小时一份&lt;br /&gt;
    def save_node_edge(self, save_dir):&lt;br /&gt;
&lt;br /&gt;
        father_dir = os.path.split(self.file_path)[0]&lt;br /&gt;
        father_dir_name = os.path.split(father_dir)[1]&lt;br /&gt;
&lt;br /&gt;
        if not os.path.exists(save_dir):&lt;br /&gt;
            os.mkdir(save_dir)&lt;br /&gt;
&lt;br /&gt;
        save_path = os.path.join(save_dir, father_dir_name+'.txt')&lt;br /&gt;
        if os.path.exists(save_path):&lt;br /&gt;
            os.remove(save_path)&lt;br /&gt;
&lt;br /&gt;
        # print '正在处理贴吧:{0}'.format(father_dir_name)&lt;br /&gt;
        with open(save_path, 'a') as fres:&lt;br /&gt;
            _nodes = self.G.number_of_nodes();&lt;br /&gt;
            _edges = self.G.number_of_edges()&lt;br /&gt;
            fres.write(str(_nodes) + ' ' + str(_edges) + '\n')&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    # all_data_directory为全部贴吧数据所在目录，实际运行时需要修改&lt;br /&gt;
    for fpath in yield_file_path(all_data_directory):&lt;br /&gt;
        fn = FlowNetwork(fpath)&lt;br /&gt;
&lt;br /&gt;
        # print '正在从文件：{0}创建流网络'.format(fpath)&lt;br /&gt;
        fn.create_flow_network()&lt;br /&gt;
&lt;br /&gt;
        # print '正在保存文件{0}的流网络'.format(fpath)&lt;br /&gt;
        fn.save_flow_network(save_dir1)&lt;br /&gt;
&lt;br /&gt;
        # print '正在保存文件{0}流网络的UVt和PVt'.format(fpath)&lt;br /&gt;
        fn.save_uvt_pvt(save_dir2)&lt;br /&gt;
&lt;br /&gt;
        # print '正在保存文件{0}流网络的Ti和Di'.format(fpath)&lt;br /&gt;
        fn.save_ti_di(save_dir3)&lt;br /&gt;
&lt;br /&gt;
        # print '正在保存文件{0}流网络的节点数和边数'.format(fpath)&lt;br /&gt;
        fn.save_node_edge(save_dir4)&lt;br /&gt;
        # print '************************************************'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===研究方法===&lt;br /&gt;
&lt;br /&gt;
我们主要采取[[开放流网络]]的研究方法来研究注意力流网络。相关内容，请参看[[流网络]]。&lt;br /&gt;
&lt;br /&gt;
===主要结论===&lt;br /&gt;
&lt;br /&gt;
采用注意力流网络工具研究集体注意力流的好处就在于，这种网络可以揭示互联网系统的整体信息，特别是网站和网站之间的联系。为了更加一目了然地揭示互联网生态系统的整体信息，我们将网络中的所有节点都嵌入到一个高维空间中。具体方法可以参考[[流网络的嵌入]]。嵌入之后，每一个网站就获得了一个独一无二的空间位置。这种位置信息可以反映很多现象。&lt;br /&gt;
&lt;br /&gt;
====互联网生态系统====&lt;br /&gt;
&lt;br /&gt;
下面，我们以印第安纳大学的注意力流网络为例来展示网络的空间嵌入。&lt;br /&gt;
&lt;br /&gt;
=====国际互联网生态系统=====&lt;br /&gt;
&lt;br /&gt;
[[File:Attentionnetworkexampleindiana.png|500px]]&lt;br /&gt;
&lt;br /&gt;
上图所示就是将网络中的所有节点都嵌入到一个20维空间中，然后再将其降维到二维空间之后得到的图。图中每一个节点就是一个网站。节点的大小表示的是访问该网站的注意力流量大小再取对数。节点的颜色是根据专业分类网站（[http://sitereview.bluecoat.com/sitereview.jsp http://sitereview.bluecoat.com/sitereview.jsp]）所做出来的分类结果。例如，黄色节点表示搜索引擎／门户类网站；红色的节点表示教育类网站；绿色节点则表示娱乐类网站，……。&lt;br /&gt;
&lt;br /&gt;
根据这张图，我们能够观察到如下几类现象：&lt;br /&gt;
&lt;br /&gt;
* 相同颜色的网站倾向于聚集在一起。例如，成人类网站明显地聚集到了整张图的左侧，而绿色的新闻／娱乐类网站则聚到了图的右下侧。&lt;br /&gt;
* 少数几个大型网站聚到了中心位置，尤其是Google基本位于整张图的正中心。按照我们的算法，对于整个互联网生态越重要的网站就会越靠近中心。我们用圆圈的大小来表示该网站的访问流量。我们看到，虽然Google的流量相对于Myspace、Facebook来说并不是很大，但是它的位置却比MySpace和Facebook更加靠近中心，这彰显出Google对于整个互联网的中心作用。&lt;br /&gt;
* 最后，所有的网站的分布基本形成了一个以Google为中心的球形。&lt;br /&gt;
&lt;br /&gt;
[[File:comparisonofrankingindianauniversity.png|500px]]&lt;br /&gt;
&lt;br /&gt;
我们可以按照到所有其他节点的平均距离来进行从小到大的排序，并与按照流量的方式进行比较，如上表所示。我们发现，流距离排序能够更好地反映出来每一个网站在整个生态系统中的地位和作用。而流量仅仅反映了一个网站点击量的多少，它并不能反映出网站之间的相互关系。所以，MySpace、MSN等网站流量可能很大（因为它们都是社交网站，大部分流量都是发生在内部的），但是它们在整个网络中的中心性却没有Google这样的搜索引擎重要。&lt;br /&gt;
&lt;br /&gt;
整个互联网、注意力、注意力的耗散基本也呈现出球对称的分布形态。于是我们定量化地计算出不同圈层各个量的分布情况，概括为如下图形。&lt;br /&gt;
&lt;br /&gt;
[[File:attentiondistributionindianauniversity.png|500px]]&lt;br /&gt;
&lt;br /&gt;
上图画出的是三种量（网站数、注意力流量、耗散流量）随着从里到外的半径方向进行累积所展现的S型曲线。其中横坐标R为空间中任意一点到Google的距离（我们发现Google非常靠近整个网络的重心位置，所以选择它为区域的中心）；纵坐标对应的是相应变量的累积量。这里累积量T(R)的计算是这样的：以Google为圆心，以R为半径画一个d维球，然后计算这个球内包含的所有点的相应流量，其它累积量的计算也类似。&lt;br /&gt;
&lt;br /&gt;
我们可以按照球的半径大小从里到外把这些网站分成三个不同的层次（两条虚线圆形成了分界线）。我们发现最里面的球包含了仅仅1/5的网站数量，但是流量却涵盖了整个生态系统的45%；第二圈则包含了全部网站的40%，而流量却仅仅只有25%；第三圈则是剩下的小网站。&lt;br /&gt;
&lt;br /&gt;
=====中国互联网生态系统=====&lt;br /&gt;
&lt;br /&gt;
与此类似，我们还可以用同样的方法分析中国互联网。下面就是利用CNNIC数据作出的类似结果。&lt;br /&gt;
&lt;br /&gt;
[[File:chinacnnicgeometricrepresentation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
图中右下角的D是利用CNNIC数据揭示出来的整个中国互联网的地图。其中，不同的颜色表示不同的聚类。这里面的聚类就是在嵌入空间后运用K－means聚类算法计算出来的结果。A图则放大展示了D图中心一部分区域的互联网。其它图则分别展示了不同类别的互联网在整个图形中的位置。&lt;br /&gt;
&lt;br /&gt;
我们发现：&lt;br /&gt;
&lt;br /&gt;
# 整个图形相比较上面的国际互联网地图具有明显的不对称性；尽管在核心区域，网站分布还基本是对称的；&lt;br /&gt;
# 不同类别的网站聚成了不同的团簇，例如：F图中高亮的蓝色节点就是Q&amp;amp;A类型的网站；&lt;br /&gt;
# 知名度高的、中心性的网站聚到了中心，例如百度、qq等。&lt;br /&gt;
&lt;br /&gt;
同样的，我们根据流距离对整个网站的流行度进行了排序，选取了top17，点击量和PageRank结果进行对比：&lt;br /&gt;
&lt;br /&gt;
[[File:rank.png|800px]]&lt;br /&gt;
&lt;br /&gt;
根据排名，也同样出现了某些流量较大的网站在流距离排名并不靠前。&lt;br /&gt;
&lt;br /&gt;
此外，我们也分析了基于中国互联网用户数据的流量、耗散和网站数分布。下图为他们的累积分布:&lt;br /&gt;
&lt;br /&gt;
[[File:cumulativequantitiesincnniclickdata.png|400px]]&lt;br /&gt;
&lt;br /&gt;
同样，他们的累积分布都呈现“S”型特性。我们也按照注意力流的分位数将整个网络生态分成3个层次。其中，最中心的区域只有1%的网站数，但却集中了40%的人类注意力。&lt;br /&gt;
&lt;br /&gt;
和史的印第安纳大学的研究结果相比较，我们可以发现整个互联网的可视化形状存在差别，基于美国用户的可视化表明整个网络类似于一个对称的球形，所有网站的分布式均匀的。相反，从中国的情况看，整个网络形状不规则，内容相同的网站聚集程度更高，网站之间的异质性差异更大。比较印第安纳大学的S型曲线，我们发现中国网站中流量和耗散的累积曲线在前端上升得更加陡峭。这说明少数网站（百度、QQ、淘宝）占据了过多的流量。而小网站的流量更少，中国互联网企业垄断趋势更加的明显。&lt;br /&gt;
&lt;br /&gt;
=====主要参考文献=====&lt;br /&gt;
&lt;br /&gt;
* Peiteng Shi,Xiaohan Huang,Jun Wang, Jiang Zhang: [http://www.swarma.org/thesis/download.asp?address=doc/jake_380.pdf&amp;amp;type=1&amp;amp;id=381 A Geometric Representation of Collective Attention Flows]; PLoS ONE 10(9): e0136243, 2015&lt;br /&gt;
&lt;br /&gt;
====注意力流网络与社区粘性====&lt;br /&gt;
&lt;br /&gt;
运用注意力流网络不仅可以研究整个互联网的整体情况，还可以研究某一个网站内部的注意力流分布。当我们选定了一段时间，选择了待研究的网站（网络社区）边界，我们就能用一个注意力流网络对网站（社区）进行建模。其中，每个节点都是一个网页（帖子、图像等数字资源），而节点之间依靠人类的接续点击行为相互组织形成了网络。这样，我们就可以用这个注意力流网络来对网站（社区）来进行抽象描述，网站（社区）的属性应该可以反映到注意力流网络之中。&lt;br /&gt;
&lt;br /&gt;
=====交互粘性=====&lt;br /&gt;
&lt;br /&gt;
例如，我们用百度贴吧的注意力流网络就可以考察网络贴吧的交互粘性。首先，我们需要指出，所谓的交互粘性就是指下面方程的指数&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
Y_t\propto X_t^{\theta}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这里的&amp;lt;math&amp;gt;Y_t&amp;lt;/math&amp;gt;为第t个小时内某百度贴吧的总点击量，&amp;lt;math&amp;gt;X_t&amp;lt;/math&amp;gt;则为该小时内该贴吧的总独立访客数。通过分析大量的贴吧数据，我们发现，尽管贴吧彼此差异很大，但是它们都遵循上面的方程（如下图），其中&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;是一个只与贴吧有关，而与时间、规模无关的常数。&lt;br /&gt;
&lt;br /&gt;
[[File:generalizedkleiberlawfortieba.png|400px]]&lt;br /&gt;
&lt;br /&gt;
我们将指数&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;定义为该社区的交互粘性。这是因为&amp;lt;math&amp;gt;Y_t/X_t\propto X_t^{\theta-1}&amp;lt;/math&amp;gt;，也就是人均产生的点击量会随着用户的增多而增多（或减少，取决于&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;大于或小于1）。当&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;大的时候，人均点击量会随着访客数的增加而以更快的速度增长。采用这个指标衡量交互粘性具有一定的稳定性，这是因为&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;基本不随规模、时间而变。&lt;br /&gt;
&lt;br /&gt;
=====耗散模式与交互粘性=====&lt;br /&gt;
&lt;br /&gt;
那么，什么因素与&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;有关呢？我们研究发现，社区的注意力流网络的耗散模式与其正相关。首先，对于任意一个注意力流网络，我们发现了如下的关系：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
T_i\propto D_i^{\gamma}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
其中，T为每个帖子相应的流量，D为它的耗散流，也就是从i下网的总人次数。指数&amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;就反映了一个网络社区的耗散模式，它的数值越大，则流量大节点的耗散比率就越多（也就是有更大比例的用户会在大流量节点流失掉）。&lt;br /&gt;
&lt;br /&gt;
我们进一步发现了指数&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;和指数&amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;之间的关系如下图所示：&lt;br /&gt;
&lt;br /&gt;
[[File:gammaandthetaforbaidutieba.png|400px]]&lt;br /&gt;
&lt;br /&gt;
由图可见，&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;会随着&amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;的增加而降低。所以，用户在一个网站上的流失模式会影响这个社区的交互粘性。&lt;br /&gt;
这个结论的直观说明是，如果一个贴吧充斥着大量的“标题党”帖子，那么它的交互粘性一定非常低。这是因为，在这样的贴吧中，用户点击这些标题贴会促使这些帖子的流量升高，但是由于&amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;的数值大，所以大流量节点相对流失率也高，所以这样的贴吧粘性就会低。&lt;br /&gt;
&lt;br /&gt;
=====主要参考文献=====&lt;br /&gt;
&lt;br /&gt;
* Lingfei Wu,Jiang Zhang,Min Zhao: [http://www.swarma.org/thesis/download.asp?address=doc/jake_375.pdf&amp;amp;type=1&amp;amp;id=376 The Metabolism and Growth of Web Forums]; PLoS ONE 2014, 9(8): e102646&lt;br /&gt;
[[分类:旧词条迁移]]&lt;/div&gt;</summary>
		<author><name>Mugicaxu2</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E9%9B%86%E4%BD%93%E6%B3%A8%E6%84%8F%E5%8A%9B&amp;diff=34672</id>
		<title>集体注意力</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E9%9B%86%E4%BD%93%E6%B3%A8%E6%84%8F%E5%8A%9B&amp;diff=34672"/>
		<updated>2024-05-13T12:57:32Z</updated>

		<summary type="html">&lt;p&gt;Mugicaxu2：/* 注意力流网络 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;每一秒钟,整个互联网上就有 60 万条信息在 Facebook 上分享,2 亿个 Email、10 万条 推文被发送,571 个新网站被建立,1.9E(10&amp;lt;sup&amp;gt;18&amp;lt;/sup&amp;gt;)字节数据被交换[1]。海量的信息不断涌现, 但是全球的互联网用户总数却仅有 30 多亿(截止到 2014 年底)[1]。正如诺贝尔经济学奖 得主 Herbert Simon 早在 1971 年指出的,“......在一个信息丰富的世界中,拥有了信息就意 味着另一种稀缺,......,(这)就是信息接受者的注意力。......”[2]。故而,在信息过载时 代,注意力成为了首要稀缺资源。注意力不仅是人类行为的原始驱动力,更反映了人类的需求与愿望。因此,研究互联网上人类群体的注意力是如何分配、流动及耗散的就具有重大意义。&lt;br /&gt;
&lt;br /&gt;
==集体注意力==&lt;br /&gt;
正是由于注意力的重要性与稀缺性,H. Simon[2]、M. Goldharbor 等人最早􏰀出并发展 了注意力经济的概念,开创了注意力定性研究的先河[3]。然而关于人类群体注意力的定量 化研究却直到 20 世纪 90 年代之后才真正展开 [4-6]。&lt;br /&gt;
&lt;br /&gt;
集体注意力(Collective attention)一词是由 B. Huberman 最早􏰀出的[5],指大量群体 对有限信息资源的关注与访问,包括点击、评论、点赞、修改等[5]。早先的研究集中在注 意力在单个信息资源上的分配。例如,Wu 和 Huberman 利用新闻网站 Digg 的数据研究了新 闻的流行性、创新性对注意力的影响,同时发现了一种由信息排序策略所引发的相变行为 [6]。近年来,社交媒体的深入发展促使学者研究多个信息资源对有限注意力的竞争[7],这 种竞争可以被简化为一个临界分支过程并蕴含着临界现象[8]。另一方面,集体注意力在时 间上也呈现出爆发的特性,特别是在热点事件到来前后会具有不同的爆发模式[9][10],且这 种爆发行为与人脑神经元的放电模式具有一定的相似性[11]。集体注意力不仅展现出丰富的 时空动态,还对知识的创造[12,13]、股票涨落的预测[14]、政党选举结果的预测[15]、科学 家研究兴趣的转移[16]、极端事件的预测[17]等等都有着非常重要的影响。&lt;br /&gt;
&lt;br /&gt;
===参考文献===&lt;br /&gt;
&lt;br /&gt;
* [1] Website of Internet live Stats, available from http://www.internetlivestats.com/&lt;br /&gt;
* [2] Simon, H. A., Designing Organizations for an Information-Rich World, in Martin Greenberger, Computers, Communication, and the Public Interest, Baltimore, MD: The Johns Hopkins Press, 1971 &lt;br /&gt;
* [3]张雷:西方注意力经济学派研究,中国社会科学出版社,2009&lt;br /&gt;
* [4] Huberman B A, Pirolli P L T, Pitkow J E, et al. Strong regularities in world wide web surfing. Science, 1998, 280(5360): 95-97.&lt;br /&gt;
* [5] Wu F, Huberman B A. Novelty and collective attention. Proceedings of the National Academy of Sciences, 2007, 104(45): 17599-17601.&lt;br /&gt;
* [6] Wu F, Huberman B A. Popularity, novelty and attention, Proceedings of the 9th ACM conference on Electronic commerce. ACM, 2008: 240-245.&lt;br /&gt;
* [7] Weng L, Flammini A, Vespignani A, et al. Competition among memes in a world with limited attention. Scientific reports, 2012, 2.&lt;br /&gt;
* [8] Gleeson J P, Ward J A, O’Sullivan K P, et al. Competition-induced criticality in a model of meme popularity. Physical review letters, 2014, 112(4): 048701.&lt;br /&gt;
* [9] Lehmann J, Gonçalves B, Ramasco J J, et al. Dynamical classes of collective attention in twitter, Proceedings of the 21st international conference on World Wide Web. ACM, 2012: 251-260.&lt;br /&gt;
* [10] Crane R, Sornette D. Robust dynamic classes revealed by measuring the response function of a social system. Proceedings of the National Academy of Sciences, 2008, 105(41): 15649-15653.&lt;br /&gt;
* [11] Sanli C, Lambiotte R. Local variation of collective attention in hashtag spike trains. arXiv preprint arXiv:1504.01637, 2015.&lt;br /&gt;
* [12] Ciampaglia G L, Flammini A, Menczer F. The production of information in the attention economy. Scientific reports, 2015, 5.&lt;br /&gt;
* [13] Wu L, Baggio J, Janssen M A. The Dynamics of Collaborative Knowledge Production. arXiv preprint arXiv:1509.05083, 2015.&lt;br /&gt;
* [14] Heiberger R H. Collective Attention and Stock Prices: Evidence from Google Trends Data on Standard and Poor's 100. PloS one, 2015, 10(8): e0135311.&lt;br /&gt;
* [15] Eom Y H, Puliga M, Smailović J, et al. Twitter-based analysis of the dynamics of collective attention to political parties. PloS one, 2015, 10(7): e0131184.&lt;br /&gt;
* [16] Huberman B A. Social Attention in the Age of the Web. Working together or apart: Promoting the next generation of digital scholarship, 2009, 62.&lt;br /&gt;
* [17] Miotto J M, Altmann E G. Predictability of extreme events in social media. PloS one, 2014, 9(11): e111506.&lt;br /&gt;
&lt;br /&gt;
==集体注意力流动==&lt;br /&gt;
&lt;br /&gt;
然而,人类注意力不会仅集中在同一个数字资源上,还会在多个资源上流动、转移。 本项目的研究重点则是关注这种集体注意力之流,即大量用户在网络空间中的连续动作序 列(如点击、回复、点赞等)所形成的流动[18]。这种流动反映了人类集体的兴趣转移,因 此具有十分广泛的工业应用背景,包括点击流分析[19],Web 挖掘[20]、计算广告学[21]等。&lt;br /&gt;
&lt;br /&gt;
===注意力流网络===&lt;br /&gt;
&lt;br /&gt;
[[Jake]]等人创立了一种新的分析方法——注意力流网络,用于从整体的角度研究注 意力在信息资源上的流动,它可以综合考虑资源之间的超链接结构与人类集体行为。所谓 的注意力流网络就是一个加权有向图,其中节点是信息资源,有向连边代表用户跳转,权 重值代表了注意力的流量(即有多少用户从一个节点跳转到另一个)[22, 23]。同时,在整 个网络中存在两个特殊的节点:源和汇,它们代表注意力流量的入口(表示用户上线)和 出口(表示用户离开)。我们可以直接按照会话(Session,通常就是指一个固定的时间间隔, 如一小时)划分的用户行为数据来构建这样的注意力流网络,如图1所示[24]。&lt;br /&gt;
&lt;br /&gt;
[[File:constructionofattentionflownetworkillustration.png|500px]]&lt;br /&gt;
&lt;br /&gt;
上图中，左边一栏为假想的多个用户分别在各自的一次会话中的浏览轨迹,A、B、C、...F 代表不同用户,1,2,3...5 代表数字资源。因此 A 用户在这一次会话中先后访问了 1、2、4、5 号数字资源。根据所有这些用 户的浏览轨迹可以构造注意力流网络如右图所示,其中连边上的数值表示有多少人次跳转。源代表用户的入口,有多少用户首先访问了资源 i,从源到 i 的流量就是多少。汇代表用户出口,从资源 i 有多少用户退 出,从 i 到汇的流量就是多少。这种构造网络的方法可以保证流量平衡性,即除了源和汇以外,网络所有节点的总入流都等于总出流。&lt;br /&gt;
&lt;br /&gt;
如此构建的注意力流网络会自动处于流平衡状态(如图 1),这为我们􏰀供了分析的便利性[25]。另外,由于源和汇的引入,注意力流网络也可以分析用户的进入与流失模式,这 对于网站的流量分析来说非常重要[19]。目前,采用这套方法,我们已经研究了注意力流网 络的去中心化程度[23]、网络论坛的粘性[24]、互联网生态系统的几何化表示[18]等问题, 收到了良好的成效。同时,这种流网络作为一般性方法也被广泛应用到了生态系统、国际贸易等其它领域[26,27,22]。&lt;br /&gt;
&lt;br /&gt;
在本项目中,我们主要关注两种不同尺度的注意力流网络,分别是域名级别的注意力流网络,以及网络社区的注意力流网络。如图2所示。&lt;br /&gt;
&lt;br /&gt;
[[File:twoscaleattentionflownetworkillustration.png|400px]]&lt;br /&gt;
&lt;br /&gt;
参考文献：&lt;br /&gt;
&lt;br /&gt;
* [18] Shi P, Huang X, Wang J, et al. A Geometric Representation of Collective Attention Flows. PloS one, 2015, 10(9): e0136243.&lt;br /&gt;
* [19] A. Kaushik: Web Analytics 2.0 The Art of Online Accountability &amp;amp; Science of Customer Centricity, Sybex; 1 edition, 2009&lt;br /&gt;
* [20] Liu B. Web data mining: exploring hyperlinks, contents, and usage data. Springer Science &amp;amp; Business Media, 2007.&lt;br /&gt;
* [21] 刘鹏,王超:计算广告,人民邮电出版社,2015&lt;br /&gt;
* [22] Guo L, Lou X, Shi P, et al. Flow distances on open flow networks. Physica A: Statistical Mechanics and its Applications, 2015, 437: 235-248.&lt;br /&gt;
* [23] Wu L, Zhang J. The decentralized flow structure of clickstreams on the web. The European Physical Journal B, 2013, 86(6): 1-6.&lt;br /&gt;
* [24] Wu L, Zhang J, Zhao M. The metabolism and growth of web forums. PloS one, 2014, 9(8): e102646.&lt;br /&gt;
* [25] Zhang J, Lou X, Guo L. Universal patterns and constructal law in open flow networks. International Journal of Heat and Technology, Volume 34 (2016), Special Issue 1, pp.S75-S82&lt;br /&gt;
* [26] Zhang J, Guo L. Scaling behaviors of weighted food webs as energy transportation networks. Journal of theoretical biology, 2010, 264(3): 760-770.&lt;br /&gt;
* [27] Shi P, Zhang J, Yang B, et al. Hierarchicality of trade flow networks reveals complexity of products. PloS one, 2014, 9(6): e98247.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:待润色]]&lt;br /&gt;
&lt;br /&gt;
===数据源===&lt;br /&gt;
&lt;br /&gt;
要研究集体注意力流，需要使用大量的用户行为数据。在这里，我们列出[[Jake]]研究组已经收集到的一系列数据集&lt;br /&gt;
&lt;br /&gt;
====印第安纳大学师生上网数据====&lt;br /&gt;
'''数据存放'''&lt;br /&gt;
&lt;br /&gt;
该数据存放在服务器中，需用户远程登入“210.31.72.215”连接服务器后,才能下载。&lt;br /&gt;
存放的路径为“E：/indiana/data”中，都是最终处理后得到的CSV文件。&lt;br /&gt;
&lt;br /&gt;
若通过ftp方式访问，详情参考[[服务器公共数据]]&lt;br /&gt;
&lt;br /&gt;
'''数据描述'''&lt;br /&gt;
&lt;br /&gt;
本组数据是一组匿名的印第安纳大学上网点击流数据，记录了校园内用户从2006年10月到2008年2月的上网浏览行为。尽管本组数据属于一组简单的有偏数据，但包含的信息仍然十分丰富。其中，包含了123137个网站以及45563567的日均流量。尤其是针对top网站的研究（Facebook， Myspace，Yahoo），这将会是一个不错的数据集。&lt;br /&gt;
数据是通过对通过印第安纳边界路由器流量的镜像应用伯克利过滤包产生的。过滤包会自动匹配那些去往TCP80端口的流量，如果数据包含有请求，收集系统就会生成如下的一条记录：&lt;br /&gt;
&lt;br /&gt;
*时间戳&lt;br /&gt;
*被请求的URL&lt;br /&gt;
*响应的URL&lt;br /&gt;
*一个布尔型的用户代理分类（浏览器或者机器人）&lt;br /&gt;
*一个布尔型的标记，该请求是否会产生内置或外置IU&lt;br /&gt;
&lt;br /&gt;
有几个需要注意的地方：&lt;br /&gt;
# 对于客户端的并没有能够区别他们的信息，即没有任何MAC、IP地址或者其他唯一的索引来区分用户。&lt;br /&gt;
# 这里没有尝试对数据流的重新组装以及服务器的响应进行分析。&lt;br /&gt;
&lt;br /&gt;
'''数据格式'''&lt;br /&gt;
&lt;br /&gt;
原始数据集有两个收集集：&lt;br /&gt;
# raw：大约250亿的请求，只保留了响应的主机名。收集了从2006年9月26日到2008年3月3日的信息，其中损失的信息为98天，包含整个2007年6月。&lt;br /&gt;
#raw-url：大约286亿请求，保留了响应所有全部URL。收集了从2008年3月3日到2010年5月31日的信息，其中损失的信息为179天，包含整个2008年12月，2009年1月和2月。&lt;br /&gt;
&lt;br /&gt;
整个数据集按小时划分为一个个文件。每个文件中的首行有一些列的标记，这些都可以被忽略点。每条记录的格式样例：&lt;br /&gt;
&lt;br /&gt;
XXXXADreferrer&lt;br /&gt;
&lt;br /&gt;
host&lt;br /&gt;
&lt;br /&gt;
path&lt;br /&gt;
&lt;br /&gt;
其中XXXX表示时间戳（32-bit unix值），A为每个用户代理标记（“B”为浏览器，其他为“？”），D为方向标记（“I”为外部的流进入IU接口，“O”代表内部的流到外部IU接口），referrer是访问来源的主机名或者URL（换行符终止），host为目标主机名（换行符终止），path为目标路径（换行符终止）.&lt;br /&gt;
&lt;br /&gt;
为了使用方便，我们对原始数据集进行了处理，分离出两类文件，一类文件按照每小时命名（例如：2008-02-10_00output.csv），记录网站跳转的情况。另一个记录了与之对应的具体网站名称（例如：2008-02-10_00webs.csv）。&lt;br /&gt;
&lt;br /&gt;
具体的python代码如下：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import csv&lt;br /&gt;
import datetime&lt;br /&gt;
import sys&lt;br /&gt;
import numpy as np&lt;br /&gt;
import time as tm&lt;br /&gt;
import random&lt;br /&gt;
from scipy.sparse import *&lt;br /&gt;
from scipy import *&lt;br /&gt;
import scipy as sp&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import networkx as nx&lt;br /&gt;
from urlparse import urlparse&lt;br /&gt;
def file_len(fname):&lt;br /&gt;
    with open(fname,'rb') as f:&lt;br /&gt;
        for i, l in enumerate(f):&lt;br /&gt;
            pass&lt;br /&gt;
    return i + 1&lt;br /&gt;
def parturlclean(url):&lt;br /&gt;
    try:&lt;br /&gt;
        if url.replace('.','').isdigit(): return 'None'&lt;br /&gt;
        else:&lt;br /&gt;
            if len(url.split('.')) &amp;gt;=2 :&lt;br /&gt;
                if url[-6:]=='com.cn': return '.'.join(url.split('.')[-3:])&lt;br /&gt;
                return '.'.join(url.split('.')[-2:])&lt;br /&gt;
        return ''&lt;br /&gt;
    except:&lt;br /&gt;
        return 'None'&lt;br /&gt;
&lt;br /&gt;
def ReadWholeHourNetwork(working_pathfile):&lt;br /&gt;
    filename=working_pathfile&lt;br /&gt;
    nums=0&lt;br /&gt;
    bfile=open(filename+&amp;quot;webs.csv&amp;quot;, &amp;quot;rb&amp;quot;)&lt;br /&gt;
    urls=[]&lt;br /&gt;
    with bfile as FileObj:&lt;br /&gt;
        for lines in FileObj:&lt;br /&gt;
            seg=lines.split('\r\n')&lt;br /&gt;
            urls.append(seg[0]) &lt;br /&gt;
            nums+=1&lt;br /&gt;
    bfile.close()&lt;br /&gt;
    lasttime=0&lt;br /&gt;
   &lt;br /&gt;
    smatrix=np.zeros([nums+2,nums+2])&lt;br /&gt;
    addresses={}&lt;br /&gt;
    with open(filename+'output.csv','rb') as FileObj:&lt;br /&gt;
        i=0&lt;br /&gt;
        for lines in FileObj:&lt;br /&gt;
            segments=lines.split(',')&lt;br /&gt;
            #bigstring=bigstring+lines&lt;br /&gt;
            inn=long(segments[0])&lt;br /&gt;
            out=long(segments[1])&lt;br /&gt;
            flux=long(segments[2])&lt;br /&gt;
            addresses[inn]=1&lt;br /&gt;
            addresses[out]=1&lt;br /&gt;
            smatrix[inn,out]=flux&lt;br /&gt;
            #eliminate self-loop flows&lt;br /&gt;
            #if inn==out:&lt;br /&gt;
            #   smatrix[inn,out]=0&lt;br /&gt;
            i+=1&lt;br /&gt;
    #print smatrix[21,:]&lt;br /&gt;
    list1=range(nums)&lt;br /&gt;
    list2=[v for v in addresses.iterkeys()]&lt;br /&gt;
    diff=list(set(list1)-set(list2))&lt;br /&gt;
    #if len(diff)&amp;gt;0:&lt;br /&gt;
    #    print 'error:'+str(len(diff))&lt;br /&gt;
    #print list(addresses.itervalues())&lt;br /&gt;
    return(smatrix,urls)&lt;br /&gt;
def residuals(p,xx,yy):&lt;br /&gt;
    k,b=p&lt;br /&gt;
    return np.log(yy) - (k*np.log(xx)+b)&lt;br /&gt;
from scipy.optimize import leastsq&lt;br /&gt;
import os.path&lt;br /&gt;
&lt;br /&gt;
#################################&lt;br /&gt;
&lt;br /&gt;
head='2007-09-16_'&lt;br /&gt;
tail1='_00_00_+3600'&lt;br /&gt;
tail2='_00_01_+3599'&lt;br /&gt;
dotclick='.click'&lt;br /&gt;
file_path='H:/clickstream/click/2007-09-16.click/'&lt;br /&gt;
for hour in range(24):&lt;br /&gt;
    if hour&amp;lt;10:&lt;br /&gt;
        hours='0'+str(hour)&lt;br /&gt;
    else:&lt;br /&gt;
        hours=str(hour)&lt;br /&gt;
    fullname=head+hours+tail1&lt;br /&gt;
    f1=os.path.isfile(file_path+fullname+dotclick)&lt;br /&gt;
    if not f1:&lt;br /&gt;
        fullname=head+hours+tail2&lt;br /&gt;
        f1=os.path.isfile(file_path+fullname+dotclick)&lt;br /&gt;
        if not f1:&lt;br /&gt;
            print 'bad'&lt;br /&gt;
    file_name=fullname+dotclick&lt;br /&gt;
    filename=fullname&lt;br /&gt;
    filelen=file_len(file_path+file_name)&lt;br /&gt;
    clicks={}&lt;br /&gt;
    i=0&lt;br /&gt;
    addresses={}&lt;br /&gt;
    clicks={}&lt;br /&gt;
    with open(file_path+file_name,'rb') as FileObj:&lt;br /&gt;
        last=''&lt;br /&gt;
        start=-1&lt;br /&gt;
        end=-1&lt;br /&gt;
        eventtime=-1&lt;br /&gt;
        for lines in FileObj:        &lt;br /&gt;
            if (i-1)%3==0:&lt;br /&gt;
                bys=bytes(lines)&lt;br /&gt;
                #if len(bys)==1:&lt;br /&gt;
                if len(bys)&amp;lt;4:&lt;br /&gt;
                    i=i-1&lt;br /&gt;
                    last=last+bys&lt;br /&gt;
                else:&lt;br /&gt;
                    decs=[ord(bys[j]) for j in range(len(bys))]&lt;br /&gt;
                    if len(last)&amp;gt;0:&lt;br /&gt;
                        lst=[ord(last[j]) for j in range(len(last))]&lt;br /&gt;
                        decs=lst+decs&lt;br /&gt;
                        last=''&lt;br /&gt;
                        #decs.insert(0,[ord(last[j]) for j in range(len(last))])&lt;br /&gt;
                        #decs.insert(0,ord(last))&lt;br /&gt;
                    &lt;br /&gt;
                    bins=[bin(decs[j])[2:].zfill(8) for j in range(4)]&lt;br /&gt;
                    binary=''.join(bins[::-1])&lt;br /&gt;
                    value=int(binary,2)&lt;br /&gt;
                    eventtime=value&lt;br /&gt;
                    year=datetime.datetime.fromtimestamp(value).year&lt;br /&gt;
                    if year!=2007:&lt;br /&gt;
                        print 'error'&lt;br /&gt;
                        print abc[0]&lt;br /&gt;
                    if decs[4]==66 and decs[5]==79:&lt;br /&gt;
                        addr=[chr(decs[v]) for v in range(6,len(decs)-1)]&lt;br /&gt;
                        addr=''.join(addr)&lt;br /&gt;
                        addr=parturlclean(addr)&lt;br /&gt;
                        if len(addr)==0:&lt;br /&gt;
                            inde=0&lt;br /&gt;
                        else:&lt;br /&gt;
                            inde=addresses.get(addr,len(addresses)+1)&lt;br /&gt;
                            addresses[addr]=inde&lt;br /&gt;
                        start=inde&lt;br /&gt;
                    last=''&lt;br /&gt;
            elif (i-1)%3==1:&lt;br /&gt;
                addr=lines[:-1]&lt;br /&gt;
                teep=addr&lt;br /&gt;
                addr=parturlclean(addr)&lt;br /&gt;
                if len(addr)==0:&lt;br /&gt;
                    inde=-1&lt;br /&gt;
                else:&lt;br /&gt;
                    inde=addresses.get(addr,len(addresses)+1)&lt;br /&gt;
                    addresses[addr]=inde&lt;br /&gt;
                end=inde&lt;br /&gt;
                if start&amp;gt;=0 and end&amp;gt;=0 and eventtime&amp;gt;0:&lt;br /&gt;
                    clicks[len(clicks)]={1:start,2:end,3:eventtime}&lt;br /&gt;
                    start=-1&lt;br /&gt;
                    end=-1&lt;br /&gt;
                    eventtime=-1&lt;br /&gt;
            i+=1&lt;br /&gt;
            if i%100000==0:&lt;br /&gt;
                print float(i)/float(filelen)&lt;br /&gt;
&lt;br /&gt;
file_path='G:/clickstream/click/2007-09-16.click/'&lt;br /&gt;
working_path='G:/clickstream/click/2007-09-16.click/indiana/data/'&lt;br /&gt;
allinflux=np.ndarray([0])&lt;br /&gt;
allflux=np.ndarray([0])&lt;br /&gt;
ks=np.ndarray([0])&lt;br /&gt;
bs=np.ndarray([0])&lt;br /&gt;
dissipationks=np.ndarray([0])&lt;br /&gt;
dissipationbs=np.ndarray([0])&lt;br /&gt;
dissipationtis={}&lt;br /&gt;
dissipationdis={}&lt;br /&gt;
head='2007-09-16_'&lt;br /&gt;
tail1='_00_00_+3600'&lt;br /&gt;
tail2='_00_01_+3599'&lt;br /&gt;
dotclick='.click'&lt;br /&gt;
influxes=np.zeros(24)&lt;br /&gt;
fluxes=np.zeros(24)&lt;br /&gt;
for hour in range(24):&lt;br /&gt;
    if hour&amp;lt;10:&lt;br /&gt;
        hours='0'+str(hour)&lt;br /&gt;
    else:&lt;br /&gt;
        hours=str(hour)&lt;br /&gt;
    fullname=head+hours+tail1&lt;br /&gt;
    f1=os.path.isfile(file_path+fullname+dotclick)&lt;br /&gt;
    if not f1:&lt;br /&gt;
        fullname=head+hours+tail2&lt;br /&gt;
        f1=os.path.isfile(file_path+fullname+dotclick)&lt;br /&gt;
        if not f1:&lt;br /&gt;
            print 'bad'&lt;br /&gt;
    file_name=fullname+dotclick&lt;br /&gt;
    filename=fullname&lt;br /&gt;
    filelen=file_len(file_path+file_name)&lt;br /&gt;
    print hour&lt;br /&gt;
    matrix,urls=ReadWholeHourNetwork(working_path+fullname)&lt;br /&gt;
&lt;br /&gt;
    if np.size(np.nonzero(matrix))&amp;gt;0:&lt;br /&gt;
        influx=np.sum(matrix[0,:])&lt;br /&gt;
        flux=np.sum(matrix)&lt;br /&gt;
        dissipations=np.sum(matrix,0)-np.sum(matrix,1)&lt;br /&gt;
        dissipations=dissipations[1:-1]&lt;br /&gt;
        tis=np.sum(matrix,0)&lt;br /&gt;
        tis=tis[1:-1]&lt;br /&gt;
        bools=(tis&amp;gt;0)&amp;amp;(dissipations&amp;gt;0)&lt;br /&gt;
        tis=tis[bools]&lt;br /&gt;
        dissipations=dissipations[bools]&lt;br /&gt;
        if np.size(dissipations)&amp;gt;2:&lt;br /&gt;
            logdiss=np.log(dissipations)&lt;br /&gt;
            logbins=np.linspace(np.amin(logdiss),np.amax(logdiss),np.size(logdiss)/60)&lt;br /&gt;
            avgTi=np.ndarray([0])&lt;br /&gt;
            avgDi=np.ndarray([0])&lt;br /&gt;
            for yy in range(np.size(logbins)-1):&lt;br /&gt;
                startt=logbins[yy]&lt;br /&gt;
                enddd=logbins[yy+1]&lt;br /&gt;
                bools=(logdiss&amp;gt;=startt)&amp;amp;(logdiss&amp;lt;enddd)&lt;br /&gt;
                tisstemp=tis[bools]&lt;br /&gt;
                tivalue=np.mean(np.log(tisstemp))&lt;br /&gt;
                divalue=(startt+enddd)/2&lt;br /&gt;
                avgTi=np.r_[avgTi,np.exp(tivalue)]&lt;br /&gt;
                avgDi=np.r_[avgDi,np.exp(divalue)]&lt;br /&gt;
            bools=(avgTi&amp;gt;0)&amp;amp;(avgDi&amp;gt;0)&lt;br /&gt;
            avgTi=avgTi[bools]&lt;br /&gt;
            avgDi=avgDi[bools]&lt;br /&gt;
            rr = leastsq(residuals,[1,1],args=(avgTi,avgDi))&lt;br /&gt;
            k,b=rr[0]&lt;br /&gt;
            dissipationks=np.r_[dissipationks,k]&lt;br /&gt;
            dissipationbs=np.r_[dissipationbs,b]&lt;br /&gt;
            dissipationtis[hour]=tis&lt;br /&gt;
            dissipationdis[hour]=dissipations&lt;br /&gt;
                &lt;br /&gt;
    influxes[hour]=influx&lt;br /&gt;
    fluxes[hour]=flux&lt;br /&gt;
rr = leastsq(residuals,[1,1],args=(influxes,fluxes))&lt;br /&gt;
k,b=rr[0]&lt;br /&gt;
xplt=influxes&lt;br /&gt;
yplt=xplt**k*np.exp(b)&lt;br /&gt;
plt.loglog(influxes,fluxes,'o')&lt;br /&gt;
plt.hold(True)&lt;br /&gt;
plt.loglog(xplt,yplt,'-')&lt;br /&gt;
plt.hold(True)    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
运行后，得到的.csv文件的内容如下图所示：&lt;br /&gt;
&lt;br /&gt;
[[File:read2.png]]&lt;br /&gt;
&lt;br /&gt;
其中，第一列为网站A的编号，第2列为网站B的编号，第三列为从A到B网站跳转的人数，具体的网址名可以从对应的‘webs’文件中查看。&lt;br /&gt;
&lt;br /&gt;
'''处理后的读入代码'''&lt;br /&gt;
&lt;br /&gt;
下面为读取处理过数据的matlab代码：&lt;br /&gt;
&lt;br /&gt;
[[File:read.png]]&lt;br /&gt;
&lt;br /&gt;
====CNNIC中国用户数据====&lt;br /&gt;
'''数据说明'''&lt;br /&gt;
&lt;br /&gt;
这个数据是中国互联网信息中心用五年的时间，收集来自30000名志愿者的电脑操作数据集。每个志愿者在个人的电脑上装有一个数据获取程序。这个程序将每2秒扫描一下当前的激活窗口，如果发现激活的窗口改变，将在数据集中加入一条新的记录。为了使得分析更加的方便，我们这里随机选取了其中1000个志愿者1个月的上网数据，大约有1.2*10^8次条记录。&lt;br /&gt;
&lt;br /&gt;
'''数据存放'''&lt;br /&gt;
&lt;br /&gt;
所有的原始数据存放在服务器中，用户需登入后才能下载。存放地址为“E/CNNIC中国用户数据/url_200/”,用户可以用此构建网络。&lt;br /&gt;
&lt;br /&gt;
若通过ftp方式访问，详情参考[[服务器公共数据]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''数据格式'''&lt;br /&gt;
&lt;br /&gt;
数据以每个志愿者作为单独的文件记录，一共是1000个csv文件，每个文件中的内容如下：&lt;br /&gt;
&lt;br /&gt;
[[File:read1.png]]&lt;br /&gt;
&lt;br /&gt;
'''数据读入'''&lt;br /&gt;
&lt;br /&gt;
[[File:data.png]]&lt;br /&gt;
&lt;br /&gt;
循环中的变量f就是整个文件后的读入结果。 其中f['T']为日期，f['URL']为站名&lt;br /&gt;
&lt;br /&gt;
====部分百度贴吧数据====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''数据描述'''&lt;br /&gt;
&lt;br /&gt;
本数据集的数据来自百度贴吧活跃程度排在前1000的贴吧，并使用了这些贴吧一天的总共24个小时的数据量。这些数据没有用户ID在内的个人身份信息，数据里只有时间（第几个小时）以及用户在点击浏览时，从一个帖子跳转到另一个帖子的帖子编号。每次点击一个帖子的号码，用户的行为可能多种多样的，比如是在浏览帖子，回复评论别人发表的帖子，自己发布新的帖子，等等。&lt;br /&gt;
&lt;br /&gt;
'''数据格式'''&lt;br /&gt;
&lt;br /&gt;
下表显示的是有一个用户在第1个小时，从编号为2182799068的帖子开始点击浏览，在继续点击浏览了4个帖子后，停止浏览或者退出了贴吧，其中“s”代表用户浏览行为结束。&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 时间（第几个小时）!! 前一个帖子编号 !! 后一个帖子编号&lt;br /&gt;
|-&lt;br /&gt;
|1 ||	2182799068 ||	2182804888&lt;br /&gt;
|-&lt;br /&gt;
|1 ||	2182804888 ||	2184359849&lt;br /&gt;
|-&lt;br /&gt;
|1 ||	2184359849 ||	2184586777&lt;br /&gt;
|-&lt;br /&gt;
|1 ||	2184586777 ||	2185975737&lt;br /&gt;
|-&lt;br /&gt;
|1 ||	2185975737 ||	s&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''读入代码'''&lt;br /&gt;
&lt;br /&gt;
1.首先是处理原始百度贴吧文件名，防止乱码报错&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
# 批量重命名&lt;br /&gt;
def rename_file(src_dir, base_name, sufix):&lt;br /&gt;
    src_files = os.listdir(src_dir)&lt;br /&gt;
    # print len(src_files)&lt;br /&gt;
    index = base_name&lt;br /&gt;
    for srcfile in src_files:&lt;br /&gt;
        new_name = str(index) + sufix&lt;br /&gt;
        old_file_path = os.path.join(src_dir, srcfile)&lt;br /&gt;
        new_file_path = os.path.join(src_dir, new_name)&lt;br /&gt;
        # print '正在将“%s”重命名为“%s”' % (old_file_path, new_file_path)&lt;br /&gt;
        if os.path.exists(new_file_path):&lt;br /&gt;
            continue&lt;br /&gt;
        os.rename(old_file_path, new_file_path)&lt;br /&gt;
        index += 1&lt;br /&gt;
&lt;br /&gt;
# 原始贴吧数据文件夹，包含全部1000个贴吧各自24小时的数据&lt;br /&gt;
# 实际运行时，需要修改&lt;br /&gt;
src_dir_ = 'F:\\Data\\20130228\\'&lt;br /&gt;
sufix_ = '.txt'&lt;br /&gt;
base_name_ = 2016000&lt;br /&gt;
rename_file(src_dir_, base_name_, sufix_)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.其次是处理贴吧数据并做保存（'''注意：需要自行安装networkx包'''）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import os&lt;br /&gt;
import networkx as nx&lt;br /&gt;
from collections import defaultdict&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def yield_file_path(main_path):&lt;br /&gt;
        dir_list = os.listdir(main_path)&lt;br /&gt;
        for _dir in dir_list:&lt;br /&gt;
            # 某一个贴吧24小时的数据所在目录&lt;br /&gt;
            parent_dir = os.path.join(self.main_path, _dir)&lt;br /&gt;
            data_file_list = os.listdir(parent_dir)&lt;br /&gt;
            for data_file in data_file_list:&lt;br /&gt;
                # 某一个贴吧某一小时的数据完整路径&lt;br /&gt;
                yield os.path.join(complete_parent_dir, data_file)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
class FlowNetwork(object):&lt;br /&gt;
&lt;br /&gt;
    def __init__(self, file_path):&lt;br /&gt;
        self.Di = defaultdict(int)          # 每个节点的Di&lt;br /&gt;
        self.Ti = defaultdict(int)          # 每个节点的Ti&lt;br /&gt;
        self.__source = 'o'                 # 源节点&lt;br /&gt;
        self.__sink = 's'                   # 汇节点&lt;br /&gt;
        self.__weight = 1                   # 默认权重&lt;br /&gt;
        self.__G = nx.MultiDiGraph()        # 图G&lt;br /&gt;
        self.G = nx.DiGraph()               # 合并重复边后的图G&lt;br /&gt;
        self.file_path = file_path          # 贴吧数据文件路径&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    # 构建流网络并计算个节点的Di和Ti&lt;br /&gt;
    def create_flow_network(self):&lt;br /&gt;
        last_node = ''&lt;br /&gt;
        # 构建流网络（相同连边重复出现）&lt;br /&gt;
        with open(self.file_path, 'r') as f:&lt;br /&gt;
            for line in f:&lt;br /&gt;
                # 行格式：xxx xxx xx(时间 节点1 节点2)&lt;br /&gt;
                u, v = line.strip().split()[1:]&lt;br /&gt;
                self.__G.add_weighted_edges_from([(u, v, self.__weight)])&lt;br /&gt;
                if last_node != u:&lt;br /&gt;
                    # 如果当前的节点1，即u节点与last_node不同，则添加：源节点-&amp;gt;u节点的连边&lt;br /&gt;
                    self.__G.add_weighted_edges_from([(self.__source, u, self.__weight)])&lt;br /&gt;
                last_node = v&lt;br /&gt;
&lt;br /&gt;
        # 合并相同连边并计算Di和Ti&lt;br /&gt;
        for v, nbrs in self.__G.adjacency_iter():&lt;br /&gt;
            for nbr, edict in nbrs.items():&lt;br /&gt;
                # 节点v与邻居节点nbr所有连边的权重之和&lt;br /&gt;
                sum_weight = sum([d['weight'] for d in edict.values()])&lt;br /&gt;
                self.G.add_edge(v, nbr, weight=sum_weight)&lt;br /&gt;
                self.Ti[v] += sum_weight&lt;br /&gt;
                if nbr == 's':&lt;br /&gt;
                    self.Di[v] += sum_weight&lt;br /&gt;
        # 验证&lt;br /&gt;
        # print 'source节点出度%d\tsink节点入度%d' %&lt;br /&gt;
        # (sum(self.Di.values()), self.Ti[self.__source])&lt;br /&gt;
&lt;br /&gt;
    # 保存流网络（格式：from,to,weight) 一个贴吧1个小时一份&lt;br /&gt;
    def save_flow_network(self, save_dir):&lt;br /&gt;
        # 当前需要保存的某小时贴吧文件名&lt;br /&gt;
        file_name = os.path.split(self.file_path)[1]&lt;br /&gt;
&lt;br /&gt;
        father_dir = os.path.split(self.file_path)[0]&lt;br /&gt;
        father_dir_name = os.path.split(father_dir)[1]&lt;br /&gt;
&lt;br /&gt;
        # 每一个贴吧24小时的流网络的保存目录&lt;br /&gt;
        save_dir = os.path.join(save_dir, father_dir_name)&lt;br /&gt;
        if not os.path.exists(save_dir):&lt;br /&gt;
            os.mkdir(save_dir)&lt;br /&gt;
&lt;br /&gt;
        # 每一个贴吧某一小时的流网络的保存路径&lt;br /&gt;
        save_path = os.path.join(save_dir, file_name)&lt;br /&gt;
        if os.path.exists(save_path):&lt;br /&gt;
            os.remove(save_path)&lt;br /&gt;
&lt;br /&gt;
        # print '正在处理文件:{0}'.format(file_name)&lt;br /&gt;
        with open(save_path, 'a') as fw:&lt;br /&gt;
            for v, nbrs in self.G.adjacency_iter():&lt;br /&gt;
                for nbr, edict in nbrs.items():&lt;br /&gt;
                    # 节点v与邻居节点nbr所有连边的权重之和&lt;br /&gt;
                    weight = edict['weight']&lt;br /&gt;
                    fw.write(v + ',' + nbr + ',' + str(weight) + '\n')&lt;br /&gt;
&lt;br /&gt;
    # 保存UVt和PVt 一个贴吧24小时一份&lt;br /&gt;
    def save_uvt_pvt(self, save_dir):&lt;br /&gt;
        _UVt = self.Ti[self.__source]&lt;br /&gt;
        _PVt = sum([val for val in self.Ti.values()]) - _UVt&lt;br /&gt;
        # print '点击流网络的UVt：{0}'.format(_UVt)&lt;br /&gt;
        # print '点击流网络的PVt：{0}'.format(_PVt)&lt;br /&gt;
&lt;br /&gt;
        father_dir = os.path.split(self.file_path)[0]&lt;br /&gt;
        father_dir_name = os.path.split(absolute_dir_path)[1]&lt;br /&gt;
&lt;br /&gt;
        if not os.path.exists(save_dir):&lt;br /&gt;
            os.mkdir(save_dir)&lt;br /&gt;
&lt;br /&gt;
        save_path = os.path.join(save_dir, father_dir_name+'.txt')&lt;br /&gt;
        if os.path.exists(save_path):&lt;br /&gt;
            os.remove(save_path)&lt;br /&gt;
&lt;br /&gt;
        # print '正在处理贴吧:{0}'.format(father_dir_name)&lt;br /&gt;
        with open(save_path, 'a') as fw:&lt;br /&gt;
            fw.write(str(_UVt)+' '+str(_PVt)+'\n')&lt;br /&gt;
&lt;br /&gt;
    # 保存Ti和Di （格式：ti di）一个贴吧24小时一份&lt;br /&gt;
    def save_ti_di(self, save_dir):&lt;br /&gt;
&lt;br /&gt;
        father_dir = os.path.split(self.file_path)[0]&lt;br /&gt;
        father_dir_name = os.path.split(father_dir)[1]&lt;br /&gt;
&lt;br /&gt;
        if not os.path.exists(save_dir):&lt;br /&gt;
            os.mkdir(save_dir)&lt;br /&gt;
&lt;br /&gt;
        save_path = os.path.join(save_dir, father_dir_name+'.txt')&lt;br /&gt;
        if os.path.exists(save_path):&lt;br /&gt;
            os.remove(save_path)&lt;br /&gt;
&lt;br /&gt;
        # print '正在处理贴吧:{0}'.format(father_dir_name)&lt;br /&gt;
        with open(save_path, 'a') as fres:&lt;br /&gt;
            for v in self.__G.nodes():&lt;br /&gt;
                if v == self.__source:&lt;br /&gt;
                    continue&lt;br /&gt;
                _ti = self.Ti[v]&lt;br /&gt;
                _di = self.Di[v]&lt;br /&gt;
                fres.write(str(_ti)+' '+str(_di)+'\n')&lt;br /&gt;
&lt;br /&gt;
    # 保存node数和edge数（格式：node edge）一个贴吧24小时一份&lt;br /&gt;
    def save_node_edge(self, save_dir):&lt;br /&gt;
&lt;br /&gt;
        father_dir = os.path.split(self.file_path)[0]&lt;br /&gt;
        father_dir_name = os.path.split(father_dir)[1]&lt;br /&gt;
&lt;br /&gt;
        if not os.path.exists(save_dir):&lt;br /&gt;
            os.mkdir(save_dir)&lt;br /&gt;
&lt;br /&gt;
        save_path = os.path.join(save_dir, father_dir_name+'.txt')&lt;br /&gt;
        if os.path.exists(save_path):&lt;br /&gt;
            os.remove(save_path)&lt;br /&gt;
&lt;br /&gt;
        # print '正在处理贴吧:{0}'.format(father_dir_name)&lt;br /&gt;
        with open(save_path, 'a') as fres:&lt;br /&gt;
            _nodes = self.G.number_of_nodes();&lt;br /&gt;
            _edges = self.G.number_of_edges()&lt;br /&gt;
            fres.write(str(_nodes) + ' ' + str(_edges) + '\n')&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    # all_data_directory为全部贴吧数据所在目录，实际运行时需要修改&lt;br /&gt;
    for fpath in yield_file_path(all_data_directory):&lt;br /&gt;
        fn = FlowNetwork(fpath)&lt;br /&gt;
&lt;br /&gt;
        # print '正在从文件：{0}创建流网络'.format(fpath)&lt;br /&gt;
        fn.create_flow_network()&lt;br /&gt;
&lt;br /&gt;
        # print '正在保存文件{0}的流网络'.format(fpath)&lt;br /&gt;
        fn.save_flow_network(save_dir1)&lt;br /&gt;
&lt;br /&gt;
        # print '正在保存文件{0}流网络的UVt和PVt'.format(fpath)&lt;br /&gt;
        fn.save_uvt_pvt(save_dir2)&lt;br /&gt;
&lt;br /&gt;
        # print '正在保存文件{0}流网络的Ti和Di'.format(fpath)&lt;br /&gt;
        fn.save_ti_di(save_dir3)&lt;br /&gt;
&lt;br /&gt;
        # print '正在保存文件{0}流网络的节点数和边数'.format(fpath)&lt;br /&gt;
        fn.save_node_edge(save_dir4)&lt;br /&gt;
        # print '************************************************'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===研究方法===&lt;br /&gt;
&lt;br /&gt;
我们主要采取[[开放流网络]]的研究方法来研究注意力流网络。相关内容，请参看[[流网络]]。&lt;br /&gt;
&lt;br /&gt;
===主要结论===&lt;br /&gt;
&lt;br /&gt;
采用注意力流网络工具研究集体注意力流的好处就在于，这种网络可以揭示互联网系统的整体信息，特别是网站和网站之间的联系。为了更加一目了然地揭示互联网生态系统的整体信息，我们将网络中的所有节点都嵌入到一个高维空间中。具体方法可以参考[[流网络的嵌入]]。嵌入之后，每一个网站就获得了一个独一无二的空间位置。这种位置信息可以反映很多现象。&lt;br /&gt;
&lt;br /&gt;
====互联网生态系统====&lt;br /&gt;
&lt;br /&gt;
下面，我们以印第安纳大学的注意力流网络为例来展示网络的空间嵌入。&lt;br /&gt;
&lt;br /&gt;
=====国际互联网生态系统=====&lt;br /&gt;
&lt;br /&gt;
[[File:Attentionnetworkexampleindiana.png|500px]]&lt;br /&gt;
&lt;br /&gt;
上图所示就是将网络中的所有节点都嵌入到一个20维空间中，然后再将其降维到二维空间之后得到的图。图中每一个节点就是一个网站。节点的大小表示的是访问该网站的注意力流量大小再取对数。节点的颜色是根据专业分类网站（[http://sitereview.bluecoat.com/sitereview.jsp http://sitereview.bluecoat.com/sitereview.jsp]）所做出来的分类结果。例如，黄色节点表示搜索引擎／门户类网站；红色的节点表示教育类网站；绿色节点则表示娱乐类网站，……。&lt;br /&gt;
&lt;br /&gt;
根据这张图，我们能够观察到如下几类现象：&lt;br /&gt;
&lt;br /&gt;
* 相同颜色的网站倾向于聚集在一起。例如，成人类网站明显地聚集到了整张图的左侧，而绿色的新闻／娱乐类网站则聚到了图的右下侧。&lt;br /&gt;
* 少数几个大型网站聚到了中心位置，尤其是Google基本位于整张图的正中心。按照我们的算法，对于整个互联网生态越重要的网站就会越靠近中心。我们用圆圈的大小来表示该网站的访问流量。我们看到，虽然Google的流量相对于Myspace、Facebook来说并不是很大，但是它的位置却比MySpace和Facebook更加靠近中心，这彰显出Google对于整个互联网的中心作用。&lt;br /&gt;
* 最后，所有的网站的分布基本形成了一个以Google为中心的球形。&lt;br /&gt;
&lt;br /&gt;
[[File:comparisonofrankingindianauniversity.png|500px]]&lt;br /&gt;
&lt;br /&gt;
我们可以按照到所有其他节点的平均距离来进行从小到大的排序，并与按照流量的方式进行比较，如上表所示。我们发现，流距离排序能够更好地反映出来每一个网站在整个生态系统中的地位和作用。而流量仅仅反映了一个网站点击量的多少，它并不能反映出网站之间的相互关系。所以，MySpace、MSN等网站流量可能很大（因为它们都是社交网站，大部分流量都是发生在内部的），但是它们在整个网络中的中心性却没有Google这样的搜索引擎重要。&lt;br /&gt;
&lt;br /&gt;
整个互联网、注意力、注意力的耗散基本也呈现出球对称的分布形态。于是我们定量化地计算出不同圈层各个量的分布情况，概括为如下图形。&lt;br /&gt;
&lt;br /&gt;
[[File:attentiondistributionindianauniversity.png|500px]]&lt;br /&gt;
&lt;br /&gt;
上图画出的是三种量（网站数、注意力流量、耗散流量）随着从里到外的半径方向进行累积所展现的S型曲线。其中横坐标R为空间中任意一点到Google的距离（我们发现Google非常靠近整个网络的重心位置，所以选择它为区域的中心）；纵坐标对应的是相应变量的累积量。这里累积量T(R)的计算是这样的：以Google为圆心，以R为半径画一个d维球，然后计算这个球内包含的所有点的相应流量，其它累积量的计算也类似。&lt;br /&gt;
&lt;br /&gt;
我们可以按照球的半径大小从里到外把这些网站分成三个不同的层次（两条虚线圆形成了分界线）。我们发现最里面的球包含了仅仅1/5的网站数量，但是流量却涵盖了整个生态系统的45%；第二圈则包含了全部网站的40%，而流量却仅仅只有25%；第三圈则是剩下的小网站。&lt;br /&gt;
&lt;br /&gt;
=====中国互联网生态系统=====&lt;br /&gt;
&lt;br /&gt;
与此类似，我们还可以用同样的方法分析中国互联网。下面就是利用CNNIC数据作出的类似结果。&lt;br /&gt;
&lt;br /&gt;
[[File:chinacnnicgeometricrepresentation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
图中右下角的D是利用CNNIC数据揭示出来的整个中国互联网的地图。其中，不同的颜色表示不同的聚类。这里面的聚类就是在嵌入空间后运用K－means聚类算法计算出来的结果。A图则放大展示了D图中心一部分区域的互联网。其它图则分别展示了不同类别的互联网在整个图形中的位置。&lt;br /&gt;
&lt;br /&gt;
我们发现：&lt;br /&gt;
&lt;br /&gt;
# 整个图形相比较上面的国际互联网地图具有明显的不对称性；尽管在核心区域，网站分布还基本是对称的；&lt;br /&gt;
# 不同类别的网站聚成了不同的团簇，例如：F图中高亮的蓝色节点就是Q&amp;amp;A类型的网站；&lt;br /&gt;
# 知名度高的、中心性的网站聚到了中心，例如百度、qq等。&lt;br /&gt;
&lt;br /&gt;
同样的，我们根据流距离对整个网站的流行度进行了排序，选取了top17，点击量和PageRank结果进行对比：&lt;br /&gt;
&lt;br /&gt;
[[File:rank.png|800px]]&lt;br /&gt;
&lt;br /&gt;
根据排名，也同样出现了某些流量较大的网站在流距离排名并不靠前。&lt;br /&gt;
&lt;br /&gt;
此外，我们也分析了基于中国互联网用户数据的流量、耗散和网站数分布。下图为他们的累积分布:&lt;br /&gt;
&lt;br /&gt;
[[File:cumulativequantitiesincnniclickdata.png|400px]]&lt;br /&gt;
&lt;br /&gt;
同样，他们的累积分布都呈现“S”型特性。我们也按照注意力流的分位数将整个网络生态分成3个层次。其中，最中心的区域只有1%的网站数，但却集中了40%的人类注意力。&lt;br /&gt;
&lt;br /&gt;
和史的印第安纳大学的研究结果相比较，我们可以发现整个互联网的可视化形状存在差别，基于美国用户的可视化表明整个网络类似于一个对称的球形，所有网站的分布式均匀的。相反，从中国的情况看，整个网络形状不规则，内容相同的网站聚集程度更高，网站之间的异质性差异更大。比较印第安纳大学的S型曲线，我们发现中国网站中流量和耗散的累积曲线在前端上升得更加陡峭。这说明少数网站（百度、QQ、淘宝）占据了过多的流量。而小网站的流量更少，中国互联网企业垄断趋势更加的明显。&lt;br /&gt;
&lt;br /&gt;
=====主要参考文献=====&lt;br /&gt;
&lt;br /&gt;
* Peiteng Shi,Xiaohan Huang,Jun Wang, Jiang Zhang: [http://www.swarma.org/thesis/download.asp?address=doc/jake_380.pdf&amp;amp;type=1&amp;amp;id=381 A Geometric Representation of Collective Attention Flows]; PLoS ONE 10(9): e0136243, 2015&lt;br /&gt;
&lt;br /&gt;
====注意力流网络与社区粘性====&lt;br /&gt;
&lt;br /&gt;
运用注意力流网络不仅可以研究整个互联网的整体情况，还可以研究某一个网站内部的注意力流分布。当我们选定了一段时间，选择了待研究的网站（网络社区）边界，我们就能用一个注意力流网络对网站（社区）进行建模。其中，每个节点都是一个网页（帖子、图像等数字资源），而节点之间依靠人类的接续点击行为相互组织形成了网络。这样，我们就可以用这个注意力流网络来对网站（社区）来进行抽象描述，网站（社区）的属性应该可以反映到注意力流网络之中。&lt;br /&gt;
&lt;br /&gt;
=====交互粘性=====&lt;br /&gt;
&lt;br /&gt;
例如，我们用百度贴吧的注意力流网络就可以考察网络贴吧的交互粘性。首先，我们需要指出，所谓的交互粘性就是指下面方程的指数&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
Y_t\propto X_t^{\theta}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这里的&amp;lt;math&amp;gt;Y_t&amp;lt;/math&amp;gt;为第t个小时内某百度贴吧的总点击量，&amp;lt;math&amp;gt;X_t&amp;lt;/math&amp;gt;则为该小时内该贴吧的总独立访客数。通过分析大量的贴吧数据，我们发现，尽管贴吧彼此差异很大，但是它们都遵循上面的方程（如下图），其中&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;是一个只与贴吧有关，而与时间、规模无关的常数。&lt;br /&gt;
&lt;br /&gt;
[[File:generalizedkleiberlawfortieba.png|400px]]&lt;br /&gt;
&lt;br /&gt;
我们将指数&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;定义为该社区的交互粘性。这是因为&amp;lt;math&amp;gt;Y_t/X_t\propto X_t^{\theta-1}&amp;lt;/math&amp;gt;，也就是人均产生的点击量会随着用户的增多而增多（或减少，取决于&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;大于或小于1）。当&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;大的时候，人均点击量会随着访客数的增加而以更快的速度增长。采用这个指标衡量交互粘性具有一定的稳定性，这是因为&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;基本不随规模、时间而变。&lt;br /&gt;
&lt;br /&gt;
=====耗散模式与交互粘性=====&lt;br /&gt;
&lt;br /&gt;
那么，什么因素与&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;有关呢？我们研究发现，社区的注意力流网络的耗散模式与其正相关。首先，对于任意一个注意力流网络，我们发现了如下的关系：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
T_i\propto D_i^{\gamma}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
其中，T为每个帖子相应的流量，D为它的耗散流，也就是从i下网的总人次数。指数&amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;就反映了一个网络社区的耗散模式，它的数值越大，则流量大节点的耗散比率就越多（也就是有更大比例的用户会在大流量节点流失掉）。&lt;br /&gt;
&lt;br /&gt;
我们进一步发现了指数&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;和指数&amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;之间的关系如下图所示：&lt;br /&gt;
&lt;br /&gt;
[[File:gammaandthetaforbaidutieba.png|400px]]&lt;br /&gt;
&lt;br /&gt;
由图可见，&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;会随着&amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;的增加而降低。所以，用户在一个网站上的流失模式会影响这个社区的交互粘性。&lt;br /&gt;
这个结论的直观说明是，如果一个贴吧充斥着大量的“标题党”帖子，那么它的交互粘性一定非常低。这是因为，在这样的贴吧中，用户点击这些标题贴会促使这些帖子的流量升高，但是由于&amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt;的数值大，所以大流量节点相对流失率也高，所以这样的贴吧粘性就会低。&lt;br /&gt;
&lt;br /&gt;
=====主要参考文献=====&lt;br /&gt;
&lt;br /&gt;
* Lingfei Wu,Jiang Zhang,Min Zhao: [http://www.swarma.org/thesis/download.asp?address=doc/jake_375.pdf&amp;amp;type=1&amp;amp;id=376 The Metabolism and Growth of Web Forums]; PLoS ONE 2014, 9(8): e102646&lt;br /&gt;
[[分类:旧词条迁移]]&lt;/div&gt;</summary>
		<author><name>Mugicaxu2</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E8%8F%B2%E5%88%A9%E6%99%AE%C2%B7%E5%AE%89%E5%BE%B7%E6%A3%AE&amp;diff=34668</id>
		<title>菲利普·安德森</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E8%8F%B2%E5%88%A9%E6%99%AE%C2%B7%E5%AE%89%E5%BE%B7%E6%A3%AE&amp;diff=34668"/>
		<updated>2024-05-13T08:55:15Z</updated>

		<summary type="html">&lt;p&gt;Mugicaxu2：/* 引用 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!类别&lt;br /&gt;
!信息&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|菲利普·安德森 Philip W. Anderson&lt;br /&gt;
|-&lt;br /&gt;
|出生日期&lt;br /&gt;
|1923.12.13&lt;br /&gt;
|-&lt;br /&gt;
|国籍：&lt;br /&gt;
|美国&lt;br /&gt;
|-&lt;br /&gt;
|母校：&lt;br /&gt;
|哈佛大学&lt;br /&gt;
|-&lt;br /&gt;
|工作场所：&lt;br /&gt;
|贝尔实验室、剑桥大学、普林斯顿大学&lt;br /&gt;
|-&lt;br /&gt;
|成就：&lt;br /&gt;
|安德森局域化、超导理论、自旋玻璃和磁性理论、对称性破缺理论、超导体BCS理论&lt;br /&gt;
|-&lt;br /&gt;
|获奖：&lt;br /&gt;
|奥利弗·巴克利凝聚态奖、诺贝尔物理学奖、美国成就学院金盘奖、英国皇家学会外籍会员、美国哲学学会会员、国家科学奖章&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
安德森出生于印第安纳州印第安纳波利斯，在伊利诺伊州厄巴纳长大。他的父亲哈里·沃伦·安德森（Harry Warren Anderson）是伊利诺伊大学厄巴纳-香槟分校的植物病理学教授。他的外祖父是沃巴什学院的数学家，安德森的父亲就读于该学院;他的舅舅是罗德学者，后来成为沃巴什学院的英语教授。他于1940年毕业于厄巴纳的大学实验高中。在一位名叫迈尔斯·哈特利（Miles Hartley）的数学老师的鼓励下，安德森以全额奖学金进入哈佛大学学习。他专注于“电子物理学”，并于 1943 年获得学士学位，之后他被征召入伍，并在海军研究实验室建造天线，直到 1945 年第二次世界大战结束。作为一名本科生，他的亲密伙伴包括粒子核物理学家 H. Pierre Noyes、哲学家和科学史学家 Thomas Kuhn 和分子物理学家 Henry Silsbee。战后，安德森回到哈佛大学，在约翰·哈斯布鲁克·范·弗莱克的指导下攻读物理学研究生。1949年，他在完成题为“微波和红外区域光谱线的压力展宽理论”的博士论文后获得博士学位&lt;br /&gt;
&lt;br /&gt;
== 职业和研究 ==&lt;br /&gt;
从1949年到1984年，安德森受雇于新泽西州的贝尔实验室，在那里他研究了凝聚态物理学中的各种问题。在此期间，他发展了现在所谓的安德森局域化（扩展态可以通过系统中无序的存在进行局域化的想法）和安德森定理（关于超导体中的杂质散射）;发明了安德森哈密顿量，描述了过渡金属中电子的位点相互作用;提出了粒子物理学中的对称性破坏（这在标准模型的发展和希格斯机制背后的理论的发展中发挥了作用，希格斯机制反过来又在一些基本粒子中产生质量）;创建了BCS超导理论的赝自旋方法;对氦-3超流动性中的非S波配对（对称性破坏和微观机制）进行了开创性研究，并帮助发现了自旋玻璃领域。        1963年，他当选为美国艺术与科学院院士。&lt;br /&gt;
&lt;br /&gt;
从1967年到1975年，安德森是剑桥大学的理论物理学教授。1977年，安德森因对磁性和无序系统的电子结构的研究而获得诺贝尔物理学奖，这为计算机中的电子开关和存储设备的发展提供了条件。共同研究员内维尔·弗朗西斯·莫特爵士（Sir Nevill Francis Mott）和约翰·范·弗莱克（John van Vleck）与他分享了该奖项。1982年，他被授予国家科学奖章。他于1984年从贝尔实验室退休，是普林斯顿大学约瑟夫·亨利物理学名誉教授。&lt;br /&gt;
&lt;br /&gt;
安德森的著作包括''《固体概念''》、《''凝聚态物理学的基本概念''》和''《高Tc铜酸盐中的超导理论''》。安德森曾在美国科学家和工程师协会（Scientists and Engineers for America）的顾问委员会任职，该组织致力于在美国政府中推广健全的科学。&lt;br /&gt;
&lt;br /&gt;
为了回应1980年代高温超导体的发现，安德森提出了共振价键（RVB）理论来解释这一现象。虽然许多人认为这个想法没有说服力，但RVB理论被证明有助于研究自旋液体。&lt;br /&gt;
&lt;br /&gt;
安德森还通过对涌现现象的解释对科学哲学做出了概念性的贡献，这成为复杂系统科学的灵感来源。1972年，他写了一篇名为《多即是不同》的文章，其中他强调了还原论的局限性和科学等级的存在，每个层次都需要自己的基本原则来推进。&lt;br /&gt;
&lt;br /&gt;
1984年，他参加了圣达菲研究所的创始研讨会，该研究所是一个致力于复杂系统科学的多学科研究机构。 安德森还与肯尼斯·阿罗（Kenneth Arrow）和W·布莱恩·亚瑟（W. Brian Arthur）共同主持了该研究所1987年的经济学会议，并参加了2007年关于复杂系统中涌现行为模型的研讨会。&lt;br /&gt;
&lt;br /&gt;
1987年，安德森向美国国会作证，“反对建造超导超级对撞机（SSC），这是德克萨斯州的40 TeV质子-质子对撞机，这将是粒子物理学中最大的实验。安德森对SSC的反对并没有直接导致它在1993年被取消 - 螺旋式上升的成本是主要因素 - 但他可能是其最引人注目的反对者。他“对它对美国科学的所谓推动力以及分拆将提供巨大投资回报的说法持怀疑态度。&lt;br /&gt;
&lt;br /&gt;
2006年，何塞·索勒（José Soler）对科学研究论文进行了统计分析，将论文中的参考文献数量与引用次数进行了比较，称安德森是世界上被引用次数最多的十位物理学家中“最具创造力”的。 2021 年，牛津大学出版社出版了安德鲁·赞威尔 （Andrew Zangwill） 的传记《''物质之上的思想：菲利普·安德森和非常多的物理学''》。&lt;br /&gt;
&lt;br /&gt;
== 奖项与荣誉 ==&lt;br /&gt;
他于1964年获得奥利弗·巴克利凝聚态奖，1977年获得诺贝尔物理学奖，1978年获得美国成就学院金盘奖，1980年当选为英国皇家学会外籍会员，]1991年当选为美国哲学学会会员。他于1982年被授予国家科学奖章。&lt;br /&gt;
&lt;br /&gt;
== 个人生活 ==&lt;br /&gt;
安德森是无神论者，是签署《人文主义宣言》的22位诺贝尔奖获得者之一。安德森也对日本文化感兴趣，在那里生活了一段时间，并成为棋盘游戏围棋的第一段大师。2007年，《日本新闻报》授予他终身成就奖，安德森开玩笑说，日本只有四个人能打败他。&lt;br /&gt;
&lt;br /&gt;
他于2020年3月29日在新泽西州普林斯顿去世，享年96岁。&lt;br /&gt;
&lt;br /&gt;
== 出版物 ==&lt;br /&gt;
&lt;br /&gt;
=== 书 ===&lt;br /&gt;
&lt;br /&gt;
* Philip W. Anderson Autobiography&lt;br /&gt;
** 描述：诺贝尔基金会出版的Philip W. Anderson自传。&lt;br /&gt;
** 链接：The Nobel Foundation Autobiography&lt;br /&gt;
* Philip Warren Anderson (页面存档备份)&lt;br /&gt;
** 描述：Philip W. Anderson相关页面的存档备份。&lt;br /&gt;
** 链接：Internet Archive Philip Warren Anderson&lt;br /&gt;
* Anderson's Princeton web page&lt;br /&gt;
** 描述：Philip W. Anderson在普林斯顿大学的个人网页。&lt;br /&gt;
** 链接：Princeton University Philip W. Anderson&lt;br /&gt;
* Video clip of Philip Anderson speaking at the International Conference on Complex Systems&lt;br /&gt;
** 描述：Philip W. Anderson在新英格兰复杂系统研究所(NECSI)主办的国际复杂系统会议上的发言视频剪辑。&lt;br /&gt;
** 链接：NECSI Video Clip&lt;br /&gt;
* Oral History interview transcript with Philip W. Anderson (1999)&lt;br /&gt;
** 描述：1999年3月30日、5月30日和11月23日，Philip W. Anderson在美國物理學會的Niels Bohr图书馆和档案馆进行的口述历史采访的文字记录。&lt;br /&gt;
** 链接：AIP Interview Transcript 1999&lt;br /&gt;
* Oral History interview transcript with Philip W. Anderson (1987)&lt;br /&gt;
** 描述：1987年7月13日，Philip W. Anderson在美國物理學會的Niels Bohr图书馆和档案馆进行的口述历史采访的文字记录。&lt;br /&gt;
** 链接：AIP Interview Transcript 1987&lt;br /&gt;
&lt;br /&gt;
=== 期刊文章 ===&lt;br /&gt;
&lt;br /&gt;
* Anderson, P. W. (1958). Absence of diffusion in certain random lattices. Physical Review, 109(5), 1492–1505. &amp;lt;nowiki&amp;gt;https://doi.org/10.1103/PhysRev.109.1492&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Anderson, P. W. (1963). Plasmons, gauge invariance, and mass. Physical Review, 130(1), 439–442. &amp;lt;nowiki&amp;gt;https://doi.org/10.1103/PhysRev.130.439&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Anderson, P. W., Halperin, B. I., &amp;amp; Varma, C. M. (1972). Anomalous low-temperature thermal properties of glasses and spin glasses. Philosophical Magazine, 25(1), 1–9. &amp;lt;nowiki&amp;gt;https://doi.org/10.1080/14786437208229210&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Anderson, P. W. (1972). More is different. Science, 177(4047), 393–396. &amp;lt;nowiki&amp;gt;https://doi.org/10.1126/science.177.4047.393&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Anderson, P. W. (1987). The resonating valence bond state in La2CuO4 and superconductivity. Science, 235(4793), 1196–1198. &amp;lt;nowiki&amp;gt;https://doi.org/10.1126/science.235.4793.1196&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Anderson, P. W. (1995). Physics: the opening to complexity. Proceedings of the National Academy of Sciences, 92(15), 6653–6654. &amp;lt;nowiki&amp;gt;https://doi.org/10.1073/pnas.92.15.6653&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Anderson, P. W. (1997). Mind over matter: Review of The Large, the Small and the Human Mind by Roger Penrose. Nature, 386(6624), 456. &amp;lt;nowiki&amp;gt;https://doi.org/10.1038/386456c0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Anderson, P. W. (1997). When the electron falls apart. Physics Today, 50(10), 42–49. &amp;lt;nowiki&amp;gt;https://doi.org/10.1063/1.881959&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Anderson, P. W. (1999). Computing: solving problems in finite time. Nature, 400(6740), 115. &amp;lt;nowiki&amp;gt;https://doi.org/10.1038/22001&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Anderson, P. W. (2000). Brainwashed by Feynman? Physics Today, 53(2), 11–14. &amp;lt;nowiki&amp;gt;https://doi.org/10.1063/1.882955&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Anderson, P. W. (2005). Thinking big. Nature, 437(7059), 625–626. &amp;lt;nowiki&amp;gt;https://doi.org/10.1038/437625a&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Anderson, P. W. (2007). Twenty years of talking past each other: the theory of high TC. Physica C, 460–462(Part 1), 3–6. &amp;lt;nowiki&amp;gt;https://doi.org/10.1016/j.physc.2007.03.019&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 引用 ==&lt;br /&gt;
&lt;br /&gt;
[[Category:待润色]]&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
维基语录有与菲利普·沃伦·安德森有关的引文。&lt;br /&gt;
&lt;br /&gt;
维基共享资源相关的多媒体资源：菲利普·沃伦·安德森&lt;br /&gt;
&lt;br /&gt;
* 菲利普·安德森（Philip W. Anderson）谈 Nobelprize.org，包括诺贝尔演讲，1977年12月8日 ''地方时刻和局部国家''&lt;br /&gt;
* 菲利普·安德森（Philip Anderson）在新英格兰复杂系统研究所（NECSI）主办的复杂系统国际会议上发言的视频剪辑&lt;br /&gt;
* 1988 年 5 月 10 日菲利普·安德森 （Philip W. Anderson） 的口述历史采访记录，美国物理研究所，尼尔斯·玻尔图书馆和档案馆&lt;br /&gt;
* 1999年10月15日、29日和11月5日菲利普·安德森口述历史访谈记录，美国物理研究所，尼尔斯·玻尔图书馆和档案馆——第一节&lt;br /&gt;
* 2002年3月8日与菲利普·安德森（Philip W. Anderson）的口述历史访谈记录，美国物理研究所，尼尔斯·玻尔图书馆和档案馆 - 第二场&lt;br /&gt;
* 2002年3月22日与菲利普·安德森（Philip W. Anderson）的口述历史访谈记录，美国物理研究所，尼尔斯·玻尔图书馆和档案馆 - 第三场&lt;br /&gt;
* 2002年5月29日与菲利普·安德森（Philip W. Anderson）的口述历史访谈记录，美国物理研究所，尼尔斯·玻尔图书馆和档案馆 - 第四节&lt;br /&gt;
* 1999年3月30日与菲利普·安德森（Philip W. Anderson）的口述历史访谈记录，美国物理研究所，尼尔斯·玻尔图书馆和档案馆 - 第一部分&lt;br /&gt;
* 1999年5月30日与菲利普·安德森（Philip W. Anderson）的口述历史访谈记录，美国物理研究所，尼尔斯·玻尔图书馆和档案馆 - 第二部分&lt;br /&gt;
* 1999年11月23日与菲利普·安德森（Philip W. Anderson）的口述历史访谈记录，美国物理研究所，尼尔斯·玻尔图书馆和档案馆 - 第三场&lt;br /&gt;
* 2000年6月29日与菲利普·安德森的口述历史访谈记录，美国物理研究所，尼尔斯·玻尔图书馆和档案馆 - 第四节&lt;/div&gt;</summary>
		<author><name>Mugicaxu2</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%94%9F%E7%94%9F%E4%B8%8D%E6%81%AF&amp;diff=34667</id>
		<title>生生不息</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%94%9F%E7%94%9F%E4%B8%8D%E6%81%AF&amp;diff=34667"/>
		<updated>2024-05-13T08:54:27Z</updated>

		<summary type="html">&lt;p&gt;Mugicaxu2：/* 程序说明 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#seo:&lt;br /&gt;
|keywords=人工生命, autolife,自复制程序,遗传算法,开放式进化&lt;br /&gt;
|description=人工生命, autolife,自复制程序,遗传算法,开放式进化&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* 名 称：生生不息 (AutoLife)&lt;br /&gt;
* 作 者：张 江&lt;br /&gt;
* 源代码：[[File:autolife.zip]]&lt;br /&gt;
&lt;br /&gt;
[[File:Autolife.gif|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==程序说明==&lt;br /&gt;
&lt;br /&gt;
该程序由若干生命智能体在他们的环境中不断的适应进化构成，目的是探讨环境的变迁对生命体的影响。其中白色的点是智能生命体，他们会不停的运动并且自我繁殖、进化，蓝色的点是生命体的食物，它可以被人造的产生或者外部加入，也可以通过智能体的自发规律进行演化。如果选择了draw seeds，那么就能看到绿色的点表示生命体进行的播种。用户可以通过环境控制面板（Env Control panel）上的按钮对环境进行操作。也可以通过在仿真界面上进行鼠标拖拉的方式来操纵生命体和他所处的环境。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=800 height=600  frameborder=0 scrolling=yes src=&amp;quot;http://www.swarma.org/javaclass/classes/autolife/autolife.html&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:待润色]]&lt;br /&gt;
&lt;br /&gt;
==如何运行==&lt;br /&gt;
&lt;br /&gt;
总的运行结果可以分成两种，第一种情况是生命体可以自己进行播种。选择下拉框Have Seeds。也就是按照生命体他自己的规则运行到一定的时刻就产生一个绿色的“种子”，这个种子经过一段时间就可以生长成熟变成新的食物。一般一个单位的“种子”可以生成2个单位的食物，这样生命体会很快找到播种种子是一种收益递增的行动。在这种情况下，我们不用从外部给系统加入食物，生命体和食物构成的系统可以自我构建。&lt;br /&gt;
&lt;br /&gt;
第二种情况是生命体不可以播种（下拉框No seed），这样因为生命体的运行，会消耗大量的食物，因而我们必须从外界加入食物。这个时候可以运用左边的环境控制面板来操作。首先，用户可以选择增加食物的方式（Dynamic Env下拉框），我们会看到生命体在不同的环境下有非常不一样的适应性行为。最简单的一种环境就是每次随机的增加定量的食物（可以通过增加食物滚动条Ran food supply调节），会看到生命体的数量会呈明显的变化趋势。&lt;br /&gt;
&lt;br /&gt;
我们还可以人工的方式对环境和生命智能体操作。运用鼠标绘图的方式（在屏幕上进行拖拉），你可以方便的增加食物，也可以清除掉一些生命体，还可以对生命体进行拷贝、粘贴、剪切等操作，所有这些动作都可以通过环境控制面板（Env Control Panel）上面的控件完成。&lt;br /&gt;
&lt;br /&gt;
Objects选择的是所绘的物体，可以是Food（增加食物），可以是Eraser（橡皮，删除所选中的所有东西）。当选择了Select之后，再选择区域，会弹出一个对话框，显示了所有选中的生命体的情况，包括他们的一些基本参数和规则。另外，还可以在这个对话框中进行一些对选中区域的其他操作，包括对生命体的拷贝、粘贴。&lt;br /&gt;
Shapes选择的是描绘物体的形状，可以是Rectangle（矩形），可以是Line（直线）&lt;br /&gt;
Fill types：填充方式，即实心填充，还是梯度的方式画图（梯度的情况，只有在选择了食物物体的时候可用）。&lt;br /&gt;
Gradiant Value是当选择了梯度填充方式的时候，梯度值的大小。&lt;br /&gt;
Line Width是当选择了直线绘图方式的时候的直线宽度。&lt;br /&gt;
&lt;br /&gt;
底部面板上的按钮可以对整个仿真世界进行设置、操作，其中Start/Stop/Continue按钮可以自由控制仿真的运行和暂停。当暂停模式的时候，可以通过Config设置一些基本的参数，Restart则是重新运行整个仿真。Step可以单步运行程序。点Curves按钮会弹出一个对话框，用曲线的方式反映生命体的整体运动趋势和变化规律。Have Seeds、No Seeds选择框可以让生命体置于可以播种、不可以播种两种模式。Draw Seeds和Don't Draw Seeds则是命令程序是否会值种子（绿色）。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==趣味看点==&lt;br /&gt;
&lt;br /&gt;
===生命体会自行播种的情况===&lt;br /&gt;
&lt;br /&gt;
1、由于生命体会很快找到播种可以让他们收益递增的方式，并且当多个生命体聚集在一起时会使得整个群体达到互惠互利，因而这个时候组织就会突现，一群生命体聚集在一起，它们会不断的生产种子，种子又会给他们带来更多的食物。有些时候，组织会变得很庞大，当一个巨大的组织出现的时候会很容易衰败下去。这时候，组织会演变为很多小型的组织机构。一般情况，组织总是在不停的产生、衰亡，并能够集体随机运动。&lt;br /&gt;
&lt;br /&gt;
2、生命体构成的组织系统是一个自我构建的系统，它具有一种神奇的自我维持的能力，而且具有非常强的鲁棒性。我们可以通过下面的实验方法证明：当一个组织系统出现的时候，如果我们把这个组织的一小部分切割掉（可以用环境控制面板中的Eraser操作）的时候，组织会自发的寻找出一种运动模式尽量弥补这个被切割的部分。这就好像动物的伤口可以闭合一样。当切割的部分稍大一些的时候，组织会改变运动的方式，然而不会消亡，当切割的部分更大的时候，组织才会失去活力而死亡。&lt;br /&gt;
&lt;br /&gt;
3、组织具有自然的生命周期，从它的出生到死亡，以及中间时期的自发分裂。所有这些现象都是涌现出来的，并没有哪个指令告诉它们应该如何运动。尤其是组织的自发死亡现象。当一个组织增长的过快而过大的时候，很多“寄生”的生命体（也就是仅仅吃食物，而不播种）会呈指数增加，这个时候整个组织的食物供给（主要靠那些播种的生命体）会无法支撑如此庞大的系统，因而我们会看到组织的衰亡现象。具体体现在画面上是组织中白色的生命体非常多，然而蓝色的食物在逐渐减少，很快那些“坏死”的白色生命体团块消失了，整个组织很有可能分裂为一些更小的组织，也可能就此消失了。&lt;br /&gt;
&lt;br /&gt;
4、一般情况下，尺寸越大的组织出现的越少，尺寸越小的组织出现越多，二者的关系（尺寸和出现频率）可能呈现幂率分布。但是这个结果我没有精确的验证。&lt;br /&gt;
&lt;br /&gt;
===生命体不会播种的情况===&lt;br /&gt;
&lt;br /&gt;
1、当选择随机方式对整个世界进行食物补给的时候，通过观察生命体的变化曲线，我们一般会看到这样的情况：生命体群体呈现为三个阶段：过分繁殖、大灭绝、平稳震荡。也就是说生命体群体经历了学习阶段（疯狂繁殖、大灭绝），逐渐学会了某种固定的数量来应付当前的环境。如果不断的变化食物添加量，生命体群体会不断的学习。如果观察生命体的平均染色体长度曲线（该曲线反映了生命体规则的复杂度），我们会发现，变化的环境有利于整体复杂度的增加。&lt;br /&gt;
&lt;br /&gt;
2、当选择其他的食物增加情况会得到完全不一样的结果，特别是选择circle和helix的情况，生命体会逐渐适应环境形成固定的行为模式，这种行为模式会对环境的变化形成记忆。环境中食物的增长是一个运动的带形区域，生命体们会很快的适应这个环境，并且可以有效的“预测”到环境的变化趋势，因而也会形成一个带形的区域形成对环境的记忆。所有这些集体效果都是自发的行为。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==仿真的基本原理==&lt;br /&gt;
&lt;br /&gt;
每个生命体实际上都是一个小型的“图灵机”，并且这一群图灵机可以通过遗传变异而进化。&lt;br /&gt;
&lt;br /&gt;
内部结构：一群参数包括拥有的能量值、寿命、当前坐标、当前面对方向等等。一个可变化长度的规则表rules，这个规则表既可以当作指导生命体运动的程序规则，又可以当作遗传的数据（染色体）被遗传变异。&lt;br /&gt;
&lt;br /&gt;
如何行动：每个仿真周期，生命体仅仅读入它所面对的前方三个方格情况，如果0是空格，1是有食物的方格，那么，每次生命体读入的就是一个010，001这样的三位长的二进制字符串。生命体还有一些被编码成0,1,2,3,4……的内部状态，这样根据读入的二进制串和内部状态，生命体会查找它的规则表rules，找到匹配的一条规则，得到输出动作(0,1,2,3,4)和下一时刻的状态。其中动作(0,1,2,3,4)都是动作的编码，它们分别表示前行、左转、右转、繁殖、播种，也就是说每个生命体在每个周期所采用的动作完全是由它们的规则决定的。其中繁殖就是在当前位置诞生一个新的生命体，并且父亲的所有状态都会遗传给后代。&lt;br /&gt;
&lt;br /&gt;
环境规则：如果生命体所在的世界位置有食物，那么就会把这个食物吃掉，吃到食物就可以增加生命体的一定量的能量值。另外，生命体的每一种行动都会对应不同的能量消耗值，而新出生的生命体都会从它的父亲那里得到一部分能量值，如果一个生命体的能量消耗殆尽，或者这个生命体的寿命超过了最大寿命就会死亡。为了限制生命体的繁殖，每个生命都有一个最大繁殖数量。&lt;br /&gt;
&lt;br /&gt;
遗传规则：当每次遗传的时候，父亲会把规则表完全遗传给后代，但同时在遗传的过程中会以概率muteP发生变异，并且，规则表的长度也会以lenP的概率发生变化（既可能增长也可能缩短）。因而，生命体可以通过遗传变异来给自己编程，并且由于这个模型是与图灵机等价的，所以原则上讲，任意复杂的程序都能够被编出来。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==基本参数==&lt;br /&gt;
&lt;br /&gt;
Initial Agent number：初始时刻生命体的个数&lt;br /&gt;
&lt;br /&gt;
Initial foods density：初始时刻食物的分布密度&lt;br /&gt;
&lt;br /&gt;
MaxAgentContaining：环境对生命体个数的最大容量，当生命体超过这个总数就会使得遗传操作实效。这种处理的原因是为了缓解对内存的压力，如果生命体过多，计算机的负载会很快变得很大&lt;br /&gt;
&lt;br /&gt;
Agent's max age：每个生命体的最大寿命，超过这个年龄的生命体将会死亡&lt;br /&gt;
&lt;br /&gt;
delay time seed to grass：一个种子要经历多少时间才能变成食物&lt;br /&gt;
&lt;br /&gt;
Energy to produce a seed：产生一粒种子，生命体所消耗的能量值&lt;br /&gt;
&lt;br /&gt;
Mutation P：变异的概率&lt;br /&gt;
&lt;br /&gt;
LenP：长度变化的概率&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==开发背景==&lt;br /&gt;
&lt;br /&gt;
起初开发这个仿真模型有两个目的，一个是研究个体Agent的决策行为如何适应性的变化。我提出猜想，行为趋向混沌边缘的个体会逐渐在进化中诞生出来，并得到了一些初步结果。对这个决策模型的进一步改进就得到了现在的模型。&lt;br /&gt;
&lt;br /&gt;
另外一个目的是验证早期关于人工生命的一些思考。在我刚刚接触到人工生命中的蚂蚁觅食行为、人工生命Floy的动态行为觉得很迷人，但总觉得它们的行为是程序事先设计好的，而寻找这样的规则本身是一个艰巨的任务（在我开发蚂蚁觅食的仿真模型的时候深有感触）。于是我希望能够找到一种方法让生命的行为自动演化出不同的样子。然而如果用标准的遗传算法会存在很大的困难。我们都知道，标准的遗传算法都需要对问题用染色体进行编码，并且设计每一种染色体的基因组合的适应度函数，而染色体编码和适应度函数的设计本身就是一个很困难的问题。尤其是人工生命的适应性行为没有固定的评价标准。于是我开始思考如何让人工生命的行为不是一下子从染色体直接翻译过来的，而是通过类似L系统的跌代方法组合生成出来。计算机本身就是一个很好的启发，因为计算机无非就是一大堆01代码的组合，然而原则上它能够做“任意的”事情。为了弄明白普通计算机为什么能够做“任意的”事情，我开始探索计算理论和图灵机。后来搞明白了图灵机具有最强的计算能力，只要计算模型能够执行“通用计算”那么原则上它就能组合出来任意的行为。也正是因为这样，我才考虑到用图灵机作为进化Agent的基本模型。这样对图灵机程序的变异进化原则上能够产生任意复杂的程序。&lt;br /&gt;
&lt;br /&gt;
另外一个头痛的问题是解决适应性行为的判定，也就是适应度函数的问题。为了在模型中不显含适应度函数，我采纳了qingtom的意见，也就是让适应度自发涌现，通过设计Agent的能量值可以达到这个目的。原则上Agent能够做什么，怎么做都没有明确的规定，而每种行动都对应一个能量消耗值，当能量用光了Agent就死掉，这样适应性的结果就会自发的演化出来。通过进化，留下来的Agent能够有效的利用能量。&lt;br /&gt;
&lt;br /&gt;
在解决了以上技术难题之后，仿真模型开始投入运行。然而开始我并没有意识到食物添加环境对Agent的行为会有多大影响，而且一开始我把目光集中到了Agent个体行为上，我希望看到Agent的行为能够逐渐复杂起来，然而事实不如我所料。接下来一个偶然的机会，我看到如果仅仅在一条直线上添加食物，而其他地方没有食物，那么Agent就会聪明的学会如何“走钢丝”（在一条直线上生存），我马上意识到了环境的重要性，并开发了不同模式的动态环境。&lt;br /&gt;
&lt;br /&gt;
最后我希望Agent与环境的作用方式能够更自然，于是想到Agent死后也可能会变成新的食物，但是出于解释方便的目的，我让Agent可以播种，并且播出的种子由于某种假想的“光合作用”能够转变出更多的食物，在这种情况下，令我吃惊的是组织自我突现出来了。而且那些日子我刚刚接触到了自创生理论，我发现在本模型中的组织就是一个自创系统，它自己维持着自己的存在，尤其是看到了惊人的自我维护现象。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==疑难问题及进一步改进==&lt;br /&gt;
 	&lt;br /&gt;
1、在生命体能播种的情况，如何让组织实现自主运动。也就是它们的运动具有明显的目的性，会观察到周围环境的食物分布，自动朝向食物分布多的地方运动。由于现在的规则，组织是一个自给自足的系统，因而也失去了获取更多食物的兴趣，因而现在尚无法很好的完成自主食物的获取。&lt;br /&gt;
&lt;br /&gt;
2、如何让更高级的组织涌现？组织可能呈现出明显的内部结构，多个组织联合起来可以形成超级组织等。&lt;br /&gt;
&lt;br /&gt;
3、如果把环境的变化比喻成计算机的指令，那么生命体的适应性行为就是对这些指令的执行。如果让指令根据生命体的变化而进化会怎样？也就是说环境的状况如何自发的进化？&lt;br /&gt;
&lt;br /&gt;
4、如何进一步简化生命体的模型，由于每个周期，生命体都要进行查表操作，因而浪费了很多时间，导致程序的效率下降。&lt;br /&gt;
&lt;br /&gt;
5、如果更改Agent的模型会有什么结果？比如如果把Agent改造成一个演化的神经网络。（不知道传统的BP网络模型是不是能带来更好的结果，原则上，只要是支持通用计算的模型就能达到进化的目的，那么BP网络可以么？）&lt;br /&gt;
&lt;br /&gt;
6、如何进一步减少人们对规则的制定，目前设计者还需要设计环境的规则及其参数，如何让这些东西都自发涌现？如果把环境也看做是图灵机会出现什么情况？&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==潜在的应用==&lt;br /&gt;
 	&lt;br /&gt;
1、通过这个仿真试验研究并开发个体的行为。由于随着程序的运行个体Agent的规则表会变得相当复杂，因此如何在这些庞大的规则表中找出有用的程序规则成为一个难题。然而通过理解人工生命的行为我们有望更好的理解人类决策的行为。《Decision at edge of chaos》这篇文章就探讨了Autolife模型中的Agent从行为上趋向混沌边缘的可能性，以及对我们决策管理的实际意义。&lt;br /&gt;
&lt;br /&gt;
2、将Autolife模型作为隐喻解决计算理论问题。比如我们看到agent构成的组织有一种自发的聚集行为，我们能否用这个现象构造一种聚类算法？我们知道，已经有人研究运用人工生命的方法解决计算机自动聚类问题，那么我认为Autolife这个模型也很有可能完成这个工作。&lt;br /&gt;
&lt;br /&gt;
3、能否用Autolife模型构造出新的通用的进化算法来解决优化问题？我们知道蚂蚁算法的本质就是利用蚂蚁的涌现行为刚好是最短路径来解决优化问题的。而Autolife中的Agent本质上也在经历着寻优的过程，他们不断的适应新的环境就是不断的优化过程，如何把这种优化过程进一步扩展到更广阔的领域呢？&lt;br /&gt;
&lt;br /&gt;
4、是否能够以Autolife模型作为隐喻构造某种突现计算？如果把Autolife中的网格空间抽象成更加一般的空间，把环境添加食物的动态行为理解为一种指令，那么Agent的群体行为就是执行这些指令的表现。这就好像普通的计算机在执行一堆指令代码，然而不同的是，Autolife中的Agent群体具有很强的灵活性、适应性和鲁棒性，那么执行出来的结果应该和我们的数字计算机不一样，因而能够看到某种适应性的、柔性的执行代码的结果产生出来。&lt;br /&gt;
&lt;br /&gt;
5、在艺术领域的潜在应用。因为Autolife是一个可视化的、界面友好的群集行为仿真，能否把这个模型应用于产生各种各样群集艺术作品是一个既有趣又值得探索的问题。&lt;br /&gt;
&lt;br /&gt;
==相关wiki==&lt;br /&gt;
*[[Clickstream network datasets]]&lt;br /&gt;
*[[自创生理论]]&lt;br /&gt;
*[[3d的Floy]]&lt;br /&gt;
*[[生生不息]]&lt;br /&gt;
*[[Floy]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:旧网站]]&lt;br /&gt;
[[category:旧网站-虚拟世界]]&lt;br /&gt;
[[category:模拟程序]]&lt;br /&gt;
[[category:人工生命]]&lt;br /&gt;
[[category:复杂系统]]&lt;br /&gt;
[[category:旧词条迁移]]&lt;/div&gt;</summary>
		<author><name>Mugicaxu2</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=Floy%E6%A8%A1%E6%8B%9F%E6%A8%A1%E5%9E%8B&amp;diff=34666</id>
		<title>Floy模拟模型</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=Floy%E6%A8%A1%E6%8B%9F%E6%A8%A1%E5%9E%8B&amp;diff=34666"/>
		<updated>2024-05-13T08:53:09Z</updated>

		<summary type="html">&lt;p&gt;Mugicaxu2：/* Floy模拟模型 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#seo:&lt;br /&gt;
|keywords=人工生命, floy&lt;br /&gt;
|description=人工生命, floy&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Floy模拟模型==&lt;br /&gt;
*名 称：人工生命&lt;br /&gt;
*作 者：Ariel  Dolan&lt;br /&gt;
*源代码：[[File:Floy.zip|链接=https://wiki.swarma.org/index.php/Special:FilePath/Floy.zip]]&lt;br /&gt;
===程序说明===&lt;br /&gt;
生命是什么？我们能不能造出生命来？看看上面的程序。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
你看到了什么？一群苍蝇在飞舞？这是简简单单的动画么？这些家伙是“活”的么？我可以告诉你，这群飞舞的动物叫Floy，它既不是苍蝇也不是蝌蚪，而是人工生命！这就是一段简简单单的程序，而且代码的长度才有200多行！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
单击Properties按钮，你可以改变这群Floy的属性，首先我们为了从简单开始把Floy的个数更改为1个看看，点击OK返回以后再按一下Continue按钮，一只Floy在围绕着中心转，也许你会说，这没什么，不就是一个运动的点么？如果更改Floy的个数为2个，那么这两只Floy就会互相追逐着在屏幕上飞行，注意两只Floy的行为就会产生混沌模式了，也就是它们的运动方式几乎是完全不确定的。逐渐增加到15只以上你就会看到一大群生物在那里乱飞了，这很像我们现实世界中的苍蝇行为。点击Strangers按钮，你会看到一只红色的Floy从屏幕的左上角飞进来，注意，它的到来可不寻常，它是一个外来的入侵者！本来相安无事的绿色Floy因为它的到来而变得行为异常起来，它们会突然转过头来进攻红色的入侵者，而红色的Floy会赶忙逃跑。继续点击Strangers按钮，就会有不断的入侵者加入进来，同时原有的Floy群体在减少。你会看到有两群苍蝇在那里追逐。绿色的Floy是本地居民，它会进攻入侵者最后将它杀死。如果幸运，你甚至会看到绿色的Floy们会使用诡计，它们先若无其事的在一起飞即使身边就有一只红色的入侵者，但是突然之间，它会转过头来进攻红色的，让它来不及逃跑。点击Default按钮可以恢复原状。&lt;br /&gt;
&lt;br /&gt;
===模型的规则===&lt;br /&gt;
为什么这一群小点在这么简单的程序之下会有这样复杂的行为？它们是怎么实现的？注意，虽然这也是编程，但我们并不是按照传统的方法对所有Floy的集体行为在每一种可能的情况都编程，而是给每一个个体Floy制定简单的规则，这样Floy集体的复杂行为就会自然而然的涌现出来了！那么个体Floy的规则是什么呢？它是遵循下面的规律：&lt;br /&gt;
&lt;br /&gt;
*首先找到和自己最近的几只（邻居数）的Floy作为自己的邻居；&lt;br /&gt;
*对于每个邻居如果它是自己的同类那么然后分别计算与这些邻居之间的距离；&lt;br /&gt;
**如果太近（距离小于碰撞距离）就朝向远离这个邻居的方向加速飞翔；&lt;br /&gt;
**如果较远（距离大于碰撞距离）就朝向靠近这个邻居的方向加速飞翔；&lt;br /&gt;
*如果邻居是自己的异类；&lt;br /&gt;
**如果这只Floy是绿色的则以非常快的加速度向对方进攻；&lt;br /&gt;
**如果这只Floy是红色的陌生者则当小于碰撞距离的时候以非常快的加速度逃离，并且自己的能量减小；当距离不是很大时，停止加速。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
总体来说，Floy的规则就是选择自己的加速度，并且这种选择仅仅跟自己的邻居有关，也就是说规则都是局部的。而这个程序的关键是要体现整体行为的涌现，也就是说虽然微观上每个Floy个体的规则都是简单的局部的，但是在集体涌现出来的现象却是复杂的并且是不可预测的。人工生命的精髓就是：其实生命现象本身不过是由微观的简单相互作用规律涌现出来的集体复杂行为。&lt;br /&gt;
&lt;br /&gt;
===模型的参数===&lt;br /&gt;
进一步，你可以探索更改参数对这群Floy的影响。你可以点击Behavior按钮，Floy的个性会改变，有温顺的也有疯狂的。它们的行为完全是由几个简单参数制约的，再次点击Properties按钮，那里面的参数制约了每个Floy个体的行为自然也就制约了Floy整体的涌现规律。其中各个参数的意义：加速度就是指每只苍蝇进行加速靠近或者远离的最小加速度值；中心吸引度是为了让Floy能够围绕屏幕中心旋转而让它们的加速度都有一个指向中心的分量；碰撞距离定义多少像素距离是叫做碰撞，从而Floy们选择远离还是靠近；最大速度是为了Floy们的行为不至于太疯狂也就是速度固定一个上限；反弹速度是当Floy撞击墙壁的时候反弹回来的速度；间隔时间是控制整个程序快慢的参数；初始速度是每只苍蝇在开始的初速度；自由重组邻居的概率：为了让Floy们的行为中有一定的随机不确定性，它们会以自由重组邻居的概率重新随机的选择自己的邻居（正常情况下是选择距离最小的若干Floy作为自己的邻居），如果这个概率指定为0那么Floy的行为就没那么有趣了；邻居数目定义了每只Floy可以有多少邻居。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
接下来我们能干什么？也许你觉得这个简单程序太没趣了，应该把它改为三维的动画。没问题，这个要求还算容易满足。你只要点击这里就能看到三维的Floy。但是因为Java本身的限制，动画不如用Maya之类的三维软件作的好看，但是这个程序却反映了规律的本质，有兴趣的朋友完全可以把这个动画用Maya作一遍，这样你可以给每个Floy赋予贴图裁质，那样也许更有趣。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
也许三维的Floy仍然不够有趣，我们能不能在想出点疯狂的？&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
进化！首先让每只Floy都拥有自己的个性，然后让Floy能够进行有性繁殖，并且后代Floy能够继承父母的特性，没问题，请看能够进化的Floy。&lt;br /&gt;
&lt;br /&gt;
[[Category:待润色]]&lt;br /&gt;
&lt;br /&gt;
==三维的Floy鸟群模拟模型==&lt;br /&gt;
*名 称：3d的Floy&lt;br /&gt;
*作 者：Ariel  Dolan&lt;br /&gt;
*源代码：[[媒体文件:Floy3d.zip|Floy3d.zip]]&lt;br /&gt;
===程序说明===&lt;br /&gt;
如果二维的Floy还看得不够过瘾，那么请看三维Floy程序，这里，每个Floy遵循的规则和前面叙述的基本Floy的规则一样，其中每只Floy都有两个邻居。也许三维的Floy仍然不够有趣，我们能不能在想出点疯狂的？进化！首先让每只Floy都拥有自己的个性，然后让Floy能够进行有性繁殖，并且后代Floy能够继承父母的特性，没问题，请看能够进化的Floy。&lt;br /&gt;
==相关wiki==&lt;br /&gt;
*[https://wiki.swarma.org/index.php/Clickstream_network_datasets Clickstream network datasets]&lt;br /&gt;
*[https://wiki.swarma.org/index.php/%E8%87%AA%E5%88%9B%E7%94%9F%E7%90%86%E8%AE%BA 自创生理论]&lt;br /&gt;
*[https://wiki.swarma.org/index.php/%E7%94%9F%E7%94%9F%E4%B8%8D%E6%81%AF 生生不息]&lt;br /&gt;
==编者推荐==&lt;br /&gt;
===书籍推荐===&lt;br /&gt;
[[File:复杂.jpg|200px|thumb|right|《复杂》封面|链接=https://wiki.swarma.org/index.php/%E6%96%87%E4%BB%B6:%E5%A4%8D%E6%9D%82.jpg]]&lt;br /&gt;
*[https://vdisk.weibo.com/s/BTLfj870SYIar 《复杂》 梅拉妮·米歇尔]&lt;br /&gt;
蚂蚁在组成群体时为何会表现出如此的精密性和具有目的性？数以亿计的神经元是如何产生出像意识这样极度复杂的事物？是什么在引导免疫系统、互联网、全球经济和人类基因组等自组织结构？这些都是复杂系统科学尝试回答的迷人而令人费解的问题的一部分。理解复杂系统需要有全新的方法，需要超过传统的科学还原论，并重新划定学科的疆域。借助于圣塔菲研究所的工作经历和交叉学科方法，复杂系统的前沿科学家米歇尔在《复杂》一书中，以清晰的思路介绍了复杂系统的研究，横跨生物、技术和社会学等领域，并探寻复杂系统的普遍规律。与此同时，她还探讨了复杂性与进化、人工智能、计算、遗传、信息处理等领域的关系。&lt;br /&gt;
&lt;br /&gt;
===文章推荐===&lt;br /&gt;
*[https://zhuanlan.zhihu.com/p/97717680 超越简单规则——用图神经网络对复杂系统进行自动建模]&lt;br /&gt;
::近期，由北京师范大学张江团队发表的文章《A general deep learning framework for network reconstruction and dynamics learning》在期刊Applied Network Science上刊登，这篇文章提出了一种基于深度学习的数据驱动模型，可以从节点的时间演化数据中重构出网络结构，并且学习到系统的动力学。本文是第一作者张章对该文章内容的解读。&lt;br /&gt;
===课程推荐===&lt;br /&gt;
*[https://campus.swarma.org/course/1095 NetLogo多主体建模入门]&lt;br /&gt;
::本课程通过数个案例教会大家如何去动手搭建一个多主体仿真模型，以及如何利用NetLogo去实现。从生命游戏到人工鸟群，从模拟经济系统到病毒沿网络的传播，通过循序渐进的案例，该课程带你逐步走入NetLogo多主体建模的神奇世界。&lt;br /&gt;
*[https://campus.swarma.org/course/596 生物中的多主体模型]&lt;br /&gt;
::本课程将视线转移到生物学领域，展现计算机模拟在生物学中的应用。认识自然现象，我们可以从物理、数学、生物、天文、化学等众多角度去解读，那么怎样将众多的知识综合起来转化为可以用计算机模拟的语言哪？本节课将通过一个模型案例来帮助我们打开思路，更好的去描述和模拟生物现象。&lt;br /&gt;
----本中文词条由[https://wiki.swarma.org/index.php/%E7%94%A8%E6%88%B7:Jake Jake]、[https://wiki.swarma.org/index.php/%E7%94%A8%E6%88%B7:%E6%80%9D%E6%97%A0%E6%B6%AF%E5%92%BF%E5%91%80%E5%92%BF%E5%91%80 思无涯咿呀咿呀]用户参与编译，[https://wiki.swarma.org/index.php/%E7%94%A8%E6%88%B7:%E4%B9%90%E5%A4%9A%E5%A4%9A 乐多多]编辑，欢迎在讨论页面留言。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''本词条内容源自wikipedia及公开资料，遵守 CC3.0协议。'''&lt;/div&gt;</summary>
		<author><name>Mugicaxu2</name></author>
	</entry>
</feed>