スパイシーな日常をかみしめる

理系大学院生のほんのちょっと変わった日常

TENETは矛盾ばかりの駄作!?真剣考察

 

総評

総評は87点です.映画冒頭の科学者の発言にあるように「考えるな,感じろ」が一番似合う作品でした.難解な設定や状況を激しく切り替わる映像とともに理解しなければならず,また深く解釈しても矛盾が残る作品でした.

あえて例えるなら,「友達から結び目をほどいてほしいと複雑にからまった紐を渡されたので,いくらかほどいてあげたが,結局絶対ほどけない結び目が残り,申し訳なく本人に返した.すると,その友達がニヤっとしながら,実は自分がわざと結んだんだって言ってくるような作品でした.」って感じでした.

しかし,違う時間軸の人によるアクションを見させてもらえたのは非常に新鮮なので,映像美を楽しんでください.

あらすじ

本作品の大筋としては,未来人の生きる地球では資源の搾取や環境破壊が進行したため,人類が生きていくことができなくなった.そのため,未来人は,「アルゴリズム」を使用し,順行から逆行へと時間軸を変更することで,自分たちが生きていける世界を作ろうとした.その未来人の目的の代行人である現代人と,「アルゴリズム」の起動を阻止しようとする主人公達の戦いです.

もう少し丁寧に知りたい方のために,シネマトゥデイさんによるあらすじを引用します.

ウクライナのオペラハウスで、突如としてテロ事件が発生。現場に突入した特殊部隊に、ある任務を帯びて参加していた“名もなき男”は、大量虐殺を阻止したものの自身は捕らえられ、仲間を救うために自害用の毒薬を飲まされてしまう。しかし、その薬はいつの間にか鎮静剤にすり替えられていた。目覚めた“名もなき男”は、死を恐れず仲間を救ったことで、フェイと名乗る人物から、未来の装置「時間の逆行」を使い未来の第3次世界大戦を防ぐという、謎のミッションにスカウトされる。鍵となるのは、タイムトラベルではなく“時間の逆行”。混乱する男に、フェイはTENETという言葉を忘れるなと告げる。シネマトゥデイhttps://www.cinematoday.jp/page/A0007399

 

以降,ネタバレを含む

 

時間逆行に関する感想

この作品の感想といえば,時間逆行は避けては通れないでしょう.私なりに所感をまとめましたので,興味のある方は読んでください.

 

この世界では,「「現在」は過去への逆行を考慮した「現在」となっています」(前提A).反対の前提として,「「現在」と逆行を考慮した「現在」が異なる」前提Bとしておきます.一般に,タイムトラベルもののお話は,前提Bが採用されています.例えば,プロポーズ大作戦では,好きだった子の結婚が悲しいため過去に戻って,行動を改めます.その結果,「現在」が改善されていきます.これは,時間軸1週目,2週目といったループをつくるタイムトラベルになります.しかし,この物語では,未来の主人公はすでに自身が第三次世界大戦を防いだ事実を知っていて,その事実を再現するために逆行を使用します.これは,時間軸が1本しかなく,客観的に見たタイムトラベルといえます.この慣れない前提が非常に紛らわしいといえるでしょう.

一例として,空港にて順行の主人公と逆行の主人公が戦う場面を思い出してみてください.主人公が回転扉の前についた際に,銃痕を発見し,ニールに触るなと言います.ここで,前提Bが採用されている場合,1週目の主人公は,銃痕を発見できないのです.一方,前提Aが採用されている場合,すべては結果として「現在」に現れるため,主人公が逆行中の自身に発砲された結果が残っても不思議ではないのです.(なぜ,自身を発砲する必要があったのかは謎です.また,逆行の主人公によって発砲された痕跡は,本来であれば空港に残り続けるはずなので,順行の主人公が発見する前にはどうなっているのかは疑問が残ります.)

また,本作品中の主人公の友人のニールは,未来にて主人公と出会い,過去の主人公を助けるために逆行をしようします.実際に,ニールは,物語冒頭のオペラハウスのテロと物語終盤の最終戦争中に主人公を助けます.ここで,もし前提Bが想定されている場合(時間軸が1週目,2週目とループする場合),1週目でニールの助けの来ない主人公がオペラハウスで死んでいる可能性もあるため,前提Aが採用されています.(それならば友人のニールは作戦が成功することを未来で知っているはずなので,焦る必要ないのにとも思います.セイターにとって,逆もしかりですが,)

良い点

1 アクションシーン

空港における順行の主人公と逆行の主人公の戦いは見ものです.同じ時間軸に生きていないもの同士の格闘シーンは二度とみることはないでしょう.また,カーアクションのシーンに至っては,後々にどのようにして事象が生じているのかを話し合えたら楽しいと感じました.

2 演出

空港における飛行機の衝突シーンが見ものです.CGではなく本物の飛行機を使っているため,わくわくしました.また,時間逆行中の表現は,さすがハリウッド映画だなと思うのに加えて,いままで誰も想像したことのないような映像を見せてくれるクリストファー・ノーランの作品だなと感じました.

3 俳優,女優のかっこよさ,きれいさ

このパートは欠かすことはできないでしょう.主演のジョン・デヴィッド・ワシントンさんは,屈強な男性で,アクションシーンがとてもにあっていました.女優のエリザベス・デビッキさんは,非常にスタイルのいい女性で,どんな服を着ても似合っていました.また,セドリック・ディゴリーでおなじみのロバート・パティンソンさんの色気はたまりません.

悪い点

シンプルな内容を出来るだけ難解に表現している点です.そのため,無駄な表現が多く,ただただ視聴者を困らせるための設定が存在しています.例えば,対消滅というワードがでてきますが,使わないなら説明しないで!とも思いました.そのなかで,とくに気になった点をあげます.

1 本筋に関係のない未来の技術

物語序盤に,主人公がTENETサイドの科学者の女性から未来の技術についてのお話を聞くシーンがあります.その際に,引き金を引くと薬きょうが充てんされる銃を見せてもらいます.しかしながら,この技術は二度と作中では出てきません.本作品では逆行扉しか使わないのです.(ここで逆行扉だけ説明していれば,なんとわかりやすかったことでしょう.)そのため,未来の技術による武器を匂わせるようなミスリーディングといえるでしょう.

2 難解に表現するが,細かな点はおざなりにするところ

複雑そうな映画を作る監督だと思います.しかし,複雑そうに見えて,最後の最後で大雑把になっているところが見えます.

例えば,1)キャットが銃で撃たれた後に,逆行することで傷が癒えていくシーンがありますが,逆行中であれ,若返りはしないことが言われているため,気になるシーンの一つでした.2)最後にニールが鍵を開けに行く感動のシーンですが,裏を返せば,逆行のニールは鍵を閉めにいっていると考えられます.3)最後の時間挟み撃ち作戦を実行中に,逆行中の女性が建物の壁に取り込まれてしまうシーンがあります.つっこみどころとしては,ではその女性はいつからその壁に入っていたことになるのでしょうか.

結論

時間逆行を含め,いろいろ考えてみましたが,まだまだ矛盾点があります.おそらく,整合性のとれる解釈はできないだろうと思います.そのため,視聴中に深く考え込んでしまってはもったいないので,映像を楽しむ映画だと思います.そして,逆行の自分とのアクションや,逆行世界の描写は映画館で見てこそだなとも感じました.そのため,映画冒頭に科学者が言った「考えるな,感じろ」は視聴者へ向けたメッセージでしょう.

追記

時間逆行に関して、追記します。

この作品では、前提Aが採用されています。これはつまり、過去を変えても現在が変わらないということを意味します。例えば、この映画では、順行時に主人公が確認した現象が逆行時においても必ず生じています。(そこが面白い所でもあります。) この事実からも、前提Aが正しいと言えます。

しかし、このことを踏まえると、過去に戻って、「アルゴリズム」を揃えて、人類を滅ぼそうとしたシーンは、初めから破綻しています。なぜなら、現在があるならば、過去での人類破壊計画が失敗しているといえるからです。さらに言えば、未来がある時点で、過去での人類破壊計画が起きていないとも言えます。

きっと、未来人は逆行扉を作った瞬間に、すべて折り込み済みの未来(人類が滅亡していなく、時間が逆行していない未来)により、過去に帰る作戦の失敗を知って、落胆したことでしょう。

Pythonで競馬に勝つ!2章

はじめに

以前こんな記事を書いたことをすっかり忘れていました.そんなこんなで今ではすっかり,プログラム能力が多少なりとも向上したため,再度有言実行果たしました.そして,競馬予測のアルゴリズムが完成いたしました.

 

kookie.hatenablog.jp

 

 

 

データの構造

スクレイピングを使用してしまっているので,コードそのものを載せるのははばかられます.大まかには,下のとおりです.

 

1)スクレイピング

2)モデル化(機械学習モデルと深層学習モデルあり)

3)予測したいレース情報を入れると,予測結果を返す

 

 

コメント,メール等にてお話ができる機会があれば,

ぜひモデルの構造についてのアイデアを共有したいですね.

 

今後の展望としては,購入までを踏まえたうえで,何を買うとリターンが大きいのかをはかりたいですね. 

 

最後に

 

いまではすっかり,AIによる競馬予測というのは主流となっていまして,特別優位性がないかもしれないですね.ただ,競馬という皆さんの熱気であふれかえっている競技にどれだけ,機械学習がくらいつけるのかは見ものですね.

 

積立NISA損切に対する批判

積立NISAに関して,損切りをすることはよく批判されます.積立NISAのうまみは,長期間保有した株を売却した際の税金を節税できるというものです.そして投資対象も下のように,リスク(上昇や減少)が低い商品に絞られています.そのため,短期間の変動を無視して長期の保有を促すものであるため,損切をすることにネガティブな人が多い.そうはいっても,仮に,50%株価が減少するといわれていても損切しないわけにはいかないので,どの場合に損切が必要かを考える.

長期の積立・分散投資に適した一定の投資信託金融庁
○例えば公募株式投資信託の場合、以下の要件をすべて満たすもの
・販売手数料はゼロ(ノーロード)
・信託報酬は一定水準以下(例:国内株のインデックス投信の場合0.5%以下)に限定
・顧客一人ひとりに対して、その顧客が過去1年間に負担した信託報酬の概算金額を通知すること
・信託契約期間が無期限または20年以上であること
・分配頻度が毎月でないこと
・ヘッジ目的の場合等を除き、デリバティブ取引による運用を行っていないこと

損切が必要な場合

損切に必要な場合は,想定する損失と,その後の回復による利益のどちらが大きいかによって決める.

例えば,100万円の元手が90万まで減少した際に,まだまだ80万まで減少が予測できる場合を考える ( 下の図).その場合,長期的に見て,再度90万 (現在価値)を上回ることが予測されるなら保有を継続し,90万を下回るならば売却した方がいいということです.

前提として,株価は大きな減少を経験した後に,順調に(ある一定年利で)上昇する ( 積立NISAの商品の仮定に従う).自身は,その大きな減少の際に,大まかな株価の減少率を知っているものとし,その予測される減少率に応じて損切か保有を判断するものとする.

 

無題1

結果:期待年利と残り年数ごとの損切目安の減少率

先に結果を載せます.期待利回りや残り年数ごとの損切ライン(減少幅)をのせます.注意点としては,ここでの減少幅は,今後どれだけの減少が見込まれるわっていう割合ですね.

例えば,コロナの影響でもう10%(減少率)ぐらい下がりそうだけど,損切りすべきかどうかなーです.この例の場合,あと2年NISAの期間があって,利回り5%の株を扱っている人なら売却の方が正しい選択となります.この図から判断すると,NISAの残り年数が10年ある人であっても,50%程度の下降を経験するぐらいなら売った方がましという結果ですね.

無題

前提や計算過程

n : 資産の金額 , d : 予測できる減少率 , r : 商品の利回り , y : 残り年数

予測される損失 > 減少後の資産からの利益 となる場合,売却が合理的である. 

予測される損失は,nd であらわされる.(A)

減少後の資産は,n ( 1 - d) なので,年利を考慮した後の資産は,n ( 1- d ) ( 1 + r ) ^( y ) となる.求めたいのは,減少後の回復時に獲得した利益なので,n ( 1- d ) {( 1 + r ) ^( y ) -  1} となる.(B)

AとBの比較で,A>Bとなるなら売却すべきである.

Bの { } の中は,二項定理を使って展開できる.また,r の2乗≒ 0 とできる.(気になるようなら3乗でやりなおしてください.)

この計算を進めると,{ yr / ( 1 + yr ) } < d  となって,残り年数と利回りから計算できる値より,予測される減少率が大きい場合は損切をした方が合理的であるという結論になった.

 最後に

いくつか計算してみたが,

1)そもそも予測される減少率がわかるのか,

2)予測される減少率に応じて売却することは損切なのか,

とかとか気になる点は残りますが,状況によって損切を行うことが必要なので,その状況を事前に定義しておくことは重要だと思います.

切り抜き動画自動作成アルゴリズム

動画サイトの切り抜き動画って、すっごい簡単な仕組みでお金が入りますよね。

ただ、人気の方の切り抜きを見ても、更新頻度が遅く、手作業でやられているのではないでしょうか。

せっかくのビジネスチャンスなのに、惜しいなと思いますよね。

 

てことで、切り抜き自動化アルゴリズム作りました。

アルゴリズムって売れるのかな。

 

アルゴリズムでできること

・自動で任意の動画サイトから動画を切り抜く

・その動画を自動アップロード

・その他用途に応じて、カスタマイズ可能

(例:字幕、翻訳、軽度の編集)

 

上記作業を全自動化しているため、30分の動画でしたら1日30本近い量で作成できます。無双ですよね。

 

もし売るとした場合には、PCが変わった場合に動く保証がないので、動画のみの受け渡しがbetterかと思います。

それを定期的に送信するようなアルゴリズムもできているので、可能だと思います。

 

切り抜き動画の基本の収益がわからないけど、もし売るとしたら5万ぐらいがいいのかな。

 

まあ、捕らぬ狸の皮算用か。

 

アドバイスがある方は、ご連絡ください。

 

#16 パイソンの高速化(並列処理)

Pythonの高速化には,いくつかの方法があります.
そのなかで特に私のおすすめを紹介します.

1)ベクトル計算を積極活用
Pythonの重たい処理の一つとして,配列の要素に一つ一つアクセスする場合があります.
For文を複数ネストするような処理の場合は,出来るだけその構造を避けるのがおすすめ.
そのために,numpyやpandasのベクトル計算を積極活用しましょう.
例えば,pandasにて列Aと列Bの条件によって列Cの値が変わるとき,pd.loc[(条件),列C]=値といった,For文とIf文を組み合わせた操作ができる処理をつかう.
また,どうしても配列要素一つ一つにアクセスしなければならない場合は,applyを使うとよいです.


2)複雑な関数を高速な言語で書き換える.
Pythonのライブラリが早い理由は,ライブラリがより高速な言語 ( C言語のような)で書かれているからです.
そのため,重たい処理を自作のライブラリとして作成してしまえばより速くなります.
僕の場合はFortranで実施していました.


3)並列処理
maltiprocessing toolを使って,並列処理するやり方.
単純に倍速近くなる

3)その他
その他,こまごました高速化が可能.
例えば,for 文中でリストにappendするよりも,内包表記で書く方が早い.

#15 pythonで競馬に勝つ!序章

Python をギャンブルに使いたいと思います。
4月までにプログラムを作り上げて評価しておきます。

具体的に何がしたいのか
目的:競馬の勝つ馬を予測する

Pythonも全くの初心者なので、難易度とかは知らないですが、これぐらいならできそうですね。




手段
1、全ての馬のデータを入れる。

やり方はスクレイピング?手作業?
この辺はわからないけど、挑戦します。

スクレイピングとは、
自動でWebサイトから情報をインプットすることです。



2、1で入力したデータの中で、
どの要素か勝つことの高い相関を持つのか分析する。

例えば、遺伝子?過去の同じ会場での実績?最近の実績?レーン?季節?時間帯?

やり方は重回帰分析かな?
これにより、モデルを作成しましょう。
各会場毎のモデルになりそう。




3、最後は、出場する馬の各データを入れると勝つ確率順に並び替えてくれるプログラムの作成 





実際のプログラムのイメージ
データ収集が終わり、データのクレンジング(悪いデータを抜くこと)も終わってるとします。 
つまり関数のモデルとして出来上がっている

1、インプットで要素を入力させる。
会場や、要素、季節、時間帯などの入力を促す。

2、機械がどの目的関数を使用するかを決め、
各馬にたいして目的関数の結果を出力する。

3、最適化問題のように、この中で目的関数の値が最大となるものを選ぶ。

4、出力される文字は以下のようにします。笑

各レーンの情報を入力してください。

各レーンの馬の勝率は...
1レーン:
2レーン:
‥‥‥

各買い方の期待値は‥‥ 
3連複 をおすすめします。‥‥


ってなってくれたら嬉しいですね笑




このプログラムの悪い点は、
・毎レース毎、競馬の新聞のデータを入力ないといけないため手間がかかる。
→ここでもスクレイピングを使えたらいいかも。

・会場を絞る必要がありそう。
・遺伝子の情報は親の勝率とか?

 



理想は、、
どの買い方をしたら、いちばん儲かるのかを教えてくれるところまでやりたい。 

それぞれの馬の勝率がわかるので、
そこから各買い方の確率を計算し、期待値を出す。
 
例えば、これを携帯アプリにしてしまえば
簡単に予測が出来るという夢がありますね。




3月末までに必ず実行します。
少々お待ちください。急ぎの方はコメントしてください。