プロクラシスト

今日の寄り道 明日の近道

ファミレスのアレの体積を求めてみた

こんにちは、ほけきよです!

久しぶりに、ミラノ風ドリアを食べたいと思い、サイゼリヤに向かいました。 ミラノ風ドリアとなぜかアラビアータも一緒に注文しました。 それで料理が来て、レシート持ってくるじゃないですか。

ふと、アレが目の前に入ったんですよね、アレ

「これは、、、求めなければ!

っとなったので、早速紙とペンを出して計算しました

問題文

問題文は以下の通り

f:id:imslotter:20170522221358p:plain

難しく解く

まず真っ当に、解いてみましょう。高校3年生で学ぶ求積問題として解きます。 x = tとして、やっていきましょう!横から見ると台形、上から見ると円なので、それを使います。

はい、数式打つのがめんどくさいので今回も画像です。すみません。

出ました! \frac{a+b}{2}\pi r^{2} ですね1!綺麗な結果です( ^ω^ )

実は簡単に解ける

でもなんでこんな綺麗になるんでしょうね。その理由について考えるために、どうやってコレが作られるか、ちょっと思いを馳せてみましょう!

多分、こんな感じだと思います。

f:id:imslotter:20170522223649p:plain

これを見るともうわかると思いますが、一つの円柱から2つの同じアレが生まれるわけです。 つまり、(円柱の体積➗2)でOKですね!

\pi r^{2} (a+b)/2 = \frac{a+b}{2} \pi r^{2}

ほら、一緒の結果です。こっちの方が簡潔でわかりやすい!

実際のアレの寸法

アレで画像検索をかけると、実際の寸法らしいものが見つかりました。

f:id:imslotter:20170522231239j:plain
画像 : レシート立 *1

さっき求めた数式に適用すると、  \frac{5.5+8.5}{2}\times\pi \times3.0^{2}=197.82 (cm3) *2 となります。これでスッキリですね!

どっちがいいの?

最後にちょっとだけ真面目?な話を。 この二つの解法、どっちがいいのっていう話です。

入試の解き方は後者が良い

後者の解き方は優秀です。計算ミスも少ない簡潔な方法で解けました。 観点を変えて見ると、こうやって簡単に解決できることって以外に多かったりしますよね。 特に、綺麗な解になるときは、大抵このような簡潔な方法が眠っている気がします。

前者の解き方は汎用性に優れる

だったら後者のだけでいいのでは?と思う方もいるかもしれませんが、後者の解き方は、横から見て上下点対称という特別な場合にのみ適用できる方法なのです。もし切り口が曲がっていたら?そういう場合に、前者の解き方が活きて来ます。こういう風に定式化しておくと、たとえ切り口が曲がっている場合でも、体積を求めることができたりするのです。

一つの問題に対して、色々な解法を考えよう

どっちがいい解法かということはなく、どっちも理系には大事な能力なんですよね。 本質を見抜く力と、一般化する力。 数学の面白いところは、 答えは一つでもいろんな解き方ができるところです。

1+1が2になるよりも、2になるような数式を10個考える方が得るものが多いと思っています。

いろんな解法を考えるの、楽しいですよ! 皆さんもたまには身近なもので計算して見てはいかがでしょうか!!ではではっ!

新 物理の散歩道〈第1集〉 (ちくま学芸文庫)

新 物理の散歩道〈第1集〉 (ちくま学芸文庫)

*1:レシート立っていうんですねぇ…

*2:\pi=3.14としました

夜は短し歩けよ乙女 幻の『偽電気ブラン』を池袋で飲んだ

こんにちは、ほけきよです。

お昼に、「電気ブラン」を数日ぶりに飲みました。

40%という暴力的な度数とは裏腹な甘い口当たり。どんどん飲めちゃうので酔いの回りは早い。結構好きです。 そんな時、ふと「夜は短し歩けよ乙女」に出てきた偽電気ブランを思い出しました。

なんでも電気ブランを真似して作られた無色透明で芳醇、何杯でも飲める美酒 とのこと。

これは一度味わってみたいものです。

電気ブランが飲めるお店「bar moonwalk」

作品の中で出てくる、幻のお酒「偽電気ブラン」 幻かと思っていましたが、調べるとどうやら提供しているお店があるようです。 それが「bar moonwalk」

bar moon walk

どうやら公式に3/20-5/15までコラボしていたようで、オリジナルコースターのプレゼントもあったようです。

5/15だったら終了してるじゃん、はぁ...

というそこのあなたに朗報です! 電気ブランは裏メニューとして残される模様。

「お昼に電気ブランを飲んだし、夜は偽電気ブランを飲むしかない!」

というわけで、コラボ期間はすぎていたけど、足を運ぶことにしました。

行ってきた

今回行ったのは池袋東口店

bar moonwalk 池袋東口店 (食べログ)

電気ブラン李白

これが偽電気ブラン、名前は「李白

f:id:imslotter:20170521155536j:plain
(画像 : moonwaklブログより)

味は柑橘系。正直、電気ブランの原型は留めていないけど、まぁスッキリしていて美味しい。 これならいくらでも飲める気がする。李白氏よ、こんなので潰れちゃったのか…?? 電気ブラン系統の味を期待すると肩透かしを喰らいますが「柑橘系のカクテル」をイメージすると美味しいという味わいです。

黒髪の乙女

実はオリジナルコラボカクテルは他にもあります。

f:id:imslotter:20170521155609j:plain
(画像 : moonwaklブログより)

李白を飲んだなら黒髪の乙女でしょ!」というわけで注文

赤ワインをベースにした少し甘めのカクテル。サングリアがそれに近いかな。 それでもサングリアよりは赤ワインのほろ苦さがちょっと残っていたりして、黒髪の乙女のイメージを掻き立ててくれます。

とにかく安い

ここのバー、飲み物はALL200円です。ちょっとしたつまみは300円なので、かなり経済的。 チャージ料を400円取られますが、それでも数杯飲めば普通のお店より断然安く、いろんな種類のお酒が呑めます(°▽°)

注意点は、「場所によって結構バー内の雰囲気が違う」ってこと。 予めレビューを見たりtwitterをチェックするなど確認したほうがいいかもです。 私は池袋にある2店舗に行きましたが、2つとも大きく雰囲気違ってましたので。

夜は短し歩けよ乙女

正直私はオリジナルの小説を読んだことはなかったのですが、 予告編PVをみた時に、何があっても観に行く決意を固めました

www.youtube.com

だって、キャラデザが、四畳半のソレとほとんど同じでしたから!私は四畳半神話大系の大ファンで、今までに5回は通しで見ています。理知的な主人公の語り口と強烈に個性的なキャラクターの虜です。

かくメインキャラの対応はこんな感じ

夜は短し 四畳半
先輩
古本市の神様 小津
黒髪の乙女 明石さん
樋口さん 樋口師匠
パンツ総番長

結構四畳半ファンに寄せたな??という感じ。 *1

このキャラデザで映画を作られると、絶対面白いですし、観るしかないですよね。 観ました。めちゃくちゃ面白かったです。 少なくとも四畳半が面白いと思える人なら、確実に満足できると思うのでぜひ足を運んでみてください。そしてその夜にバーで偽電気ブランを一杯、なんてのも乙ですよ。ではではっ!

普通にコースター欲しかった...

*1:星野源の声優が心配だったが、割と最後の方は違和感なく聞けてよかった。

プラネタリウムで聞いたカラスの逸話が絶望的に切なかった

こんにちは、ほけきよです。

かねてから行きたかった、 名古屋市科学館プラネタリウム。行ってきました!

ロマンチックな星空鑑賞… と思いきや、そこで出てきた逸話が驚くほど切なく悲しいストーリーだったので、ご紹介します。

名古屋市科学館

www.ncsm.city.nagoya.jp

ここ、めちゃくちゃ面白いです。まさに理系ホイホイ。

科学に関する様々な原理を、子供達にわかるようにめちゃくちゃ工夫された装置が目白押しです。 子供達にもわかるようになっているのですが、大人たちも楽しめます

ウォォ、カルマン渦wwww

とか

歯車!!!インボリュート

とか

こっこれは...ベナール対流...!

とか言いながら童心(?)にかえっていました。多分一週間は楽しめると思います。 小学生くらいの子供がいる方は、連れて行ってあげてください。

そんな科学館の一番の目玉が、プラネタリウム。 なんと世界最大のプラネタリウムとしてギネスブックにも載っています。 そのせいもあり、前休日に行った時は満員で入れず…今回平日に行けるということでリベンジしました!

春の大曲線

ここのプラネタリウムは季節に合わせた星空と星の見方を教えてくれます。 今なら明々と輝く木星と、春の大曲線、が見頃らしいです。

国立天文台の画像をお借りしましょう。これが、本来5月に日本(東京)で見られる星空です。

f:id:imslotter:20170518225640j:plain

こう、北斗七星の柄杓の部分をグググっといい感じに持って行った時に通るのが、アルクトゥルスとスピカです! *1 この2つの星は夫婦星と呼ばれています。ロマンチック。 アルクトゥルスとスピカを一辺として、正三角形を作ろうとすると、デネボラがあるわけです。これが春の大三角と呼ばれているんですね。

春の大曲線のその先にある切なすぎる「からす座」

そんな有名な星たちからさらにグググっとカーブを描いたところにある正座、それが「からす座。」

夫婦星からのギャップが衝撃的すぎて、内容が頭に張り付いています。f:id:imslotter:20170519004735p:plain その切なすぎるストーリがこちら。*2

その昔、カラスは太陽神アポロンに仕える、人の言葉も話せる白くて美しい鳥でした。 しかし、アポロンによく嘘をついていたそうです。ある日のこと、カラスのついた嘘がアポロンの逆鱗に触れてしまいました。激怒したアポロンは、「カーッ!!」と気合を入れてカラスを黒色に変えてしまい、さらに空にはり付けてしまいました。空に貼り付けられたカラス、真っ黒なので夜空に映ることはありません。夜空に映るのは、はりつけに使った5つの釘だけです。これがからす座を作っています。 昔の美しい白色に戻りたい。賢いカラスは「アポロンが入れた気合と同じ掛け声をかければ、元に戻れるのではないか」と考えました。そのため、今でも街中で、気合の掛け声を掛け合っているのです。 (by プラネタリウムのナレーター)

なんと切なく悲しいストーリーなのでしょう。嘘をついたといえど、星座がはりつけに使った釘だなんて… ちょっとだけ、カラスに優しくなれる気がしちゃいます。

終わりに

ともあれ、他にも様々な面白い話もあったり、また満点の星空を見ることもできるので、本当におすすめです! 毎月内容が変わる充実っぷりなので、ヘビロテしても楽しそう。

今月は「隣の星へ」と行って、地球から最も近い星*3まで星間旅行をするという内容でした。スクリーンに投影されているのを忘れさせるような没入感が、本当に美しく素晴らしかったです。

また、来月は「6月「人工衛星60年」。気になる。名古屋に住みたい…

デートにも、友達とでも、一人でも楽しめるので、ぜひ行ってみてください。ではではっ!

*1:関係ないですが、スピッツのスピカ、大好きです。

*2:多分、諸説あります。

*3:プロキシマ・ケンタウリ。発見されたのが2016年8月と、最近のようです!

機械学習で使う指標総まとめ(教師あり学習編)

こんにちは、ほけきよです!

機械学習の基本は教師あり学習です。 でも、実際の現場ではいろいろ指標が出てきて「?」 ってなるので、一回本気でまとめてみることにしてみました!

教師あり学習の分類

今回は正解はカテゴリか意味を持つ数字かで場合分けをしてみた。 全体の指標のサマリーはこんな感じ(だと思っている。)

f:id:imslotter:20170517111553p:plain

※他にも大事な指標があるよ&これは間違っているのでは?? というコメントは絶賛受付中なので、教えてください。

二値分類

Aである or Aではない を分類

用語一覧表

用語 日本語 定義・意味
Confusion Matrix 混同行列 データを上手く分類できたかどうかを表す表。ここでは、列方向は正解、行方向は予測
True Positive (TP) 真陽性 正しいと予測して正しい
False Positive (FP) 偽陽性 正しいと予測して正しくない
True Negative (TN) 真陰性 正しくないと予測して正しくない
False Negative(FN) 偽陰性 正しくないと予測して正しい
Accuracy 全体正解率 予測に対して答えがどのくらいあってたか
{Accuracy = \frac{TP+TN}{TP+FP+TN+FN}}
Precision
(TPR)
適合率 正しいと予測したものうち、本当に正しいのは?偽陽性を低く抑えたい時に見る。病気じゃないと予測して病気だった場合とか困る。
Precision=\frac{TP}{TP+FP}
Recall 再現率 見つけるべきもののうち、正しく見つけることができたものの割合。Sensitivity(敏感度)ともいう。偽陰性を低く抑えたい時に見る。
Recall = \frac{TP}{TP+FN}
False Positive Rate 偽陽性 実際に正しくないもののうち、何%間違ったか。
FPR = 1-Specificity = 1-\frac{TN}{FP+TN}=\frac{FP}{FP+TN}
F-measure F値 適合率と再現率のトレードオフに対してそのバランスを見る値。
\frac{1}{F-measure}=\frac{1}{2}\left( \frac{1}{Recall}+\frac{1}{Precision} \right)
Weighted F-measure 重み付きF値 目的に応じて、PrecisionかRecallのどちらかを重視するなどを決めることも可能
\frac{1}{F-measure}=\frac{1}{1+\beta^{2}} \frac{1}{Recall}+\frac{\beta^{2}}{1+\beta^{2}}\frac{1}{Precision}
\beta=1F値, 0 \lt \beta\lt 1でRecall重視, 1 \lt \betaでPrecsision重視
Precision-Recall Curve * 横軸Recall, 縦軸Precisionでプロットしたもの。トレードオフの関係なので、単調減少なら良い。
ROC curve 受信者動作特性 横軸が偽陽性率, 縦軸が敏感度でプロットしたもの。(真陽性と偽陽性の関係性を示している)普通偽陽性が上がると真陽性も上がる(なんでも正しい!と言っときゃいい)ので、偽陽性が低い時に真陽性が1に近づくのが理想
AUC ROC曲線下面積 ROC曲線の積分値。理想は1
Logarithmic Loss 対数損失 確率で出力が出る時(ソフトマックス関数)などをそのまま評価する方式。

図解

f:id:imslotter:20170517094644p:plain

事例

事例1:果物の分類

みかん みかんじゃない
みかん 45 10
みかんじゃない 5 40
50 50
  • Acuraccy = (45+40)/(50+50) = 0.85
  • Precision = 45/55 = 0.82
  • Recall = 45/50 = 0.90
  • FPR = 1- 40/50 = 0.20
  • F-measure = (2×0.9×0.82)/(0.9+0.82)=0.85

こういう場合は、正しく分類できているかどうかが大事なので、Accuracyを見るのが良さそう。

事例2:ガンかどうかの検査

ガン ガンじゃない
ガン 8 90
ガンじゃない 2 900
10 990
  • Accuracy = (8+900)/(10+990) = 0.908
  • Precision = 8/(8+90) = 0.082
  • Recall = 8/(8+2) = 0.80
  • FPR = 1-90/990 = 0.91
  • F-measure = (2×0.8×0.082)/(0.8+0.082) = 0.148

こういうh場合、Precision(正解と判断したものが本当に正解か)は正直どうでもいい。精密検査をすればいいだけ。それよりもRecallが1より小さい方がまずい。ガンじゃないと判断して、ガンだったら訴訟モノなので、是が非でもここを1に持っていきたい。

ROC曲線の意味合い

ROC曲線で大事なポイントを一枚絵にしてみた。 f:id:imslotter:20170517120406p:plain

指標まとめ

  • 特定の閾値を設定せずに評価したい場合 -> ROC, AUC
  • 特定の閾値を設定して評価したい場合
    • Aである、Aでないの重要度が一緒の場合 Accuracy
    • Aであると言う事実が重要な場合
      • Aであると予測して、実際にAであった人の割合が重要(試験、再検査にコストがかかるなど)な場合 -> Precision
      • 実際にAである人をきちんとAと予測できているか(Recall)が重要(検知漏れが許されない) -> Recall
      • 両方を見たい場合 -> (weighted) F-measure

多クラス分類

使う指標はだいたい二値の時と同じだが、overallaverage, microとmacroという概念が出てくる*1

みかん りんご ぶどう
みかん 91 1 3
りんご 5 17 1
ぶどう 4 2 1
100 20 5

precision, recall, F-measure

参考 : Quara “What are some good error metrics for multi-class classification?”

SVMとかの分類面を一本引くというようなやつは、それぞれのクラスについて、クラスかそうじゃないかを分類していく(one versus othersもしくはone versus one)ので、それぞれのクラスにおいて表ができる。このような時の評価には、precisionやrecall、F-measureを使って評価することが良い。

F.png

  • micro precision : 一つのセル単位に着目
    \frac{TP(orange)+TP(apple)+TP(grape)}{TP(orange)+TP(apple)+TP(grape)+FP(orange)+FP(apple)+FP(grape)}
  • macro precision : 一つの表単位に着目
    \frac{1}{3}\left(\frac{TP(orange)}{TP(orange)+FP(orange)}+\frac{TP(apple)}{TP(apple)+FP(apple)}+\frac{TP(grape)}{TP(grape)+FP(grape)}\right)

他のrecallも同じ。

F-measureについては、micro/macroで出てきたprecisionとrecallの調和平均を取ればOK

acurracyも、イメージとしてはoverallがmicro, averageがmacroと捉えることができる。

計算するとこの通り

micro macro
Precision 0.856 0.613
Recall 0.856 0.653
F-measure 0.856 0.632
  • microは全体のデータ数を考慮する
  • macroは各クラスごとの影響はデータ数に関係なく等しいとしている。

見たいものが何であるかによって使い分ける

accuracy

one-versus-anotherではなくて、入力するとどのクラスかを当ててくれるような分類器(ニューラルネットなど)だと、ひとまとめの表で、次のようなConfusion Matrixを書くこともできる

f:id:imslotter:20170517111850p:plain

accuracyは、overall accuracyと、average accuracyがある

用語 定義・意味
overall accuracy 全体の精度
average accuracy 各クラスのaccuracyの平均。クラスを平等に扱う

上の事例を使うと、

  • overall\,accuracy = \frac{91+15+1}{100+20+5} = 0.856
  • average\,accuracy = \frac{1}{3}\left(\frac{91}{100}+\frac{17}{20}+\frac{1}{5}\right) = 0.653

average accuracyは小さな数の正確さも同等に評価するようになる。

logarithm loss

ニューラルネットとかは、予測モデルの出力が、そのクラスに属する確率で記述されることが多い(ディープラーニングで、出力層がクロスエントロピーの場合とか)。

そこで、Logarithm Lossという指標を用いることがよくある

f:id:imslotter:20170517103904p:plain

  • N : データの数
  • C : クラスの数
  • p_{ij} : i番目のデータが、クラスjに属する確率
  • y_{ij} : i番目のデータがクラスjに属するか否か(属していれば1, 属してなければ0)

p_{ij}はいわゆる分類器の自信のようなもので、これが高いほど自信を持って答えられていることになるので、lossは小さい、となる。このように、分類の結果だけを見るのではなく、分類に至った過程まで見るのがlogarithm loss

出力が数値(回帰)

カテゴリの1,2,…には意味はない。ここは意味を持つ値を予測したいときに評価するもの。

用語一覧

  • {y_i} : 正解
  • {y_{est}} : 予想の値
  •  \bar{y} : 平均
用語 日本語 定義、意味
Mean Squared Error 平均二乗誤差 f:id:imslotter:20170517103641p:plain
Root Mean Squared Error
RMSE
平均二乗平方根誤差 f:id:imslotter:20170517103736p:plain
Mean Absolute Error 平均絶対誤差 f:id:imslotter:20170517103358p:plain
Coefficient of Determination 決定係数 f:id:imslotter:20170517103534p:plain
回帰直線の当てはまり具合を示すもの。平均からのばらつきが分母にあり、相対値として与えられる。
AIC 赤池情報基準 f:id:imslotter:20170517104054p:plain
Lは尤度。kはパラメータの数。複雑なモデルは過学習を引き起こすので、その罰則というイメージ
BIC ベイズ情報基準 f:id:imslotter:20170517104134p:plain
nはデータの数
wAIC (渡辺?)AIC AICをより汎用的(母集団の正規分布を仮定しなくて良い)にしたもの

二乗誤差(MSE, RMSE)と絶対誤差(MAE)の使い分け

次の記事が考察として良さそうだった - MAE and RMSE — Which Metric is Better?

その中のこの表がうまく両者の差を表している

f:id:imslotter:20170517121558p:plain

軽く結論をまとめておくと

  • RMSEは大きな誤差にペナルティを与えるのに適している
  • RMSEは局所的な誤差に左右されやすい。MAEの方が平均的
  • 誤差としての解釈はMAEの方が明確にできる。RMSEはそれ自体が平均誤差を表している訳ではないので注意。

とのこと。

AICBIC, wAICの使い分け

  1. 有意なパラメータが容易に識別できるような場合 : BIC
  2. 有意性が微妙なパラメータもモデルに含めたい場合 : AIC
  3. 真の分布(標本集団)を何も仮定することなく使う : wAIC

データ数が多いとBICの第二項が効いてくる。

時系列問題

HMMやRNNなど、時系列データを分析することもある。そういうときによく使われる指標。

用語 日本語 定義・意味
MSE
RMSE
MAE
* f:id:imslotter:20170517103958p:plain
など、回帰問題の誤差を時系列方法に展開すると使える。基本的な誤差
Dynamic Time Warping
(DTW) Distance
動的時間伸縮法 2つの時系列の各点の距離を総当りで比較したときの、
系列同士の最短距離。時系列の長さが違う場合でも適用可能*2
Perprexity パープレキシティ \frac{1}{正解単語が選ばれる確率}
自然言語の分野でよく使われる(RNNの評価などでよく出てくる)参考記事
Regret リグレット 最適値からどのくらい(確率論的に)外れるか。
どっちかというとデータの評価というより
アルゴリズムの理論限界を示すのに用いられる。

参考になりそうなサイト

*1:間違っていたら教えてください。

*2:こちらのサイトがわかりやすい

【化学・元素記号】受験生必見!女性閲覧注意?必ず覚えられる語呂合わせ

f:id:imslotter:20170516090734p:plain

こんにちは!ほけきよです。

高校生の頃、化学を学んでいた人ならだれもが「水兵リーベ僕の船~~」と口走ったことでしょう。

エッ、なに???

ただでさえ元素というものがわからないのに、 あんまり意味をなさない文を覚えること自体、苦痛だったことでしょう。 しかも20までって…!しかも横に覚えるって…!!

今回は私が高校時代に教えてもらった、意味不明で古典的で非効率な語呂合わせに代わる語呂合わせ方法を伝授します。

必ず覚えられるし忘れません。それは高校化学を離れ十年、十数年?経つ私が覚えていることがその証です!! 化学に興味がある人も、ない人もぜひご覧ください。

典型元素は縦に覚えておこう

f:id:imslotter:20170512203334p:plain

典型元素(1,2,13-18属)は必ずに覚えておきましょう。化学的な性質が似通っているのが縦方向だからです!

ただし遷移元素(3-12属)はそんなこともありません。横のつながりのほうが強いとかも聞きますが。。。 なんせ高校化学程度の知識なので遷移元素のことはよくわかりません!!専門家求む!

語呂

1族 (H, アルカリ金属)

Hでリッチな母ちゃんが、ルビーをせしめてフランスへ

f:id:imslotter:20170516014620p:plain

欲望まみれのママですね。

2族 (アルカリ土類金属)

ベッドに潜って彼女とすればランランラン

f:id:imslotter:20170516014631p:plain

何をするんでしょうね。何を浮かれているんでしょうね^^

13族 

僕にあるのはイ○キンタムシ

f:id:imslotter:20170516014653p:plain

(自主規制)おぉ…お大事に。

14族

くさいゲロすんな

f:id:imslotter:20170516014701p:plain

その通り!

15族

日本の朝は酢豚とビール

f:id:imslotter:20170516014711p:plain

うんうん

16族

おっす、せっかく天気がいいのにぽーっとすんな!

f:id:imslotter:20170516195124p:plain

いいじゃないか、させてやれ?

17族 (ハロゲン)

ふっくらブラジャー愛の頭。

f:id:imslotter:20170516195151p:plain

詩的な表現。ステキ!

18族 (希ガス)

変な姉ちゃんある日くるってキスの乱発

f:id:imslotter:20170516014743p:plain

何をキメたんでしょうね。

周期表チートシート

チートシートも作ってみたので、よろしければどうぞ! 受験生諸君は、机の上に貼っておきましょう^^

f:id:imslotter:20170516195352p:plain

まとめ

いかがでしょうか。 パワーワードはやはり記憶に強く残ります。 元素が覚えられない高校生諸君、また高校生を教えている塾講師の皆さん 是非この語呂を取り入れてみてください。

また、元素に興味を持たれた方は、こちらの本が超絶おすすめです! 視覚的に楽しめるものになっていますので、化学好きじゃない方も、ここからは入れば好きになるかも?

世界で一番美しい元素図鑑

世界で一番美しい元素図鑑

ただし、相手を選ばないとセクハラでクレーム入れらるかもしれないから注意してね!ではではッ!

【Digio2 Q】Bluetooth対応トラックボールマウスはMacBookの救世主!

f:id:imslotter:20170514122113p:plain

こんにちは、ほけきよです!

仕事の効率をあげる上で、キーボードとマウスにはこだわりたいものです。

ノートパソコンを使っていても、たまに「アッ、マウスを使いたい」 となるときはあるのではないでしょうか。 私はパワポとかで図を作成しているときなどはよくそう思います。

今日は、そんなマウスの中でも、少しニッチなマウスであるナカバヤシのDigio2を紹介します!

マウスを選ぶ3つの基準

「動けば別になんでもいいでしょう」 という人が多いかもしれません。けれど、意外にいろんな種類があります。 今回は使い勝手に関わる、考慮すべき3種類のポイントをお教えします。

普通に動かすかトラックボール

トラックボールマウスは参入障壁が高いという人がいるかもしれませんが、慣れればめっちゃ楽です。 寝ながらマウス操作もできますし! ただ、細かい動きは普通に動かしたほうが直感的でやりやすかったりもするのでそこはトレードオフです。

トラックボールは慣れれば楽だし使いやすい

■ 普通のマウスは直感的で細かい動きが得意

有線か無線か

無線の方が卓上がスッキリしますが、電池交換が必要だったり、少し値が張ったりと、トレードオフはあります。 私はデスク周りにやたらと線を生やすのが嫌なので、無線派です。

あと無線でいえばレシーバをつけるタイプBluetooth通信対応タイプがあります。

■ 無線はコードがスッキリする分、少し値が張る

■ 無線にも、レシーバ型とBluetooth対応型がある

クリック以外のボタンはあるか

意外とブラウジングしているときとかは、戻る・進むボタンが便利だったりします。 ただ、誤操作してしまう可能性があって嫌という人もいます。

■ 多機能ボタンはブラウジングに便利

■ デザイン的に邪魔だったり、誤操作も起こる。

今回の要件

では今回はどういった要件でマウスが欲しかったのかです。今回欲しかったのは、

デスクトップにも、Macbookにも使えるトラックボールマウス

です。デスクトップに使えるトラックボールマウスなら、Logicoolが有名ですが、 MacBookとなると少し都合が悪いんです。

理由は、MacbookはUSB-Cポートしかないから。レシーバを差そうにも変換アダプタが必要になり、めんどくささとダサさ極まりない。 というわけで、Bluetooth型の無線トラックボールを探すことにしました。*1

Digio2 Q

上記要件を満たすマウスが、このDigio2 Qです。

Bluetooth接続なのでMacbookでもスムーズに使えます!! トラックボールマウスにしてはかなり小さい。手の中にすっぽり収まるサイズです。

進む・戻るの多機能ボタンも付いている!

使用感

使用感を箇条書きで書いていきます。

手になじむ大きさで持っていて疲れない。

フォルムも美しい、小さいので持ち運びにも良い

トラックボールはやっぱり使いやすい。場所をとらないし良い

戻る・進むボタンの配置が微妙。というかトラックボールと相性悪いかも

細かな動きはやはり難しい。動かしているときに引っかかるときがある

デスクトップで使うときの注意点

デスクトップでBluetooth対応していないPCでは、デスクトップにBluetooth通信のレシーバを差す必要があります

これがないと利用できないので注意!

まとめ

総合的には、買ってよかったと思えるものでした。

トラックボールを使ったことがない人は一度検討してみてはいかがでしょうか。

少し値は張りますが、結構いいもんですよ!ではではっ

関連商品

今回紹介したトラックボールマウス

特にBluetoothじゃなくていいからトラックボールを試してたいって方は、こちらも有名です!

LOGICOOL ワイヤレストラックボール M570t

LOGICOOL ワイヤレストラックボール M570t

試したことはないですが、こういう面白い形のトラックボールを使っている方もいます

関連記事

キーボードにこだわりたい方はこちらもどうぞ

*1:多機能ボタンの有無は正直今回はどっちでもよかったw

【武井壮最強説】武井壮が本当に『百獣の王』だと思うワケ

こんにちは、ほけきよです。

昨日、自由ネコさん(id:gattolibero)のこんな記事を読みました。

gattolibero.hatenablog.com

心・技・体の三拍子が揃っている小池栄子に死角がないということに、共感の嵐でした。 そして、このブログの最後に書いてある

逆に女性の側から見た時に、死角のない完璧超人的な男性芸能人といえば、誰を思い浮かべますか?

と。ここで、完璧超人的な男性芸能人として武井壮を挙げたいと思います。私は女性の側じゃないけど!!

私の本気で尊敬する人物の一人です。武井壮の「心技体」についてちょっと語ってみようと思います。

「猛獣と妄想で闘う人」程度しか知らない人は見ると印象がだいぶ変わると思います。

続きを読む

塾講師や教師をするときに意識するべき『理系教育のABC』

f:id:imslotter:20170512194201j:plain

こんにちは、ほけきよです!

私は数年間塾講師としてアルバイトをしていた経験があります。 難関として知られる東京の私立や国公立への合格実績も持っています。

中高生にとって受験は「人生を左右する大事なイベント」です。私は場当たり的な教え方で適当にお金を稼いでいる塾の先生を何人も見てきました。正直、人の人生を預かるものとしていかがなものかと思います。

私が親だったら、そんな人たちに教育のアウトソーシングはしたくありません。

というわけで、今日は教育(特に受験)に携わる皆さんに必ず気を付けてほしい『教育のABC』についてお話します!*1 特にこれからアルバイトをしようと思っている大学生諸君!ぜひ気をつけて欲しいです。

※理系の講師だったので、理系(特に数学)中心の内容になってます。予めご承知を。

“A” : Autonomy

f:id:imslotter:20170512193653p:plain

Autonomy : 自主性

私が思うに、これがもっとも大事です*2

教える時間より、それ以外の時間のほうがはるかに長い

からです。 1週間のうちの数時間で詰め込もうとしたって、無理です。数時間で詰め込められる天才なら塾なんて初めからいりません。 なので、教え子の自主性に訴えかけるような授業を意識することが大事です。

ではどうすれば自主性を高められる授業になるか。ポイントは2つあります。

■ 自分がその教科に対して楽しそうに授業をする

■ それがなんの為になるのかを具体的にイメージしてもらう

要はその教科を好きになってもらうことが重要なのです。その為には自分がその科目についてキラキラとした目で語り、 「この教科を知るとこんな素晴らしい世界が待っている」ということを体感させるのが一番手っ取り早いです。

また、具体的なイメージを持ってもらうことも重要です。抽象的な話を並べては、すぐに飽きてしまう人がほとんどです。 経験的には視覚に訴えかける方法か、生活とリンクさせる方法が有効です。 そのような例をいくつも用意しておきましょう!

Autonomyを植え付ければ、80%くらい勝ちも同然です。教え子の「やる気スイッチ」を押しましょう!

“B” : Bridge

f:id:imslotter:20170512193700p:plain

自主性を植え付けることに成功したら、次は「何を教えるか」にフォーカスします。 (ここでは大学入試問題&数学を主にイメージして話します。)

大学入試で難しい問題ってどういう問題でしょう。

「計算がややこしい」「難しい単語がめちゃくちゃ出る」

と思う方もいますが、実はそうではありません。なぜかというと、それでは誰も解けず差がつかないからです。 特に難関大学の入試において、重視されるのは知識じゃなくて知恵の方です。

Autonomyが芽生えた子というのは、自分の意思で勉強を始めてくれます。 しかし、学び始めの分野は、どうしても暗記項目が多くなってしまいます。 これだけではさっき言ったように知識を積むだけになり、また単調な作業なのでモチベーションも低下します。

なので、塾で教えるべきは分野と分野がどのように繋がっているかです。

  • グラフも微分も学んだ → 接線ってどうやって求めるの?
  • ベクトルも積分も学んだ → 体積ってどうやって求めるの?
  • 確率も漸化式も学んだ → 銀行の破産確率ってどうやって求めるの?

などなど…分野の断片的な知識を繋ぐ橋渡しをしてあげなくてはなりません。 ここを丁寧に教えてあげることで、メキメキと力もつきますし、また学問の面白さも教えられるでしょう。

■ 知識は自分たちで獲得してもらう。教えるべきは知恵

■ 単元の間を繋ぐ橋をかけてあげる必要がある

“C” : Check

f:id:imslotter:20170512193714p:plain

ここまでが、教え方のほとんどですが、最後に大事な要素を一つ。 「常に生徒の実力を確かめる」ということです

x^{2} = 1 を丁寧に教えて、「わかった!!」って言ってたのに、 x^{2} = 2になると解けなくなる。

なんてことがよくあります。これは、「生徒が全くわかっていない状態」だからです。 生徒の「わかった」は、大学生の「行けたら行く」と同じくらいの信用度だと思っていてください。

この状態で先に進んでしまっては、成績が壊滅的な結果になってしまいます。 防ぐ為には、

  • 単元の問題の難易度を小刻みに分解しておく
  • 難易度ごとに問題を解かせて、理解度をしっかりとチェックする

ことが大事です。さっきの例だと

  • 2-3個数を変えてみてチェックする
  • 難しい因数分解を解かせる
  • 解の公式が必要な問題を解かせる

など、なるべく刻み、理解の壁を超えたかを常に確認しましょう。

■ 生徒のわかったを信用してはいけない

■ 小刻みに難易度を分解し、その都度マメにチェックする

最後に

いかがですか?「難しそう…」と思った方も多いと思います。

当たり前です。モノを教えるというのは難しいものなのですから。参考書を解かせて解説するだけが先生じゃありません。

逆に、これらができている人はかなり少数なので、きちんとできると、教え子の成績はめきめきと伸びていきます。給与もめきめき上がる(かもしれません)よ!*3その成長曲線を見てみたい方は、是非実践してみてください!ではではっ

*1:ABCでまとめてみたかったのです..!

*2:それでもABCでまとめてみたかったのです…!!

*3:私は1円も上がらなかった…

孫悟空の戦闘力を回帰分析で予想したら凄まじかった。

f:id:imslotter:20170510202739p:plain

こんにちは、ほけきよです!

「私の戦闘力は53万です」

なんてもうミジンコ程度の戦闘力。学校のクラスならイジメの対象です。 現在放映中のアニメ『ドラゴンボール超(スーパー)』、キャラのインフレっぷりがのぶっ飛んでいて面白いです。

www.toei-anim.co.jp

そのアニメの中で、特に悟空の戦闘力の伸びが半端なさすぎる件について、 理系の目線でフォーカスしてみたいと思います!!

戦闘力の系譜

この記事に、戦闘力の系譜が載っていましたので、今回はこのデータを使いたいと思います

matome.naver.jp

(最後の方は、結構予想が入っていて信ぴょう性は…ですが、気にしないでいきましょう!)

戦闘力の伸びをグラフにするとこんな感じです。

f:id:imslotter:20170510202236p:plain

パナイ。。。 このままでは何が何だかわからないので、代表的な年と戦闘力を表にしておきます。

戦闘力 イベント
0 2 生まれる
16 260 ピッコロ大魔王
25 32000 ベジータ襲来
25 1.5億 フリーザ襲来(スーパーサイヤ人)
30 95億 セル襲来
37 1400億 魔人ブウ襲来(スーパーサイヤ人3
41 40兆 ビルス(スーパーサイヤ人ゴッド)
41 55兆 ゴールデンフリーザ襲来(超サイヤ人ゴッド悟空(スーパーサイヤ人)

パナイ。。。

予想してみる

とりあえず線形に合わせてみる(最小二乗法)。

オリジナルのデータのグラフは上記の通りですが、 どう考えても線形ではあわなさそうです… とりあえず、sklearnを使って回帰直線を引いてみましょう。

sklearn.linear_model.LinearRegressionを使えば、簡単に回帰を実行してくれます。素晴らしい! (コードは最後に付与します)

f:id:imslotter:20170510201315p:plain

全く合っていない…笑 当てはまり具合を示す決定係数R*1をみても、0.34程度と、全然ダメなことがわかります。

どう見ても非線形なグラフなので、しょうがないですね。

ログスケールでグラフをプロットしなおす

このままじゃどうしようもありません。戦闘力の伸びが半端ないので、とりあえず対数スケールにしてみます。 戦闘力にlog(底10)を施して、回帰を行いましょう。

結果はこちら f:id:imslotter:20170510201402p:plain

どうでしょう?かなりそれっぽい当てはまりかたをしてますね!!! 決定係数も0.89となっているので、いい感じに線形回帰ができたと言っていいのではないでしょうか。

1週間/1年でどのくらい成長するの?

はい、回帰曲線を引けたので、これからどのくらい成長できるかを予想することができます。 例えば、最近話題の「力の大会」*2。 これだと1週間後に試合なので、それまでに鍛えるということになります。 先ほどの回帰直線を式に直すと

f:id:imslotter:20170510201433p:plain

つまり、一週間で戦闘力が何倍に伸びるかを計算するためには

f:id:imslotter:20170510201448p:plain

を計算すればいいのです。すると

  • 一週間 1.7%アップ
  • 一年 250%アップ*3

となる計算です。 通常の人間の1.7%アップだと大したことないかもしれませんが、悟空の1.7%アップはなかなかやばそうですね…戦闘力にすると一週間で約1兆5000億の伸び。フリーザ換算にするとフリーザ30万体分ですね1!!どうなってんの???

50歳での悟空の戦闘力は?

最後に、回帰直線を外挿して、50歳の悟空の戦闘力を予想してみましょう。 先ほどの式に50を当てはめるだけです。計算結果は…

50000000000000000

です。5。スーパー意味不明。地球滅亡ワロタ。

【考察】なんでlogスケールになるんだろう。

ここまでで、logスケールにすると当てはまりが良く、予想できそうだということがわかりました。 どうしてlogスケールだと当てはまりが良いのか、精神物理学を引っ張ってきて考察してみましょう。

精神物理学の分野では、ヴェーバーフェヒナーの法則というのが基本法則としてよく知られていて、

「人の刺激に対する感覚の変化具合は、その時の刺激の大きさによる」

と、されています。超簡略化した数式に表すと、こういう微分方程式になります。

f:id:imslotter:20170510201536p:plain

この方程式は簡単に解けて*4、その解にlogが現れます。このようなグラフになります。

f:id:imslotter:20170510201558p:plain

  • 100円しか持っていない人が200円をGETする感覚と、100万円持っている人が200万円をGETする感覚は等しい
  • 1回目のデートと10回目のデートが同じだと飽きられる

ということを示唆しています。そんな気もしますね!

人の感覚に関わる様々な単位系でlogスケールは用いられていて、音の大きさを表すデシベル(db)、地震の大きさを表すマグニチュード(M) なども、logスケールです。

これを元にすると、戦闘力の伸びがこのように爆発的になっているのも頷けます。 読者が常に「オッ、また戦闘力が伸びたな!」と思うためには、

“どのくらい戦闘力を増やす"ではなく、むしろ"戦闘力を何倍にする”

という考え方の方が理にかなっているというわけです。これは作者自身にも言えることなので、 自然にlogスケールで戦闘力が伸びるようになっているのでしょう。

まとめ

いかがでしたか? これを予想しといてなんですが、正直ドラゴンボールは予想不可能です!w

だって、強い敵が出たらそれを超える強さが必要なんだもん…

初期から見ている私にとっては、「エッ、そこの設定まで変えちゃうのか…!」などと なかなか突っ込みどころ満載、けれどドラゴンボールらしくワクワクするような内容の作品になっています。

その困惑と期待っぷりは、過去記事に書いているのでそちらもご覧になってください。

昔のキャラがリメイク(?)されて出てきたりするので*5、気になる人はみてみるといいかもしれませんね! ではではっ!

ドラゴンボール超 1 (ジャンプコミックスDIGITAL)

ドラゴンボール超 1 (ジャンプコミックスDIGITAL)

コード

#coding:utf-8
import numpy as np
import pylab as plt
from sklearn.linear_model import LinearRegression


#データ (年, 戦闘力)
data =  [(737,2),(749,10),(750,100),(753,180),
            (753,260),(756,910),(761,1040),(762,8000),(762,3.0E+4),
            (762,30E+4),(762,90E+4),(762,300E+4),(762,1.5E+8),(764,2E+8),
            (767,5E+8),(767,9E+8),(767,12E+8),(767,66E+8),(767,95E+8),
            (767,300E+8),(774,350E+8),(774,1400E+8),(774,2.52E+12),(778,40E+12),
            (779,55E+12),(779,75E+12),(779,90E+12)]

# 回帰を実行する
def regression(t,f,fit_intercept=True):
    t = np.array(t).reshape(-1,1)
    f = np.array(f).reshape(-1,1)
    clf = LinearRegression(fit_intercept=fit_intercept)
    clf.fit(t,f)
    print(clf.coef_)        #回帰係数
    print(clf.intercept_)   #切片
    print(clf.score(t,f))   #決定係数
    return clf.coef_,clf.intercept_

# グラフを書く
def visualize(ages,powers,intercept=True):
    a,b = regression(ages,powers,intercept)
    year = range(51)
    if intercept:
        pred = [a[0,0]*t+b[0] for t in year]
    else:
        pred = [a[0,0]*t+b for t in year]
    plt.plot(ages,powers,"o-",label="data")
    plt.plot(year,pred,label="regression")
    plt.xlim(0,45)
    plt.grid()
    plt.legend(loc=2)
    plt.show()

# 年から年齢に変換
# (ほんとは途中死んだりしているのでアレなのだが、割愛!)
ages = [elm[0] - data[0][0] for elm in data]
# 戦闘力
powers = [elm[1] for elm in data]
visualize(ages,powers,intercept=False)

# 対数スケールの戦闘力
log_power = [np.log10(power) for power in powers]
visualize(ages,log_power,intercept=False)

*1:決定係数に関する詳しい解説はこちら:決定係数とは?

*2:全宇宙の天下一武道会みたいなものです

*3:計算ミスがありました。id:Drgorillaさん、ありがとうございます!

*4:きちんと解くには初期値などはいるのですが、少し省きます

*5:ゴールデンフリーザとか

【einsum】アインシュタインの縮約記法のように使えるnumpyの関数。性能と使い方を解説。

f:id:imslotter:20170508210354p:plain

こんにちは、ほけきよです。

大学で物理*1を嗜んだ方ならわかるであろうEinsteinの縮約記号。 計算の上で色々省略できるしとにかく慣れれば色々便利な記法です!

物理学者以外には馴染みがなく微妙かもしれませんが、「便利そうだな〜〜」と思って使ってみたり試してみたりしたので、メモとしてまとめておきます。誰かの参考になれば幸いです。

einsum

Einstein(アインシュタイン)の縮約記法風に足し合わせができるnumpyの関数

縮約記法とは

たとえば、行列 A=a_{ij}B=b_{jk} っていうのがあって、行列の演算をしたいときバカ正直に書くと AB=\sum_{j=i}^N a_{ij}b_{jk}という風に計算される。 こういう演算で、\Sigmaが大量に出てきすぎるので、「じゃあ略してしまえ」となった。

ルールは

  • 同じ記号のところは足し合わせる。

これだけ。さっきの足(a_{i}iの部分)が

便利なのは、足の数が3つ以上ついている*2テンソル計算も簡単にできるということ。 物理学の世界(相対論など)では、この高次テンソルでの計算がたくさん出てくるため

「そんなに\Sigma書いてられるか!」

ということで、略される。

  • 行列演算(行列A=a_{ij}, B=b_{jk}) -> c_{ik} = a_{ij}b_{jk}
  • ベクトルa_{i}b_{j}内積 -> c = a_{i}b_{i}
  • 行列A_{ij}のトレース -> T = a_{ii}

文法

np.einsum('今ある足'->'残したい足')

これだけじゃいまいちわからないと思うので、実際に使ってみる。

行列(単体)

1つの行列で色々計算してみる

import numpy as np
# 行列を作る
a = np.arange(25).reshape(5,5)
b = np.arange(25).reshape(5,5)*2
print("A = ",a)
print("B =", b)

>>> A =  [[ 0  1  2  3  4]
>>> [ 5  6  7  8  9]
>>> [10 11 12 13 14]
>>> [15 16 17 18 19]
>>> [20 21 22 23 24]]
>>>B = [[ 0  2  4  6  8]
>>> [10 12 14 16 18]
>>> [20 22 24 26 28]
>>> [30 32 34 36 38]
>>> [40 42 44 46 48]]
np.einsum("ii",a) #60
np.einsum("ii->i",a) #[ 0,  6, 12, 18, 24]
np.einsum("ij->i",a) #[ 10,  35,  60,  85, 110]
np.einsum("ij->j",a) #[50, 55, 60, 65, 70]
np.einsum("ij->ji",a) 


>>> array([[ 0,  5, 10, 15, 20],
>>> [ 1,  6, 11, 16, 21],
>>> [ 2,  7, 12, 17, 22],
>>> [ 3,  8, 13, 18, 23],
>>> [ 4,  9, 14, 19, 24]])

行列演算その①

2つ以上の行列の演算を行う(使うのはさっきのA,B)

np.einsum("ij,jk->ik",a,b) #AB
np.einsum("ij,jk->ki",a,b)  #BA 足(ik)が変わったのに注意
np.einsum("ij,ij->ij",a,b) #いわゆるアダマール積

ベクトル演算その②

ベクトルの演算も、行列とほぼ同様にできる

v1 = np.arange(3)       #[0,1,2]
v2 = np.arange(3)+1   #[1,2,3]
np.einsum("i,i",v1,v2) #内積
np.einsum("i,j->ij",v1,v2) #直積

レビチビタ記号とその応用(行列式逆行列外積)

テンソル表記の時に気になるのが、行列式逆行列外積の計算ってどうするのよ??ということ。 こういう時に便利なのがレビチビタ(Levi Civita)記号。定義は以下の通り

hogehoge

3次元以上空間の時には、この記号が計算をスッキリまとめられて便利。 これを使うと、einsumの枠組みでより多様な計算が実現できる

ただし、レビチビタ記号は調べた範囲では実装されてなさそう?*3なので自分でつくる

# using "Levi civita symbols" (As long as I search, there is no built-in function)
eijk = np.zeros((3, 3, 3))
eijk[0, 1, 2] = eijk[1, 2, 0] = eijk[2, 0, 1] = 1
eijk[0, 2, 1] = eijk[2, 1, 0] = eijk[1, 0, 2] = -1

外積(Cross Product)

c^{k} = \epsilon_{ijk}a_{i}b_{j}

v1 = np.arange(3)
v2 = np.arange(3)+1
cross_numpy  = np.cross(v1,v2)) 
cross_einsum = np.einsum('ijk,i,j->k', eijk, v1, v2))

行列式(Determinant)

  • Levi Civitaを使った行列式の公式(3×3)

f:id:imslotter:20170508203507p:plain

A = np.arange(9).reshape(3,3)
det_numpy  = np.linalg.det(A)
det_einsum = np.einsum('ijk,i,j,k',eijk,A[0],A[1],A[2]) #0

※ ちょっとだけややこしい?でもスッキリはしているし、規則性があるから拡張も容易。

逆行列

あぁ、ややこしきCramer's fomula

こいつを使うと、Levi-Civita記号を使って行列演算で逆行列を求められる (4次元以上は高次のLevi-Civita記号への拡張が必要(後述))

# inverse(逆行列)
A = np.arange(9).reshape(3,3)
A[0,0] = 1
# numpyの実験コード http://d.hatena.ne.jp/sleepy_yoshi/20120513/p1
inv_numpy1 = np.linalg.inv(A) #numpy 
inv_numpy2 = np.linalg.solve(A, np.identity(3)) 
det_einsum = np.einsum('ijk,i,j,k',eijk,A[0],A[1],A[2])
inv_einsum = np.einsum('ijk,pqr,qj,rk->ip',eijk,eijk,A,A)/(2.0*det_einsum)

高階/高次への拡張

高階(足の数が多い)かつ高次元のテンソルに対しても、イプシロンを定義することにより、計算が可能(Generalized Edinton's Epsilon) Wikipediaに書いている(エディントンのイプシロン) これで任意の次元で上記式が使える*4

性能比較

速度、実際のところbuilt-inのnumpyと比べてどうなのか、ちょっと測ってみる 今回測るのは

  • 内積計算 : (1,1,....,1)同士の内積を10000回計算した時の時間(1-100次元)
  • 行列演算1 : 要素が1のN×N行列の積を10000回計算
  • 行列演算2 : 要素が1のN×Nの行列(AB)Cを100回計算
  • 外積 : (1,1,1)×(1,1,1) を10000回計算
  • 行列式 : np.arange(9).reshape(3,3)の行列式を10000回計算
  • 逆行列 : np.arange(9).reshape(3,3)の[0,0]成分だけ1に変換した行列の逆行列を10000回計算

また、測ったPCのスペックは - OS : Mac OSX - プロセッサ : 1.3GHz Intel Core M - メモリ 8GB 1600MHz DDR3

弱いスペックのマシンなので、参考程度にどうぞ

内積計算

numpyの方が2倍くらい早い。 f:id:imslotter:20170508204445p:plain

コード*5

%matplotlib inline
import matplotlib.pyplot as plt
import time
### 内積
time_num = []
time_ein = []
d = 101
iteration = 10000
for N in range(d):
    a = np.ones(N)
    b = np.ones(N)
    np_start = time.time()
    for _ in range(iteration):
        np.dot(a,b)
    time_num.append(time.time()-np_start)
    ein_start = time.time()
    for _ in range(iteration):
        np.einsum("i,i",a,b)
    time_ein.append(time.time()-ein_start)
plt.plot(range(d),time_num,label="builtin")
plt.plot(range(d),time_ein,label="einsum")
plt.xlabel("dimension")
plt.ylabel("time")
plt.xlim(0,100)
plt.savefig("inner.png")
plt.legend()

行列演算1 : 要素が1のN×N行列の積

左が1-100次元。右が1-20次元。次元が高いところではnumpyの圧勝 f:id:imslotter:20170508204718p:plain

行列演算2 : 要素が1のN×Nの行列の(AB)C(3つの積)

左が1-100次元。右が1-5次元。圧勝具合がさらにひどい f:id:imslotter:20170508204741p:plain

ちなみに3つの行列の積をeinsumでかくとこう

 np.einsum("ij,jk,kl->il",a,b,c)

外積 : (1,1,1)×(1,1,1)

numpy :  0.21898913383483887  
einsum: 0.04619288444519043

einsumに軍配。

行列式 : np.arange(9).reshape(3,3)の行列式

numpy :  0.14093804359436035  
einsum: 0.06131696701049805

einsumに軍配。

逆行列 : np.arange(9).reshape(3,3)の[0,0]成分だけ1に変換した行列の逆行列

np.linalg.inv    : 0.15855097770690918 
np.linalg.solve  : 0.27668190002441406  
einsum           : 0.45436620712280273

numpyに軍配

まとめと感想

  • 高次元になると圧倒的に計算時間がかかる
  • 低次元(d<10)程度なら2アバイ程度の計算時間
  • 外積行列式だけは組み込みより早い
    • ただし、レビチビタをつかって行列演算をnumpyですると、ソッチのほうが早いかも。

高次の行列演算がバンバン出てくる機械学習などには少し不向きかなと思う。 ただ、 ​ - 低次元では遜色ない計算量 - 直感的な表記での計算が可能 ​ なことを考えると、物理系の演算で用いるのはいいかもしれないです。。 高階のテンソルになると、どの足を消すんだっけ?とか面倒なことになるので。 ​ 慣れている表記法でそのまま計算できるのは、ミスも少なくなりますしね。 ​ 何かの物理計算をちょこっと確かめる時とかに、使ってみてはいかがでしょうか。ではではっ! ​

*1:相対論とかテンソルとかかな

*2:この足の数が多いのを"高階"という。高次元とは別

*3:あったら教えて欲しい...

*4:しかし、4次元の外積ってどうなるんだ??

*5:この後ほとんど同じコードなので、省略

【LINEスタンプ】英語スラングの全訳チートシートを作ってみた!

f:id:imslotter:20170221204037p:plain こんにちは!ほけきよです。

みなさんは、LINEスタンプを使いますか?? 私はめっちゃ使っています。よく課金してスタンプを買ってます!

それはちょっと置いておいて、 LINEは、デフォルトの絵文字が充実していることはLineを使っている方々はよくご存知だと思います

こんなのだったり

f:id:imslotter:20170221204205p:plain

こんなのだったり

f:id:imslotter:20170221204223p:plain

よく感情を表しているなと思うものから、意味不明なものまで、幅広いラインナップが良いですね。

今日はそんな中でも、英語の絵文字(英語スタンプ)について触れてみます

LINEの英語スタンプ

結構たくさんあります。 全110語

でも、純ジャパで全部の意味がわかる人って少ないんではないでしょうか。

スラング*1がほとんどなので、意味もわからず雰囲気で使っていると、 あとで色々と面倒なことが起きたり、辛い気持ちになったりするかもしれません。

なので、使いたい!っていう人に、これらの意味を全部まとめてみました!

これが日本語訳だ!英語スタンプチートシート

というわけで英語スタンプチートシート です! 少し小さいですが、英語のスタンプの下に意味をのせたものをまとめてみました。 英語スタンプチートシートとして机の片隅にでも貼ってください!!

f:id:imslotter:20170221193603p:plain

略語解説

以下、あまり聞きなれないだろう言葉について解説をしてみます。チートシートを見て、気になった方は気になるところだけ参照してください。

略語たち

略語 正式 意味
ASAP as soon as possible なるべく早く
BRB be right back すぐ戻るね
FAM family マブダチ
FOMO fear of missing out 好機を逃したくない
ネットでよく使う
FYI for your information ちなみに
G2G got to go じゃあね
ネットで落ちる時によく使う
JK just kidding 冗談だよ
LMK let me know 教えてね
TBT throw back Thursday 金曜日は忙しいから
木曜日に余裕を持って振り返る
WTF What the fuck 何だよこれ?
XOXO hug and kisses 親しい人に使う

知らないものも多いぞ…! LINEで採用されているだけあって、ネットでよく使うslangが多いみたいですね。

最高!って時に使うもの

  • COOL, RAD : かっこいいものに
  • Cute : かわいいものに
  • DOPE : かっこいいもの、気に入っているものに使う
  • EPIC : スケールのでかいものに対して使う
  • SICK

それぞれニュアンスが少しずつ違う。Sickなどのネガティブな言葉もSlangではポジティブな言葉になったりしていて面白いですね!

クソッ!って時に使うもの

  • BAD ASS : ムカつくやつに
  • DANG : Damn!がちょっと変わってこうなったっぽい
  • DERP : ばーか、と馬鹿にするときに使う
  • FML : fuck my lifeの略。何もかも思い通りにいかないときに使う
  • LAME : つまらないというニュアンス
  • PISSED : ムカつく!というニュアンス
  • RAGE : 激昂してるときにつかう

これもいろんな言い方があるんですねー!

人を呼ぶ時に使うもの

  • DUDE : 仲のいい人とかを呼ぶ時に使う
  • SLICK : 見知らぬ人に声をかけるとき。「あの…」的なニュアンス

こういうのもあるのか…!

普段とは違う意味で使ったりする

単語 元の意味 Slang的用法
Chill 寒い 冷静になろう
EAT 食べる ムカつく
HOT 暑い セクシー
MAD 怒る めっちゃ
SHARP 尖っている OK, ぴったりに
TIGHT きつい かっこいい

たまにyoutubeとかのコメントに外国人が書いているのを見かけますが、 こんなの知ってないとわからないですよねぇー。

擬音語っぽい奴

EW, HMM, OOF, SUP, UGH,
UM…, WOAH, WOW,
WOMP WOMP WOMP, YUP

殴る音がWOMP WOMP WOMP??と思いますが…文化の違いですね!

ちょっと綴りを崩しているもの

  • DAT → that
  • NAH → No
  • See ya → See you
  • Y NOT → Why not
  • SUX → Sucks

略すの大好きなアメリカ人。"See you"は"c u", “because"も"caz"なんて略したりしますよね。

終わりに

英語が得意な人でも、海外経験がない人は、あまり聞きなれない言葉も多かったのではないでしょうか。 私もよく知らない言葉がたくさんありました。

今はネットで海外の人のコメントを見る機会も多くなってきました。日本で若者言葉が流行っているのと同じように、 海外でも若者中心のslangはよくネット界隈で使われています。

こういう言葉もあるんだなと少しでもお役に立てれば幸いです。ではでは!

*1:俗語、カジュアルすぎる言葉

『羅生門』垂涎の上カルビ!寺門ジモンも愛する四ツ谷の名焼肉店!

こんにちは!ほけきよです。

連休いかがお過ごしでしょうか。

ブロガーといえば肉ですね。連休中くらいうまいものを食わねば。ということで、行って参りました。

羅生門

デキる友人が予約してくれたおかげで、素敵なごはんになりました!今日は紹介していきます

寺門ジモンも行きつけ!?『羅生門 四谷本店』

『芸能界一のグルメ通』として知られる寺門ジモンさんの冠番組「寺門ジモンの取材拒否の店(取材拒否の店 - Wikipedia)

寺門ジモンの膨大なグルメコレクションからおすすめのお店を紹介していくというものでした。 わたしもちょこちょこと見ていました。「いつか行きたいなぁ」と思ってメモしたり。

その最終回で使われた場所が羅生門四谷本店』

寺門ジモン曰く、「フジテレビの番組が終わったら必ず行く」とのこと。 期待に胸と空腹感が高まります!

入店

外観は少し年季の入った雰囲気。王道の焼肉屋っぽい。 ワクワクしながら入店! ふむ、内装も「THE 焼肉屋」という感じでとても良い。

1st order とりあえず注文するメニュー

私は一杯のビールだけを注文。お通しのあさりと一緒にいただく。

何度か行ったことのある友人にまずはお任せ。

カニサラダ/カクテキ/ライス/塩タン/ロース/カルビ

を注文。スタートはいつもこれらを注文するらしい。 *1

前菜

カニサラダ、なめていたけどなかなかにおいしい。雰囲気はシーザーサラダ。 肉の前哨戦として注文することをお勧めする。カクテキも辛さと酸味が絶妙で○。よくある「大根特有のエグみ」が一切感じられず、とても食べやすく美味。これだけでごはん3倍はいける。余裕。

さぁ、ここからは肉のタイム。 塩タンもなかなか分厚く、レモンでさっぱり頂ける!

カルビ、ロースは安定のうまさ。羅生門ではこれを注文する人がとても多い。

その人気に恥じず、柔らかく油もしっかり乗った素晴らしい肉たち。思わず笑みがこぼれる肉でした!!

なるほどこれは全種類毎回来て毎回頼むわ。スタメンですなぁ。

2nd order 羅生門、"ワンランク上"の楽しみ方

もうすでにだいぶ満足していたのですが、実は羅生門は肉のランクが大きく2種類に分かれています。カルビであれば 「カルビ」と「上カルビ」。値段はカルビが1200\/人、上カルビが2500\/人

友人「いつもはおなか一杯食べたいから普通の肉にしているけど、倍払うと倍うまいよ

と、悪魔の囁き。社会人だ、やるしかない。

私「じゃぁ、カルビだけ上で….!!あとロースも注文…それは普通で!」

悲しき低収入の若手社員。2500円で5枚。一枚500円の肉とはいかに…

そして来ました、上カルビ。

なんやこいつ…まるで気配が違うッ…!

丁寧に肉を焼き上げる。レアより柔らかい伝説の焼き加減レジェンドにて上カルビを食す!

「これは。。。アカン」

とろける肉と私の脳。すごーい!おいしーい!!!

柔らかさ、溢れる脂の甘さ、どれをとっても極上。 これを食べてしまうと、もう元の世界には戻れません。

私「とりあえずまず、そこにある普通のロースをさっさと片づけよう!」

友人「そうだね。さっさと上カルビ上カルビ!!」

今日食べたすべての肉を置き去りにするうまさ。いや、今日食べた肉、どれも絶品だったんですよ?けれど、上はまるで格が違いました。 2倍払うだけの価値はある。皆さんも来た時には、全部とは言わず一品くらい上を味わうことをお勧めします。


普通の肉と上の肉の違い。お分かりいただけただろうか…?

〆のデザート、会計

最後に冷麺を食べて注文の品はすべて終了。 いやはや、最初から最後までテンション上がりっぱなしの最高の夕食でした。 〆はサービスのグレープゼリー。溶けた脳には何食べてもうまいしか感じられない。たぶん普通のゼリーなんだろうけど。

これで会計は一人6500円

これが安いか高いかは、人それぞれだと思います。 けれど私は

  • 安安に3回、牛角に2回行くならここの1回を絶対選ぶ。
  • 叙々苑と同程度、あるいはそれ以上においしい。

と自信を持って言えます。コスパもとてもよく、大変美味なよいお店でした。 皆さんもぜひぜひ、訪れてみてください。ではではっ!

*1:本当はハラミを食べたかったのだが、残念ながら売り切れ。

PROCRASIST