いつか、どこかで

【読書メモ】最強囲碁AI アルファ碁 解体新書

昨年から仕事の幅をデータ分析や機械学習方面に広げようともがいているのですが。 今回は買って流し読みしたあと真面目に読んでいない本をちゃんと読もうと、「技術書のまとめ Advent Calendar 2021」に参加させてもらうことにしました。 こちらの記事は、そのカレンダーの13日の記事です。

adventar.org

最強囲碁AI アルファ碁 解体新書

こちらの本は、2018年に出た本ですね。その時も興味はあって書店で手にとっては見たものの、まだ当時は機械学習関連のお勉強も始めてなかったし、パラパラめくってなんか難しそう…と本棚に戻しました。

内容は2016年に世界最強と言われているプロの棋士を破ったGoogle DeepMind開発のコンピュータ囲碁プログラムの深層学習や強化学習の仕組みについての解説です。

読もうと思ったきっかけ

昨年G検定を取得し、機械学習の概要は一通り押さえて、あと細かい技術なども勉強中というところで、テストに出る内容、みたいなところじゃなくて具体的な活用例をそろそろ読んでみようかな、内容ももうぼちぼち理解できるようになってるよね…と思って読んでみることにしました。

本書の構成紹介(ざっくり)

最初にゲームAIってどういうもので、囲碁AIはどんなものという説明から入って、アルファ碁が取り入れた手法である深層学習(ディープラーニング)と強化学習のざっくりした技術解説があり、囲碁AIっていうのはどうやってこの後の手を先読みするのか、という話をしたあと、アルファ碁で実際に使われている手法、それから進化系のアルファ碁ゼロの手法の解説、という流れです。

技術解説はある程度基礎知識があるところから読んだのでわかりやすかったですが、機械学習関連の用語が初見の人にはちょっととっつきづらいかも知れません。

感想(これまたざっくり)

  • 囲碁のルールに詳しくなりました
  • 手法としては知ってたモンテカルロ法の具体的な活用と展開がわかりました
  • 内部的に何が起こっているかよくわからないことが多いと言われている機械学習ですが、アルファ碁はものすごい細かいチューニングが施されてるんだなあと言うことが分かりました
  • 大量のCPUやGPUでの並列処理がもうすごいなあと(語彙…)

読んで良かった点

とにかく機械学習っていろんな手法がいっぱい出てきて上っ面だけ追いかけてひーひーしちゃうとこがあるんですが、「こういうのってこういうとこで使えるんだなあ」みたいなイメージの取っ掛かりが出来てすごく良かったです。

ちょっとな、と思った点

「図xx」についての説明の文章の、ページめくった次のとこにその「図xx」があるみたいな構成になってるのは誰の責任なのかなー…。

この本を薦めたい人

機械学習の知識はあって、アルファ碁とかどんな風になってるのか興味あるなーって人(ピンポイントすぎやろ)

終わりに

もうちょっと技術的なところをまとめていきたいなー、後日…がんばり…ます…?

【読書メモ】イノベーション・オブ・ライフ

イノベーションのジレンマ」で有名な著者が、ガン治療で髪が抜け落ちた状態で行った講義をより幅広い層に伝えるためにまとめられた書籍、「イノベーション・オブ・ライフ ハーバード・ビジネススクールを巣立つ君たちへ」を読みました。

www.shoeisha.co.jp

本書は3部構成になっていて、それぞれが以下の内容について書かれています。

  • どうすれば幸せで成功するキャリアを歩めるだろう?
  • どうすれば伴侶や家族、親族、親しい友人たちとの関係を、ゆるぎない幸せのよりどころにできるだろう?
  • どうすれば誠実な人生を送り、罪人にならずにいられるだろう?

 そして、それぞれの目的を達成するための理論が書かれているのですが、ここで理論とは、人生の状況に応じて懸命な選択をする手助けとなるツールと定義されています。
手助けとなるツール、って表現良いですね。欠いてはいけない、とか必須である、とかの強くて傲慢な感じと違って。

 また、こうも書かれています。

理論とは「何が、何を、なぜ引き起こすのか」を説明する、一般的な言明だ。

 よりよい人生を考えるものさしを論理的に説明するための一般的な言葉がこの本には書かれているわけですね。

 

印象に残った言葉を挙げると、

日陰が必要になると思ったそのときに苗生を植える

わたしたちが製品を購入する動機になるのは、「自分には片付けなくてはならない用事があり、この製品があればそれを片付ける助けになる」という思いだ。

子どもたちは学ぶ準備ができたときに学ぶのであって、わたしたちが教える準備ができたときに学ぶわけではない 

などがあります。

 

何を考えるかではなく、どう考えるかということの大切さを感じる本でした。

そして、最後びっくりしたのが、ガン 治療が落ち着いてたときに脳梗塞で倒れて、表現性失語症になってたという話。始めのうちは話すことも書くこともほとんどできなくなっていて、そこから粘り強く一語ずつ学ぶ努力をした、と。
その過程の困難さを思うと、そこからまだ本書を含む数冊の著書を物した著者の方は本当にすごい努力をされる方だったんだなあとしみじみ感じました。

 

良い読書体験でした。ありがとうございました。

 

【読書メモ】ゲームメカニクス大全 ボードゲームに学ぶ「おもしろさ」の仕掛け

翔泳社ブックアンバサダー に選んでいただいて、翔泳社さんのゲームメカニクス大全 ボードゲームに学ぶ「おもしろさ」の仕掛けwww.shoeisha.co.jp

を読みました。

帯には「すべてのゲームデザイナーのための」と書いてありますが、基本はアナログのボードゲームについてだけ書いてある本です。

まあ、私はそこまでボドゲ詳しくないんで、載ってるゲームの8割ぐらいは名前も知らないゲームでしたが、百科事典形式でゲームを分類して、すごく丁寧に細かく仕掛けが書いてあるので、ほうほう、こんな形のゲームの仕組みもあるんかーって思いながら読みました。

定規で移動距離を測って移動するゲームとかあるんですね。テーブルゲームならではって感じ。

全部で13章あって、5章まではゲームの基本構造とかアクション、6章以降がタイトルになってるメカニクスについて、なのかな。

ソロゲームについても書いてあったけど、興味深いのはやっぱり複数人でやるゲームでの工夫あれやこれやで、特に「コミュニケーションを制限することで不確実さを維持してゲームとしての面白さを保つ」とかは、ああ、なるほどね、という感じ。

最近、機械学習の講義をすることが増えてるんだけど、Qテーブルの仕組みとかどうやって適用すればよいのかなあ、これって機械が勝てるようになるゲームかしら、とか考えてみるのも面白かった。

あと、原著がでてから1年ぐらいで翻訳出てるのもすごいですね。ボードゲーム最近人気だというけれど、このコロナ禍の状況ではプレイヤーの皆さんどうしているのかしら…なんてことにも思いを馳せた本でした。

翔泳社さんありがとうございました。

アルゴリズムをコードにする記事をZennに書きました

ちょっと考えるところがあって、プログラムの学習をして、基本文法は分かる、という人を想定した記事を書いてみました。

 

アルゴリズムをコードにする練習0:2値交換 

 

アルゴリズムをコードにする練習1:素数かどうか判定する

 

アルゴリズムをコードにする練習2:最大公約数を求める

 

の3本が書けました。

少しずつ増やしていきたいなと思います。

オンライン研修登壇環境

3月からすべての集合研修が中止となり、4月からの新人研修含めすべての研修をオンラインで実施しています。複数の研修会社の講師を担当していますが、どこもZoomです。

 私は基本的にプログラミング関連の研修を担当しているので、テキストの説明をしながら開発環境を動かしてデモを見せたり、ハンズオン形式で説明したりするのが基本の登壇スタイルです。

 それをオンラインで実施することになって、3月後半から少しずついろんな機材を増やしたり入れ替えたりしながら、オフラインの研修と同じクオリティを提供できるやり方をずっと模索してきました。

 半年以上経っていい感じに落ち着いたと思うので、現在の私の研修登壇環境をまとめます。

f:id:riko111:20201029133937p:plain 

f:id:riko111:20201029150538p:plain


現在の環境の構成は図のようになっています。

 

私の推し

この環境の中での推しアイテムは

です。 

www.blackmagicdesign.com

ATEM Mini Proは、複数のカメラやマイクからの画像や音声をボタン1つで切り替えたり、合成したり出来る「スイッチャー」という機材。

この機材を使って、複数の画面を切り替えて受講者に見せるとき、もたもたせずに簡単に切り替えられます。

また、もう少し安価な「ATEM Mini」がありますが、入力映像や出力映像を別モニタに出力して確認できるのは、Pro(と更に上位機種のPro ISO)に搭載されている機能になるので、Proにしたほうが安心です。

 

iPad Proには、Good Notesというアプリを入れています。

GoodNotes 5

GoodNotes 5

  • Time Base Technology Limited
  • 仕事効率化
  • ¥980

apps.apple.com

 有料のアプリですが、これにPDFを取り込むと、ApplePencilで自由自在に書き込みができます。また、プレゼンテーションモードがあるので、PDFだけを投影することもでき、ApplePencilをレーザーポインターとして使うこともできます。

これを使っていたら、他の講師の人に「書き込みがすごくきれいで読みやすいですね! 何使ってるか教えて下さい」と言われました。

 

このATEM Mini ProとiPad Proを活用した構成は以下の通りになります。

 

PCからの出力

写真の1番が矢印の先にあるので写っていませんがPCデスクの横においたWindowsPCで、第9世代Core i7 3.6GHzにメモリ64G、GPUがRTX2070という構成のタワー型です。

 このPCから、3枚のモニタ(2~4)とATEM Mini Pro(10)に画面出力をしています。3番のモニタと、ATEMに出力するのは同じ画面で、これが研修環境になります。

研修環境は、研修会社や研修の種類によって、

  1. ノートPCが送られてくるもの
  2. クラウド環境が割り当てられるもの
  3. 自前で開発環境を構築するもの

の3パターンがあり、1,2の場合はリモートデスクトップ接続したものを映し、3の場合は仮想環境で開発環境を構築したものを映します。

 PCには、USB接続でWebカメラ(5)を接続し、研修中の私はグリーンバックを使って

f:id:riko111:20201029140521j:plain

バーチャル背景の状態で私の身振り手振りを見せています。

また、オーディオインターフェース(写真では9と10の間に隠れてます)を経由して、コンデンサーマイクスーパーカーディオイド型)とヘッドホン(密閉型)もPCに接続しています。なるべくクリアな声と、周囲の雑音を程よくカットするのにこの構成になりました。

 カメラや音声の入出力をATEMに入れることも出来るのですが、Zoom側でのオンオフを使うほうが受講者に見た目で伝わりやすいので、PCに入れています。

 ATEMには、PCの他にiPad Pro(8)も入力しています。iPad Proでは、GoodNotesのプレゼンテーションモードを使ってテキストのPDFを出力します。このテキストに、Apple Pencilで書き込みながら解説をするのが、受講者から分かりやすいとの声を頂いてます。

 

ATEM Mini Proからの出力

ATEMからは、USBでPCに出力をすることで、PC側ではATEMからの画像をカメラ映像と認識して処理が行われます。今のZoomでは、画面共有機能で「第2カメラのコンテンツ」を選ぶことが出来るので、ATEMを使って、研修環境とテキストを切り替えながら講義を実施しています。そのZoomの画面をだしているのが真ん中のモニタ(2)です。

 また、ATEM Mini Proの入出力映像を確認するために出力しているのが7インチのミニモニタ(9)です。

 そして、研修を実施しているZoomには、PCとは他にiPad(12)からも参加して、受講者に見えている画面を確認しています。受講者は小さなノートPC一つで受講されている場合もあるので、文字の大きさなど大丈夫かどうか、また、映像の遅延など発生していないかなどが確認できます。ブレイクアウトルームを設定したときなどは、こちらのiPadの方からルームに入ります。メインの方で入ってしまうと他の受講者の方が完全放置になってしまうので。

 

その他

構成図に登場しないものがいくつかありますね。

4番のモニタは、研修に関係ないものを映しています。

11番は、JIS配列のBluetoothキーボードです。メインで使っているのはUS配列なのですが、リモートで接続した先のキーボードがJIS配列のとき、相手の設定を変更せずに入力できるように準備しています。あと、「そのキーってどこにあるんですか」という質問に答えるのに必要なときもあります(笑) 

13番はMacBook Proですね。研修事務局の方と、Teamsなど研修とは別のツールで相談したり出来る環境のとき、音声の入出力がバッティングしないようにこちらを使います。 

14番はUbuntuが入っているノートPCです。Dockerが起動していて色々ごにょごにょしたりするときがあります。

 

 こんな感じで日々研修講師をやってます。

 

 

 

QiitaにFortranをCとPythonに移植する記事を書きました 3

FORTRAN77数値計算プログラミング」のプログラムをCとPythonに移植してみる(その3)

 

qiita.com

1年近くぶりに、第3弾を書きました。
反応してくれる方もいて嬉しいです。

G検定合格しました

日本ディープラーニング協会のG検定に合格しました。

 

2月末の時点でほとんど勉強出来てなかったので、受験は見送ろうと思ってたんですが、COVID-19の騒動で3月の仕事がなくなっちゃったので、やっぱり申し込みをしまして。

 

勉強は基本的に白本と黒本。

 

 

 

白本には全然計算問題とか出てこないので、それだけだったら絶対受かってない気がする。

黒本は問題集なので、用語のまとめとかには向いてない感じ。

 

で、実際受けたところの感想では、細かい政令の問題とか、最新情報、ディープラーニングにまつわるニュースとかしっかり押さえておいた方が良かったのかも、 というところ。

 

過去問や得点、合格点については非公開なのでなんとも言えないですが、ちょっと出題傾向が変わったのかな~って感じです。