お久しぶりです。AIが流行ってますね。AI、AI、猫も杓子もAI。ボヤボヤしてると後ろからバッサリだ。
私の普段の仕事は地理情報の可視化、というか具体的に言うとLeafletを拡張して独自のレイヤを作ったりみたいなことをやっているのですが、オフィスに(たまに)行くとAIが何だGPTがどうだという話になっており、もうそろそろAIから逃げられない情勢になってきました。
ということで、去年あたりから知人のフバさん(人の名前です)が推薦していた本「深層学習」でぼちぼちニューラルネットワークの勉強をしていました。
↑これがフバさんです。異常なシャツを着ていますが彼は機械学習のエキスパートです。 *1
↑ちなみにこれは私です。
まあそれはさておき
実は学生時代に講義でNNやバックプロパゲーションを教わった筈なんですが、よく分からないまま終わってしまったんですよね。確かExcelでやらされたんですよ。当時だってRubyやPythonぐらいあったと思うんですが、プログラミング言語を使わない方が学生に優しいとでも思ったんでしょうか。
そんな事情で宿題が残っていたような状況になっていたので、このお盆に復習も兼ねて自分でNNを実装してみました。
これがPure javascriptのニューラルネットワーク、Blobcat NNです。
パラメータを調整して ▶︎ ボタンを押すと学習がスタートします(よく分からなければ初期状態でも大丈夫です)
学習が終わったら【Test】タブに移動して数字をマウスで書くと、NNで文字認識をします。
結果に自信が無いときはちょっと小声になります
自信が無いというのは具体的には、第二位のクラスのスコアが第一位(判定結果)スコアの0.6倍以上ある場合、平たく言うと第一位のスコアが突出していない場合としています。
ところで、初期状態だと数字を書く位置がちょっと横にずれただけで認識できなくなります。
じゃあ、元データを横にずらしたものを学習すればいいんじゃない?という安直なアイデアが出てきますが、これはAugmentation(データ拡張/水増し)という正当なテクニックらしいです。「Augment」のチェックボックスをオンにするとBlobcat NNでもデータ拡張が有効になります。ただし、当然学習が難しく(収束が遅く)なります。
なかなか学習が収束しないとBlobcatが苦悶の表情を浮かべますので、パラメータを変えてあげてください。今のところ以下の項目をいじれます。
- データ拡張の有無
- 活性化関数(中間レイヤのみ)
- 学習率
- モメンタム
- 学習終了のLoss閾値
実用性は全くありません(※これはディープラーニングではなく80年代からある古典的なNNです)が、NN の本に書いてあるトピックをマウスをポチポチするだけで体感できるので、高校生や学部生あたりへのデモとしては使えるかもしれません。
今後はディープラーニングにも手を出してみようか、多少最適化してみようか、とか考えていますが、GPUを使ったりまではしないと思います。そういう目的のものではないので。
ところで皆さんさっきから気になっていることがあると思います。
Blob(cat)とは何か
ここからが大事なところなので、AIに興味がない方も是非読んで帰ってください。
かつて、Google+(グーグルプラス)というSNSがありました。2011年、検索では王者ながらSNSではぱっとしなかったGoogleが起死回生の一矢として放った製品です。一言で言えばGoogle版Facebook。
あのGoogleが作ったSNS。どんなもんかなー、とGoogle+を時々覗いていた我々の前に、彼(ら)はある日突然現れました。
なんだお前は。そして混乱する我々をよそに平然とこう言い放ちます。
セントパトリックデーおめでとう!
彼の名はBlob。Androidの絵文字のために、Googleが日本のデザイン会社に依頼して作成したキャラクターです。Google+では、スマートフォンのアプリにのみ上の画像を投稿する機能がありました(最終的にPCに実装されたかどうかはもう忘れました)
「セントパトリックデーおめでとう!」というのはアプリに入っていた定型文だったのか、とにかく聖パトリックの祝日になるとBlobの画像とともにそのメッセージが流れてきました。
聞いたことのない祝日。PCからはアクセスできない謎の機能。彼のミステリアスさは次第に我々を魅了し、いつしか「きなこもち」と呼ばれ親しまれることになりました。
ところがその後Androidの絵文字は一般的なデザインに変更され、Google+はわずか8年で終了し、彼は棲家を失います。
しかしGoogleがBlob(を含むEmojiフォント)をApacheライセンスで公開したことで、マストドンやMisskeyの絵文字として再度活躍することになり、猫耳をつけた派生キャラクターであるBlobcatが誕生しました。
無数のBlobcatが作られていますが、左端のソファーに横たわっているものが特にお気に入りで、NNのデモにも登板願ったというわけです。
私はMisskeyではなくMastodonを使っているので英語圏と同じBlobcatと呼んでいるのですが、日本語圏では「にゃんぷっぷー」と呼ばれることが多いそうなので、こちらで検索した方が情報が多いかもしれません。
Good blob life!
追記2
あまり争いはしたくないのですが人権侵害呼ばわりまでされては看過できないので……
『夏休みなのでニューラルネットワークの勉強をした - ポルノアニメ』へのコメントb.hatena.ne.jpありがとうございます!!!ちょうど、はてブ用のプロフ画像探してたんです!!!寝込んでた親が生き返りました!!!/他人の写真を無断で使用するのは肖像権侵害、水原氏へのイジメは人権侵害です。やめた方が良いですよ。
2024/08/31 07:21
まず、このシャツは私が作ったものではありません。下のサイトで買ったものです。
Ippei Mizuhara Team Ippei T-Shirt | Allbluetees.com
紹介文には「水原一平氏の素晴らしい通訳の仕事を応援しましょう」とあり、攻撃の意図がないことが分かります。
あなたは我々が純粋に水原一平氏のファンである可能性を無視しており、加害者であると決めつけていませんか? それこそ人権侵害ではないでしょうか。そして、下のような暴言を吐くような人が他人に道徳を説けるとは思えません。
イケダハヤト、ずっと半笑いで刺殺事件を語る - 今日も得る物なしZb.hatena.ne.jpこの書き手の人が一番クズだと思う
2018/06/26 19:45