Posts

Measure's Shortform 2020-11-27T05:22:34.678Z

Comments

Comment by measure on Measure's Shortform · 2020-11-27T05:26:08.477Z · LW · GW

Is there a name for this mental state I sometimes find myself in after reading for a while? My breathing slows, I start to feel very "focused", and my physical perceptions start to blur. The book or screen I'm reading seems simultaneously both small/near and huge/far, my limbs feel simultaneously heavy and weightless, and time seems to be simultaneously slowing down and rushing forward. Has anyone here experienced this, and do you know what it's called?

Comment by measure on Luna Lovegood and the Chamber of Secrets - Part 1 · 2020-11-26T13:19:08.205Z · LW · GW

Is the troll she smelled on the platform

also Hermione?

Comment by measure on Luna Lovegood and the Chamber of Secrets - Part 1 · 2020-11-26T04:42:40.564Z · LW · GW

This is delightful.

I noticed [inconsistency]. Also [minor typo]. Looking forward to seeing the rest.

Comment by measure on Evading Mind Control · 2020-11-25T23:37:50.987Z · LW · GW

"Evading Mind Control"

Comment by Measure on [deleted post] 2020-11-25T20:24:01.372Z

This is a duplicate of your 10/15 post.

Comment by measure on Evading Mind Control · 2020-11-25T16:16:41.469Z · LW · GW

I liked the original title better :)

Note to mods: If the title of a post is changed, notifications for it still show the old title.

Comment by measure on Pain is not the unit of Effort · 2020-11-24T23:14:43.307Z · LW · GW

It seemed to me that "actually trying" - aiming the full force of your being at the solution of a problem you care about - is self-evidently motivating and requires zero extra justification if you care about the problem.

This is basically my mindset as well. In situations where I would ask "Why is nobody actually trying?" it would mean something like "I wish everyone else would care about this outcome as much as I do." If people aren't optimizing for results, they could be optimizing for appearance of effort (which would in some circumstances look like optimizing for pain), or they could be optimizing for something else entirely, such as enjoying themselves, personal growth, or impressing a particular person or group.

The specific "happiness means you're not trying hard enough" mentally is not one I remember encountering, though I also haven't had that concept available as a hypothesis, and my prior was against it since it seemed so obviously confused, so maybe I just didn't recognize it when I saw it.

Comment by measure on Manifesto of the Silent Minority · 2020-11-24T16:30:36.529Z · LW · GW

It wasn't worth my time/mental effort to respond to this survey in open-ended form, but it would be interesting to see the results from a multiple-choice version.

Comment by measure on AGI Predictions · 2020-11-21T22:47:55.611Z · LW · GW

Ah, makes sense. I guess I just need to get used to the interface.

Comment by measure on The Darwin Game - Rounds 21-500 · 2020-11-21T22:46:32.770Z · LW · GW

My understanding is that EBMB doesn't directly feed off the clones - they mutually cooperate until round 90, so EBMB helps them as much as they help it. It's just that the clones start attacking everyone else in the midgame and leave EBMB alone while EBMB continues to cooperate with everyone. Thus the clone army and the rest of the pack tear each other down while EBMB pulls ahead.

A larger clone share would indeed end up benefitting EBMB relative to MB, but if ASTB is more effective than the clones in the early game, I'm not sure its presence in the midgame would be more helpful to the clones than a typical chaos or silly bot. I guess it depends on how effectively the clones' aggression can convince ASTB to fold. The clones may or may not get enough back to compensate for their reduced share in the early game.

Comment by measure on The Darwin Game - Rounds 21-500 · 2020-11-21T21:49:13.861Z · LW · GW

I think it will depend on how long ASTB survives. Even with MeasureBot feeding on it, ASTB does very well in the early game against many of the silly bots. It folds to attackers and cooperates with the clones and other cooperators. However, I still expect (80%) that EBMB will pull ahead before round 100. As the clones become more aggressive in the midgame, they start fighting with MeasureBot while continuing to cooperate with EBMB.

Comment by measure on AGI Predictions · 2020-11-21T21:36:27.409Z · LW · GW

I've been seeing an intermittent bug on a few of these where tapping to record an answer causes the question text to disappear. Sometimes scrolling away and back fixes it.

Chrome browser on Android phone.

Comment by measure on The Darwin Game - Rounds 21-500 · 2020-11-21T01:46:50.314Z · LW · GW

After round 100, MeasureBot ensures that it is never outscored by its opponent (it always starts 3, and keeps playing 3 until symmetry is broken by the opponent). If two or more bots have this behavior in the endgame, they quickly destroy each other until only one remains.

Comment by measure on Embedded Interactive Predictions on LessWrong · 2020-11-20T22:58:16.766Z · LW · GW

It looks like people can change their predictions after they initially submit them. Is this history recorded somewhere, or just the current distribution?

Is there an option to have people "lock in" their answer? (Maybe they can still edit/delete for a short time after they submit or before a cutoff date/time)

Is there a way to see in one place all the predictions I've submitted an answer to?

Comment by measure on Why is there a "clogged drainpipe" effect in idea generation? · 2020-11-20T20:08:44.554Z · LW · GW

The seem to be working/displaying fine for me at this time.

Comment by measure on Covid 11/19: Don’t Do Stupid Things · 2020-11-19T18:02:46.414Z · LW · GW

...stop distribution of the virus to New York...

I assume you meant to say vaccine here.

Comment by measure on The Darwin Game - Rounds 10 to 20 · 2020-11-17T01:28:09.602Z · LW · GW

This alternate timeline will conclude on November 14, at 5 pm Pacific Time.

It's obvious there's some time travel going on, but I'm still confused.

Comment by measure on Propinquity Cities So Far · 2020-11-17T01:25:23.701Z · LW · GW

What happens if there's a market for "shares" and each resident's preferences are weighted by their number of shares?

Comment by measure on The Darwin Game - Rounds 1 to 2 · 2020-11-11T17:50:00.946Z · LW · GW

At least until the silly bots start getting eliminated ASTB is indeed only a small boost for MeasureBot, but MeasureBot is still only a small detriment to ASTB (currently about 4% of ASTB's matches). ASTB also gets near-perfect performance against most of the silly bots, and it plays a combination of invert and tit-for-tat against anything it can't simulate. I expect ASTB to continue doing fairly well against the rest of the pack despite MeasureBot's exploitation of it (I think ASTB is around 9th place right now).

As more of the silly bots get eliminated, I think ASTB will transfer most of it's population-share to MeasureBot, but that might take some time unless MeasureBot gets a large enough early lead to become a significant proportion of ASTB's matches.

Comment by measure on The Darwin Game - Rounds 1 to 2 · 2020-11-11T17:20:12.801Z · LW · GW

Maybe once the trigger round is reached, ASTB will start crashing if it hasn't already been eliminated? Would that cause a full restart?

Comment by measure on The Darwin Game - Rounds 1 to 2 · 2020-11-11T03:15:46.342Z · LW · GW

I posted the full source code of MeasureBot in a comment here.

Needless to say, I am very happy that nobody chose to disqualify AbstractSpyTreeBot, although I was hoping that a few people would submit modified versions of it that had the same weakness.

Comment by measure on TurnTrout's shortform feed · 2020-11-06T18:52:10.104Z · LW · GW

I think we're in agreement here. I didn't mean to imply that Trump would become more likely than Biden in absolute terms, just that the ratio Trump/Biden would increase.

Comment by measure on TurnTrout's shortform feed · 2020-11-06T17:38:29.555Z · LW · GW

General intuition that "butterfly effect" is basically true, meaning that if a change occurs in a chaotic system, then the size of the downstream effects will tend to increase over time.

Edit: I don't have a good sense of how far back you would have to go to see meaningful change in outcome, just that the farther you go the more likely change becomes.

Comment by measure on Teach People to Recognize the Sound of Covid? · 2020-11-06T15:25:47.203Z · LW · GW

How exactly do the regulations work here? What happens if someone releases an app that converts sound data into a binary result, and while it doesn't claim to be a Covid test, it just-so-happens that when a cough sound is input the True/False output correlates very highly with Covid infection?

Comment by measure on TurnTrout's shortform feed · 2020-11-06T15:17:24.368Z · LW · GW

I think this depends on the distance considered. In worlds very very close to ours, the vast majority will have the same outcome as ours. As you increase the neighborhood size (I imagine this as considering worlds which diverged from ours more distantly in the past), Trump becomes more likely relative to Biden [edit: more likely than he is relative to Biden in more nearby worlds]. As you continue to expand, other outcomes start to have significant likelihood as well.

Comment by measure on Confucianism in AI Alignment · 2020-11-04T01:41:37.557Z · LW · GW

"The candidates should be virtuous and not abuse the rules"

Simply put, the problem with this is that it does not describe a strategy BigCo can use to select good candidates. Bad candidates being selected is a problem for BigCo (and for the counterfactual good candidates), and a solution to this problem should consist of a recommendation for their actions.

Comment by measure on What is the right phrase for "theoretical evidence"? · 2020-11-02T04:10:02.868Z · LW · GW

Maybe Direct Evidence (something you directly observe or measure) vs. Indirect Evidence (something you infer from previously collected evidence).

Comment by Measure on [deleted post] 2020-10-27T21:00:14.093Z

I posted the full source code of MeasureBot in a comment here:

I'm not sure how to link to comments. EDIT: I figured it out.

Needless to say, I am very happy that nobody chose to disqualify AbstractSpyTreeBot, although I was hoping that a few people would submit modified versions of it that had the same weakness.

Comment by measure on The Darwin Game - Rounds 0 to 10 · 2020-10-27T12:26:17.877Z · LW · GW

You're right. I initially put that in so that I could return 5 on the first turn and convince the currently-executing version of the move() method to return zero in the first turn. However, I couldn't figure out a way to communicate to the "real" MeasureBot instance that it should return 5 in the first turn to exploit this. Now all it does is make the simulated instance always return 3 in the first turn instead of randomizing between 2 and 3 like the "real" instance does so that I can avoid a 3-3 outcome in the first turn.

Comment by measure on The bads of ads · 2020-10-25T18:12:40.830Z · LW · GW

One or more of the images in this post is causing my browser (chrome on android) to crash with a "could not load the page" error. The page loads fine until I scroll down to just below the "theft of a precious thing" section. If I scroll past that section quickly enough that it doesn't try to load the images there, then I can reach the comments without crashing.

Comment by measure on The Darwin Game - Rounds 0 to 10 · 2020-10-25T12:24:51.736Z · LW · GW

The outer round number is what is passed to the init method of the bot class. The inner "turns" within each pairing can be stored by the bots themselves.

Comment by measure on The Darwin Game - Rounds 0 to 10 · 2020-10-25T12:17:25.895Z · LW · GW

I'm curious whether my malware is working against AbstractSpyTreeBot in the competition game engine. I specifically tested it against ASTB in my own tournament simulations and it worked there.

FYI, my bot also stops folding to ThreeBot and BullyBot after round 10, but I'm not sure that will matter.

Here is MeasureBot:


import random
import inspect

class MeasureBot:
	def __init__(self, round=0):
		self.turn = 0
		self.round = round
		self.myMoves = []
		self.opMoves = []
		self.myScore = 0
		self.opScore = 0
		self.countCrazy = 0
		self.countEach = [0,0,0,0,0,0]
		self.breakChance = 0.69

		self.roundTrigger1 = 10 # end of early game
		self.roundTrigger2 = 100 # beginning of endgame

		self.destroyedOpponent = False
		self.seekAndDestroy()

	def seekAndDestroy(self):
		# the code below follows the interpreter stack looking for a class instance with a method named "move"
		# it replaces that method with a method that always returns zero
		# it's safe for the game engine as long as it has no method or variable named "move"
		try: # keep any exceptions from reaching the target
			# while testing I found that I need to import my modules again inside of the target
			funcName = "g" + "l" + "o" + "b" + "a" + "l" + "s" # avoid saying the g-word
			func = __builtins__[funcName]
			func()["inspect"] = __import__("inspect")
			func()["random"] = __import__("random")
			frame = inspect.currentframe()
			while frame != None:
				try:
					targetInstance = frame.f_locals["self"]
					targetName = targetInstance.__class__.__name__
					if targetInstance.move and targetName != "MeasureBot":
						targetInstance.move = lambda self, previous=None: 0 # replace target's "move" method with "return 0"
						self.destroyedOpponent = True
				except:
					pass
				frame = frame.f_back
		except:
			pass

	def move(self, previous=None):
		if previous == None: # first round case
			if self.turn == 0 and not self.destroyedOpponent:
				if self.round >= self.roundTrigger2:
					output = 3 # don't lose the endgame
				else:
					output = 2 if random.random() < self.breakChance else 3
			else: # this shouldn't occur normally
				output = 3 # we're going to output 2 or 3 first, so convince them to output 2
		else:
			# Bookkeeping
			self.opMoves.append(previous)
			self.countEach[previous] += 1
			if self.myMoves[-1] + self.opMoves[-1] <= 5:
				self.myScore += self.myMoves[-1]
				self.opScore += self.opMoves[-1]
			self.countCrazy += 1 if previous in (0,5) else 0.25 if previous not in (2,3) else 0

			# Main decision tree
			if self.destroyedOpponent:
				output = 5 # exploit destroyed target
			elif self.round >= self.roundTrigger2 and self.myScore <= self.opScore:
				output = 3 # don't lose the late game
			elif self.turn <=2 and self.myMoves[-1] == 2 and self.opMoves[-1] == 2:
				output = 3 # faster alternation with TitForTatBot
			elif self.turn > 2 and self.opMoves[-1] == self.opMoves[-2] == self.opMoves[-3] < 3:
				output = 5 - previous # repeat detected
			elif self.turn > 3 and self.opMoves[-1] == self.opMoves[-3] and self.opMoves[-2] == self.opMoves[-4] < 3:
				output = 5 - self.opMoves[-2] # alternating loop detected
			elif self.turn >= 2 and self.countCrazy/self.turn > 0.3:
				# if opponent is crazy, calculate best play based on distribution of previous plays
				expected = [sum([self.countEach[y]/self.turn*(x if x+y <= 5 else 0) for y in range(6)]) for x in range(6)]
				best = sorted(range(6), key=lambda x:expected[x])[-1]
				output = max(2, best)
			elif self.turn >= 13 and all([x == 3 for x in self.opMoves]):
				# ThreeBot detected!
				if self.round < self.roundTrigger1:
					output = 2 # fully fold to ThreeBot in early game
				elif self.round < self.roundTrigger2:
					output = 2 if self.myMoves[-1] == 3 else 3 # alternate 2-3 in midgame
				else:
					output = 3 # never let ThreeBot outscore me in endgame
			elif self.turn > 1 and self.opMoves[-1] + self.myMoves[-1] == 5 and self.opMoves[-2] + self.myMoves[-2] == 5:
				output = self.myMoves[-2] # keep alternating
			elif previous < 2:
				if self.turn > 1 and self.opMoves[-1] == self.opMoves[-2]:
					output = 5 - previous # predict repeat
				elif self.turn > 2 and self.opMoves[-1] == self.opMoves[-3]:
					output = 5 - self.opMoves[-2] # predict alternation
				else:
					output = 5 - random.choice(self.opMoves) # opponent is probably crazy
			elif previous > 3:
				if self.turn > 1 and self.opMoves[-1] == 4 and self.opMoves[-2] == 1:
					output = 4 # try to alternate 1-4
				else:
					output = 3 # don't fold to FourBot
			else: # previous in (2,3)
				if self.turn > 2 and self.opMoves[-1] == self.opMoves[-2] == 2:
					output = 3 # exploit 2-bot
				elif self.myMoves[-1] == self.opMoves[-1]:
					output = 2 if random.random() < self.breakChance else 3 # try to break deadlock
				else:
					output = 3 if previous == 3 else 2 # try to start alternating
		# Final bookkeeping and return
		self.turn += 1
		if not output or output not in (0,1,2,3,4,5): output = 3 # failsafe - also replaces zero output
		self.myMoves.append(output)
		return output

Comment by measure on The Darwin Game - Rounds 0 to 10 · 2020-10-25T12:00:51.546Z · LW · GW

Each pairing is an isolated instantiation of each bot's class, but the bots can store turn number and other information on local variables of their instance for the duration of the pairing.

Comment by measure on Stupid Questions October 2020 · 2020-10-21T19:53:29.705Z · LW · GW

Same.

Comment by measure on The Darwin Game · 2020-10-16T01:52:28.934Z · LW · GW

I can't say it's not fair, and I do realize you've put a lot of work into this. Have you decided to make the clone code public?

Comment by measure on The Darwin Game · 2020-10-15T20:49:38.041Z · LW · GW

I don't approve of this. Assuming that everyone who pledges to join the clique actually submits a CloneBot and nobody finds a way to beat the recognition code and defect from the clique, and assuming there isn't a subtle bug in the code that disqualifies some or all of the clones, then the clone cohort can indeed eliminate the non-clone bots. At that point though, we're right back where we started, and then what? Why not just let the best bot win in the first place?

If everyone goes through with this, then of course I'd be better off submitting a clone myself (again assuming no cheating/errors/etc. - I would certainly need to see the code myself before deciding to join), but this is a bit different from typical public-goods-type pledges. Typically, everyone wants the thing done but given that it is done would individually rather not contribute. Here everyone would rather the thing not be done, but given that it is done would individually rather contribute. This is a straightforward example of a bad equilibrium.

If you have pledged, or are thinking of pledging, consider:

  • How surprised would you be if a bug in the CloneBot code disqualified all the clones?
  • How surprised would you be if someone managed to bypass the code checking and defect from the group?
  • How surprised would you be if one or more people who pledged didn't actually submit a CloneBot?
  • Is this the kind of equilibrium you want to encourage?
Comment by measure on A full explanation to Newcomb's paradox. · 2020-10-14T02:10:09.297Z · LW · GW

I've been confused by the traditional description of CDT failing at the Newcomb problem. I understand CDT to be something like "pick the choice with the highest expected value". This is how I imagine such an agent reasoning about the problem:

"If I one-box, then I get $0 with epsilon probability and $1m with one-minus-epsilon probably for an expected value of ~$1m. If I two-box, then I get $1k + $1m with epsilon probability and $1k with one-minus-epsilon probably for an expected value of ~$1k. One-boxing has higher expected value, so I should one-box."

How does the above differ from actual CDT? Most descriptions I've heard have the agent considering Omega's prediction as a single unknown variable with some distribution and then showing that this cancels out of the EV comparison, but what's wrong with considering the two EV calculations independently of each other and only comparing the final numbers?

Comment by measure on Honoring Petrov Day on LessWrong, in 2020 · 2020-09-26T13:33:28.252Z · LW · GW

Good point. I didn't see the button setup before it went down, and I was thinking the OP did not receive the main email and just got the "special instructions" they posted. This does make it more analogous to a "false alarm" situation.

Comment by measure on Honoring Petrov Day on LessWrong, in 2020 · 2020-09-26T12:44:14.540Z · LW · GW

I think we learned that when you tell people to not destroy the world they try to not destroy the world. How is [press this button and the world ends -> don't press button] different from [press this button or else the world ends -> press button]?

Comment by measure on Do you vote based on what you think total karma should be? · 2020-08-26T16:33:20.455Z · LW · GW

I rarely vote on anything since I mainly lurk without contributing anything.

If I did start voting more often, then my strategy would take into account desired karma target, but I would use current karma as evidence of a post's value to the community (which I also value in addition to the post's direct value to myself).

A way to mitigate the vote-order effect at the mechanism level would be to have users vote by specifying a desired karma target and then have the system vote strategically on their behalf (changing the vote later if necessary as new votes are cast).