生き抜くぜ21世紀

統計?機械学習?っぽいことを書く

Kaggle VSB Power Line Fault Detection (電線コンペ)スコア推移晒し

概要

  • VSB Power Line Fault Detection | Kaggle に参加して、Public120→Private346位でした。
  • Public LBに過適合してしまった人間のスコア推移をご覧ください
    • Public LBも大したことはなくてむしろshake upを狙っていたのですが…
  • なかなかひとりの人間の2カ月のスコア推移をみることはないと思うので共有します
    • この記事を読んでも機械学習的な学びはほぼないです

スコア推移

f:id:rskmoi:20190322221943p:plain

  • 縦軸がスコア、横軸が時系列です。
  • 赤がPublic, 青がPrivateなので、時間をかけて最終評価スコアを悪化させていることがよくわかります
  • なんか色がついている背景はprivateでの金/銀/銅圏を表しています

詳細

f:id:rskmoi:20190322222846p:plain

  • 最序盤は画像認識エンジニアらしくグラフを画像化して2DCNNやってたんでひどいスコアです
  • LSTMは基本的にPublic KernelをPyTorch実装して手を加えてました。以下を変えながらいろいろやってました
    • ネットワーク
    • 特徴量
    • Denoising
  • 論文はhttps://arxiv.org/pdf/1801.04503v1.pdfを参考にしました
  • seed averagingを50モデルでやってたのでめっちゃモデルの再現性ありました
    • これでガチャには勝てると踏んでいたのですがそういう問題じゃありませんでした
  • 「終わりの始まり」でだいたいのベースラインモデルが決まったな~という気持ちに勝手になっていました
    • ここまでのモデル微修正の過程が全部Publicにしか効かないやつだったのでしょう
    • 一回モデル作ったらチューニングは3回までとか誰か強いグラマスが言ってた気がするし、ちゃんと従ったほうがよかったかもしれません
  • 最終submitはQuoraの3位のモデル(3rd place kernel | Kaggle)にaugmentationとweight decayを加えて汎化性能バキバキに上げたつもりのモデルを採用しました
    • Denoisingなし

最後に

  • こんな感じのスコア推移でした。反面教師として活用してください(?)
  • どうやってPrivate がいいやつを選べたかはまだわかっていません。落ち着いたら向き合ってみます。
  • なにより、きちんと狙って上位をとっている方が多数いるようなので、謙虚に学ばなければという気持ちでいます。また頑張ります。

水沢心愛さんから学ぶ会議の極意

はじめに

今この記事を読んでいる皆様を含む日本人の多くが「会議」という行為を日々行っています。

しかしながら、会議をうまく行うのは非常に難しいです。会議とはこうあるべき!と思っていてもついつい以下のような会議にしてしまうことがあります。

  • 3時間の会議だったのに議事録にまとめたら5行だった
  • 途中からみんなが何を話しているのかよくわからなくなって今日食べる晩御飯のことばかり考えている
  • 会議が終わる理由が「時間が来たから」である

私もまだまだ未熟で失敗することも多いですが、そんなとき私はこの動画を見て、会議とはこうあるべきだと意識を引き締めなおしています。それがこちらです。


ベボガ!新自己紹介会議 [ベボガ!(虹のコンキスタドール黄組) ]

ベボガというアイドルが新しい自己紹介フレーズを決める動画です。(残念ながら2018年に解散してしまっています)

もっと上手く会議がしたいと思っているあなた、特にアイドルの動画紹介なんてくだらないネタブログだと思ったそこのあなたに、是非この動画の真髄を解説したいと思いこの記事を作成しました。

概要

  • ベボガ!という(既に解散してしまった)アイドルのとある動画を軸に、会議とはこうあるべきだよね、という解説をする記事です
  • 特にリーダーの水沢心愛さんに焦点を当てて書いています
  • 以下を気をつけると短くて意思決定がスムーズないい会議になりますよね、というお話です
    • 最初に会議の目的を言う
    • 事前に意思決定用の資料を用意する
    • イデアを出しやすい空気を作る
    • 簡潔にまとめるリーダー的存在をつくる
    • 最後におさらいをする

会議に大切な要素を水沢心愛さんから学ぶ

私が冒頭で紹介したYoutube動画は、ベボガ!というアイドルが、6人それぞれの新しい自己紹介フレーズを決める、という会議の模様を収録したVTRです。

動画の長さは(もちろん編集済みですが)8分と短いのに、素晴らしい自己紹介をバシバシ決めていきます。痛快です。

いい会議とは、こういった「短いのに、素晴らしい意思決定が次々とされていく」会議のことではないでしょうか。

この動画は、特に水沢心愛さんという右奥に座っているアイドルを中心に会議が回っていきます。私はこの動画から、会議に大切な5つのことを水沢心愛さんに教わっている気がしてならないのです。

その5つとは

  1. 最初に会議の目的を言う
  2. 事前に意思決定用の資料を共有する
  3. イデアを出しやすい空気を作る
  4. 簡潔にまとめるリーダー的存在をつくる
  5. 最後におさらいをする

ではないかと考えています。ひとつずつ見ていきましょう。

最初に会議の目的を言う

動画を再生してください。開始0〜6秒で水沢心愛さんは「はい、今日はべボガのね、自己紹介を変えるべく会議をしたいと思います!」と発言しています。

こんなに素早く目的から入る会議を皆さん体験したことがありますか?ここに水沢心愛さんの素晴らしさがあります。

意思決定のための会議では、「この会議で何を決定するか」を最初に提示することが何より大切です。このことにより、会議に参加している人全員が集中して意思決定をすることができます。

これが自然とできている水沢心愛さんは普通のサラリーマンのレベルを大きく超えています。

事前に意思決定用の資料を共有する

続いて、開始12秒で事前にファンに対しtwitterでキーワードを募集している旨が明かされます。

これもまた、会議の開催にあたり非常に素晴らしい姿勢です。

意思決定に当たって、何を基準にするかというのは意外と決めづらいものです。また、制約が少なければ少ないほど議論は発散しがちです。

そこで、事前にこの資料に従って決めるというビジョンをメンバーに共有しておくことで会議の進行をスムーズにしています。

実際、Twitterコメントを軸に6名中4名の自己紹介が決定しています。

イデアを出しやすい空気を作る

水沢心愛さんは、教科書的な会議進行だけでなく、コミュニケーションスキルにも長けています。

その1 最初の雰囲気作り

開始30秒から、水沢心愛さんはまず最初に自分の自己紹介を決めています。

最初は少し固い空気に見えなくもないのですが、水沢心愛さんは「自称センター」自虐をすることで空気を和らげて、進行役に何を言ってもよいのだという空気を作り上げています。

最初にこのような発言しやすい雰囲気を作ることで、よりよいアイデアが生まれやすい状態になっています。

「ザ・有能」っぽい人ほどこのようなプレイイングはできないものです。我々サラリーマンが見習うべき姿勢ではないでしょうか。

その2 意見を褒める

明らかに水沢心愛さんのセンスが飛び抜けていますが、それでも水沢心愛さんは他のメンバーの意見を褒めることでよりメンバーの発言をより活発にしています。

例えば3:19では葉月梨花さんの意見に対し「いいじゃん」と肯定の言葉を投げかけています。するとそのすぐ後に葉月梨花さんは「『いませんか〜?』みたいなのやりたいかも」とさらなる良いアイデアを出してくれました。

このアイデアが結果的に自己紹介に採用されています。発言者を肯定することでいいアイデアが出てくる貴重なサンプルを水沢心愛さんはいとも簡単に作り上げてしまうのです。

簡潔にまとめるリーダー的存在をつくる

水沢心愛さんは、意見をまとめることにも長けています。

6人の自己紹介が決定する直前の様子を見てみてください。なんと、6名中5名が、水沢心愛さんのまとめで自己紹介が決まっているのです。

意見を出すことと、意見をまとめることはまた別のスキルであるように思います。そして、意見を出す人は上手く意見をまとめてくれる人がいるからこそ安心して発言できるのです。

この役割をこなせるかどうかはある程度センスにも依存するので、進行役の水沢心愛さんがやらなくてもいいポジションであるとは思います。しかし、水沢心愛さんは天才なのでこの立ち回りもできてしまうのです。

最後におさらいをする

7:30から、水沢心愛さんは「はい、べボガの自己紹介が決まりました」と発言しています。

何気ない一言にも思えますが、これもまた重要なことです。

最初に発言した会議の目的に対するアンサーが最後のおさらいになっているかを改めて確認することで、本当に正しく会議ができたのかの確認ができます。

最初の発言を覚えていますか?

「はい、今日はべボガのね、自己紹介を変えるべく会議をしたいと思います!」

でした。

それに対して、

「はい、べボガの自己紹介が決まりました」

でまとめています。完璧ですね。最高の会議です。

終わりに

ここまで見てきたように、この記事で紹介している動画にはいい会議への素晴らしいエッセンスがたくさん詰まっています。

普通のサラリーマンが素晴らしい会議をするのを見るよりアイドルが素晴らしい会議をするのを見るほうが精神的負荷も低いので、みなさんも是非この会議動画をバイブルにしてみてはいかがでしょうか。

ちなみに、水沢心愛さんはベボガ!解散後に沖縄でタピオカ屋さんのオーナーをしているそうです。これだけの会議ができるからこそオーナー業という新しい分野にチャレンジできるのでしょうね。本当に能力が高く、尊敬できる方だと思います。

mdpr.jp

今後も末永く応援していきたいと思っています。

tensorflowでベータ分布に従う乱数を生成する

はじめに

tensorflowでベータ分布に従う乱数を生成したくなるときがあります。(mixupのときとか)

しかし、tf.random_xxxのシリーズにベータ分布は入っていません。(tf.random_gammaはあるのに。。)

それで困っている人のために記事を書きます。

実装方法の紹介とヒストグラムを書いて確認、の2本立てで行きます

実装方法

tf.distributionを使う方法

ファイナルアンサーです

import tensorflow as tf
alpha = 0.2
beta = 0.2
random_beta = tf.distributions.Beta(alpha, beta).sample()

ガンマ分布に従う乱数を使用する方法

ガンマ分布に従う乱数 \displaystyle r1 \sim Gamma(\alpha, 1) \displaystyle r2 \sim Gamma(\beta, 1)を用いると

 \displaystyle \frac {r1} {r1 + r2} \sim Beta(\alpha, \beta)

という性質があるらしいです(下記リンク参考) k11i.biz

これを直接実装してもOKです。前者の方法に比べて、乱数生成アルゴリズムを明示できるのがメリットです。

しかし、ソースコードを読んだところtf.distribution.Beta.sample()内部で同じ実装を取っていたためtf1.9現在ではたぶんパフォーマンスに有意差はないです。したがって今現在この実装を取る必要はおそらくありません

import tensorflow as tf
alpha = 0.2
beta = 0.2
r1 = tf.random_gamma(alpha=alpha, beta=1.0, shape=())
r2 = tf.random_gamma(alpha=beta, beta=1.0, shape=())
random_beta = r1 / (r1 + r2)

確認

ヒストグラムを書いて確認してみました。

alpha, betaともに0.2の乱数を10000回生成したヒストグラムです。

このくらい形が似てるなら安心して使えそうですね(精神論)

numpy.random.beta(比較対象)

f:id:rskmoi:20180817224447p:plain
numpy

tf.distributionを使う方法

f:id:rskmoi:20180817224555p:plain
tensorflow(distribution)

ガンマ分布に従う乱数を使用する方法

f:id:rskmoi:20180817224646p:plain
tensorflow(gamma)

検証!日本にとってベストだったコロンビア-ポーランドのスコアはなに?

はじめに

いやーワールドカップ楽しいですね〜

柴崎ヤバい。乾鬼。大迫ポストプレーすごすぎ。こんなに楽しいならワールドカップ3ヶ月に一回くらいやってほしいですね。

ところで、日本-セネガル戦直後のツイッターを見ているとこんな声がちらほらあがっていました。

私の長年のサッカー観戦経験で大体の場合はどっちが正しいのかすぐわかるんですけど、今回はめちゃめちゃ難しかったです。

一体日本にとって一番良い結果はコロンビア-ポーランドが0-0で引き分けることなのでしょうか?それともコロンビアが1-0でポーランドを下すことなのでしょうか?

※サッカーあんまり見ていない人or後世の人へ:以下のような状況下で日本にとって最適なコロンビア-ポーランド戦の結果を探る問題です

※日本は初戦コロンビアに2-1で勝って(死ぬほどびっくりした)二戦目セネガルに2-2で引き分けています(死ぬほど興奮した)

Country Points matches win draw lose 得点 失点 得失点差 反則ポイント
日本 4 2 1 1 0 4 3 +1 -3
セネガル 4 2 1 1 0 4 3 +1 -5
コロンビア 0 1 0 0 1 1 2 -1 -6
ポーランド 0 1 0 0 1 1 2 -1 -1

最強に迷った挙句スコアレスドローがベストかな?と思ってツイートしたら案の定知り合いの先輩からコロンビア1-0ポーランドがベストじゃね?とご意見を頂いてしまいました。

考えていてもキリがないので、適当にモデリングして残り試合を全パターン計算してどっちがベストだったのかを探ってみました。そんな記事です。

検証

前提

  • どのチームの得点も、平均1.4のポアソン分布に従う(後述)
  • 得点の上限は5点
  • 順位決定ルールはFIFA公式ルールブックに準拠(原典探したの褒めてほしい)
  • 終戦はどのチームもカードをもらわない

検証内容

  • コロンビア0-0ポーランドの場合と、コロンビア1-0ポーランドの場合の2ケースについて、どちらのほうが突破確率が高いのかを計算したよ

  • 0-0のケース

Country Points 得点 失点
日本 4 4 3
セネガル 4 4 3
コロンビア 1 1 2
ポーランド 1 1 2
  • 1-0のケース
Country Points 得点 失点
日本 4 4 3
セネガル 4 4 3
コロンビア 3 2 2
ポーランド 0 1 3
  • 具体的には各チームの取りうる点数は0点〜5点の6通りなので、6 ** 4 = 1296通りのパターンにおける日本の順位を全部計算してポアソン分布の同時確率的な確率で掛け算して以下の2点を計算したよ
    • 日本の期待順位
    • 日本のベスト16進出確率(日本が2位以上になる確率)

検証結果

コロンビア0-0ポーランドの場合

  • 日本の期待順位: 1.7404
  • 日本のベスト16進出確率: 82.68 %

コロンビア1-0ポーランドの場合

  • 日本の期待順位:1.7471
  • 日本のベスト16進出確率: 89.58 %

まとめ

  • 期待順位はあんま変わんないけど、ベスト16進出確率がコロンビア1-0ポーランドのほうが7%ほどよい
  • 先輩すいませんでした
  • 以下解説記事です。興味ある人だけ読んでください。上に書いてある内容ほどライトな内容にするつもりです。

解説

てかもう終わったことなんだからさっさといまの状況(コロンビア3-0ポーランド)での日本の突破確率を教えてよ

ごもっとも

  • 日本の期待順位: 1.7965
  • 日本のベスト16進出確率:84.64 %

なんと84.64%の確率で突破できます

結局、両者の違いはどこ?

計算結果だけ見てもようわからんので、コロンビア-ポーランドの試合結果によって日本のベスト16進出が左右されるケースを抜き出してみました

コロンビア0-0ポーランドのとき突破、コロンビア1-0ポーランドのとき敗退

やっぱり1点差負けのときの上がりやすさはスコアレスドローに軍配が上がりますね。

ポーランドの総得点が低いので日本を上回りづらいんですね〜

コロンビア1-0ポーランドのとき突破、コロンビア0-0ポーランドのとき敗退

やっぱりどんだけポーランドにボコされてもセネガルさんがコロンビアさんをボコしてくれればいいという究極の他力本願ができるのがいいですね。

この究極の他力本願ができるからコロンビア1-0ポーランドのほうがいいんですね〜

あと、コロンビアさんがセネガルを鬼ボコしてくれればワンチャンあるのもでかいですね

期待順位があまり変わらないのなんで?

  • 1位になる確率がコロンビア0-0ポーランドのほうがコロンビア1-0ポーランドより圧倒的に高いからです

    • 終戦日本引き分けコロンビア勝ちのケースが前者だと1位後者だと2位なのが主要因ですね
  • コロンビア0-0ポーランドのとき:1位の確率 47.92%

  • コロンビア1-0ポーランドのとき: 1位の確率 35.71%

そう!だからベルギー回避を本気で狙うならコロンビア0-0ポーランドだったんですよ!!

でもこの辺暗算してTwitterでつぶやける人ひとりもいないし人間の限界を感じますよね。計算機の勝利。

ゴール数がポアソン分布とか何いってんの

  • サッカーのゴール数はポアソン分布で表現できるらしいですのでそれに従いました

gri.jp

  • 平均ゴールはなんか今回のワールドカップ予選の1試合あたりのゴールが2.8だって見たんで1チーム当たり1.4と考えました

  • 実際、対戦しているチーム同士の得点確率は独立なのかって言うと微妙かとは思いますが今回は強い気持ちで独立と仮定してモデリングしました

おわりに

世の中には以下のような記事があり、85%は迷信!みたいに言われています

news.livedoor.com

クラスのスクールカースト高いっぽい奴らが85%の話題で盛り上がってるとするじゃないですか?

そんなとき、このブログを有効活用して「いや、得点が平均値1.4のポアソン分布に分布すると仮定して突破期待値計算すると84.64%って出てくるんだよ、だから意外と85%ってのは的を射た数字なんじゃないかなって思うぜ。まあおれのプログラミング能力ならこの程度の計算一晩で余裕だったけどな」とキメればめちゃめちゃキモがられてスクールカースト最底辺待ったなしなのでみなさんもぜひためしてみてください。以上です。

好きな居酒屋を書いてブログ執筆のリハビリをする

この記事について

私が好きな日本国内の居酒屋を書くただそれだけの記事です。

有名チェーン店は書くまでもないと思って入れてないです。鳥貴族だいすき。

忙しい人は読まないほうがいいです。

基本ビールを無限に飲む人間なんでやたら酒についての言及が少ないです。

アウトプットの感覚を取り戻して明日から技術ブログを書きまくる、書きまくるんだ。。。。。

県別紹介

京都府

私が最も長く飲酒可能な年齢で過ごした都道府県

地球屋

https://tabelog.com/kyoto/A2601/A260201/26000751/

河原町徒歩数分

なんかバンドサークルの打ち上げとかで使ってそうな雰囲気だけどオタク大学生のおれもギリ入れる懐の広さがあった。

安くて料理がうまい、言うことなさすぎて本当に好きだった。しかしエノキのバター炒め以外の料理を覚えていない。

まじめや

https://tabelog.com/kyoto/A2601/A260401/26025841/

桂駅徒歩数十秒

1回しか行ったことないけど唐揚げなどの料理がいいかんじだった。

京都大学桂キャンパスの人が多そうでこの店で京都大学桂キャンパス関係の悪口は言えないなと思った。

神奈川県

私が二番目に長く飲酒可能な年齢で過ごした都道府県

ラーマヤナ

https://tabelog.com/kanagawa/A1401/A140101/14054431/

ドンキの横、アジア系居酒屋

言わずとしれた最強の店、中華街行くよりラーマヤナ行ったほうが脳が喜ぶ。

初めて行った時17:00すぎに適当に入ったら18:00までビール百円って言われたから急いで5杯位飲んだら酩酊しまくって20:00に二次会終えて解散になった。

アジア感あふれるメニューが300円均一で食べられるので横浜優勝という気持ちになる。意外とカップルがいるので注意。

まるりゅう

https://tabelog.com/kanagawa/A1401/A140102/14057966/dtlmap/

桜木町徒歩数分、串カツ

1次会で行ったこと一回もないけど2次会で無限に通いつめている。

串カツおいしいしモツとかホタルイカとか美味しかった気がする。

店名いま知った。

東京都

私が三番目に(以下略)

居酒屋竹子

https://tabelog.com/tokyo/A1309/A130905/13038087/dtlrvwlst/

飯田橋からちょっとあるく。和食居酒屋。

料理がうまい(蕎麦あるの嬉しい)し安いしお酒も美味しいし言うことないんだけどなによりも店構えがすばらしい。

一人30000円位する料亭に見えるので友達を連れて行くとビビっていて楽しい。でも入店の瞬間ちょっと自分も緊張する。

鰓呼吸

https://tabelog.com/tokyo/A1317/A131701/13100617/

中目黒すぐ。海鮮居酒屋。

料理美味しいのと結構日本酒の種類が多かった記憶がある。

このブログで紹介する居酒屋の中では一番金額行った記憶あるけど相応という感じがある。

なんでや

https://tabelog.com/tokyo/A1313/A131306/13101236/

東京テレポートからちょっとテレポートする。総合居酒屋。

お台場とかいう人が大量に存在する土地にありながら平日あんまり混んでないので研修中ずっと行ってた。思い出補正でランクイン。

千葉県

生まれ育った地

居酒屋 一九

https://tabelog.com/chiba/A1202/A120201/12001697/

西船橋徒歩数分、海鮮居酒屋

料理全部うまい、あとお酒おいしい、店の雰囲気よい。カツオの外側だけが揚がっているみたいな料理が忘れられない。

致命的に西船橋に用事がないのが痛い。

まとめ

  • 大学生も行けるけど社会人もいるくらいの店の雰囲気が好き
  • あんまり奇をてらわない和食系メニューが好き
  • これからも他人に迷惑をかけない程度にお酒を飲んでいきたいね、ハム太郎

将棋駒の寸法をしっかり計算したお

はじめに

ちょっといま趣味で将棋の画像認識のうんぬんかんぬんをやっていて、そのためにunityで将棋駒をつくったほうがいいっぽくなったんですね。そしたら意外と将棋駒の寸法をしっかり計算するのがむずいという学びを得たためここで私の作業を共有しようというエントリです。

将棋駒の寸法ルールを知る

将棋駒 寸法でググると、以下のサイトが出てきます。

駒博士のQ&A

どうも、将棋の駒界では

  • 底辺
  • 高さ
  • 底辺と横の辺がなす角度(底角とでもしましょうか)

の3つで定義されてるっぽいんですね。

しかしながら、この定義だと上の部分の角度が自由なので私のような美術センスなし人間はうまく3Dモデリングできないんですよ。

f:id:rskmoi:20180121103137p:plain

やっぱり駒の形が一意に決まる定義がほしいところです。

で、いろいろググっていると以下のサイトが見つかります。

www.i-tsu-tsu.co.jp

このサイトで、駒の角度の定義を知ることができました。

  • 頂角 144°
  • 中角(とでもしましょうか) 117°
  • 底角 81°

やっぱり中倉彰子先生は神

というわけで、将棋駒の寸法定義を上記2サイトを参考にまとめると、

  • 底辺の長さ
  • 底辺の長さと高さの比
  • 頂角 (144°が一般的)
  • 底角 (81°が一般的)

の4つの値があれば将棋駒の形が一意に決まることがわかりました。(※中角は五角形であることから導出できるので頂角と底角で十分)

定義から辺の長さや座標を計算する

この値を定義すれば駒の形が一意になるとわかったとはいえ、実際に各辺の長さや頂点の座標位置を計算するには結構がんばらなくてはなりません。

この記事にたどり着いた人はラッキーです。私ががんばっておきました。

f:id:rskmoi:20180121092953p:plain

上の図で言うところの

  • 角P
  • 角R
  • 底辺の長さc
  • 底辺と高さの比率μ

が既知の状態で残りの未知の値を求めようということになります。

あ、角は全部degreeでおねがいします

角Qを求める

鬼かんたんですね。

五角形の内角の和が540度であること、将棋駒は左右対称であることから

 \displaystyle ∠Q = \frac{540 - (∠P + 2∠R)}{2}

辺の長さa, bを求める

ちょっとめんどくさくなります。

まず、高さμcと辺の長さa,bの関係は

 \displaystyle μc = a \cos  (\frac{P}{2}) + b\sin (R)

ですね?次に、底辺cと辺の長さa,bの関係は、

 \displaystyle c = 2(a \sin (\frac{P}{2}) + b \cos (R))

となります。こいつらの連立方程式を解いてやればいいんですね。

両方の式に  \displaystyle b \cos (R)\sin(R) が現れるようにそれぞれ式変形すると

 \displaystyle μc \cos(R) = a \cos  (\frac{P}{2})\cos(R) + b\sin (R)\cos(R)

 \displaystyle \frac{c}{2}\sin(R) =  a \sin (\frac{P}{2})\sin(R) + b \cos (R)\sin(R)

上の式 - 下の式でbを消去して

 \displaystyle c(μ\cos(R) - \frac{\sin(R)}{2}) = a (\cos(\frac{P}{2})\cos(R) - \sin(\frac{P}{2}) \sin(R))

右辺はなんと加法定理の形になっているので(高校数学は神)

 \displaystyle c(μ\cos(R) - \frac{\sin(R)}{2}) = a cos(\frac{P}{2} + R)

 \displaystyle ∴ a = \frac {c(μ\cos(R) - \frac{\sin(R)}{2})}{cos(\frac{P}{2} + R)}

とすることでめでたくaをc,μ,P,Rで表せました。同様に

 \displaystyle b = \frac{c(\frac{\cos(\frac{P}{2})}{2}{ - μ\sin(\frac{P}{2})})}{\cos(\frac{P}{2} + R)}

各頂点の座標

点Pの座標を(0, 0)とすると、

 \displaystyle Q =  (± a \sin(\frac{P}{2}), -a\cos(\frac{P}{2})

 \displaystyle R =  (± \frac{c}{2}, -μc)

これで全部いけましたね。

こんな感じのオブジェクトができた(王将サイズ)

f:id:rskmoi:20180121103915j:plain

終わりに

とまあこんな感じで将棋駒のあれこれが計算できるわけです。

計算用スクリプトは近日中に公開するので、だれでも将棋駒の辺の長さを知ることができるようになります。ハッピーライフ。

それにしても高校数学はすごいですね。これで三角関数の加法定理なんか人生の役に立たないとか知った顔してのたまう高校生には「将棋の駒の寸法を計算するプログラムの可読性がめちゃくちゃあがるから役に立つんじゃオラ」と力強く主張できます。

それでは。(そろそろいい加減deeplearningの記事が書きたい)

富士山をナメているすべての若者たちへ

小学生にも登れるんだから元運動部のおれは絶対に富士山に登れるとナメた態度でいる皆様、こんにちは。

かくいう私も2週間前まではそんな人間の一員でした。このエントリは、富士山をナメていたせいで苦しむ若者を少しでも減らすために私の経験を赤裸々に語る慈悲にあふれたエントリです。

このブログは統計や機械学習のことを書いていく予定でしたしこれからもそのつもりですが、あまりにも21世紀を生き抜く上で必要なことだと実感したので記事にした次第です。

 

事のあらまし

基本情報

  • プロフィール:24歳男性、ここ2年(就職後)ほぼ運動をしていない
  • 登山人数:2名(同行者の友人はフルマラソンとか走れる体力を持っている)
  • 登山口:須走口
  • 予定行程:夜7:30頃バスで5合目まで行って、夜通し登って、ご来光を頂上で見て、下山
  • 登山経験:皆無に等しい

 

前日まで

  • 完全にあらゆる調査を同行の友人に任せる
  • 準備をほぼしない

 

当日(出発まで)

  • ようやく適当に準備をする
  • なんか体調が悪い気がしたが、さすがに家を出る
  • 5合目に到着する

 

5-6合目

  • 到着するなり全力で登り始める
  • 登り始めて少しすると、呼吸が整っているのに脈拍がえげつなくなる現象が起きる
  • 苦しい。ありえんつらみが深い

 

6-7合目

  • 休憩回数が増える。めちゃめちゃ友人に申し訳ない
  • ありえん頭痛みがすごい
  • 高山病を意識する
  • 雷雨がやばくなり、死を覚悟する
  • 死ぬよりはマシと、全力で7合目まで登る
  • 7合目の山小屋に泊まることにする

 

山小屋にて

  • シャワーなし!?ポカリ600円弱!?となる(常識の欠如)
  • 急いで登ったせいであらゆる高山病の症状が出て、泣きそうになる
  • 濡れたまま寝る
  • 寒気でぶるんぶるんする

 

翌朝〜下山

  • 完全に頂上を目指せる体調ではなくなっていたので、友人に下山を申し出る
  • 本当にごめん
  • 死ぬ気で歩いて下山

 

下山後(当日)

  • 帰宅後熱を測ると39度を超えている
  • ここ15年で初めて食事を残す
  • ありえん下痢がすごい

 

下山後(それ以降)

  • 会社を1日休み、病院に行くと高山病からのウイルス性胃腸炎のコンボを食らったのではという医師からの見解を得る
  • 下痢がひどく、ウイダーゼリーを超える固形物が食べられない
  • 熱が下がるまで2日
  • 固形物が食べられるようになるまで4日

 

反省とアドバイス

5合目到着までのアドバイス

そもそも、本当に富士山に登りたいのかを自問自答せよ

私は、なんとなく日本人として1回は富士山に登っておきたいという動機で登山を計画しました。

しかし、そこに登山に対する思いはありませんでした。

本当に登山をしたいという気持ちがあるかどうか胸に手を当てて考えてください。

土日は何もせずしっかり休んで平日の労働に備えるほうがよほど日本人にふさわしいです。

たくさんの人間で登ろう

企画段階で2名だったのは、ミスだったと感じています。

当日体調が少し悪いと感じたとき、2名だと断然キャンセルしづらいからです。

初心者は8名位で企画しておけばキャンセル・リタイアしやすいと思います。

余裕を持った計画をしよう

突然の雷雨やその他もろもろで計画が崩れることは多いのではないでしょうか。

初心者は慌てないためにも、夜通しぶっ続けで登る計画はしないほうがいいかもしれません。

 

登山時のアドバイス

高度順応を知ろう

富士山をナメているみなさんは高度順応という言葉をご存知でしょうか。

人間は突然気圧が変わると体に負担がかかるので、体を低気圧に慣らすことで高山病を防ぐための手法らしいです。

よくあるのが5合目まで登ったあと1時間位なにもせず過ごすとか最初の1時間はゆっくり登るとからしいですがこの辺はググってみてください。

私はロケットスタートしてしまいました。つらい。

全体感をつかんだ登山をしよう

富士登山は長時間かかります。

全体感を掴まずに登り始めると、自分がどのくらいのペースでどう登ればいいのかわからなくなってついつい早めのペースになってしまいます。

何時に何合目にいればいいという目安を持っておくと気持ちを楽にして登れるのではないでしょうか。

 

まとめ 

以上が私の経験と反省とアドバイスです。

高山病からの風邪は本当に泣きそうになるので、富士山はナメずに登ってください。

一番悲しかったのは、固形物を食べずに丸3日ほど過ごしたのに500gくらいしか痩せなかったことなのでダイエット目的だとしてもナメないほうがいいです。

と、ここまで富士山を悪者扱い?してきてしまいましたが、下山時に眺めた富士山の景色はとても美しく、なかなか他では見られない景色だと感動したのもまた事実です。

しっかりと準備をして、わたしが見られなかった山頂からの景色を眺めて来てください。