Jackey's 感悟

Do Research

Bibliography Entry Types for .bib file

Bibliography Entry Types for .bib file

Entry types

When entering a reference in the bibliography database, the first thing to decide is what type of entry it is. No fixed classification scheme can be complete, but BibTeX provides enough entry types to handle almost any reference reasonably well.

References to different types of publications contain different information; a reference to a journal might include the volume and number of the journal, which is usually not meaningful for a book. Therefore, database entries of different types have different fields for each entry type, the fields are divided into three classes:

Required
omitting the field will produce an error message and may result in a badly formatted bibliography entry. If the required information is not meaningful, you are using the wrong entry type.
Optional
the field’s information will be used if present, but can be omitted without causing any formatting problems. A reference should contain any available information that might help the reader, so you should include the optional field if it is applicable.
Ignored
the field is ignored. BibTeX ignores any field that is not required or optional, so you can include any fields you want in a bibliography entry. It’s often a good idea to put all relevant information about a reference in its bibliography entry – even information that may never appear in the bibliography. For example, if you want to keep an abstract of a paper in a computer file, put it in an ‘abstract’ field in the paper’s bibliography entry. The bibliography database file is likely to be as good a place as any for the abstract, and it is possible to design a bibliography style for printing selected abstracts.

BibTeX ignores the case of letters in the entry type.

Subtopics

article entry

An article from a journal or magazine.

Format:

     @ARTICLE{citation_key,
              required_fields [, optional_fields] }

Required fields: author, title, journal, year

Optional fields: volume, number, pages, month, note, key

book entry

A book with an explicit publisher.

Format:

     @BOOK{citation_key,
           required_fields [, optional_fields] }

Required fields: author or editor, title, publisher, year

Optional fields: volume, series, address, edition, month, note, key

booklet entry

A work that is printed and bound, but without a named publisher or sponsoring institution.

Format:

     @BOOKLET{citation_key,
              required_fields [, optional_fields] }

Required fields: title

Optional fields: author, howpublished, address, month, year, note, key

conference entry

An article in the proceedings of a conference. This entry is identical to the ‘inproceedings’ entry and is included for compatibility with another text formatting system.

Format:

     @CONFERENCE{citation_key,
                 required_fields [, optional_fields] }

Required fields: author, title, booktitle, year

Optional fields: editor, pages, organization, publisher, address, month, note, key

inbook entry

A part of a book, which may be a chapter and/or a range of pages.

Format:

     @INBOOK{citation_key,
             required_fields [, optional_fields] }

Required fields: author or editor, title, chapter and/or pages, publisher, year

Optional fields: volume, series, address, edition, month, note, key

incollection entry

A part of a book with its own title.

Format:

     @INCOLLECTION{citation_key,
                   required_fields [, optional_fields] }

Required fields: author, title, booktitle, year

Optional fields: editor, pages, organization, publisher, address, month, note, key

inproceedings entry

An article in the proceedings of a conference.

Format:

     @INPROCEEDINGS{citation_key,
                    required_fields [, optional_fields] }

Required fields: author, title, booktitle, year

Optional fields: editor, pages, organization, publisher, address, month, note, key

manual entry

Technical documentation.

Format:

     @MANUAL{citation_key,
             required_fields [, optional_fields] }

Required fields: title

Optional fields: author, organization, address, edition, month, year, note, key

mastersthesis entry

A Master’s thesis.

Format:

     @MASTERSTHESIS{citation_key,
                    required_fields [, optional_fields] }

Required fields: author, title, school, year

Optional fields: address, month, note, key

misc entry

Use this type when nothing else seems appropriate.

Format:

     @MISC{citation_key,
           required_fields [, optional_fields] }

Required fields: none

Optional fields: author, title, howpublished, month, year, note, key

phdthesis entry

A PhD thesis.

Format:

     @PHDTHESIS{citation_key,
                required_fields [, optional_fields] }

Required fields: author, title, school, year

Optional fields: address, month, note, key

proceedings entry

The proceedings of a conference.

Format:

     @PROCEEDINGS{citation_key,
                  required_fields [, optional_fields] }

Required fields: title, year

Optional fields: editor, publisher, organization, address, month, note, key

techreport entry

A report published by a school or other institution, usually numbered within a series.

Format:

     @TECHREPORT{citation_key,
                 required_fields [, optional_fields] }

Required fields: author, title, institution, year

Optional fields: type, number, address, month, note, key

unpublished entry

A document with an author and title, but not formally published.

Format:

     @UNPUBLISHED{citation_key,
                  required_fields [, optional_fields] }

Required fields: author, title, note

Optional fields: month, year, key

Del.icio.us : , ,
Flickr : , ,

Advertisements

Report An Overview of Aritficial Immune Systems

From Evernote:

[Report] An Overview of Aritficial Immune Systems

Clipped from: http://www.artificial-immune-systems.org/Courses/York/lecture1.pdf

Short Lecture Course supplied by Jon Timmis of the University of York, UK (if you use any slides here, please provide a suitable acknowledgment). These lectures form part of a longer course on swarm intelligence, and also assume some knowledge of evolutionary computation. Immune networks are not covered in these slides, though they are on the course. The reason why there are no slides on immune networks is the topic is worked through with the students on a white board by adapting a clonal selection algorithm into an immune network algorithm. Negative selection is also covered on the white board, rather than through lecture slides.

  • Lecture 1: An Overview of Artifcial Immune Systems Lecture PDF
  • Lecture 2: An Introduction to Relevant Immunology Lecture PDF
  • Lecture 3: Immune Modelling : A simple case study Lecture PDF
  • Lecture 4: Engineering Artificial Immune Systems Lecture PDF
  • Lecture 5: Using Clonal Selection for Supervised Learning Lecture PDF
  • Lecture 6: On Artificial Immune Systems and Swarm Intelligence Lecture PDF

第一讲:人工免疫系统概述
Slide的题目是
Collaborative Bio-Inspired Algorithms
Lecture 6: Artificial Immune Systems

Prof Jon Timmis
October 25, 2010

collaborative
adj. 合作的, 协力完成的

Outline:

  1. AIS Background
    1. History
    2. Of interest because?
  2. Thinking about AIS
  3. Basic Immunology
    1. The Immune what?
  4. Engineering Artificial Immune Systems
  5. Interdiscipinary?

What are AIS?
一种定义:AIS是一种受理论免疫学(theoretical immunology)及实验观察得到的免疫功能、原理、模型启发的适应性系统,被应用于多种复杂问题领域。(该定义来自于2002发表的书)
De Castro, L. & Timmis, J. Artificial immune systems: a new computational intelligence approach Springer Verlag, 2002
但是上述的定义已经不能“与时俱进”了,当前发生了一些变化。具体的将在本次lecture中提到。

History

  • 开创性论文——1986年,Farmer等人(J. Doyne Farmer and Norman H. Packard and Alan S. Perelson)从理论免疫学中引出免疫网络的动态模型。
    • 文章中对比了免疫网络和神经网络的差异
    • 建议从计算的角度分析免疫系统IS
  • 1988年Varela(Varela, F. and Coutinho, A. and Dupire, B. and Nelson, N.)进一步对比了免疫、神经系统。
  • 1990年,日本人石田(Ishida, Y.)是第一个将免疫算法应用在解决实际问题。
  • 上世纪90年代中期,Forrest等人提出Self-nonself及反向选择算法,应用于计算机安全领域
  • 上世纪90年代中期,Hunt等人将免疫的思想用于机器学习领域
  • started quite immunological grounded(基础性的工作开始)
    • 1991年Bersini, H. & Varela, F.出版的著作《Hints for adaptive problem solving gleaned from immune networks》
    • 1994年Forrest, S.; Perelson, A.; Allen, L. & Cherukuri, R.提出的self-nonself,同前述
  • Kind of moved away from that, and abstracted more. (有点儿脱离原来的定义、轨迹,变得更加的抽象、隐喻?)
  • 当前,有种趋势是回归免疫学的根本以及更多的交叉(主要的表现是,2007年生物免疫学家在Nature Reviews Immunology上发表的)
    • 例如2007年Cohen的"The immune system computes"
    • “what might we gain by thinking about immune computation”, Cohen,2007(Mr. Timmis的slide中应该是笔误成了2008)

提出问题!
But how do we manage this intreaction to make it worth while for all concerned … ?

接着提出了AIS一些有趣的地方,自适应性、无中心、自学习、动态平衡等特征。

AIS的概念框架(Conceptual Frameworks)

该框架图出自Timmis Jonathan与De Castro合著的书《Artificial immune systems: a new computational intelligence approach》。将当前研究的交叉方法简单描述出来。

这时候枪头一转,问个问题:什么是免疫系统(Immune System, IS)?
有三种不同角度的解释:

  1. Classic View
    • a complex system of celluar and molecular components having the primary function of distinguishing self from not self and defense against foreign organisms or substances.
    • 上面的翻译:是一种复杂系统,由细胞、分子等组成,主要的功能是从“非我”中区分出“自我”(而不是去查找“非我”,记忆、查找的空间会更小),并对外来有机物或者物质起到防御作用
  2. Cognitive View(认知角度)
    • The immune system is a cognitive system whose primary role is to provide body maintenance.[2]
    • 免疫系统是一种认知系统,扮演着提供机体维护的角色[2]
  3. Danger View
    • The immune system recognises dangerous agents and not non-self [9]
    • 发现威胁性物体,而不是关注于“非我”的死死寻觅 [9]

Classic view 代表的是clonal slection 和negative selection等方法。

AIS的工程应用

提到的论文,及其相关信息和摘要:

[1]Bersini, H. & Varela, F. Schwefel, H.-P. & Männer, R. (Eds.) Hints for adaptive problem solving gleaned from immune networks Parallel Problem Solving from Nature, Springer Berlin / Heidelberg, 1991, 496, 343-354
[2] Cohen, I. R. On Tending Adam’s Garden Tending Adam’s Garden, Academic Press, 2000, 243 – 255
[3] Cohen, I. R. Real and artificial immune systems: computing the state of the body Nature Reviews Immunology, 2007, 07, 569-574
[4] De Castro, L. & Timmis, J. Artificial immune systems: a new computational intelligence approach Springer Verlag, 2002
[5] Farmer, J. D.; Packard, N. H. & Perelson, A. S. The immune system, adaptation, and machine learning Physica D: Nonlinear Phenomena, 1986, 22, 187 – 204
Abstract: The immune system is capable of learning, memory, and pattern recognition. By employing genetic operators on a time scale fast enough to observe experimentally, the immune system is able to recognize novel shapes without preprogramming. Here we describe a dynamical model for the immune system that is based on the network hypothesis of Jerne, and is simple enough to simulate on a computer. This model has a strong similarity to an approach to learning and artificial intelligence introduced by Holland, called the classifier system. We demonstrate that simple versions of the classifier system can be cast as a nonlinear dynamical system, and explore the analogy between the immune and classifier systems in detail. Through this comparison we hope to gain insight into the way they perform specific tasks, and to suggest new approaches that might be of value in learning systems.
[6] Forrest, S.; Perelson, A.; Allen, L. & Cherukuri, R. Self-nonself discrimination in a computer Research in Security and Privacy, 1994. Proceedings., 1994 IEEE Computer Society Symposium on, 1994, 202 -212
Abstract: The problem of protecting computer systems can be viewed generally as the problem of learning to distinguish self from other. The authors describe a method for change detection which is based on the generation of T cells in the immune system. Mathematical analysis reveals computational costs of the system, and preliminary experiments illustrate how the method might be applied to the problem of computer viruses
[7] Hunt, J. E. & Cooke, D. E. Learning using an artificial immune system Journal of Network and Computer Applications, 1996, 19, 189 – 212
Abstract: In this paper we describe an artificial immune system (AIS) which is based upon models of the natural immune system. This natural system is an example of an evolutionary learning mechanism which possesses a content addressable memory and the ability to forget little-used information. It is also an example of an adaptive non-linear network in which control is decentralized and problem processing is efficient and effective. As such, the immune system has the potential to offer novel problem solving methods. The AIS is an example of a system developed around the current understanding of the immune system. It illustrates how an artificial immune system can capture the basic elements of the immune system and exhibit some of its chief characteristics. We illustrate the potential of the AIS on a simple pattern recognition problem. We then apply the AIS to a real-world problem: the recognition of promoters in DNA sequences. The results obtained are consistent with other appproaches, such as neural networks and Quinlan’s ID3 and are better than the nearest neighbour algorithm. The primary advantages of the AIS are that it only requires positive examples, and the patterns it has learnt can be explicitly examined. In addition, because it is self-organizing, it does not
require effort to optimize any system parameters.
[8] Ishida, Y. Fully distributed diagnosis by PDP learning algorithm: towards immune network PDP model Neural Networks, 1990., 1990 IJCNN International Joint Conference on, 1990, 777 -782 vol.1
Abstract: Based on the strong analogy between neural networks and distributed diagnosis models, diagnostic algorithms are presented which are similar to the learning algorithm used in neural networks. Diagnostic implications of convergence theorems proved by the Lyapunov function are also discussed. Regarding diagnosis process as a recalling process in the associative memory, a diagnostic method of associative diagnosis is also presented. A good guess of diagnosis is given as a key to recalling the correct diagnosis. The authors regard the distributed diagnosis as an immune network model, a novel PDP (parallel distributed processing) model. This models the recognition capability emergent from cooperative recognition of interconnected units.
[9] Matzinger, P. The Danger Model: A Renewed Sense of Self Science, 2002, 296, 301-305
[10] Neal, M.; Stepney, S.; Smith, R. & Timmis, J. Conceptual frameworks for artificial immune systems International Journal on Unconventional Computing, Old City Publishing, 2005, 1, 315-338
[11] Varela, F.; Coutinho, A.; Dupire, B. & Nelson, N. Cognitive networks: immune, neural and otherwise Addison Wesley Publishing Company, 1988

哈佛图书馆的二十条训言

From Evernote:

哈佛图书馆的二十条训言:

Clipped from: http://blog.renren.com/share/341854935/5381280168

哈佛图书馆的二十条训言:

1、此刻打盹,你将做梦;而此刻学习,你将圆梦。(This moment will nap, you will have a dream; But this moment study,you will interpret a dream. )

2、 我荒废的今日,正是昨日殒身之人祈求的明日。(I leave uncultivated today, was precisely yesterday perishes tomorrow which person of the body implored.)

3、觉得为时已晚的时候,恰恰是最早的时候。(Thought is already is late, exactly is the earliest time.)

4、勿将今日之事拖到明日。(Not matter of the today will drag tomorrow. )

5、学习时的苦痛是暂时的,未学到的痛苦是终生的。(Time the study pain is temporary, has not learned the pain islife-long. )

6、学习这件事,不是缺乏时间,而是缺乏努力。(Studies this matter, lacks the time, but is lacks diligently.)

7、幸福或许不排名次,但成功必排名次。(Perhaps happiness does not arrange the position, but succeeds must arrange the position. )

8、 学习并不是人生的全部。但,既然连人生的一部分——学习也无法征服,还能做什么呢?(The study certainly is not the life complete. But, since continually life part of-studies also is unable to conquer, what butalso can make?)

9、请享受无法回避的痛苦。(Please enjoy the pain which is unable to avoid.)

10、只有比别人更早、更勤奋地努力,才能尝到成功的滋味。(only has compared to the others early, diligently diligently, canfeel the successful taste.)

11、谁也不能随随便便成功,它来自彻底的自我管理和毅力。(Nobody can casually succeed, it comes from the thoroughself-control and the will. )

12、时间在流逝。(The time is passing. )

13、现在流的口水,将成为明天的眼泪。(Now drips the saliva, will become tomorrow the tear.)

14、狗一样地学,绅士一样地玩。(The dog equally study, the gentleman equally plays.)

15、今天不走,明天要跑。(Today does not walk, will have to run tomorrow.)

16、投资未来的人是,忠于现实的人。(The investment future person will be, will be loyal to the realityperson. )

17、教育程度代表收入。(The education level represents the income. )

18、一天过完,不会再来。(one day, has not been able again to come. )

19、即使现在,对手也不停地翻动书页。(Even if the present, the match does not stop changes the page.)

20、没有艰辛,便无所得。(Has not been difficult, then does not have attains’.)

蓝精灵游戏界面截图

发自我的 iPod

Polly Matzinger and her Danger Model

From Evernote:

Polly Matzinger

Clipped from: http://en.wikipedia.org/wiki/Polly_Matzinger

Polly Matzinger

From Wikipedia, the free encyclopedia
220px-Polly_&_Annie.jpg
Polly & Annie

Polly Celine Eveline Matzinger (born 21 July 1947) is an iconoclastic scientist who proposed a novel explanation of how theimmune system works, called the danger model.

Contents

[hide]

[edit]Early years

Polly Matzinger took to science from an unusual background career path which included stints as a Playboy Bunny at a Playboy Club in Denver, a bar waitress, a jazzmusician, a carpenter and dog trainer. In 1974 Polly Matzinger had dropped in and out of college for years and worked at various jobs before ending up waitressing at a bar frequented by faculty from the University of California, at Davis and here she met Professor Robert Schwab, the head of the University’s wildlife program who noticed her talent and persuaded her to take to science.[1]

She eventually went to the University of California, San Diego for her Ph.D., did post-doctoral work at the University of Cambridge, and was a scientist at the Basel Institute for Immunology before coming to the National Institutes of Health in Bethesda, Maryland.

[edit]Ghost Lab at NIAID

Polly Matzinger is now a section head at the National Institute of Allergy and Infectious Diseases. Matzinger and her coworkers refer to the lab’s name as the ‘Ghost Lab’ when listing their affiliation in papers. The nickname was given to the lab by her colleagues when Matzinger first arrived at the NIH because she spent the first nine months studying a new field (Chaos Theory) that she thought might apply to the immune system, and the lab sat empty. The formal name of her laboratory is the T-Cell Tolerance and Memory Section of the Laboratory of Cellular and Molecular Immunology. The ghost lab now hosts 3 post-doctoral researchers .[1] From this knowledge pool, approximately 0-3 original research articles are published a year, including original research articles and theoretical pieces. A majority of the publications are her taken-author published works, theoretical in nature and published in very highly cited journals. [2]

[edit]The Danger Model

The self-non-self model, the predominant model in immunology since the 1950s, began to encounter problems in the late 1980s when immunologists began to recognize that T-cells depend on other cells to pick up and then present the things to which they will respond — and that the T-cell response depends on whether the other cell (known as antigen-presenting cells) is sending activation signals to the T-cells.

In 1989, drawing on the ideas of Thomas Kuhn, Charles Janeway proposed that the old immunological paradigm had reached the limits of its usefulness—or, as he described it, the asymptote of the increase in knowledge which it had brought. Janeway argued that the innate immune system was the real gatekeeper of whether the immune system responded or did not respond. He also argued that the innate immune system used ancient pattern-recognition receptors to make these decisions – recognizing a pathogen by its unchanging characteristics.

[edit]Danger signals

In a 1994 article entitled "Tolerance, Danger and the Extended Family", Matzinger went several steps further by laying out the idea that antigen-presenting cells respond to "danger signals" – most notably from cells undergoing injury, or stress or "bad cell death" (as opposed to apoptosis, controlled cell death). The alarm signals released by these cells let the immune system know that there is a problem requiring an immune response. She argued that T-cells and the immune response they orchestrate occurs not because of a neonatal definition of "self", as in the previous model, nor because of ancient definitions of pathogens, as in Janeway’s argument, but due to a dynamic and constantly-updated response to danger as defined by cellular damage.

[edit]Scope

The Danger Model is quite broad, covering topics as diverse as transplantation, maternal/fetal immunity, autoimmunity, cancer treatments, and vaccines, but Matzinger points out that although it offers an explanation of how an immune response is triggered and how it ends, it does not (yet) offer an explanation of why the immune system responds in different ways to different situations. She hypothesizes that tissues send signals to the immune system that determine the immune response appropriate for that tissue, and her lab is now working on experiments to test that hypothesis.

The Danger Model has not won universal acceptance. Some immunologists, following Janeway’s ideas more directly, believe that the immune response is mainly fueled by innate evolutionarily-conserved "pattern recognition receptors" which recognize patterns expressed by microbes such as bacteria, and do not see cell death in the absence of pathogens as a primary driver of immune response. These ideas however, do not explain how the immune system rejects transplants (most well-done transplants are not covered in bacteria), or tumors, or induce autoimmune diseases.

[edit]Pattern recognition and a tissue-driven immune system

Recently, Seong and Matzinger have suggested that the "patterns" that the immune system recognizes on bacteria are not as different from the alarm signals released by damaged cells as one might have thought. They suggested that, because life evolved in water, the hydrophobic portions (Hyppos) of molecules are normally hidden in the internal parts of molecules or other structures (like membranes) and that the sudden exposure of a Hyppo is a sure sign that some injury or damage has occurred. They suggested that these are the most ancient alarm signals, that they are recognized by evolutionarily ancient systems of repair and remodeling, and that the modern immune system piggy-backed on this ancient system. Thus bacteria and other organisms may have very similar alarm systems. They describe these ancient signals as Danger-associated molecular patterns, or DAMPs.

In a recent article in Nature Immunology [3], Matzinger makes a case for what she now views as the most important implication of the Danger Model: that the tissues of the body are a large part of what drive immune response. She argues that immunologists have had overly simplistic and schematic ideas about immune response because of the limits of their assays, and that organs are likely to induce immune responses that are best-suited to defending the organ from the damage of microbesbut also from the damage of the immune system itself. She also asserts that the relationship of the immune system to commensal bacteria remains poorly understood but is likely to be important.

Matzinger argues that the idea of DAMPs may explain why Toll-like receptors seem to respond both to external and endogenous signals (while acknowledging controversy over this issue). By emphasizing her theory that the tissues drive the nature of the immune response (i.e., the "what type" rather than the "whether" of immune response), Matzinger describes a dynamic immune system with complex webs of signalling, rather than an immune system that can be explained by a simple and easily reducible set of molecular signals that initiate response, or by a small set of cells (e.g., "regulatory" T-cells) which shut it down.

[edit]Challenges to Matzinger’s theories

There is now a growing body of work on "regulatory T-cells" which argues that immune activity is stopped by a special subset of T-cells. These ideas challenge several of the key specifics of Matzinger’s model.

A student sitting in an immunology class today will likely hear many phrases coined by Matzinger (like "professional antigen-presenting-cell" or "danger signal" or "DAMPs" (damage associated molecular patterns") but will often hear them in the framework of a self-non-self explanation of immunity. Other immunologists have often adapted parts of Matzinger’s ideas without adopting the Danger Model as a theoretical framework.

Indeed, in an era of increasingly detailed molecular work, many immunologists simply avoid constructing an alternative broad theory of immune function. Others believe that the immune system is not a single system at all, and is instead a set of mechanisms "cobbled together" by evolution.[4] If this is true, no single theory can explain the function of the system as a whole. For both of these reasons, Matzinger has had to defend her larger theory, but also has had to defend the value of grand theory itself.

[edit]Past and current work with dogs

In one of her first publications, she appeared to have a dog as a coauthor for a paper for the Journal of Experimental Medicine[5]. As Ted Anton described the decision in his book Bold Science, "Refusing to write in the usual scientific passive voice (‘steps were taken’) and too insecure to write in the first person (‘I took the steps’), she instead invented [a] coauthor": her Afghan Hound, Galadriel Mirkwood.[2] Once discovered, papers on which she was a major author were then barred from the journal until the editor died and was replaced by another.

Although no dogs have been coauthors of any of her recent papers, she is an avid sheepdog trainer, and, with her two Border Collies, Charlie and Lily, was on the team that represented the United States at the 2005 World Sheepdog Finals in Tullamore, Ireland.

[edit]Publications

[edit]Films

  • Immunity: the inside story. Matzinger P and André Trauneker (1986) (video, 13 min) Award winning animated film for lay people describing the events involved in clearing an influenza infection. Translated into German, French, Spanish. Hoffman La Roche studio, Basel, Switzerland
  • A quick look at tissue rejection. Matzinger P. (1991) (Video, 2 min) Animated Film for lay people describing the events that result in rejection of a skin graft. Commissioned by the National Association of Science Writers for a meeting of television producers. NIH special events department and Capitol Studios
  • Death By Design.[3] Peter Friedman and Jean-François Brunet (1995) (Film, 73 minutes) Award winning Film on apoptotic cell death that features the work of six scientists. P Matzinger, R Levy-Montalcini, M Raff, P Golstein, KM Debatin, R Horowitz

[edit]External links

[edit]References

  1. ^ Curriculum vitae
  2. ^ Anton, Ted. Bold Science: Seven Scientists Who Are Changing Our World. New York: WH Freeman, 2000.
  3. ^ http://www.strange-attractions.com/films/death-by-design/ (Death by Design home page)

Categories: Immunologists | Women biologists | Living people | 1947 births

Using Nature’s Ideas to Solve Our Problems

From Evernote:

Using Nature’s Ideas to Solve Our Problems

Clipped from: http://sciencecareers.sciencemag.org/career_development/previous_issues/articles/2870/using_nature_s_ideas_to_solve_our_problems

The Job Market

Using Nature’s Ideas to Solve Our Problems

By Uwe Aickelin

February 20, 2004

It turned out that [immunologists] were not aware that [their discipline] was a source of inspiration to mathematicians!

BACK TO THE FEATURE INDEX

Editor’s note: Uwe Aickelin didn’t train as a typical mathematician, nor biologist, yet he now finds himself at the heart of a project that mixes the two. While following his love for mathematics, he came across concepts inspired by the natural world and became hooked on these ideas.

I started out as an undergraduate student in business science at the University of Mannheim in Germany, my home country. This degree covers all aspects of business and management studies, including marketing, finance, law, economics, and production scheduling. I chose business science at the time because I wanted to study something worthwhile that would also lead to a well-paid job. However, my true passion had always been mathematics, so whenever I could, I picked options that were related to mathematical subjects. One such topic was operational research, which investigates how to model business situations mathematically in order to make the best decisions, subject to certain criteria and limited resources.

If It Works in Nature, Why Not in Business?

I was offered the chance to specialise in this area with a master’s at the University of Wales, Swansea, during which I learnt about those algorithms that are borrowed from the sphere of artificial intelligence to solve the more complex problems. With one such algorithm, evolutionary computation, a number of random solutions to a problem are created and subsequently allowed to "breed," thereby creating more solutions. This, together with a Darwinian "survival of the fittest" amongst all solutions and an occasional "mutation," eventually leads to better and better solutions. I was hooked by this approach, as it seemed simple yet powerful. After all, if it works in nature, why not in business? This is a motto I would come back to again and again in my career.

So I decided to undertake a Ph.D. in Swansea to get to know these algorithms a bit better. I chose Kathryn Dowsland as my supervisor, both for her expertise in the area and as someone I thought I would get along with very well. I would strongly advise any prospective Ph.D. student to meet their supervisor a few times before starting, as a mutual understanding and respect is probably more important than the exact topic of the Ph.D. My own project was to use evolutionary algorithms to optimise solutions to multiple-choice problems, such as which nurse should be allocated to which shift in a hospital.

Coming to the end of my Ph.D. in 1999, I was still contemplating entering the world of business as a management consultant, but I had started to enjoy the world of research. In the end I decided on a lectureship in operational research in the School of Mathematics at the University of the West of England ( UWE) in Bristol.

When making this choice, I had to turn down a postdoc. Even though a lectureship is often seen as the Holy Grail for young researchers, I actually found the choice difficult. I knew that going for a lectureship straight away would be more of a challenge as well as more risky in the long run. Choosing the postdoc route may mean that you effectively enter the profession later, but it leaves you more space and time to build up a good publication record so that you might actually end up in a better position a few years down the line.

Still, I took the plunge and met my first challenge as a lecturer: teaching! Although I had taught the occasional lab class before and UWE was running support classes for new lecturers, I found my first year of teaching very difficult and time-consuming. But it was through my teaching that I first became interested in the biological concept–danger theory–that is behind my current project.

I gave my students an investigation of so-called artificial immune systems (AIS) as a piece of coursework. AIS are similar to evolutionary algorithms. However, rather than borrowing ideas from evolution and Darwin, they draw on concepts related to the human immune system.

One of my students, Steve Cayzer, who unbeknownst to me held a Ph.D. in biological sciences, did a much better job than my average student, and we found that we could devise AIS algorithms that were useful for solving complex data-mining problems. Consider the example of renting a video. To make sure that you pick a movie you have never seen and will like, what you really need are a couple of friends who know your tastes and have seen a wide range of films. But if your friends aren’t around, you could always turn to an AIS for recommendations.

How? Well, your tastes would be mathematically modelled as "antigens" (or targets) and then matched against possible "antibodies," i.e., movies that have previously been entered into a database according to the likes and dislikes of other people. In the human immune system, the antibodies would kill the antigens, but in the AIS, they can be used to predict films you would like.

Responding to Danger Signals

This led me to ask immunologists around UWE what they thought of AIS. It turned out that they were not aware that immunology was a source of inspiration to mathematicians! After some interesting discussions I enquired about what was hot in immunology and was given a paper entitled "The Danger Theory." This theory challenges the traditional idea that the body attacks intruders because they are recognised as foreign to the body, arguing that what the immune system responds to is a signal of danger instead. I immediately saw the potential benefits of applying this theory to the design of an AIS that would provide an intrusion detection system (IDS) for computer security.

Although current AIS show great potential for tackling intruders, they have been held back by the huge amount of processing required by traditional models of natural immune systems. If you consider using the classical paradigm to protect a computer network against everything that is foreign to it, it means mapping the rest of the world! The danger theory provides brand-new ideas upon which to design AIS.

Through our danger theory project we are trying to construct effective artificial defence mechanisms that could be used for computer security as well as financial fraud detection and network fault management. The project got funded by the Engineering and Physical Sciences Research Council and is the largest of its type in the United Kingdom.

Writing the proposal was difficult, as it meant learning a lot of the immunological phrases and vocabulary. I was greatly helped by Julie McLeod, an immunologist at UWE, and by my student Steve Cayzer, who, knowing both sides of the coin, was an excellent translator. Finally, other experts I met at conferences and workshops–immunologists from the University of Bristol and IDS experts from University College London, Hewlett-Packard, and ECSC, a leading computer-security company–also got involved in the project. So my one piece of advice on writing proposals for multidisciplinary projects is to ask the experts. OK, it will take you some time and effort to understand what they are talking about, but it is much better than trying to do it yourself and second-guessing.

I now work at the University of Nottingham, where I am the principal investigator of the danger theory project, which means leading a team of 10. Hence I am busier than ever! The project will last for another 3 years, and I look forward to discovering more about using nature’s ideas to solve our problems.

If you would like to find out more about Uwe Aickelin’s work or get in touch with him, see his Web site. .

EPSRC Newsline magazine, Issue 28, p4, 2004. Sensing Danger

From Evernote:

EPSRC Newsline magazine, Issue 28, p4, 2004. Sensing Danger

Clipped from: http://www.cs.nott.ac.uk/%7Euxa/papers/newsline_danger.html

EPSRC Newsline magazine, Issue 28, p4, 2004.

Sensing Danger

Could immunology-inspired research protect your computer?

As adventurous research goes, taking a controversial idea from immunology and applying it to computing is setting your sights rather high. Yet it was exactly this streak of ambition that caused EPSRC to recently award funding to Dr Uwe Aickelin of the University of Nottingham under its ‘adventure’ call. Dr Aickelin’s plan is to apply a concept from immunology, known as ‘Danger Theory’, to the problem of detecting people who might be tampering with your computer system.

Dr Aickelin first became interested in the idea for the project after his student, Steve Cayzer, investigated so-called ‘Artificial Immune Systems’ (AIS). Aickelin and Cayzer found that they could devise AIS algorithms that were useful for solving complex data mining problems. This led him to ask immunologist Julie McLeod what she and her colleagues thought of AIS: “It turned out that they had never heard of the area!” says Dr Aickelin, “after some interesting discussions I asked Julie what is currently hot in immunology and she gave me a paper entitled ‘The Danger Theory.’” This controversial theory suggests that the traditional idea that the body differentiates between self and non-self is wrong and that instead the immune system identifies ‘danger’ and then responds to it. Dr Aickelin immediately saw the potential benefits of an Intruder Detection System (IDS) using Danger Theory-based AIS.

While current Artificial Immune Systems show great potential for tackling intruders they have been held back by the huge amount of processing involved in following traditional models of natural immune systems: “Consider using the classical paradigm to protect a computer network against non-self: It means mapping the rest of the world!” says Dr Aickelin. “This project will try and overcome this restriction by using ideas based on Danger Theory. This should allow the construction of effective artificial defence mechanisms in areas such as computer security, financial fraud detection, network fault management or intrusion detection.” The project has attracted IDS experts from UCL, immunologists from Bristol, heuristic optimisation researchers from Nottingham and support from Hewlett Packard and ECSC, a leading computer security company. Dr Aickelin believes that despite the adventurous nature of the research it’s bound to produce valuable results: “The immunological results will stand regardless of the IDS and also regardless of whether the Danger Theory itself is ultimately accepted by immunologists.”

Contacts

For more on this new research contact Dr Uwe Aickelin uwe.aickelin

Information on the adventure call is available at http://www.epsrc.ac.uk

Danger Theory: The Missing Link Between Artificial Immune Systems And Intrusion

From Evernote:

Danger Theory: The Missing Link Between Artificial Immune Systems And Intrusion

Clipped from: http://www.cs.nott.ac.uk/%7Euxa/papers/aisb_danger.html

Danger Theory: The Missing Link Between Artificial Immune Systems And Intrusion Detection

Creating a next generation Intrusion Detection System based on the latest Immunological Theories.

AISB Quarterly, Issue 115, pp 1-2, 2004.

The central challenge with computer security is determining the difference between normal and potentially harmful activity. For half a century, developers have protected their systems by coding rules that identify and block specific events. However, the nature of current and future threats in conjunction with ever larger IT systems urgently requires the development of automated and adaptive defensive tools.

A promising solution is emerging in the form of Artificial Immune Systems (AIS): The Human Immune System (HIS) can detect and defend against harmful and previously unseen invaders, so can we not build a similar Intrusion Detection System (IDS) for our computers? Presumably, those systems would then have the same beneficial properties as HIS like error tolerance, adaptation and self-monitoring.

Current AIS have been successful on test systems, but the algorithms were unable to scale up to real-world requirements. This is caused by their reliability on self-nonself discrimination, as stipulated in classical immunology. However, immunologist are increasingly finding fault with traditional self-nonself thinking and a new ‘Danger Theory’ (DT) is emerging.

This new theory suggests that the immune system reacts to threats based on the correlation of various (danger) signals and it provides a method of ‘grounding’ the immune response, i.e. linking it directly to the attacker. Little is currently understood of the precise nature and correlation of these signals and the theory is a topic of hot debate. It is the aim of this research to investigate this correlation and to translate the DT into the realms of computer security, thereby creating AIS that are no longer limited by self-nonself discrimination. It should be noted that we do not intend to defend this controversial theory per se, although as a deliverable this project will add to the body of knowledge in this area. Rather we are interested in its merits for scaling up AIS applications by overcoming self-nonself discrimination problems.

With our growing understanding of cellular components involved with apoptosis, it will be possible to compare the differential proteomic profile between necrotic (‘bad’) and apoptotic (‘good’ or ‘planned’) cell death, particularly with respect to Antigen Presenting Cells (APCs) activation. A vital necessity will be in maintaining the physiological relevance of the system to be utilised, so that the power of the DT in protecting against false positives will be preserved.

In essence, it is thought that apoptosis has a suppressive effect and necrosis a stimulatory immunological effect, although they might not actually as distinct as currently thought. In the IDS context, this can be read in two ways: either the necrotic signals act to say that the previous pattern of apoptotic signals is dangerous or the apoptotic signals indicate that the necrotic signals are a false alarm.

A variety of contextual clues may be essential for a meaningful ‘danger signal’, and immunological studies will provide a framework of ideas as to how ‘danger’ is assessed in the HIS. Such ideas can be fruitfully applied to the AIS arena. In the latter context, the danger signals should show up after limited attack to minimise damage and therefore have to be quickly and automatically measurable. Once the danger signal has been transmitted, the AIS can react to those artificial antigens that are ‘near’ the emitter of the danger signal. This allows the AIS to pay special attention to dangerous components and would have the advantage of detecting rapidly spreading viruses or scanning intrusions at an early stage preventing serious damage. See Figure 1 for a graphical illustration.

The Danger Theory Model

Figure 1: The Danger Theory Model.

This 3 year £657k project will start 1 January 2004 and is funded by the UK’s Engineering and Physical Sciences Research Council, with further support from Hewlett Pacckard Labs Bristol and ECSC Computer Security Bradford. For more information please contact the Principal Investigator:

Dr Uwe Aickelin

School of Computer Science

University of Nottingham

uxa

http://www.aickelin.com

《软件调试的艺术》学习笔记——GDB使用技巧摘要(4)——Pthread线程调试

Unix下最普遍的线程包是POSIX标准的Pthreads。Pthreads使用的抢占式线程管理策略,程序中的一个线程可能在任何时候被另一个线程中断。所以,使用Pthreads开发的应用程序有些错误不太容易重现。

GDB线程相关命令汇总

  • info threads 给出关于当前所有线程的信息
  • thread n 改为线程n,或者说是进入线程n的栈中进行观察
  • break line_num thread n 表示当线程n到达源码行line_num时停止执行
  • break line_num thread n if expression 上一命令增加条件断点而已

加入怀疑线程之间有死锁,可以用gdb进行调试定位。流程大致是:

  1. 用gdb启动或者插入待调试程序
  2. 当程序挂起时候,通过按下Ctrl+C组合键中断它;
  3. 这个时候用info threads查看所有线程都在干嘛,然后找到自己的工作线程(注意排除main线程和pthreads的管理线程)
  4. 分别查看自己的工作线程在干嘛,用bt(backtrace)查看对应的帧,记得用thread n切换进入对应线程的帧
  5. 关注像__pthread_wait_for_restart_signal()和lock等函数,如果有源码的话,会比较方便地定位到具体的问题代码位置

下面是一个简单的例子。如果在worker线程里面,上锁和解锁没有匹配,则会发生死锁

// finds the primes between 2 and n; uses the Sieve of Eratosthenes,
// deleting all multiples of 2, all multiples of 3, all multiples of 5,
// etc.; not efficient, e.g. each thread should do deleting for a whole
// block of values of base before going to nextbase for more 

// usage:  sieve nthreads n
// where nthreads is the number of worker threads

#include      <stdio.h>
#include      <math.h>
#include      <pthread.h>

#define MAX_N     100000000
#define MAX_THREADS  100

// shared variables
int nthreads,  // number of threads (not counting main())
    n,  // upper bound of range in which to find primes
    prime[MAX_N+1],  // in the end, prime[i] = 1 if i prime, else 0
    nextbase;  // next sieve multiplier to be used

int work[MAX_THREADS];  // to measure how much work each thread does,
                        // in terms of number of sieve multipliers checked

// lock index for the shared variable nextbase
pthread_mutex_t nextbaselock = PTHREAD_MUTEX_INITIALIZER;

// ID structs for the threads
pthread_t id[MAX_THREADS];

// "crosses out" all multiples of k, from k*k on
void crossout(int k)
{  int i;

   for (i = k; i*k <= n; i++)  {
      prime[i*k] = 0;
   }
}

// worker thread routine
void *worker(int tn)  // tn is the thread number (0,1,...)
{  int lim,base;

   // no need to check multipliers bigger than sqrt(n)
   lim = sqrt(n);

   do  {
      // get next sieve multiplier, avoiding duplication across threads
      pthread_mutex_lock(&nextbaselock);
      base = nextbase += 2; 
      pthread_mutex_unlock(&nextbaselock); 

         if (base <= lim)  {
         work[tn]++;  // log work done by this thread
         // don't bother with crossing out if base is known to be
         // composite
         if (prime[base])
            crossout(base);
      }
      else return;
   } while (1);
}

main(int argc, char **argv)
{  int nprimes,  // number of primes found 
       totwork,  // number of base values checked
       i;
   void *p;

   n = atoi(argv[1]);
   nthreads = atoi(argv[2]);
   for (i = 2; i <= n; i++)
      prime[i] = 1;
   crossout(2);
   nextbase = 1;
   // get threads started
   for (i = 0; i < nthreads; i++)  {
      pthread_create(&id[i],NULL,(void *) worker,(void *) i);
   }

   // wait for all done
   totwork = 0;
   for (i = 0; i < nthreads; i++)  {
      pthread_join(id[i],&p);
      printf(" %d
           values of base done
          \n
          ",work[i]);
      totwork += work[i];
   }
   printf("
          %d 
          total values of base done
          \n
          ",totwork);

   // report results
   nprimes = 0;
   for (i = 2; i <= n; i++)
      if (prime[i]) nprimes++;
   printf("the number of primes found was %d
          \n
          ",nprimes);

}

阅读余下文章

Pthreads调试

// finds the primes between 2 and n; uses the Sieve of Eratosthenes,
// deleting all multiples of 2, all multiples of 3, all multiples of 5,
// etc.; not efficient, e.g. each thread should do deleting for a whole
// block of values of base before going to nextbase for more 

// usage:  sieve nthreads n
// where nthreads is the number of worker threads

#include <stdio.h>
#include <math.h>
#include <pthread.h>

#define MAX_N 100000000
#define MAX_THREADS 100

// shared variables
int nthreads,  // number of threads (not counting main())
    n,  // upper bound of range in which to find primes
    prime[MAX_N+1],  // in the end, prime[i] = 1 if i prime, else 0
    nextbase;  // next sieve multiplier to be used

int work[MAX_THREADS];  // to measure how much work each thread does,
                        // in terms of number of sieve multipliers checked

// lock index for the shared variable nextbase
pthread_mutex_t nextbaselock = PTHREAD_MUTEX_INITIALIZER;

// ID structs for the threads
pthread_t id[MAX_THREADS];

// "crosses out" all multiples of k, from k*k on
void crossout(int k)
{  int i;

   for (i = k; i*k <= n; i++)  {
      prime[i*k] = 0;
   }
}

// worker thread routine
void *worker(int tn)  // tn is the thread number (0,1,...)
{  int lim,base;

   // no need to check multipliers bigger than sqrt(n)
   lim = sqrt(n);

   do  {
      // get next sieve multiplier, avoiding duplication across threads
      pthread_mutex_lock(&nextbaselock);
      base = nextbase += 2;
      pthread_mutex_unlock(&nextbaselock);
      if (base <= lim)  {
         work[tn]++;  // log work done by this thread
         // don't bother with crossing out if base is known to be
         // composite
         if (prime[base])
            crossout(base);
      }
      else return;
   } while (1);
}

main(int argc, char **argv)
{  int nprimes,  // number of primes found 
       totwork,  // number of base values checked
       i;
   void *p;

   n = atoi(argv[1]);
   nthreads = atoi(argv[2]);
   for (i = 2; i <= n; i++)
      prime[i] = 1;
   crossout(2);
   nextbase = 1;
   // get threads started
   for (i = 0; i < nthreads; i++)  {
      pthread_create(&id[i],NULL,(void *) worker,(void *) i);
   }

   // wait for all done
   totwork = 0;
   for (i = 0; i < nthreads; i++)  {
      pthread_join(id[i],&p);
      printf("%d values of base done\n",work[i]);
      totwork += work[i];
   }
   printf("%d total values of base done\n",totwork);

   // report results
   nprimes = 0;
   for (i = 2; i <= n; i++)
      if (prime[i]) nprimes++;
   printf("the number of primes found was %d\n",nprimes);

}
// finds the primes between 2 and n; uses the Sieve of Eratosthenes,
// deleting all multiples of 2, all multiples of 3, all multiples of 5,
// etc.; not efficient, e.g. each thread should do deleting for a whole
// block of values of base before going to nextbase for more 

// usage:  sieve nthreads n
// where nthreads is the number of worker threads

#include <stdio.h>
#include <math.h>
#include <pthread.h>

#define MAX_N 100000000
#define MAX_THREADS 100

// shared variables
int nthreads,  // number of threads (not counting main())
    n,  // upper bound of range in which to find primes
    prime[MAX_N+1],  // in the end, prime[i] = 1 if i prime, else 0
    nextbase;  // next sieve multiplier to be used

int work[MAX_THREADS];  // to measure how much work each thread does,
                        // in terms of number of sieve multipliers checked

// lock index for the shared variable nextbase
pthread_mutex_t nextbaselock = PTHREAD_MUTEX_INITIALIZER;

// ID structs for the threads
pthread_t id[MAX_THREADS];

// "crosses out" all multiples of k, from k*k on
void crossout(int k)
{  int i;

   for (i = k; i*k <= n; i++)  {
      prime[i*k] = 0;
   }
}

// worker thread routine
void *worker(int tn)  // tn is the thread number (0,1,...)
{  int lim,base;

   // no need to check multipliers bigger than sqrt(n)
   lim = sqrt(n);

   do  {
      // get next sieve multiplier, avoiding duplication across threads
      pthread_mutex_lock(&nextbaselock);
      base = nextbase += 2;
      pthread_mutex_unlock(&nextbaselock);
      if (base <= lim)  {
         work[tn]++;  // log work done by this thread
         // don't bother with crossing out if base is known to be
         // composite
         if (prime[base])
            crossout(base);
      }
      else return;
   } while (1);
}

main(int argc, char **argv)
{  int nprimes,  // number of primes found 
       totwork,  // number of base values checked
       i;
   void *p;

   n = atoi(argv[1]);
   nthreads = atoi(argv[2]);
   for (i = 2; i <= n; i++)
      prime[i] = 1;
   crossout(2);
   nextbase = 1;
   // get threads started
   for (i = 0; i < nthreads; i++)  {
      pthread_create(&id[i],NULL,(void *) worker,(void *) i);
   }

   // wait for all done
   totwork = 0;
   for (i = 0; i < nthreads; i++)  {
      pthread_join(id[i],&p);
      printf("%d values of base done\n",work[i]);
      totwork += work[i];
   }
   printf("%d total values of base done\n",totwork);

   // report results
   nprimes = 0;
   for (i = 2; i <= n; i++)
      if (prime[i]) nprimes++;
   printf("the number of primes found was %d\n",nprimes);

}