Basically what happened is that I wanted to kill two birds with one stone, so I tried to do it while also doing “real” calculations. But it was next-to-impossible. The main problem was that the things I’m doing are way too complex and non-repetitive to easily turn into flow-charts or algorithms. My plan is now to open up a really basic math textbook (like one for high school students) and focus on one extremely specific type of computation and see if I could get my error rate to zero with just that one thing.
I guess it must be true on some really low level that I partly disagree (because otherwise I would have just done it already), but in more conventional terms I would just say that I haven’t done it because I’m lazy / forgetful and have been pre-occupied with other stuff.
You think that I should be making something like a tree for each discussion I have on CF?
Why? I guess I thought of trees as a tool for keeping track of complicated discussions, but in most of the discussions I’ve had here I feel like I have a pretty good memory of what has been said and I don’t feel like I’m lost. Am I misunderstanding what the purpose of discussion trees is? And/or do you think my intuition about how well I’m keeping track of discussions is wrong?
Yes. I think everyone should be more focused on getting better at discussion itself than the content of the discussions. Methodology > details.
You lack the experience to judge how complicated discussions are or how many mistakes you’re making. You make mistakes in simple discussions some of which could have been avoided by using trees. With practice, you could automate the same understanding you get from a tree diagram so you can get it subconsciously without the diagram. But that is not a thing that people in our culture have by default. It has to be learned including by practicing.
Those kinds of things, like lazy, forgetful or procrastinating, ~always involve some sort of disagreement (usually internally too, not just with the other person). Some of the disagreements would more usually be called not knowing some things, but the combination of a gap in understanding plus seeing it as OK is a different, clashing perspective – a disagreement.
I have noticed that many of my ‘arithmetic’ errors occur while I’m executing the chain rule, so I did ~20 somewhat complicated chain rule practice problems from the textbook Calculus by Spivak. I made only one error, but I think it’s indicative of the type of errors I tend to make while doing calculations. I was taking the derivative of f(x) = \sin((x+1)^2 (x+2) ), which is
However, I spaced out or got distracted or something partway through (nothing environmental, just an idle unrelated thought that I soon forgot) and wrote
I remembered that I had to use the Leibniz rule, but apparently I forgot to actually take the derivative of (x + 2).
I noticed immediately what I had done and changed it, but sometimes (especially during calculations where there are far more moving parts) an error like this would definitely get through.
I brainstormed some possible solutions, and basically all I came up with that would reduce my error rate (and that isn’t ridiculous) is:
Just concentrate harder, which requires energy
Write stuff out in smaller steps, which takes time, plus the chain rule is pretty close to being an atomic step, plus how do I know I’m not going to space out one of those even more basic steps?
Double-check, which takes time (and why not triple-check or quadruple-check?)
These seem like non solutions.
My working theory is that I have run into a hardware issue here. I am somewhat curious if stimulants would reduce errors like this.
On second thought, this makes it sound like I am more sure about what happened than I actually am. I’m not even sure if I was having a thought at all or if I was just spacing out (or is spacing out the same as having a thought?). When I say it wasn’t environmental I just mean like, I was doing the problems in a quiet space without any obvious distractions.
I think it can be improved by better conceptual understanding of what the numbers mean. That makes certain types of errors unintuitive, which reduces them.
For example, you wouldn’t make a multiple order of magnitude error like saying a thousand miles instead of one mile when talking about how far away your local grocery store is. Why? Because understand how far a mile is and also where the store is. In other contexts, people are sometimes off by an order of magnitude, but that’s because they have a poor understanding of what the numbers mean and/or what the reality they’re discussing is. When people don’t understand what the numbers mean, they make big errors.
For example, people who are unfamiliar with astronomy could easily be off by over 1000x when saying how far away some star is. (The only thing that would stop me personally from being that badly wrong about distances to stars is that I know I don’t know. So I’d look it up, not answer, or indicate that my answer is a wild guess. I do not have any intuitive sense of how far away stars are, or what astronomical distances are. People who work in the field and have experience with that stuff do have intuition, and would instantly recognize many errors that wouldn’t raise a red flag for me.)
A lot of people don’t really understand money and struggle to understand the difference between a million dollars and a billion dollars. (And even more people don’t understand one vs. ten million. Consider e.g. the lotto winners, movie stars and sports players who quickly go broke after the income stops because they have no idea how much money they now have, and they just think they’re rich and can buy whatever. This is partly because of the reputation the term “millionaire” got in the past, but that reputation has not been inflation adjusted very well in people’s minds.) A related issue is how people sometimes fail to understand the difference between net worth and annual income – and then make popular, wrong posts on social media. That kind of error results in being wrong by orders of magnitude.
When you have a good intuitive sense of what the numbers you’re working with mean, a lot of errors become harder to make.
For example, you’d never think your local grocery store was -1 (negative one) miles away because your conceptual understanding of distance is too good. You wouldn’t make a sign error on a distance term if you clearly knew what the term was (and there was no special context where using negative distance in math made sense, like a shortcut saving some distance).
Earlier you made repeated errors related to negative exponents. That’s easy to do if you’re just manipulating meaningless numbers. It’s kinda like how it’s easy for illiterate monks to make typos when copying manuscripts because they don’t even know what the symbols mean. But if the terms have conceptual meanings in your head, like 20 miles vs. 1/20th of a mile for your commute, then you’d be very unlikely to make the error of accidentally swapping one for the other. It’d look wrong to you to write a term, which you understand as commute distance, with a negative exponent that you understand makes it a fraction of a mile, when you know your commute takes half an hour to drive and is much more than a mile.
Similarly, it’d be unusual for someone to mix up stuff about their pet dog, their pet bird, or their kid. Those concepts have meanings to them and they have strong intuitions about those things instead of just conscious understanding when concentrating. However, if you put labels on tiles like “dog”, “bird”, “kid”, and others, and use them in some game where the tiles have nothing to do with dogs, birds or kids – they’re just arbitrary names – then it’d be easy to mix up tiles. At least they’d be easy to mix up when you’re just starting. Once you figure out that dog tiles are 10x better than bird or kid tiles, and have played the game a while, you’ll probably stop mixing up dog tiles with bird or kid tiles anymore.
I think you need to know what stuff in reality the mathematical terms corresponds to and how each math operation corresponds to some process in reality, and that will reduce the errors. If a problem is abstract, pick a typical, realistic example that it could correspond to and use that.
I do this a lot in real physics problems, and it definitely helps me catch a lot of errors. A particularly useful version is checking units, e.g. if you know the quantity should have units of meters but this line of the calculation has units of m^2 s^{-1}, you messed up somewhere. Sometimes it works in pure math problems too, like you’re computing the dimension of something so you know it needs to be a natural number, so you know you messed up if there’s a \sqrt{2} lying around in the final answer.
One problem is that these checks often don’t work until you get to the end of the calculation where the result actually means something, so the ability of some of these techniques to correct errors is limited (i.e. you can use them to spot the error when you get to the end of the calculation but not any earlier than that). E.g. those e^x quantities arose when I was computing a partition function, and partition functions are just these functions without direct physical meaning (once you have computed the partition function there’s an algorithm to produce physically meaningful quantities). Or e.g. when computing a dimension, you have to get pretty close to the end of the computation before you can know for sure that the first \sqrt{2} isn’t going to cancel out with the second \sqrt{2}.
How would you pick a typical, realistic example for the f(x) I defined above? I don’t know of any physical systems whose physical behavior has anything to do with f(x). I’d have to come up with something really contrived, and if I did it would be so unfamiliar that I’d have to use the chain rule (& more) to understand the physical system, rather than using the physical intuition to error-check the chain rule.
Can you start with a real example for just the chain rule and not the f(x) part? Or otherwise break it into smaller parts and make examples for parts.
Alternatively, you could explain what it’s for. I figure either the specific problem, or the category of problem, is used for something in practice. So you should be able to relate it to some kind of example in that way, right? If not, what’s the blocker?
Also, math doesn’t have to be connected to concepts about the physical world. It can be connected to other concepts too, though that can be more difficult. Come to think of it, that has a similarity to doing philosophy because it involves thinking in terms of abstract concepts.
Steps within a calculation should be conceptually meaningful too.
E.g. when calculating the distance for a road trip, you might first add up the distances for day1, day2 and day3, each of which represents a meaningful concept (distance travelled on a particular day) before reaching a final sum by adding those intermediate values.
It can be broken down further, e.g. when doing 1 day you could add up all the distances travelled in a particular city, region or state. Geographical grouping would let you get conceptually meaningful subtotals. So would grouping by time (e.g. before lunch, before dinner, after dinner). You could also just add up all the numbers in order, at which point each intermediate step means “total distance when we reached point X”, “total distance when we reached point Y”, etc. It would be abnormal, for this scenario, to do intermediate steps that don’t correspond to some reasonable concept.
Here’s a video game, example based on Genshin Impact:
Damage = (base attack * attack bonus factor + flat attack bonus) * ability scaling * enemy resistance factor * level adjustment factor * critical damage bonus if it’s a critical strike * your other bonuses
You can take some combination of things and understand what it is, e.g. your damage ignoring critical hits is a worst case scenario for your damage. Your damage ignoring the enemy resistance factor, level adjustment factor and ability scaling factor is what you can affect with gear. The section (base attack * attack bonus factor + flat attack bonus) is your total attack. No one ever multiplies just other bonuses times enemy resistance factor to get an intermediate total because that wouldn’t mean anything useful.
I only broke down the first term but all the others can be broken down too – they are intermediate steps. E.g. other bonuses is the sum of your bonus damages of all types plus a base value of 1. E.g. if you do a pyro attack and have 60% bonus pyro damage, plus a 50% damage bonus from your artifact set ability, then your total damage bonus is 110% (they scale linearly not multiplicatively, which is important to understand), and the other bonuses factor is then 210% since it starts at a base of 100%. Enemy resistance factor has an actual formula with multiple conditions, so you can math out that formula in a particular case and get an intermediate subtotal that’s meaningful.
A different sort of example is cooking with a recipe. You might blindly follow the instructions and not understand the intermediate concepts – he’d just do everything and then hope, at the end, for a good final result. But a skilled cook would understand e.g. that these 4 ingredients combine to make the sauce, which he can taste and understand whether there is an error before putting it on anything, and he can understand that intermediate step of making the sauce independently from the other ingredients and steps in the recipe. And he could also use the same sauce in a different recipe due to the independence of the concept instead of it just being a meaningless internal step with only the start and end points being meaningful.
Understanding intermediate concepts helps with error checking in the middle of the problem. You could map out intermediate concepts with a tree btw – intermediate steps in a calculation are sub-parts, and there can be sub-sub-parts, etc., and you could actually write the whole math solution as an s-expression and s-expressions directly/trivially map to trees.
For math, one objection you may have is that some steps are small and don’t correspond to any very important concept. That’s true but in that case they will have a conceptual purpose like “simplifying” – like you added two to both sides of an equation for the purpose of reducing the total number of terms you’re dealing with by one.
Also in physics, some steps are small (and very abstract) and don’t correspond to any very important concept.
I agree with you that in (say) the simplification of an expression, or in (say) using the chain rule to compute the derivative of a complicated function, or in any other non-pointless calculation for that matter, every step has some conceptual purpose: there’s a reason why you are doing any given step, and the reason can be explained. Each step means something.
When I said (bold added)
I didn’t intend to convey that I think the individual steps of the calculation are meaningless.
I just mean that a conceptual understanding of why you’re doing each step in the calculation doesn’t necessarily have to help much with error correction. This is pretty obvious, e.g. even with something really simple like manually adding together 100 different purchase amounts to see how much money you spent this month. Each step in that calculation has some conceptual meaning, but the ability of that knowledge to help with error correction is limited. If you know to within a $0.05 range what the final $ amount should be, you have to get to ~ the end of your calculation before it can help you know that you’ve made a mistake: It is not going to help you catch that arithmetic mistake on step 41 of your calculation where you wrote $456.28 + $1.10 = $457.28 (not until you get to the end, that is). A “conceptual understanding of what the numbers mean” doesn’t help in a situation like that: It’s a process error, or a conceptual error about arithmetic, or a physiological(?) problem (e.g. how I randomly spaced out for a millisecond), or something else.
I reached a daily edit limit :( and can’t change this. IIRC it said I’m only allowed to edit 23 times per day but that doesn’t make any sense because I haven’t edited 23 times.
Instead of this
I wanted to say this:
What I mean by saying that some of these checks don’t mean anything until you get to the end of the calculation is like, suppose you are manually adding together 100 different purchase amounts to see how much money you spent this month, and your check is that you know to within a $0.05 range what the final $ amount should be in the above situation. Then you have to get to ~ the end of your calculation before it can help you know that you’ve made a mistake: It is not going to help you catch that arithmetic mistake on step 41 of your calculation where you wrote $456.28 + $1.10 = $457.28 (not until you get to the end, that is). A “conceptual understanding of what the numbers mean” doesn’t help in a situation like that: It’s a process error, or a conceptual error about arithmetic, or a physiological(?) problem (e.g. how I randomly spaced out for a millisecond), or something else.
IIRC Feynman talked about e.g. understanding numbers and how that was important. I think it was in “Surely You’re Joking, Mr. Feynman!“ (probably in more places). Maybe checking out Feynman could be helpful.
Laughing about making a reading error is a rather different attitude than recognizing that the error is caused by a faulty automatization that should be taken seriously and fixed. The error is probably related to many other reading errors which have made conversing with you difficult.
I don’t think laughing at a situation is a “rather different attitude” than taking the situation seriously.
E.g. if I tripped over my carpet and mildly hurt myself, I might laugh about it. That wouldn’t necessarily mean I am not taking seriously the idea that I should fix my carpet to prevent myself from tripping again.