I'm getting serious about decision theory. I have some foundational observations, upon which I'm building a mathematical framework. I have some partial drafts, and plan to write papers on it.
Most problems in decision theory are the result of insufficient rigor. "Rigor" to me means formalizing problems fully and proving things about the formalization, without use of fuzzy language. Full formalization means writing out the problem statement as two type-checkable functions, a world function which maps strategies to outcomes and a preference function which defines an ordering over outcomes. To my knowledge, none of the decision theory in the literature is done at this level of rigor. I have chosen a subset of SML/NJ, extended to include limiting expressions, as the representation for formalized problems, because it has solid mathematical foundations with which I am already familiar, and also a rigorous model of partial evaluation.
There is a pre-existing body of work on how to prove things about programs and transform and simplify them in provably correct ways in computer science: compiler theory. One of the major themes I've picked up from studying compilers is that different representations enable us to prove different things and perform different operations. In practice every compiler takes programs through a long series of intermediate representations. One of these representations, Static Single-Assignment (SSA) form, is strongly analogous to Pearl's causal models. Another representation, continuation-passing style (CPS), enables a natural and precise statement of one interpretation of causal decision theory, along with a precise description of when it does and doesn't work, such that you could prove that CDT is valid for a particular problem as a lemma and then apply CDT to it.
I haven't proved it yet, but I think I can prove within the framework I've defined that Eliezer's answer to the Prisoner's Dilemma, "cooperate iff your opponent cooperates iff you cooperate", is uncomputable, and that there is an infinite series of successively better approximations such that the Prisoner's Dilemma has no optimal answer.
This isn't really that important, but do you know if anyone has actually shown in a rigorous way that CDT two-boxes on Newcomb's problem?
No one has, because CDT isn't rigorous enough to bring into a proof framework without first disambiguating it, and there is at least one disambiguation that one-boxes and at least one disambiguation that two-boxes.
This sounds pretty cool. Are you still working on it?
"Cooperate iff your opponent cooperates iff you cooperate" is impossible if your opponent always defects. (If you defect, "your opponent cooperates iff you cooperate" is true, so you should've cooperated :-) Eliezer pointed that out to me a while ago.
Regarding your overall approach, choosing a specific programming language feels like a wrong step to me. At some point you will want your results to have applicability in the wider world of Turing machines and algorithms, so why not start there? It's not fuzzy at all and people have proved a lot of rigorous stuff about Turing machines.
"Cooperate iff your opponent cooperates iff you cooperate" is impossible if your opponent always defects. (If you defect, "your opponent cooperates iff you cooperate" is true, so you should've cooperated :-) Eliezer pointed that out to me a while ago.
The linked comment seems wrong - due to fuzzy language, ironically enough. The inner iff should be testing a counterfactual, not equality. That doesn't help with the infinite regress/computability issue, though.
Anyways, I've found a specific probability distribution of opponents that reads your source, checks for the presence of a sufficiently large number and makes playing PD against them reduce to the name-your-utility game. And I can transform any set of agents into a set of agents that is a Nash equilibrium, by prepending a test for whether the opponent is a member of that set, and cooperating if so.
I still don't know whether there's an optimal solution for PD against agents drawn from any really complex distribution like the Solomonoff prior, or against agents iteratively selected starting from the universal prior. I suspect I could construct degenerate Solomonoff-like priors that force it to have or not have an optimal solution.
Regarding your overall approach, choosing a specific programming language feels like a wrong step to me.
I realized that yesterday when I first tried moving my examples into an actual compiler, and found that the language I'd chosen was not quite what I remembered, in ways that could be summarized as "the language is broken". So I suspect I'm going to be making up yet another a language. I'd rather not use notation loosely, though.
At some point you will want your results to have applicability in the wider world of Turing machines and algorithms, so why not start there? It's not fuzzy at all and people have proved a lot of rigorous stuff about Turing machines.
If you mean I should talk about Turing machines, no way. Compare the strength of what you can prove about a program that you take through a functional representation and various augmented SSA forms, to what you can prove about Turing machines, and the difference is enormous.
The inner iff should be testing a counterfactual, not equality.
If so, how do you define the truth value of that counterfactual?
Data analysis for a really great experiment on calibration by one of my lecturers. He got about 20000 people to do a calibration test and fill in forms about all their demographic data, and now we're going to see what factors affect how well-calibrated people are. Also involved is some attempts to get them to predict political events in the year 2010 and see how ridiculously wrong they were. Currently bumbling along with SPSS to make it yield results and inventing new scoring rules. Timescale: Finish before summer vacation.
I've started a FAQ on why everyone should be consequentialists similar to my Non-Libertarian FAQ. People say they're not consequentialists all the time, and it really annoys me, and I need a document to link them to. This has proven harder than I expected, mostly for organizational reasons. I have a feeling a lot of it is going to be gathering some of Eliezer's arguments in one place and making them explicit. Timescale: Sometime in 2011?
About halfway through first draft of a sequence on the role of reinforcement in psychology. This may require endless revisions if it's going to be done right. Timescale: Hofstadteresque.
Studying for my second step of the United States Medical Licensing Exam this summer.
On the just-for-fun side, slowly learning some more ins and outs of Bryce, Sketchup, and other 3D graphics programs. My latest interest is mapping fictional cities.
Occasional short stories when the inspiration strikes.
And I'm finished with my Dungeons and Discourse roleplaying system, now working on a campaign for it. I might ask around for players sometime.
When writing the consequentialist FAQ, please remember this excellent post: http://lesswrong.com/lw/uv/ends_dont_justify_means_among_humans/
If you run linux, I just discovered this what-appears-to-be-the-first-full-fledged-solid-modeler-ever HERE. It has installers for win and os x as well; I don't run win but it didn't work on os x for me. Building took quite a bit of time on linux; perhaps 3-5hrs.
Btw, you can export movies of your stuff in SketchUp, though you probably knew that. Here's a minimalist cribbage board design I used to get feedback from a customer: LINK.
Were you planning on running the game in person, or would there be a chance of doing it remotely. I've only had a little experiences with role-playing games, but I enjoyed it quite a lot.
I just started a blog. It has proven to be both more work and more technically difficult than I expected. The slope of the learning curve is tolerable, but the altitude yet to climb is discouraging.
Still, I intend to persevere with my original plan of producing one posting per day (excluding planned vacations). But I have had to shift my focus from delivering content to mastering presentation. I'll probably be spending the next few months just mastering the tools. But eventually, I intend to spend several years posting a ~200,000 word tome tentatively entitled "Mathematical Models of Mind", which will cover formal logic, theory of language, ontology, Bayesian epistemology, decision theory, game theory, information theory, computation, AI, multi-agent systems, and ethics. Plus book reviews, recipes, found art, general curmudgeonship and other bloggish content.
Oh, and before I can write about all those things, I probably ought to learn them. So I expect my next few years to be rather busy.
Teaching myself Calculus. It is really amazing how much faster one learns things when self-motivated rather than just grade-seeking.
Making a better bus map of Toronto (by creating software, which will then hopefully make it reasonably straightforward to map other cities too).
Reasons:
Several other things I want to try are currently on hold until I finish my game, as I need a reasonably steady income to pursue them.
Working on the tactical RPG I quit my job to work on. It's progressing reasonably well, though at the moment it looks like it will take at least 3 months longer than my original estimation. Should be finished this year, unless my savings run out and I need to find employment or another source of funding to pay for artwork.
Huh, so you're making a tactical RPG too ... sometimes I feel that LessWrong is full of clones of myself.
Following up on my work on Bayesian stats tools (PyMC): I have put together MCEx, a pretty nice package for messing around with MCMC package design. It's considerably more modular than PyMC, far far smaller, has fewer features and uses Theano as its computational core (compiles to C, does graph optimizations, calculates derivatives). I have run into one major problem: I currently link Free Variables (parameters to fit) to prior distributions by passing them to a distribution function; I have been convinced(look for Anand's comments near the bottom) this approach is Not Right, but the approach PyMC takes (free variables come from a prior distribution function) seems clunky and Not Right either. I suspect understanding this better requires me to learn more foundational probability theory. Probability Theory textbook recommendations welcome.
Learning Type Theory: Long ago, I asked about how to go about learning the foundations of math (link), I think what I was really interested in is how to do math formally, so you can drill down and understand all the component steps; math without any hand waving. After some exploration, I decided math through type theory and proof assistants seems like the most attractive option. Type Theory is attractive to me because I am a programmer and Type Theory promises a unification of math and computation.
My eventual goal is to understand type theory thoroughly enough to be able to build a proof assistant like Coq. My goal is not to build one, but just understand it well enough that I could be satisfied with my understanding when I work in Coq. I would also like to eventually write up a tutorial for how to repeat this learning process.
In the last month I've picked up this study again. I've read most of Type And Programming Languages, and I am now looking to gain more intuitive understanding by learning functional programming (Standard ML and Haskell because it seems to have better libraries). I am learning Haskell by writing interpreters for the various calculi in TaPL. My notes on learning type theory are here.
After some exploration, I decided math through type theory and proof assistants seems like the most attractive option.
I am fascinated by proof assistants, for approximately the same reasons you are. I think it would be very worthwhile for someone to put a real useable UI on top of a proof assistant, and sell it as an aid for learning mathematics. Keep us updated about what you find out.
Yes, part of the reason I am interested in this topic is that math seems like it should be taught formally.
I'm putting the finishing touches on a Singularity F.A.Q. for the public.
I'm also continuing to read through the literature on neuroeconomics in preparation for my upcoming post on the neuroscience of desire, which will be used in later work on meta-ethics and proposed FAI solutions.
Pungent is a web-based note-taking app that I'm working on. I made this because I had a need for something to organize personal notes, but nothing I found was satisfactory. Right now it's essentially a less-featured clone of Workflowy, but I plan to develop it further once I figure out what direction to go in. Development is on hold for the moment while I spend some time using it and figuring out what I want it to do.
I'm also working on a research project to try to understand how human cognition works. I think FAI is really interesting + important, but I'm baffled by the decision theory approach that seems to be popular around here. Not that I have strong reasons to believe that this line of inquiry should not be pursued, but every time I think about intelligent entities purely in terms of decision theory (i.e. as entites with a "utility function" that assigns values to "states of the world", and then takes actions which maximize said utility), I notice that I am confused.
So I'm wading through neuroscience papers at the moment. Spatial cognition and memory seem like a well-studied phenomena that are likely to act as a foundation for other cognitive abilities, and so seems like as good a place to start as any. I don't have a website up yet for my findings, but here's what I've been looking at to start:
My goal for this project is to become less confused about Friendly AI. I'd like to set up a webpage to record my progress on this project, so I'll likely edit this post when I have a link for that.
orgmode does this insanely well and looks like what workflowy does but less flashy and not web-based. You can narrow to a subtree (see C-x n s) and then un-narrow (see C-x n w). In addition, you can track todos, record data in tables, export to html, PDF, or even a Beamer presentation.
Anyway, it's pretty darn amazing. I've hunted around a lot for various notes/todos solutions, probably like yourself -- OneNote, EverNote, Google Notebook, TiddlyWiki, Monkey-Pirate-GTD-TiddlyWiki, TaskPaper (also pretty much what Workflowy looks like), Task Coach, iGTD...
Nothing has touched orgmode :)
I wrote a little bit about it on my blog HERE.
Emacs has a steep learning curve, but it can't be any more time intensive than rolling your own code!
Yeah, I've tried org-mode, but the problem isn't that its Emacs-based (I use Emacs to write code), but it's that it isn't web-based. I wanted my notes to be accessible not only from both OSes I dual boot, but from pretty much any computer I might ever be at. I could make the file accessible I guess by putting it in a Dropbox public folder, but then there's still the issue of "what if the computer I'm on doesn't have Emacs".
Also the time-intensitivity thing of rolling my own code isn't a major drawback, as I'm trying to find a programming job at the moment and I needed something to add to my portfolio. :D
Good points, especially if you're trying to get into programming anyway :)
Out of curiosity, could I ask how often you're at a computer that you need the functionality of org-mode which doesn't run emacs? I can't really think of an occasion when I'd need the functionality that wouldn't be my own computer. I've also run emacs successfully on Linux, Win, and OS X.
I keep my personal org-mode file on my OS X partition and edit it both from Linux and OS X (I keep it on OS X because Linux can read non-journaled HFS+, but OS X doesn't read EXT4 and is touch with EXT2/3).
Lastly, I'll actually often use git between work and home. I pull from either when I start up, edit my stuff, and then commit and push when I'm done.
I ask about the functionality because you can open the file with any text editor on any computer if you just need to get into your data here and there. You could also add headlines manually pretty easily. Again, you might have a far different use case than I do. I just can't think of needing to access my org-mode file frequently from, say, a public library or a friend's computer.
Good luck on your quest for the perfect PIM :)
I am currently building and refining an evolutionary simulator program in Python. I just finished getting the bugs out of the code, and now I'm augmenting it with more features and a better user inferface. When it has come farther and I'm more proud of it, I'll post the code on the internet somewhere.
A large part of the purpose is to learn Python. I'm also planning to use it to investigate how premature mortality rate affects evolutionary change--if more individuals die without reproducing, how does this affect the population gene pool over time? It started out as a science project, and now it's a thing to refine my computer and biology skills.
Finishing up the first of three books examining the Beach Boys' music (will be available by the end of the month). The top 7 entries at http://andrewhickey.info/tag/the-beach-boys/ are excerpts from the first draft.
Working on my first solo album. Excerpt here - http://andrewhickey.info/2011/04/07/and-on-a-different-note/
Working on issue three of the 'zine I edit (Issues one and two can be found at http://andrewhickey.info/2010/02/16/pep-is-here/ and http://andrewhickey.info/2010/09/20/pep-2-is-finally-here/ )
Making slower progress on the book on the scientific method and Bayesianism I'm also working on, and even slower progress on the one on the comic Cerebus, but some progress on both.
Putting together a proposal for a novel.
Starting a new project at work (confidential in its details, but I'm heading test for a new piece of software)
Slowly plodding through Project Euler
Campaigning for the Alternative Vote referendum
And composing the music for a big multimedia project a friend is writing.
I'm working on an LW article related to TDT together with Normal Anomaly.
I'm working on an animated short. It's mostly about the singularity, SIAI, and eutopia. Some help from Normal Anomaly so far and expecting to recruit other people for more help once it gets of the storyboarding stage. Expect an article on this if it gets past the vaporware stage.
I'm also getting an education and trying to fight of mental illness, I'm not sure if those count as projects.
I'm working on an LW article related to TDT together with Normal Anomaly.
Could you give a summary? I'm working on some decision theory of my own (summarized in this thread), though I suspect on a different track. I might be able to give you some ideas, or get some ideas from you.
Nope, memetic hazard of a potentially extremely dangerous kind. In fact figuring out how to make it safe is large part of the work that needs done. And We still need to check with some high ranking master rationalist before I'm willing to risk any information at all.
And it's just a use of it, not a meta work to improve the decision theory itself, so there should be no collisions.
I'm also getting an education and trying to fight of mental illness, I'm not sure if those count as projects.
Definitely. Are you taking describable approaches?
Nope, indescribable of the "bazilions of small and big things done towards it all the time with no pattern or connection other than they goal they're supposed to help accomplish" variety.
If the memetic hazard you're referring to is the same one as mine, I recommend benzodiazepines in the short term and vipassana meditation in the long term. And just thinking about it, though clearly you're already doing that.
I think to a large extent, the percieved threat of the thing is due to a generally neurotic perspective, common to many people here, which can twist abstract thinking into knots when given a sufficiently long and nonintuitive chain of reasoning. The trauma illuminates a serious problem with the mind rather than a serious threat from the idea.
It's still good to mention it, helps reaffirm your commitment. It would also be interesting to hear anecdotes about your efforts (successes and failures etc.)
Cool topic.
Why this stuff? Probably not wholly rational. My birthday just came and since I got some monetary gifts I was able to but the router, which is necessary for my woodworking. With my wife gone, it was easy to think of things she wanted done that I could do to make her happy upon return. I've been wanting to read the sequences and thus I'm turning them into something to make it easier for me to read/take notes, and that I think might benefit others.
There ya go.
I have come back to this thread to confess the creation of a monster.
http://i54.tinypic.com/20jnz1g.png
Yes. That's a My Little Pony, embodying an Element of Rationality, based of the virtues of rationality. The worst part is somehting is compelling me to make 11 more of them.
... hey! Don't look at me like that! It's not any worse then Harry Potter!
"Precision", not "precicion".
If that's a real My Little Pony (I don't know all of them, only the ones that my LJ friend uses as icons) may I suggest ganking a less pixelated image of it? (If it's not a real Pony and you made it up for the purpose I'd be willing to draw smoother ones for you. They look easy to draw.)
Yea, someone else I showed this to pointed out the spelling as well.
And no, it's not a canon pony. (And it's certainly not a real pony because real ponies have VERY different proportions, and aren't sapient...). This should be fairly obvious given that it's based on the 12 virtues of rationality.
And thanks for offering help! Didn't know you could draw. This project is not the one in most need of that thou, it's just going to be character profiles, but I do have another project that WILL require a lot of drawing help, an animation about the singularity that will be to much for any single person to reasonably do at good quality, but I'm trying to not talking much about it on LW until it stops being vaporware. PM me if you're interested! Normal Anomaly is helping me with that one to so should I be of line or somehting you could ask her as well.
I'm currently writing a Python-Java bridge. (There are a few already, but mine aims to be maximally seamless: pure Python (it uses ctypes to call into JNI), compatible with Python 3, uses Java reflection so that nothing needs to be declared manually and it feels as much like ordinary Python as possible.) This is because I wanted to access a few Java-only libraries from a Python-based project I've been working on, and found that writing a bridge from scratch was less painful than trying to make any of the existing solutions work as well as they should.
Current status: mostly working; haven't tested generics; still needs support for safe multithreading and Java interface-compatible wrappers for Python collection types (e.g. we want to be able to pass a Python dict into a Java method that wants a java.lang.Map and have any changes be reflected immediately in the original object). I haven't yet workde on support for subclassing Java classes directly; not sure if I'll personally need it, but that may be the best way to implement the aforementioned collection wrappers anyway, and it should be fairly simple once I determine the best way to generate Java class file data dynamically and cheaply.
It's been a bit over a week since I started this; it should be as finished as I need it to be right now after a few more days of work. I'll probably put it up on github or somesuch, probably under an MIT-type license, though making it polished enough for public consumption isn't my top priority for it.
Working through Smullyan's To Mock a Mockingbird.
Why - a while ago I stumbled on one guy who'd managed to get something actually practical and useful from Smullyan's book. I could sort of figure out what it was all about but deeper understanding eluded me. I knew of Smullyan's work through of Hoftstadter but hadn't read any of his books previously. I bought TMaM a while ago but, to be frank, the puzzles had scared me away, until I picked it up again recently, determined to grok the whole thing.
Results - it has led me to revisit The Cartoon Guide to Löb's Theorem, something I wasn't quite expecting to turn up. I don't fully understand it yet, or the link between combinatorial logic and that Theorem, but it's starting to make sense.
Held Equus auditions (cf) and started rehearsals... did a technical runthrough Tuesday that went much better than I expected it to. Yay!
And working on planning a wedding reception for October... have a venue and picked a food vendor; next is putting together address list for invitations.
And, you know, earning money at work, and stuff.
I'm working on a phone app/web service which lets you use your web browser to manage the files on your smartphone. It uses the HTML5 File API and native drag & drop to let you copy files to and from your phone over the web by dragging and dropping onto the browser window from your computer. It's for all those times you don't have the right cable/bluetooth dongle/wi-fi/USB doodad, etc with you.
Here's a rough demo video from a few weeks ago, made with some cheap and dodgy screen recording software.
Most of the web and server-side infrastructure is in place, and I'm now making slow and tedious progress on the Android app, mostly because I both dislike Java enormously and haven't used it in nearly ten years. If I have to instantiate another thing to make another thing that makes something, I might just become unhinged.
I'm hoping to monetise it once I have it up and running. If I can get a thousand paying users, I reckon I can afford to quit my current job and develop this and other projects full-time. That's a pretty appealing prospect.
I don't expect people to want to contribute to it, but if any fledgeling iOS developers wanted a fairly straightforward but pretty meaty project to cut their teeth on, I could totally do with an iPhone version. ;-)
I have also just started working on a lady-shaped project as well, though, so I suspect my progress and spare time to plummet over the next couple of months.
I'm trying to break down my ugh field around learning probability and statistics by working through a few elementary level textbooks. Why? Because high-level understanding of the concepts isn't enough to let me test things myself, and the work I want to do will involve lots of statistical analysis.
I'm also working on the best way to get rid of most of my possessions, because I'll be moving overseas in several months and I intend to travel light and not leave my parents house filled with my clutter.
Are you planning on reading at least one Bayesian statistics book? Even if you don't plan on doing Bayesian statistics normally (for example, if you've got to share you work a lot), knowing Bayes stats is useful for understanding what other statistical approaches must approximate if they want to be useful. Bayesian stats also includes the very useful notion of Hierarchical Models. They're not taught in intro books (because it can be complex to fit them), but the concept is not hard to grasp from the various introductions on the internet.
Definitely planning to, but unsure if I'll have time before I leave for grad school to get more than a broad overview. On the other hand, writing this comment is making me explicitly aware of just how little time I have left, so hopefully time pressure effects will kick in to improve my productivity.
Suggestion: date-stamp this.
Me?
College Selection
Pushing more of my thinking about what I'm trying to do with my life into near mode. I'm trying to choose between Harvey Mudd and Harvard in order to figure out which best places/prepares me to have a positive influence on the future.
To this end, I'm visiting both colleges and talking to people in the Cambridge and HMC rationalist communities.
If there's interest, I can talk more about my current opinions on the subject.
FIRST Robotics
Finish up competition season (Done, seeded 1st at NC, team won spirit award, I won Dean's List Finalist)
Prepare my successors by handing down what I know about the team, what I did, why I did it, and things I've noticed. Throw in some basic rationality techniques for engineers and managers (going to start writing this up, and finish it over the summer.)
Make team 449 into an organization which trains rationalists (emphasize rationality stuff in end of the year speech, talk about them with various younger members)
Leverage credentials to try and get high level FIRST people to be more interested in x-rationality, transhumanism, or existential risk? <- Less likely to work, have less of an idea of how to do this.
Less Wrong
Start a sequence on Heuristics and Biases (I bought the book! Expect the first post in early May, need to finish the college stuff by then)
Start a DC meetup group. Almost done. There's already a meetup planned. Last steps for another are to pick a venue for May 1st, and post.
Spread rationalist memes in my Origins of Science class. Kind of successful so far, will comment about more if there's interest.
I'm currently writing a program (in C) for my continuum mechanics class to simulate crowd physics (just in 2D) using nearest neighbor potentials. Once I get it running, I'll simulate a "Black Friday" type event with a linear attractive potential and various barriers, and then see if I can get and then avoid crushing "deaths". I'm also in the process of trying to be more social, actually actively trying to make friends and interact with my peers instead of holing up in my room all day. Thus far, I've noticed a distinct increase in my overall happiness as a result of this so far, and my academic performance unexpectedly hasn't even wavered.
Too busy with a bunch of crap to do anything interesting till the summer.
One thing I'm still working on is improving my swimming. I find different sports (also video games) as test areas for self improvement - the results are generally very obvious, and I think you can improve your calibration. Specifically the surprising thing about swimming is how far the 'natural' path (doing a lot of practice) is from optimal, at least that is the impression you get after watching one of the Total Immersion lectures. And the funny thing is that the end result of the TI technique looks way more natural and easy than the 'natural' swimmers'. I wonder how many areas this extends to.
The is the second 'What are you working on?' thread. The last one is here. So here's the question:
What are you working on?
Here are some guidelines