数値解析系

2020年8月16日 (日)

”ScratchでAIを学ぼう”を買ってみた

以下の記事を見まして、

「ScratchでAIを学ぼう」はScratchで動かしながら強化学習を理解できる凄い本 - karaage. [からあげ]

つい買ってしまったのがこちら。

Img_4159

はい、タイトルの通り、ScratchでAIを学ぶという本です。

といっても、PythonにScikit-learn、Kerasなどで機械学習系はある程度組める私が、何故Scratchなどという微妙な言語によるAI解説本に手を出したのか?

実はこの本で扱うAIというのが、「強化学習」なんです。

教師あり、なし学習というのはいろいろとやってきましたけど、強化学習って、使う機会がなかったんですよね。

てことで、これに飛びついたというわけです。

Img_4160

いわゆるQ学習のアルゴリズムが書かれてます。ああ、こういう原理なわけねぇ……思わず納得です。

中学生向けの数学で理解できるレベルと書かれてますが、確かにそうですね。中学レベルの数学です。

が、そこはやはり”機械学習”の一種ですから、パラメータチューニングやらの大変さはあります。

なによりも、強化学習の題材が一番の課題。

ところがこの本から3つのサンプルコードにアクセスでき、あらかじめ組まれた強化学習コードを読み込むところからスタートできます。動かしつつ体感でき、理屈を後付けで覚えるという私のスタイルにピッタリな本です。

で、最初のプログラムコードは、2択のゲームです。

Qst04

穴が二つあって、「左」「右」のボタンをクリックすると、ある確率でダイヤが出ます。

ところがその左右の確率が不均質で、20回クリックするうちに当りをつけて、なるべく多くのダイヤを出すというのがこのゲームのルール。

それを、人間、強化学習で交互に行います。

Qst05

で、まずは人間の結果。

20回中、ダイヤは7個でした。案外、ムズイ。

Qst07

で、今度はAIの出番。

Qst06

結果はこちら。倍近い大差をつけられました。あーあ……

この強化学習というのが、学習しながらゲームを解いているわけですが、これが意外と、人間が勝つことが困難なほど上手く学習してくれます。

しばらく、パラメータをいじりながら遊んでみました。

Qst02

このコードの解説と動作原理は、本の中に書かれてます。詳しくは、本をお買い上げください。お値段、2090円。

今のところ、あまり使い道が思いつかない強化学習ですが、いずれはモノにしたいですね。

ScratchでAIを学ぼう ゲームプログラミングで強化学習を体験

2020年5月25日 (月)

ゲームを作り出すAI!?NVIDIAが「GameGAN」でパックマンを再現!

パックマンって、誕生から40年を迎えるんですね。

それはともかく、そのパックマンをエピソードのみから再現するというAIをNVIDAが作り出したと宣伝しております。

誕生 40 周年を迎えるパックマンを、NVIDIA の研究者たちが AI で再現 | NVIDIA

そのAIはずばり「GameGAN」というそうです。GAN(Generative Adversarial Network、敵対的生成ネットワーク)のゲーム版といったところのようです。

そのGameGANにパックマンの5万エピソードを放り込んで学習させて、ゲームエンジン無しにパックマンを再現したんだそうです。

ええ、もう、何言ってるのかわかりませんね……

で、できたものはこちらの動画。

これを見る限り、ゲームを作った、というより、ゲーム動画を作ったというところでしょうかね……

どちらにしても、たいしたものです。

いずれスペースハリアーやアフターバーナーなんかも作り出しちゃうんでしょうかね?

レトロアーケード <パックマン>

2020年5月 3日 (日)

ゲームセンターあらしの作者 すがやみつる氏によるPython解説本「こんにちはPython」買ってみた

長らくPython解説本を探していたんですが、こいつが出るという話を聞いて、予約注文してました。

Img_3984

で、5月1日に到着。

この絵柄に懐かしさを覚える人も多いんじゃないでしょうか。そうです、1980年代に一世を風靡した、あの「ゲームセンターあらし」です。

その作者、すがやみつる氏は、実は「こんにちはマイコン」という本を書いていたことも、知る人ぞ知る話。

そんなすがやみつる氏の最新作がこちら、「こんにちはPython」です。

いわゆる入門書ですが、ちょっとかいつまんで紹介します。

Img_2357

この本、全部で190ページほどですが、そのうち56ページまでを使って、単純な四則演算とprint表示、変数、そして”Hello World”の解説にあてています。

一見すると随分と回りくどい感じがしますが、実はその解説の中で、Pythonの導入から基本的な構成、そしてエラーの読み方など、Pythonの基礎となるべく知識を分かりやすく漫画で描いております。

Img_2358

それが終わると、いきなりゲームの製作です。ゲームセンターあらしらしい展開……と思いきや、実に単純なゲームです。

数字を言いながら、3の倍数なら「フィズ」、5の倍数なら「バズ」、両方で割り切れる数字なら「フィズバズ」と言い換えるというゲーム。

Img_2359

当然、繰り返し文に条件文が登場します。このため、Python特有のこれが登場です。

そう、「インデント」です。

このPythonにおけるインデントの概念を、分かりやすく説明しています。漫画の力ですね。

ところでこの本、分かりやすいのは漫画の力だけではないです。

なんていうんでしょうか……トライアンドエラーをきちんと書いているというか、とにかく、こうするとこうなる、というのを手順を追って書いているんですよね。

例えば、これ。

Img_2360

1~6までの数字の乱数を発生させたいとき、単純にrandom関数を使うとこうなっちゃう(小数点以下何桁もの表示が出てくる)というのを示したうえで、それの修正方法(int等)を順を追って説明。

プログラムって、こうした「やっちまった」ことの繰り返しで覚えていくことが多いので、トライアンドエラーをきちんと書いてくれるのはユーザー体験的には分かりやすいことじゃないかと思います。

とまあ、こんな調子で話は進みますが。

Img_2361

最後は、こういうゲームを作ります。

後半ほどコードの解説が多いですが、わりと何とかなりそうです。

さて、私も社内でAI/機械学習系の普及活動をやってますが、そもそもこのPythonが分からないという声が多いのは事実です。

VBAやHTML、Javascriptなどの言語に触れたことがある人なら何とかなるんですが、そういう人ばかりではないのがこの日本という国の現状。

一方でPythonという言語は、そのままでは使われない言語でもあります。

大抵は「pip」コマンドで機能を実装して、importでそれを読み込んで使用する。まあ、それがPythonの良さでもあるんですが、一方で初心者を混乱させている元凶でもあります。

この入門書では、pipだのimportだのに頼ったプログラムは、ほとんどありません(とはいえ、乱数を使うときには「import random」等、多少はあります。まったく使っていないわけではないですが)。

本当の基礎を学ぶには、良書ではないかと感じました。

てことで、早速こいつを会社にもっていき、紹介して回ろうかと思ってます。さほど高い本でもないですし、やはり漫画ということもあって読みやすい。そこからあとは他の本なり、ネット検索なりで上達していけるきっかけとなればと思ってます。


ゲームセンターあらしと学ぶ プログラミング入門 まんが版こんにちはPython

2020年5月 1日 (金)

最大20人の体温を同時測定するアイリスオーヤマのAIサーマルカメラ

いやあ、アイリスオーヤマさん、なかなかいいものを発売しました。

最大20人の体温を同時測定 アイリスオーヤマ、「AIサーマルカメラ」を発売 - ITmedia NEWS

アイリスオーヤマが4月15日に、最大20人の人の顔検出と、その体温を測定するというAIサーマルカメラ「ドーム型AIサーマルカメラ」を発売しました。

ごらんの通り、複数の人の顔を検出し、その上に体温を表示するというもの。注文が殺到しているようです。そりゃあそうでしょうね。

凄いのは、マスクをつけていても顔検出できるというところ。実は実験してみましたが、よくあるOpenCVに付属の顔検出器ではマスク付きの顔を検出できません。ちゃんと作ったようですね。

まさに今、コロナ禍の真っただ中。その疑いのある人をチェックしたいという需要はあるものの、非接触で同時に何人もの人を測定できる機器って、ほとんどありませんね。

しかしこれ、お値段90万円とのことで、結構な値段です。とても個人レベルで同行できるものではありませんね。

1人だけ測れる携帯版の「ハンディ型」というサーマルカメラもあります。こっちはお値段25万円。ごく普通のサーマルカメラです。

これを見ていると、なんだか自分でも作れないかなぁ……なんて思ってしまいますが、さすがにマスク顔をどう検出するかを解決しないと、だめそうですよね。

FLIR(フリアー)【国内正規品】iPhone/iPad用 FLIR ONE Pro 19200画素 1年保証 赤外線サーモグラフィ メーカー品番:435-0006-03

2020年3月24日 (火)

子供の科学 4月号にて「Scratchで機械学習」

大人なのに買ってしまいました「子供の科学」。

もっとも、うちには小学生が一匹いるので、別におかしくはないんですか。

Img_3884_20200323125001

はい、これです。この表紙を見れば、買わずにはおられません。

Img_3885

特に、この辺りです。「あらわる!空からの刺客」……ではありません。「Scratchで機械学習」の方です。

この手の特集のタイトルは、たいてい「AI」で済ませてしまうものですが、さすがは科学雑誌です、しっかり「機械学習」と明記しているところに好感です。子供向けだからこそ、曖昧な用語ではなく正しい言葉を用いようというこの雑誌の姿勢が素晴らしいです。

さて、商用誌なのであまり込み入った紹介はできません。詳細はお買い上げください。

Img_3887

まず、使用言語は「Scratch」です。もっとも、ただのScratchではなくて、機械学習用の改造版Scratchを呼び出します。

Ml2s01

で、私も早速、試してみることに。ここから雑誌の内容に従ってごにょごにょすると、機械学習版Scratchが呼び出せます。

Img_3891

で、その機械学習版Scratchですが、PC内蔵のWebカメラなどを使い、画像の学習を行います。

Ml2s02

私もやってみました。雑誌とは違って、グー、チョキ、パーをそれぞれ20枚づつ学習させます。

で、学習後に、カメラの前で実際にグー、チョキ、パーをかざしてみます。

Ml2s04

Ml2s06

Ml2s05

「パー」が1、「チョキ」が2、「グー」を3のラベルとして認識させました。

20枚ですが、かなり正確に学習できていることを確認。

Img_3888

この学習器を使って、あとはScratchのプログラムを組みます。

この雑誌では、上のようにPongゲームをプログラミングしてました。

で、ジェスチャーを学習した学習器を使い、手によるジェスチャー操作をするというゲームを作成。

たったそれだけの特集でしたが、画像認識というものを理解するには良い記事ではないかと。

裏ではTensorFlowが動いているようですね。しかし、今どきのPCなら問題なく動作してくれます。

新型コロナウイルスによっていつもより長い春休みを、子供と共に機械学習で過ごしてみませんか?

お値段は880円(税込み)です。

子供の科学 2020年 4月号 特大号 別冊付録付 [雑誌]

2020年3月16日 (月)

自宅PCを使って新型コロナウイルスの解析に貢献!?

いわゆる分散コンピューティングってやつです。自分のPCの計算能力を提供し、様々な解析に参加できる「Folding@home」に、新型コロナウイルスに関する解析項目が登録されたそうです。

自宅のPCで新型コロナウイルス治療に向けた解析が可能に - PC Watch

COVID-19に関し、6種類の解析が登録されているようです。当初はGPUのみでしたが、今はCPU、GPU共に利用可能とのこと。

私は、ちょっとこの分散コンピューティングによる成果がどう使われるかが不明瞭なため、参加する予定はありません。

が、この手の分散コンピューティングは、計算能力のアピールにも使われるので、腕、いや、CPU/GPUに覚えのある方は、参加するのもよろしいかと。


AMD Ryzen Threadripper 3990X 2.9GHz 64コア / 128スレッド 288MB 280W【国内正規代理店品】100-100000163WOF

2020年2月26日 (水)

京都大学のPython基礎講座教材

京都大学で行われる、あらゆるPython授業に先立って行われる講座です。

Kyoto University Research Information Repository: プログラミング演習 Python 2019

その名も、「プログラミング講座Python 2019」です。

京都大学というだけあって、思わず引いてしまいそうですが、中身はそれほど難しいというわけではありません。

よくあるコマンドごとの解説というより、計算や処理、関数による処理、そして実践事例という順で解説しています。

Pythonって、標準の機能よりもimportで関数を読み込んで使うという使い方が最も多いので、この教材のやり方の方がより現実的かなぁと思いますね。

ところでこの教材は「CC-BY-NC-NDライセンスによって許諾」と書かれています。

簡単に言うと、再配布可能、改ざん不可のようです。

個人的には、参考になる教材ではないかと思いますね。特に機械学習をやろうという人には向いているかと。

Excel×Python最速仕事術

2020年2月14日 (金)

SONY Neural Network Consoleを使って故障予測AIを無料で作る!?

なんていう無料体験サービスを、Neural Network Console Cloudが紹介しています。

Neural Network Console Cloudのご紹介

上のリンクから、SONYまたはGoogleアカウントでログインすると、この無料体験サービスを使うことができるようです。

で、ドキュメントがあったので、ちょっと読んでみました。

時系列データの異常波形を検知する、というのが目的で、サンプルデータはsin波にノイズを加えたもののようです。

で、Affine層だけ使ったものと、Convolution層を用いたものの両方が解説されてました。

ただ、Convolution層は1次元ではなく、2次元のものを無理やり(波形データを(1,128)のような2次元配列に変換して)読み込ませてました。

でも、需要ありますからね、時系列データからの異常検知。このテーマを取り上げたのは、正解だと思います。ニューラルネットワークというと、ほぼ画像認識ですから。

ですが、時系列処理でよく使われるRNN(LSTM)は使われてませんね。

これはおそらくですが、このNeural Network ConsoleのモデルをPython上で使うためのライブラリ「nnabla」が、LSTMをサポートしていないからじゃないでしょうか?

このドキュメントをみると、Neural Network Console上で作ったモデルを利用するPythonコードの作り方まで書かれてます。実際の活用まで想定したこのテーマ。これはなかなか良い教材ですね。

お手軽に異常検知を試してみたいとお考えの方、是非このサイトをご覧下さい。


ソニー開発のNeural Network Console入門【増補改訂・クラウド対応版】--数式なし、コーディングなしのディープラーニング

2020年1月29日 (水)

SONYのディープラーニング講座チャンネル

さあ、今年こそディープラーニングやるぞ!

……とは言ってみたものの、一体何から始めたらいいのやらさっぱり分からないというお方。

G検定なるものもありますが、とりあえず、これから始めてはいかがでしょうか?

SONY Neural Network Consoleの公式チャンネルが提供する、ディープラーニング講座の動画です。

ちょっと見てみましたが、上に張り付けた導入編の動画は特にわかりやすいですね。ぜひ、多くの人に見てもらいたい動画です。

Neural Network Consoleの公式チャンネルなので、Neural Network Consoleを使っての講義になるようですが、それでも一から学ぶには適切な難易度ではないかと思います。

世の中、ビッグデータ技術、機械学習、果てはAIといったものが多く入り込んできています。

この分野、日本が遅れているという実態もありますが、そういうネガティブな理由ではなく、こういう技術を使うと自身の業務が画期的に改善される、という視点で取り掛かる方がずっとポジティブに、前向きに取り組めるかと思います。私は最近、そう考えることにしてますね。

興味はあるけど、数学やらプログラミングやらの壁で断念していた人は、ぜひ。


なっとく!ディープラーニング

2020年1月25日 (土)

ベイズ推定とは?

私が目にした中で、一番分かりやすいベイズ推定の説明です。

具体例でわかる!ベイズ推定とベイズの定理 - 世界一暇なデータサイエンティスト

これのおかげで、やっと「条件付確率」の記号を見てすっと理解できるようになりました。

やはりというか、具体例と共に説明すると、分かりやすいですね。もっとも、なぜ「出会い系」なのか……という声はあるでしょうけど(いや、でもおかげで分かりやすいというのも事実)。

最近は機械学習が大流行りで、その流れで「ベイズ統計とはなんぞや!?」と苦しんでいる方が大勢いらっしゃると思います。ここは一からじっくり読んでいただきたいサイトです。

ですが、当然これだけで「ベイズ」とは何たるかがすべてわかるわけではありません。1万歩の道のりの、ほんの一歩にすぎません。ですが、入り口としては最適なサイトではないかと。


データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学)

より以前の記事一覧

当ブログ内検索

スポンサード リンク

ブログ村

無料ブログはココログ