Showing posts with label age. Show all posts
Showing posts with label age. Show all posts

Friday, July 14, 2017

Froome is of a certain age

There was that notorious incident in 2012 on stage 8 of the Tour de France:
"When he accelerated on La Toussuire with four kilometres to go, Chris Froome left behind Bradley Wiggins, the rest of the group and, it appeared, team orders.

Twenty seconds later, he spoke into the race radio, slowed and the fragments drifted back together.

“They asked me to slow down,” Froome said after the finish, referring to Team Sky directeur sportif Sean Yates."
Back in 2012, Froome was aged 27 and Wiggins was 32. Wiggins cracked on that final slope - this chart might explain why:

Elite cyclists are at their strongest aged 27-29: by 32 they're down by a third

Cut to stage 12 of the Tour this year:
"Chris Froome's brief attack on teammate and race leader Bradley Wiggins that day in 2012 is now the stuff of legend and, though clearly not on the same level, there were question marks over Mikel Landa's role as Froome struggled on the brutally steep gradients.

The Spaniard, Froome's last teammate and himself in the top 10 overall, didn't look around as the maillot jaune lost ground, instead forging on to finish fourth on the stage."
Fabio Aru then took the maillot jaune, Landa forging ahead as Froome cracked. Froome is now aged 32, while both Landa and Aru are 27.

---

There were other reasons touted. Richie Porte - ever loyal - said from his hospital bed that Froome had hit the wall due to messing up his feeding. Others noted that Aru (66 kg) and Landa (60 kg) are lightweight pure climbers while Froome (71 kg and a generalist climber/time-trialist) is quite a bit heavier.

But the age-related roll-off of performance is hard to argue against. Team Sky will be looking hard for their next GC candidate. A shame that Landa appears to be off for Astana or Movistar.

---

Update (Saturday).

Froome emphatically back in yellow today. Not so much a new-found strength as clever tactics completely bamboozling Aru and his team Astana. Team Sky are head-and-shoulders smarter than most other teams.

Friday, March 03, 2017

Diary: programming is hard!

I remember a post by James Thompson (can't find it - sorry) describing the joy of giving IQ tests to bright students. Their smug condescension as they breeze through the early items; their horror as they hit their cognitive limits and start to sweat: "Wait a mo, .., just can't seem to see it ... ."

In artificial intelligence textbooks it's standard to cover the coding of theorem provers for propositional-calculus. Hidden away in the advanced exercises is the suggestion to extend the program to cover the full predicate-calculus. Inevitably, this is flagged as hard.

Tell me about it. Today I got basic binary resolution to work. Great! I can do inference. And yet this is not the central mystery of a predicate-calculus resolution theorem prover (RTP).

The conceptual problems arise from the layers of abstraction around the proof procedure. At the risk of boring you even further, binary resolution is driven by the unification of complementary literals (basic formulae). These two literals occur in the two clauses offered to the resolution function (hence binary resolution).

A  problem addressed by an RTP comprises: assumptions  = the axioms, a set of clauses, plus the problem itself, a goal clause.

Here's my working example. First come the axiom clauses:
(defvar *c3*   (mk-fact-clause '(likes rod horvath)))
(defvar *c4*   (mk-fact-clause '(likes sally renner)))
(defvar *c5*   (mk-fact-clause '(likes sally rod)))
(defvar *c6*   (mk-fact-clause '(likes hardy renner)))
(defvar *c7*   (mk-fact-clause '(likes hardy rod)))
(defvar *c8*   (mk-fact-clause '(amusing hardy)))
(defvar *c9*   (mk-fact-clause '(likes horvath moties)))
(defvar *c10* (mk-rule-clause '(likes sally ?x) '((likes ?x moties)) ) )
(defvar *c11* (mk-rule-clause '(likes rod ?x) '((likes ?x renner) (likes ?x rod)) ) )
(defvar *c12* (mk-rule-clause '(likes ?x ?y) '((amusing ?y) (likes rod ?y)) ) )
(defvar *c13* (mk-fact-clause '(likes ?x ?x)))

(defvar *g1* (mk-goal-clause '((likes sally ?who)) ) )  ; this is the problem clause
You may notice a "Mote in God's Eye" theme here.

Despite the simplicity of these facts and rules, you'll struggle a bit to figure out the complete list of who, exactly, Sally Fowler likes.

I expect better from my program - once completed.

---

So a clause might look like this (which you will recognise as a Prolog-style Horn-clause):
'( (likes sally ?x) ← ((likes ?x ?y) (likes ?y moties)) )   ; a rule clause
which is already a bit complicated.

Then we have to set up structures for the knowledge-base (facts and rules), the goals which emerge from the resolution process, and the pointers and bindings which allow a reconstruction of proofs.

---

In telling you this, my intention is not to document the program, my point is more psychological.

You need to keep a very great deal of abstract structure in your head simultaneously if you hope to put this not-entirely-trivial program together. Plus lots of functions.

It's very g-loaded, much like doing mathematics.
"It's quite hard getting figures but ... it appears that the average IQ of students applying for PhD programmes at good universities in computer science is around 128.

"That sounds right to me. Most software development companies don't take people without good first degrees or a higher degree in a STEM subject - and that's just the pool we're talking about here."
---

Parenthetically, thank God for Lisp, a gift from the deity for clear, conceptual, exploratory thinking.

---

I read endless texts in the media from innumerate journalists about how unemployed or newly-redundant workers are going to retrain as software developers. Those writers couldn't hack it themselves and sadly, neither will most of those no-longer-required workers.
"Wait a mo, ..., just can't seem to see it ... ."
At an IQ threshold of 128, we're talking about 2.5% of a population normed at 100.

A caveat. It's intellectually hard writing machine learning programs or configuring recalcitrant artificial neural nets on novel problem-domains .. or programming RTPs. Yet for everyone doing those things, there are ten people paid to use graphical web design tools or load databases, or do a bit of scripting. Things which are not that hard.

Like many occupations, there has been mission-creep in the definition of software developer.

---

And why am I making such heavy weather of this wretched theorem-prover? This.

Saturday, October 31, 2015

You get stupider as you get older

With my 65th birthday in view, I am kinda worried that I'm getting stupider by the year.

Stupidity (can we still say that?) is really a decline or lack of fluid intelligence, the horsepower that lets you think abstractly and creatively solve new problems. Most older people have learned stuff over the decades and score rather better at crystallised intelligence (see the Wikipedia article for more on fluid and crystallized intelligence).

What does the world of science have to say? It's not completely easy to find out, but after some digging I found the diagram below (from here) - where the T-scores on the vertical axis are rescaled IQ scores, as shown further down this post. It shows the sad story of someone who had an IQ of 120 at their mid-twenties peak (T-score 63) but was merely average at 60.

It seems we lose about 0.6 IQ points per year from a high point when we're 26, a figure consistent with this Aberdeen/NHS study. How depressing!

Whatever my IQ was at age 26, it's now 23 points lower. And yes, I had to resort to pen and paper to work that out ...


Age decline in fluid intelligence - around 0.6 IQ points per year

Translating between the different statistics (IQ, Z, T)

You might want to take a look at this LessWrong article which has a different graph, but one which is depressingly and scarily consistent.

---

* Understanding the Stats (Descriptive Statistics and Psychological Testing - Stephen E. Brock, Ph.D., NCSP)

How is IQ scored?

IQ scores are a standard score with a mean of 100 and a standard deviation of 15.

Z-scores have a mean of 0 and a standard deviation of 1.

Z-scores can be transformed into IQ scores by multiplying a given Z-score by 15 (the standard deviation of  IQ scores), and then adding 100 (the mean IQ score). For example, a Z-score of –1 equals an IQ of 85 [100 + 15(-1) = 85].

Transforming a Z-score into an IQ score: IQ = 100 + 15Z.

What are T-scores?

T-scores are standard scores with a mean of 50 and a standard deviation of 10.

Z-scores can be transformed into T-scores by multiplying the Z-score by 10 (the standard deviation of T-scores), and adding 50 (the mean of T-scores).

For example, a Z-score of –1 equals a T-score of 40 [50 + 10(-1) = 40] ,,, and an IQ of 85.

Transforming a Z-score into a T-score: T = 50 + 10Z,  and IQ = 1.5T + 25.