10月7日から9日にかけて開催された第9回タイピングサミット、その3日目に行った「講演:最適化について再考する」についての記事になります。

 

 タイトルは「最適化について考察する」ではなく「再考する」。どういう最適化をすれば速くなるのか、どのように練習すればいいのか、というものを議論するのではなく、そもそも最適化とは何なのか? 最適化をして本当に速くなるのか? という根本的な疑問について、自分なりの考えを述べさせていただくものです。発表者はランク1でおなじみのparaphrohnで、WTLv11を出しておきながらほかのタイピングソフトの成績がイマイチな点を鑑みて、最適化の恩恵を得ているのではないかと言えるタイプのタイパーです。

 

(画像引用元: http://www.realforce.co.jp/special/201708_typing-championship/index.html)

 さてそもそもなぜこんな講演が開かれることになったのか、といえば、9月の東京ゲームショウで開催されたREALFORCE TYPING CHAMPIONSHIP (http://www.realforce.co.jp/special/201708_typing-championship/index.html) と、

それに関連するいくつかの会話がきっかけになっています。e-Sportsの名を冠した賞金付き大会ということで多くの参加者が集まり、予選を勝ち抜いたメンバーにはオンラインランキング歴代1位獲得者から世界大会優勝者までそうそうたるメンバーが勢ぞろいしました。タイピング界隈に名を遺すレジェンド同士の対戦に期待された方も多いかと思われます。

 

(画像引用元: http://casual.hangame.co.jp/typing/ http://typing.cleef.info/typsoft/tw.html 

http://www.intersteno.org/)

 が、蓋を開けてみれば上位はなんか変なペンギン歌謡タイピング劇場で腕を鍛えたという方々が独占。その下にタイプウェル国語R歴代1位と世界大会優勝者がなんか並んでいる、という結果に。

 

 歌謡タイピング劇場と言えば同じ歌の歌詞を打ち続けるという、まさに一般に言われる「最適化」をするのに適したゲーム。RTCの結果を受け、あたかも最適化しないと未来はないかのような言説が多く見受けられました。その一方で、最適化を行うことでデメリットがあると主張する声も見られ、一部白熱した議論へと発展していきました。

 しかし、これらの言説ははたして本当なのか? ひろゆきの言葉を借りるならば「あなたの感想ですよね」でしかないのではないか? と思ってしまうのが理系のサガ。一度真剣に議論・検証したほうがいいのではないか? という強い思いの元、わざわざ多くの参加者の時間をいただいて今回の講演をさせて頂くに至ったわけです。

 

(画像引用元: http://rogercullman.com/scrabbleportraits/h10b68ab2#h10b68ab2)

 さて、世界のトップタイパーの意見を軽くのぞいてみると、かの有名なSean Wrona氏は「運指が多様であるからこそ速いんだよ」という旨のコメントを自身のサイトで表明しています。

 

(画像引用元: https://www.facebook.com/klavyesampiyonu)

 またInterstenoのオフライン大会で2連覇を成し遂げているCelal Aşkın氏も、「どのようにすればタイピングが速くなるのか?」という質問に対して「同じキーだからと言って同じ指で押さなければならないということはない」という回答を残しています。やはり最適化勢が最強か? と思う反面、彼らはそもそも何も考えていなかったのでは英語やトルコ語の話を日本語にそのまま適用してもいいのか? という疑問もぬぐえません。何せ日本語は標準運指でも比較的打ちやすいので。

 

 そんなこんなで、今回は最適化によるタイピングスタイルに与える影響を議論すべく、上の5事項に分けて語ろうと思います。すでに文字数1700。アホですね。

 まずは議論の際に混乱を招かないよう、この講演中で用いる用語について、自分なりの再定義を行います。その後、上で見られたような一般論について適当に考えてみたのちに、実際にモデルを組んでシミュレーションを行い、本当に正しいのかどうかを検証してみます。そして、その結果を踏まえて議論を行ったうえで総括とさせていただきます。

 

 まず用語の再定義についてですが、ちょっとタイピングについて調べてみると出るわ出るわ、様々な単語が飛び出してきます。最適化、我流、標準、ホームポジション、タッチタイピング、雨だれ式・・・??? 挙句の果てにはWikipediaのタッチタイピングの項目は要出典。しかも各サイトで書いてあることが違うなど、これ以上ないほどに混乱しまくりです。

 

 たまに湧いて出てくるタイピングに関する論文を見てみれば、タッチタイピング=標準運指という扱いまで出ている始末。まあこれは海外では日本よりもタイピング教室が一般的であるため、タッチタイピングができる=タイピング教室に通っている=標準運指を学んでいるということらしいですが、日本人には当然通用しません。英語版wikipediaのタッチタイピングの項目にも、標準運指の図が載っています。ちなみに、この論文においては「100wpm以上を目指すならば、タッチタイピングをちゃんと学んだほうがいい」という結論がなされています。

 

 

 というわけで、今回の講演ではこの5つの単語について再定義を行っておこうと思います。多分、結構重要です。

 

(画像引用元: いらすとや)

 まずタッチタイピングについては、この定義で間違いないと思います。語源にもマッチしています。打ち方はどうでもいいです

 

 標準運指についても、特に述べることはないでしょう。これのことです。

 

 難しくなってくるのが「最適化」。私個人の意見として、最適化には2通りあります。一つは人への最適化、もう一つが文字列への最適化です。何言ってんだこいつ感漂ってきましたが、ここはかなり重要なポイントですので詳しく説明します。

 

(ツイート引用元: 伏せ)

 まず人への最適化についてですが、最もわかりやすいのはこれら例でしょう。手の形・大きさは人ごとに違います。どの指が動きやすいかというのも人によります。そうすると、人によっては標準運指から外れた指の動きをしたほうが結果として速くなる、ということも十分考えられるでしょう。このように、各人の手の性能に応じた運指変更を、「人への最適化」と呼ぶことにします。

 
 人への最適化はここに示したように、様々な要因で運指が標準から外れていきます。その結果何が生まれるのかといえば、我流運指です。ここには文字列が介入する余地がないというのは心に留めておいてください。
 
 一方で、文字列への最適化は極めて単純です。標準運指では打ちにくいunnnunnも、上に示した手順を踏むことで、そこまで減速するようなワードではなくなるということです。このように、特定の文字列に対して、普段使わない指使いをすることを文字列への最適化と定義します。
 
 最適化について改めてまとめますと、このようになります。重要なのは、人への最適化には文字列は関係なく、文字列への最適化は普段と異なる指使いをするということです。
 
 最適化の話ともかぶりますが、我流運指は人への最適化の結果形成された運指と定義することにします。そして我流運指は、「その人にとっての標準運指」でもあり、結果として非効率な運指が飛び出すことも十分に考えられます。上に示したki-bo-doの例は、これを端的に表していると思います。
 ここでPocariさんからコメントがあり、標準運指の言葉がダブっているのは議論の時に不便とのことでした。確かにその通りなので、我流運指は「その人にとっての基本運指」と表現したほうがいいかもしれません。
 
 ここで、我流運指はただ人への最適化が行われただけであるということを示す例を出します。TOD風の「キー」という文字列を見たときに、標準運指の人はどう処理するか、我流運指の人はどう処理するか、を考えます。
 
(画像引用元: 元ツイートを捜索中)
 標準運指の人は、キーはki-と入力するとした上で、それぞれ中指、中指、小指を対応させて打鍵に移します。
 
 一方で我流運指の人はどうか? と見てみれば、キーはki-と入力するとした上で、それぞれ中指、中指、中指を対応させて打鍵します。その結果、全部中指という極めて悪効率な運指となります。
 
 結局どういうことなのかと言えば、我流運指の人は、それぞれのキーを押す指が、標準運指の人とは異なっているだけで、文字列への最適化は一切行われていない場合には打ちにくい文字列も十分に多いということになります。言い方を変えれば、何も考えずに反射的に動く指が標準運指の人とは違うだけというわけです。
 
(画像引用元: http://tov.namco-ch.net/)
 しかし世の中には話をややこしくする人がいて、キーをki-ではなくき-と認識してしまう人もいます。つまり、きは人差し指+中指でkiと処理し、その後-の処理を行うというもので、結果として何も考えていないのに文字列への最適化が一見行われてしまっているような運指となります。
 ただし、これはべつに文字列への最適化が行われているというわけではなく、たとえば同じ考えの人が「元気」と打つときに、genきと分解した結果、人差し指がnとkの両方を担当することになり、結果として悪効率な運指となってしまうように、あくまで人への最適化の段階で、「きは人中」という認識が定着してしまっただけです。本当です。
 
 なので改めてまとめると、まあたまに変な人がいるということです。たまに。
 
 さて最後にホームポジションについてですが、この通りです。おわり。
 
 ここまでで、用語の再定義については終了です。?と思う単語があれば、ぜひ読み直してください。
 
 続いて、一般に言われている最適化のメリットとデメリットについて考えます。今回は、適当に調べて出てきた上の言説についてちょっと考えてみます。
 
 まず最高速度が上がるという点については、かなり誤解があるものと思います。普通に考えて最高速度を出せるのは「たじたじ」でしょうが、これはどれだけ最適化をしても速くなりません。最適化をして速くなるワードの代表例として挙げられる「ぶらぶら」ですが、これも最適化をしたところでたじたじと同じ速度です。つまり、最適化をしても真の意味での瞬間最高速度は変わらないということです。ただし、たじたじとぶらぶらの例のように、最高速度を出せる文字列の種類が増えるという点では正しいといえるかもしれません。
 次に減速しにくいという点については、何も考えなければ正しいでしょう。ただし、本講演で最も重要な点ですが、先読みや運指組立のロス分を考えれば、実は微妙なのかもしれません。詳しくは後ほど説明します。
 疲れにくいかどうかは、まあ人次第でしょう。最終的には筋肉がすべてを解決してくれるので、どうでもいいというのが個人的な感想です。
 
 次にデメリット。ミスが増える? RTCのmiriさんを見てください。正確性98%ですよ。話になりません。
 安定しなくなる? RTCのmiriさんを見てください。どのワードでも普通にスピード1000超えてきますからね。
 この2点については、雑すぎると怒られました。しかし、30分連続での長文入力を求められるInterstenoオフライン大会にて優秀な成績を残したたにごんさんが最適化を多用していたり、オンラインでも最適化勢の私が優勝していたりするので、結局のところミスや安定度については、人によるというのが正解かと思われます。我流の連中は不真面目だからミスや安定度を気にしないという説が有力だと思います
 最後の先読みが難しいは、間違いなくYESです。最適化の結果は、ここで決まるといっても過言ではありません。詳しくは後ほど。
 
 ところで参加者の皆様に配布された議事録を見てみると、ここでたのんさんから質問されたというログが残っていますが、どうもこの質疑については記録ミスがあるように思えます。また先読みの件についてもいくつか質疑があり結構盛り上がったんですが、いずれもちょっと長くなるので、また別の機会に。
 
 上の考えを適用すると、こんな感じの結論になります。結局のところ、みんな適当言ってるだけだな~と感じていただければ結構です。
 
 続けて、上の議論をさらに深めるために、タイパーモデルをテキトーに組んでみて計算してみました。運指コストモデルというと大げさですが、説明は上の通り簡単なものです。ちなみに1計算あたり10分で、合計7時間くらいかかりました。誰か自動化してください。
 
 計算するワード、および運指は上の通り。全部の運指について、同じ人が打つという仮定の下に計算をしています。ぼくのかんがえたさいきょうのさいてきかについては、かなりぶっ飛んだ最適化がなされていて、実現可能かどうかとか深く考えてない(というか一部の運指については何度やっても成功しなかった)程度のもので、計算に使った運動性能におけるほとんど理論値と考えてもらって結構です。
 
 打鍵速度の計算には、上に示した5つのパラメータを用意して計算しました。これはW/Hさんが全く独立に作っていたモデルと同一のもので、行き着く先は一緒だなHAHAHAと感じました。
 
 計算結果その1。それっぽい数字が出ています。
 
 計算結果その2。こちらもそれっぽい数字で、結果として標準運指とある程度の打ち分け程度ではほとんど差が出ず、最適化を行った際に結構速くなるということがわかります。ちなみに本番におけるテルさんの速度は930程度で、ほとんど正確な値が出せていることから、このモデルにもある程度の信ぴょう性があるかな、と思います。また、運指3を使う私が、ギリギリWTLv11を出せているというのも、平均1100という数字にピッタリ合っていてなかなかおもしろい結果に。
 それはともかく、特に目を引くのは赤で囲んだワード8と、青で囲んだワード10。それぞれ最適化によってとんでもない差が出たり、逆に差が出なかったりします。
 
 それぞれワードを見てみると、この通り。一部で使われているザクザクマッサージという言葉はこの結果を受けたものです。さすがに速度が段違いに速くなります。一方でワード10は、確かに考えてみてもほとんど最適化できる場所がありません。運指4ではインチキみたいなことして無理やり速くしてますが。このように、最適化による速度上昇効果はワードによって大きく異なるというのがよくわかると思います。
 
 さて、ザクザクマッサージはさすがに差が出すぎていてひどいので、これを除いて平均を再計算してみると、上のような結果に。WTLv11切っちゃいましたね。。。
 
 上の計算結果が何が言えるかと言えば、こんなところ。一番重要なのはもちろん最適化による速度上昇は10~20%程度と見積もれるという点です。あくまで計算上の話なので、実際はどうだかわかりませんが、一つの目安としては十分かと。
 
 さて、これまで6000文字以上もグダグダと議論してきましたが、今までわかったことといえば
・最適化のデメリットは脳の処理が増えること
・最適化によって10~20%くらい速くなる
の2点。つまり、最適化をした結果として速くなるかどうかは、脳の処理増大による減速が、この10~20%よりも小さいかどうかにかかっています。
 
(ツイート元: テルさん)
 この脳の処理増大による減速を特に意識しているのがテルさんで、すこしツイート検索をかけてみるとこのようなツイートが山のように出てきます。それはもう、減速どころか、先読みの正確さによって打鍵速度が決まるといっても過言ではないというほど。テルさんを信じるかどうかは別として、このような意見は存在するというのは十分考えるきっかけになると思います。
 
 とはいえ客観的なデータが欲しいのも本音。調べてみると、ソフトウェアキーボードを使った打鍵速度と集中力の相関をとっている論文がありました。論文中の結論は「集中力が高いほうが有意に速度が上がる」というもの。つまり、運指組立を考えることによって指を動かす方面への集中力が落ちれば、その分打鍵速度も落ちると考えられます。
 
(画像引用元: https://twitter.com/mou_neyou)

 上の議論をまとめれば結論は簡単。脳の処理増大によるリスクをどれだけとれるか、というわけです。

 落とさない自信がある、ない、というのは単に頭の回転の速さとかそういうものではなく、10%以上速度を落とさない領域に到達できるまで最適化の練習を続けられる自信があるかどうかということです。簡単に言えば付け焼刃じゃだめだよってことです。

 

 講演中には言いませんでしたが、一部の効果の大きい最適化にのみ絞って練習するというのは、この点から考えればかなり「コスパがいい」です。例えばザクザクマッサージなんかは単純に速度が1.8倍くらいになりますので、脳の処理増大で40%くらい速度が落ちてもおつりがくる計算です。つまり、最適化に習熟していない状態でも、十分にその恩恵を得ることができます。

 また、WTのような初速の関係ないゲームや、歌謡タイピング劇場のような固定文のゲームにおいては、脳の処理増大のコストを一切合切無視することができるので、最適化の恩恵を最大限得ることができます。私がWTLv11を出せている理由もここにあります。

 

 総括としては、最適化にはいい点も悪い点もあるので、上の議論をもとに自分で考えて導入するかどうか決めてくださいね、ということです。無責任な流言に惑わされたり、逆に無責任な発言で他人を惑わせたりしないように、多少は慎重になってほしいというのが本音です。人はそれぞれ抱えているバックグラウンドがありますので・・・

 

 最後に、今回の講演をするにあたり、dqmaniacさん、のんさん、テルさんの3人にはデータ収集の協力を、W/Hさんにはモデルを構築するにあたって助言をいただきましたので、この場を借りて御礼申し上げさせていただきます。

 

 そろそろ10000文字が見えてきそうなレベルになりましたので、質疑応答などはまた別の機会に。ここまでお読みいただきましてありがとうございました。