千葉ロッテマリーンズの2022年「初売り福袋」開封結果

千葉ロッテマリーンズの2022年「初売り福袋」を買いました。www.marines.co.jp

去年の福袋は直筆サインがランダム封入だったのですが、今年は5000円の値上がりの代わりに直筆サインボールor直筆サイン色紙が確定封入になりました。

 

以下、来年参考にするために入っていたもの一覧をメモしておきます。各名称は正式な商品名ではありません。

 

タオル

・選手フェイスタオル 95植田 1400円

・日ハムコラボフェイスタオル 1900円

鬼滅の刃コラボフェイスタオル 竈門炭治郎 2100円

・2021シーズン ハイライトシーンフェイスタオル 非売品(福袋限定)

 

雑貨

・マーくんキーホルダー 750円

ドラクエウォークコラボキーホルダー ベビーサタン 990円

・除菌用アルコール 謎の魚 500円

・フィギュア 0荻野 2000円

・2021シーズン タイトルホルダークッション  52益田(セーブ王) 非売品(福袋限定)

 

キャップ・アパレル

・'47 CLEAN UP カモメミニロゴキャップ 3500円

・2021年イースタンリーグ優勝記念Tシャツ 3500円

・BLACKスウェットパーカー 非売品(2021シーズンのグッズ付きチケットアイテム)

 

ユニフォーム

・レプリカユニフォーム ホーム(背番号・ネーム入り) 13平沢 9000円

 

その他

・直筆サインボール 15美馬 非売品

 

計 25640円+非売品(サインボール・タオル・クッション・パーカー)

「2020年振り返り」が最後の更新で、2021年に何も投稿していなかった

久々にブログ管理画面を開いたら最終更新がこの記事でした。

matsumoyu.hatenablog.jp

2021年1つも投稿していない…。

2021年は仕事を頑張っていたのでできることは増えたのですが、ブログで好き勝手書けるようなわかりやすい成果物がなかったので、何かここに残せるようなものを(仕事とのバランスを取りながら)作っていきたいですね。

2020年振り返り

今年は某感染症のせいで一瞬で終わった気がするのですが、ちゃんと振り返ってみるといろいろやっていました。メモ代わりに書いておきます。

プログラミング(労働周り)

偉いのでやんわりとしかいいませんが、後半からサーバ周りというか、運用っぽいことにも関わるようになってきました。来年はそのあたりをしっかり勉強します。たぶん。

プログラミング(労働以外)

前半はひたすら競技プログラミング(AtCoder)をやっていたらしい。緑までなって、これから先は競技プログラミング用の勉強をやらんといけないなあと思ったあたりでやめました。

競技プログラミングが落ち着いてからは、AI周りの勉強をやり始めました。勉強会にもちょくちょく参加してみましたが、ネット上でやるの滅茶苦茶良いですね。

基本的なAIの知識が入ってきて色々やるか~という辺りで労働の方で忙しくなったので、いったんストップしてました。現在は落ち着いてきたので来年はAIについてやりたいな~という気もしますが、AIについて一通り学んだところで、AIでできることできないことがはっきりわかってきてこのままやるべきか?という気もします。その辺も含めて来年考えたいです。

 

プログラミング関係で他にも色々やりはしたのですが、結局労働に近いことが多くてこういった場で書けず。来年は労働以外のこともやりたいですね。

GPT-3と自然言語処理の未来(ビジネス面の可能性から)

新たな自然言語処理の仕組み(言語生成モデル)であるGPT-3が話題になっています。性能の向上だけでなく、ビジネスにおける自然言語処理活用の可能性を一気に広めるかもしれないものな気がするので、GPT-3が見せてくれた未来について書いていきます。詳しい説明とデモはRyobot氏の以下のブログでどうぞ。

deeplearning.hatenablog.com

論文は以下。何か間違ってたら教えてください。

arxiv.org

  

さて、GPT-3が開いた可能性とは、「素人が好き勝手自然言語処理(=AIの活用)をできる未来」です。といっても現状がわからないとわからないと思うのでそこから説明していきます。

 

これまでの仕組み

これまでの仕組みでは、自然言語処理で何かしらのタスクを行う際には以下の手順が必要でした。

①汎用言語モデルを作る

②タスクごとにfine-tuning

言語モデルって何という具体的な話は(難しいので)置いておきますが、ざっくり意味を言うとタスク(翻訳、文章分類、要約、応答、……)に依らない共通の下準備をしておきますということです。その下準備をしたうえで、それぞれのやりたいことに合わせてfine-tuning(目標タスクに特化するためのチューニング)をする必要がありました。

そのためには、その目標を達成するための言語データが数千から数万の単位で必要でした。例えば、

・翻訳したい→英語と日本語のセット

・新聞記事に自動カテゴリ付けをしたい→本文とカテゴリのセット

といったものを数千から数万の単位で用意する必要がありました。さらにこのチューニングに専門技術が必要でした*1

 

GPT-3における文章生成の手順

さて、これに対してGPT-3が提示する仕組みは以下の通りです。

①汎用の言語モデルを作る

②文章でタスクを書く

例:「英語を日本語に翻訳して」*2

③いくつか例を入力する(10-100例)

これをしたうえで、実際にタスクを行って欲しいものを入力することで文章生成ができるようになります。

 

この元では、これまでの方法で行われていた専門知識による調整がなくなっています。②と③の手順はいかにも専門知識がなくともできそうな感じがします。

つまり、非専門家が「AI使ってやってみたいな~」と思ったことに対して、(上手い形で①のモデルが使えるようになっていれば)すぐに試すことができるようになるわけです。いや~とてつもない世の中ですね。

GPT-3の現状としてはタスクごとの調整をした方がまだまだ精度が良いとのことですが、このまま自然言語処理の技術が向上していけば実用に耐えるくらいのものが文章による指示と例を与えるだけでできるようになるのではないでしょうか。

AIエンジニアが必要なくなる未来は来るんでしょうか?コードを書くようなデモもあり、まだまだ人の仕事を脅かすほどのものではないようですが、Webエンジニアの未来も安泰ではないかもしれません。

これがシンギュラリティなのかはわかりませんが、かなり大きなパラダイムの変化が来ているのでは?という感じです。

*1:センスがあればとりあえずのことはちょっと勉強すればできますが

*2:英語→フランス語等は論文中に書いてありますが、GPT-3で英語-日本語翻訳ができるのかはわかりません。とはいえ訓練するモデル次第でできるようになるはずです。

「(略称)トランスヒューマニスト党」に見る隠れた選挙ハック

2020年東京都知事選は色々と選挙ハックがありました。特に、ホリエモン新党が3人連続立候補、そのうち2人は顔写真を載せずに真ん中の立花孝志氏を目立たせるという豪快なハックは(許可を取っていないはずの堀江貴文氏が写真に載っていることも含めて)選挙公示日に大きく話題になりました。

そんな中で選挙当日。投票所で「政党名に「スーパークレイジー君」という文字が書いてあるの面白いよな~」とか思いつつ政党名・立候補者名を見ていると、後藤輝樹氏の政党名に「(略称)トランスヒューマニスト党」と書いてあることに気が付きました。

何だ略称って?と思いつつ調べると後藤輝樹氏のウェブページにはどこにも正式名称っぽいものが見当たらず。どうやら選挙公報のある部分が正式名称らしいということに行き当たりました。

f:id:matsumoyu:20200706000159p:plain

「(略称)トランスヒューマニスト党」の正式名称は「「愛してる」という挨拶を日本に普及し、霊氣(レイキ)の義務教育必修を目指す、この国の表現の自由を守る愛国左翼トランスヒューマニスト党featuring世界政府@地球幸福」らしいです。

さて、最初にこの選挙公報を見たときには単に政党名周りに書いてある煽り文だと思って政党名だとは思っていなかったのですが、この選挙公報の氏名欄、実は「東京都選挙執行規程」第五十五条(掲載文の書き方)第五項で書けることがしっかり決まっているようです。

 5 氏名欄には、候補者の氏名(令第八十八条(衆議院小選挙区選出議員の選挙における立候補の届出書又は推薦届出書に記載すべき事項等)第八項(令第八十九条(衆議院議員又は参議院比例代表選出議員の選挙以外の選挙における立候補の届出書又は推薦届出書に記載すべき事項等)第五項において準用する場合を含む。)の規定による認定を受けたときは、その認定を受けた通称)、年齢及び所属党派(所属党派がない場合は、無所属と記載し、又は記録することができる。)以外は記載し、又は記録することができない。

 カッコを除くと、「氏名欄には、候補者の氏名、年齢及び所属党派以外は記載し、又は記録することができない。」となります。以上から、単なる煽り文だと思っていた「「愛~」が実は正式名称らしいということが分かったわけです。

ということで、政党名をいたずらに長くすることで、本来は氏名・年齢・所属党派しか書けない部分にその政党が目指すものを詰め込むことを成し遂げていたわけです。システムハック好きとして選挙当日に気が付けて良かったです。

皆さんも政党を作るときは政党名を長くすると氏名欄に主張を載せられますよ!

C# ArrayとDictionaryの速度比較

いくつかの数値に対して何かをカウントしていくような形式の時には手癖でDictionaryを使っていたのですが、それで痛い目に遭ったので反省としてかかる時間を調査。

AtCoderの問題が調査のきっかけです。問題はこちら。解法そのままなので気になる方は解いてからどうぞ。

 ・やること
107までのArray/Dictionaryを作り、1から107までそれぞれについてその数の107までの倍数のカウントを1増やしていく

具体的には以下の通り。

・Array

//①Arrayの作成
sw.Start();
var array = new int[N + 1];
sw.Stop();
Console.WriteLine(sw.Elapsed);

//②カウントの加算
sw.Start();
for (var i = 1; i <= N; i++)
{
    for (var j = i; j <= N; j += i)
    {
        array[j] += 1;
    }
}
sw.Stop();
Console.WriteLine(sw.Elapsed);

・Dictionary

//①Dictionaryの作成
sw.Start();
var dict = new Dictionary<int, int>();
for (var i = 1; i <= N; i++)
{
    dict.Add(i, 0);
}
sw.Stop();
Console.WriteLine(sw.Elapsed);

//②カウントの加算
sw.Restart();
for (var i = 1; i <= N; i++)
{
    for (var j = i; j <= N; j += i)
    {
        dict[j] += 1;
    }
}
sw.Stop();
Console.WriteLine(sw.Elapsed);

結果は以下。単位は秒です。

Array ①作成 ②加算
1回目 00.0003549 01.6939147
2回目 00.0003953 01.7070274
Dictionary ①作成 ②加算
1回目 00.3353714 17.2990964
2回目 00.3310036 17.2898917

DictionaryはArrayの約10倍かかるんですね。106までなら実用的な時間(2ms)内に終わるんですが、107になると厳しいと。 1~Nまで網羅的に使うことがわかっている場合は極力Arrayを使うよう気を付けます。

教育×ブロックチェーンという世界があるらしい

『EdTechが変える教育の未来』というを本を読み、その中で「教育におけるブロックチェーンの活用」という概念が紹介されており、初耳だったのでちょっくら調べてまとめてみるかという記事です。この本自体は21世紀に求められる(と国とかが言っているような)能力・教育のあり方の話やEdTech(教育×テクノロジー)に関する実践がゆるゆると紹介されておりその辺をざっくりつかむのに良い本かなと思います。

ネット上にいくらか記事があるので紹介。ソニーが目立ちますね。

 

www.watch.impress.co.jp

crypto.watch.impress.co.jp

 

www.asteria.com

gaiax-blockchain.com

 

ぱっと調べて出てくる資料の中では、教育におけるブロックチェーンの活用方法は2つありそうです。

①学歴(学位)を信頼できる仕組みで管理することで偽造を防ぐ

②学習歴(何を学んだか)を都度記録し、各機関が使えるようにする(受験、採用等)

また、これに加えて学習傾向を収集することで教育政策に活かしたり、次に学ぶべきことを適切にレコメンドしたりできそうです。

 

さて、これに対して懸念点(わからなかった点)が2つ

ポートフォリオの活用と格差の助長

②のような学習歴や学生時代の活動(これをポートフォリオと呼ぶらしい)をまとめて受験に活かそうというのが進められているそうです。このポートフォリオの活用は経済格差が反映されるという指摘をちょくちょく目にします。その格差助長につながるようなものを推し進めることは良いのかというそもそもの部分に対する疑念ですが、ブロックチェーン活用自体の問題ではないのでどうなんだろうなあくらいでここでは留めておきます。

・何を学んだかが集中管理されるのは良いことなのか

教育×ブロックチェーンの文脈で本筋となる問題はこちらでしょう。教育歴がブロックチェーン上に積みあがるということは、誰もが見れるようになるはずです。活用しようと思ったときに相手に知られたくない学習歴まで知られてしまいそうです。そもそも見られたくない学習歴というものが存在するのかという問題ですが、世の中の人が全員善良であればそういった学習歴はないはずです。ただし、善良ではない人がいた場合、学んだことイコールその人の思想と考えるような人がいること、活用とは関係ない部分(例えば企業の採用時に、労働とは関わらない部分)で思想(とその人が勘違いしているもの)を基に不利な扱いを受けることがありうる(いや思想でも不利な扱いをしてはいけないんですが)ことを考えると、全部オープンにしたくはないなあという気がします。最初の記事の中で「ブロックチェーン上でデータを共有するかどうかは、あくまでも学習者自身が決めます」とありますが、ブロックチェーンの性質上おそらくいったん共有したら引っ込められないはずなので、後でやっぱり見せたくないなとなったら困りそうです。

というわけで、分散させてデータを保持し改竄耐性を高めるブロックチェーンと見られたくない相手に見られたくない部分を見せないというのは致命的に相性が悪そうですが、ブロックチェーンについて特段詳しいわけではないのでこの辺を上手いことする実装があったらすみません。ちなみにぱっと思いつく解決策は国際的・中央集権的な学習歴記録規格を作って管理する(=ブロックチェーンを使うことをあきらめる)方法があります。この記事は何だったんだ。

ブロックチェーンを用いた解決策として、ブロックチェーン上に残しておく情報は暗号化しておいて伝えたい相手だけに鍵を渡すみたいな方法もありそうですが、鍵なくしたら学歴もなくなった!みたいなことが起こりそうで楽しみですね。