trentmkelly/LessWrong-43k huggingface dataset:
Two Approaches to Structured Concurrency
by Martin Sustrik — 2018-10-31T16:20:01.467Z

I am the author of libdill, a library that brings structured concurrency to C language. However, the concept of structured concurrency is still evolving and we haven't yet reached the final consensus on what's the right way of doing it.

To broaden my horizon, I've recently played with Trio), a library for strucutured concurrency in Python. Also, to be able to compare the two approaches I've implemented Happy Eyeballs algorithm (RFC 8305) using libdill, so that it can be compared to Trio's implementation. Unfortunately, Trio doesn't implement asynchronous DNS queries, which lead to some of the most interesting concurrent scenarios, but in spite of that the comparison highlighted some interesting differences between the two approaches. I am going to cover what I've learned in this article.

First, let's look at libdill's approach. It's a kind of old-school, boring approach that you would expect from a C library: When you want to execute code concurrently you create a bundle object. Bundle is a container to hold green threads. From the API perspective it looks very much like a thread pool. You can launch green threads (coroutines) in the bundle.

As for cancellation, threads as such have no identifiers so it's not possible to cancel a single thread. However, bundles do have handles that you can use to cancel all the threads in the bundle. The rationale for this design is that there can be arbitrary number of threads running in the bundle and this way the user doesn't have to keep track of all the threads, whether any particular thread has already terminated or not and so on. Instead, you manipulate the bundle as a single entity, irrespective of how many threads are running within it. And of course, there can be a single thread in the bundle, so in the end you can cancel a single thread, albeit in a somehow indirect way.

coroutine void worker(void) { ... } int main(void) { int bndl = bundle(); bundle_go(bndl, worker()); bundle_go(bndl, worker()); bundle_go(bndl, worker()); hclose(bndl); return 0; }

The main idea of the design is the strict separation between the main thread (owner of the bundle) and the worker threads (running inside the bundle).

Trio's approach is different. The central idea of the design is that all the threads running concurrently are equal. There's no distinction between the main thread (or at least the part of it that runs in the particu

...
Princeton University- Envision Conference App Due Sunday!
by noazarur — 2018-10-31T04:39:08.118Z

Envision Conference applications due Sunday!

Interested in technology? Want to interact with a diverse group of talented students, academics and entrepreneurs? Then Envision Conference is for you! Apply today at http://envisionfuture.org

The 3rd annual Envision Conference (Nov 30 - Dec 2) explores how to build a brighter future through the prudent advancement of breakthrough technologies. We focus on the implications of Artificial Intelligence, synthetic biology, neural enhancement and nanotechnology. Our current speakers include Peter Singer, founder of the Effective Altruism movement, Natalie Kofler, founder of Editing Nature at Yale, Vincent Conitzer, AI researcher & author, and Wendell Wallach, ethicist and scholar at Yale.

Last year’s participants included funded entrepreneurs, hackathon and science competition winners, published PhD candidates, and student group founders.

• Previous speakers included Simon Levin, Ed Felten, Anders Sandberg, Robin Hanson and Joanna Bryson.

• Participants from 67 different universities.

• Previous and current company partners include Microsoft, SpaceX, SAS, Prudential and Kernel.

All undergraduate and graduate students are encouraged to attend! As a participant, you will have the opportunity to:

• interact with speakers during workshops and office hours,

• discuss how to pioneer technologies with accomplished peers and working professionals,

• be a part of a community seeking to steer the world's trajectory towards positive outcomes through the prudent implementation of emerging technologies.

Envision is committed to need-blind admissions, and provides financial aid for transportation. For more information, please visit our

website

. The deadline for the regular application is November 4th at 11:59 pm. Undergraduate and graduate students encouraged to

apply

.

Let’s pioneer a brighter future, today.

Best regards,

@Princeton Envision
Thoughts on "Ontological Crises"
by thomascolthurst — 2018-10-31T02:39:20.543Z

(Originally posted at https://plus.google.com/+ThomasColthurst/posts/5fcw5wgVrpj in 2013)

I love the premise of Peter de Blanc's "Ontological Crises in Artificial Agents’ Value Systems": you are robot who used to think the universe was described by some set of states O1, only to wake up and find out that the universe is better described by some set of states O2. What should you do?

Specifically, let's say that the robot used to act so as to maximize a utility function U: O1 -> R. The problem is to construct a new utility function U': O2 -> R.

Briefly, here's the solution Peter de Blanc gives in the paper: assume you have some side information about how probability distributions over O1 and O2 evolve when the robot takes different actions. Use that information to construct a mapping phi: O2 -> O1, and then make U' by composing phi and U: U'(x) = U(phi(x)).

I have two quibbles with that approach, one big and one small. The small quibble is that I think it makes more sense to treat phi as a given than as something you need to construct. If we think of the robot as a scientist doing experiments and such, then almost any evidence that the robot gathers that would cause it to change its ontology to O2 would also strongly suggest a mapping from O1 to O2 at the same time. Think of the special theory of relativity, for instance: it didn't just change the space of relative velocities from R to [-c, c], it also described how to compose velocities in the new space, and how to turn accelerations into new velocities. (See http://math.ucr.edu/home/baez/physics/Relativity/SR/rocket.html for an example of the later.)

The big quibble is that while U'(x) = U(phi(x)) "type-checks", it probably isn't the utility function the robot really wants. Think of a simple example where O1 is [0,9], O2 is [0,99], phi(x) = floor(x/10), and U(x) = x. Basically, your universe is a line, and you want to get to one end of it, but now you can see more clearly that there are ten times as many positions as you used to think. U'(x) = U(phi(x)) suffers from aliasing in the signal processing sense; it is a staircase function with jumps whenever x mod 10 = 0.

What we want is some anti-aliasing: a smooth interpolation of U, like U'(x) = x / 10. But how can we (in general) construct something like that? We cou...
Debate Rules In Benjamin Franklin's Junto
by namespace — 2018-10-30T23:42:21.840Z

(Note: The Junto was a secret society formed by Benjamin Franklin for the purpose of intellectual discourse and business networking. The following is the debate rules they used to maintain an atmosphere of reason.)

Our debates were to be under the direction of a president, and to be conducted in the sincere spirit of inquiry after truth, without fondness for dispute, or desire of victory.

To prevent warmth, all expressions of positiveness in opinions, or direct contradiction, were after some time made contraband, and prohibited under small pecuniary penalties.

I even forbid myself, agreeably to the old laws of our Junto, the use of every word or expression in the language that imported a fix'd opinion, such as certainly, undoubtedly, etc., and I adopted, instead of them, I conceive, I apprehend, or I imagine a thing to be so or so; or it so appears to me at present.

When another asserted something that I thought an error, I deny'd myself the pleasure of contradicting him abruptly, and of showing immediately some absurdity in his proposition; and in answering I began by observing that in certain cases or circumstances his opinion would be right, but in the present case there appear'd or seem'd to me some difference, etc.
I soon found the advantage of this change in my manner; the conversations I engag'd in went on more pleasantly. The modest way in which I propos'd my opinions procur'd them a readier reception and less contradiction; I had less mortification when I was found to be in the wrong, and I more easily prevail'd with others to give up their mistakes and join with me when I happened to be in the right.

Source: Excerpts from the Autobiography Of Benjamin Franklin
Good Samaritans in experiments
by Bucky — 2018-10-30T23:34:27.153Z

Consider 2 people. Both are seminary students who are taking part in an experiment ostensibly to consider different types of religiosity. One is asked to prepare a short talk on the Good Samaritan, the other on potential future careers for seminar graduates.

They are both told to go to another room to record their talk. The one who is to be giving a talk on the Good Samaritan is told that he is late and needs to hurry. The other participant is told that he has a time to spare.

If they, separately, come across someone who appears to be in respiratory distress, which do you think is more likely to stop and help?

Does being in a hurry determine whether someone helps?

Does reading the Good Samaritan?

Which is a bigger effect?

I was recently told about an experiment which showed that seminary students who had just prepared to give a talk about the Good Samaritan were no more likely to help someone in need than those who had been preparing a talk about an unrelated topic.

This seemed unexpected to me – people who had just been reading and thinking about a story which was told specifically by the leader of their faith to instruct them to help other people were no more likely to help than the control? I know humanity is crazy but seemed like a new level of crazy which I wouldn’t have predicted.

So I thought I’d check out the study and – Aaaaaaaaaaaaaaaaaah!!!

I know getting overly upset about bad experiments (especially those from before the replication crisis) is probably bad for my health but still – Aaaaaaaaaaaaaaaaaaaaaaaah!!!

I don’t want to be too harsh on the authors as this probably isn’t the worst culprit you’ll see but – Aaaaaaaaaaaaaaah!!!

The paper has 1811 citations listed on google scholar – Aaaaaaaaaaaaaaah!!!

I’m tempted to pretend that this post has some purpose other than just as a release of my frustration but that would be dishonest. Please consider this post a form of therapy for me. The working title for this post was “Screaming into the void” - consider yourself warned.

(If you want a more coherent discussion of common misuse of statistics in research papers I highly recommend putanumonit’s defense against the dark arts series)

The Experiment

Ok, so the basic premise of the experiment seems to be sound. We want to know what inputs cause people to be more or less likely to help others:

1. Planning a talk on the Good Samaritan (GS)

2. Being in a hurry

3. Type of ...
Preface to the sequence on value learning
by Rohin Shah — 2018-10-30T22:04:16.196Z

This is a meta-post about the upcoming sequence on Value Learning that will start to be published this Thursday. This preface will also be revised significantly once the second half of the sequence is fully written.

Purpose of the sequence

The first part of this sequence will be about the tractability of ambitious value learning, which is the idea of inferring a utility function for an AI system to optimize based on observing human behavior. After a short break, we will (hopefully) continue with the second part, which will be about why we might want to think about techniques that infer human preferences, even if we assume we won’t do ambitious value learning with such techniques.

The aim of this part of the sequence is to gather the current best public writings on the topic, and provide a unifying narrative that ties them into a cohesive whole. This makes the key ideas more discoverable and discussable, and provides a quick reference for existing researchers. It is meant to teach the ideas surrounding one specific approach to aligning advanced AI systems.

We’ll explore the specification problem, in which we would like to define the behavior we want to see from an AI system. Ambitious value learning is one potential avenue of attack on the specification problem, that assumes a particular model of an AI system (maximizing expected utility) and a particular source of data (human behavior). We will then delve into conceptual work on ambitious value learning that has revealed obstructions to this approach. There will be pointers to current research that aims to circumvent these obstructions.

The second part of this sequence is currently being assembled, and this preface will be updated with details once it is ready.

The first half of this sequence takes you near the cutting edge of conceptual work on the ambitious value learning problem, with some pointers to work being done at this frontier. Based on the arguments in the sequence, I am confident that the obvious formulation of ambitious value learning has major, potentially insurmountable conceptual hurdles given the ways that AI systems work currently, but it may be possible to pose a different formulation that does not suffer from these issues, or to add hardcoded assumptions to the AI system to avoid impossibility results. If you try to disprove the arguments in the posts, or to create formalisms that sidestep the ...
Deconstructing Biases In Media
by Apollo13 — 2018-10-30T22:03:09.960Z
Link: http://umich.edu/~newsbias/index.html

I found this website via the United Nations Educational Scientific and Cultural Organization's media literacy instagram which very nicely goes through contrasting news articles about the same event and picks apart the differences and what they imply. Unlike other sites, this one is very straightforward and clear about which bias they are tackling and how it's shown in their examples. It also has some good activities about bias.
writing as the thinker's canvas
by brown — 2018-10-30T21:05:00.284Z

Explaining something you think to another person sets a much higher standard than convincing yourself. You have to translate from your own brain-speak. You also must explain using concepts the other party understands. It also brings online your "convincing other people" modules, which are pretty powerful. [1]

Writing stuff down also means there's a record. Writing can stabilise your attention. It can bring you back & let you loop over parts, note diversions and pursue multiple lines of inquiry. It's extra working memory, that stuffs gold. [2]

If you're just starting out with writing things, try not to judge what you're written too harshly.

Experiment:

Set a timer for 5 minutes, pick a person in your life, now explain something to them you'd think would be useful for them. Don’t force it. Sit. intend for your writing to explain. Notice when and where you get stuck. Mull over it. Discover anything?

When you write down your thoughts, you can see them from the outside. You can bring your verification modules online. You can recognise good writing, far easier than produce it. [3]

Notes

[1] I'm reminded of how if an abstract logic puzzle is reframed in terms of other people's dishonesty subject's accuracy jumps like crazy. "the other monkey might be cheating" is the native architecture.

[2] Use a whiteboard to think better.

[3] I've heard artists call this "the gap". The space between your ability to produce and your ability to recognise good art. Also: Babble & Prune

Why Programming is a Good Medium for Expressing Poorly Understood and Sloppily Formulated Ideas - GJ Sussman

“I write because I don't know what I think until I read what I say.” ― Flannery O'Connor
An Undergraduate Reading Of: Semantic information, autonomous agency and non-equilibrium statistical physics
by ryan_b — 2018-10-30T18:36:14.159Z

This is a recent paper by Artemy Kolchinsky and David H. Wolpert, from the Santa Fe Institute. It was published in The Royal Society Interface on Oct 19. They propose a formal theory of semantic information, which is to say how to formally describe meaning. I am going over it in the style proposed here and shown here, approximately.

I will go through the sections in-line at first, and circle back if appropriate. Mostly this is because when I pasted the table of contents it very conveniently kept the links to the direct sections of the paper, which is an awesome feature.

Abstract: as is my custom, skipped.
1. Introduction

Semantic information is meaningful to a system, as distinct from syntactical information, which is correlational.
They cite the importance of the idea in these fields: biology, cognitive science, artificial intelligence, information theory, and philosophy.
Question one: can it be defined formally and generally?
Question two: can that definition be used in any physical system (rocks, hurricanes, cells, people)?
They claim the answer to both questions is yes. They define semantic information:

the information that a physical system has about its environment that is causally necessary for the system to maintain its own existence over time

Most of the time we study syntactic information, using Shannon's theory.
Shannon explicitly avoided addressing what meaning a message over a telecommunication line might have.
One approach to address this is to assume an idealized system that optimizes some function, e.g. utility.
Under this approach, semantic information helps the system achieve its goal.
The problem with it is the goal is defined exogenously. Therefore meaning is to the scientists who impute goals to the system, not the system itself.
We want meaning based on the intrinsic properties of the system.
In biology the goal of an organism is fitness maximization, which leads to the teleosemantic approach, which roughly says a trait has meaning if at some time in the past it correlated with states of the environment (and therefore had a bearing on fitness).
Example: frogs snap their tongues at black spots in their visual field. This is semantic information because eating flies is good for frogs, and correlated with flies in the past.
The problem with teleosemantics is it defines meaning in terms of the past history of the system; an ahistorical definition tha

...
Introducing the AI Alignment Forum (FAQ)
by habryka — 2018-10-29T21:07:54.494Z

After a few months of open beta, the AI Alignment Forum is ready to launch. It is a new website built by the team behind LessWrong 2.0, to help create a new hub for technical AI Alignment research and discussion. This is an in-progress FAQ about the new Forum.

What are the five most important highlights about the AI Alignment Forum in this FAQ?

The vision for the forum is of a single online hub for alignment researchers to have conversations about all ideas in the field...
...while also providing a better onboarding experience for people getting involved with alignment research than exists currently.
There are three new sequences focusing on some of the major approaches to alignment, which will update daily for the coming 6-8 weeks.

Embedded Agency, written by Scott Garrabrant and Abram Demski of MIRI
Iterated Amplification, written and compiled by Paul Christiano of OpenAI
Value Learning, written and compiled by Rohin Shah of CHAI

For non-members and future researchers, the place to interact with the content is LessWrong.com, where all Forum content will be crossposted.
The site will continue to be improved in the long-term, as the team comes to better understands the needs and goals of researchers.

What is the purpose of the AI Alignment Forum?

Our first priority is obviously to avert catastrophic outcomes from unaligned Artificial Intelligence. We think the best way to achieve this at the margin is to build an online-hub for AI Alignment research, which both allows the existing top researchers in the field to talk about cutting-edge ideas and approaches, as well as the onboarding of new researchers and contributors.

We think that to solve the AI Alignment problem, the field of AI Alignment research needs to be able to effectively coordinate a large number of researchers from a large number of organisations, with significantly different approaches. Two decades ago we might have invested heavily in the development of a conference or a journal, but with the onset of the internet, an online forum with its ability to do much faster and more comprehensive forms of peer-review seemed to us like a more promising way to help the field form a good set of standards and methodologies.

Who is the AI Alignment Forum for?

There exists an interconnected community of Alignment researchers in industry, academia, and elsewhere, who have spent many years thinking carefully about a vari...
Formalizing Ideal Generalization
by Logan Riggs — 2018-10-29T19:46:59.355Z

I claim that the ambiguity that we care about (ambiguity identification, robustness to distributional shift), is secretly "uncertainty of generalization" in perfect disguise (said in another way, "How unsure are you that your current knowledge applies to situation x?"). To better understanding that, we'll be formalizing Ideal Generalization (IG*).

Generalization will be defined as one "relationship between inputs" predicting another "relationship between inputs". I'll shorten "relationship between inputs" as an "R-set" for succinctness.

Examples of R-sets include: "a few pixels", "a picture of the number 9", "all possible 9's", "you reading 'all possible 9's'", and "the history of our universe up until now".

Rough Overview

Specific: If pictures P1-Pn map to “dog”, then describe those pictures as R-sets, find the common R-sets between them. Then, when you come across another picture, you can check if it has those common R-sets that map to “dog”. Repeat for all possible R-sets.

General: If a1-an all map to b1, then describe those a’s as R-sets, find the intersection between those R-sets, then if you come across another ax, you can see if it has the common R-sets that map to b1. Repeat for all R-sets, b2-bn.

IG Setup

To begin with, every possible R-set is predicted by every possible R-set. If we define R as the set of every possible R-set (every possible situation), then a,b ∈R×R is a more formal representation with a being the predictor R-set and b being the predicted R-set (with R×R being the set of every possible generalization).

The total space of possible R-sets is very large, so the amount of probability assigned to each R-set is 1total#ofR−sets≈0, initially. This is good because we'd like to be maximally uncertain when we know nothing (at the beginning); however, this places all possible R-sets on equal footing when some are more likely to predict R-sets we find in our world due to Occam's Razor.

Borrowing from Solomonoff Induction, we can multiply each R-set's probability by 2−L with L defined as the length of the tape required to produce that R-set on a universal Turing machine. After normalizing, we're left greatly biased towards simpler R-sets.

Now that we're set up, we can answer two interesting...