Tag Archives: 機械学習

米アニメエキスポで評判を呼んだ「俺の嫁(Waifu)自動販売機」

Waifu Labs は、一点もののアニメ風の少女イラストを機械学習によって生成してくれるという webサービスです。

内部の生成の仕組み自体は、Gwern さんのThis Waifu Does Not Exist (解説) を流用しているもので、StyleGAN による自動生成された「存在しない(=既存作品等に無い新規の)アニメイラスト」画像です。

今回のサイトは、完全なランダムで一枚を生成するというオリジナルとは違い、生成の段階で16種類提示される「最初の好み」「色の傾向」「細部」「ポーズ」を選んでいくことで、自分が選択した好みのオリジナルのイラストが得られる、というものになります。

生成された一点画像は、枕やポスターとして購入できる、というのがサイトの狙っているビジネスモデルでしょうか。

作者チームはこのシステムをアメリカ・ロスアンゼルスの Anime Expo に持ち込み、ブースを設けてカスタムのイラストを販売(英語圏でいうところの commission)し、希望者の長蛇の列を作ったのだと、ブログで裏話が公開されています。

ツイッター等のソーシャルメディアでアイコンをこういったアニメ絵にしてる人が特に日本語圏では多く、既存の作品から切り取ったものを使ってる場合は著作権や利用権について突っ込みが入ることも多いと思います。こんな風に自分の希望から他にないイラストが自動生成できてしまうのですから、こういったものを使えばその問題も解消しますね。

また、これぐらいのイラストが数分で無料で手に入ってしまうとなると、ちょっとしたカットを描くような仕事にも影響がでるかもしれませんね。

それから、著作権やオリジナリティという意味では、こういった自動生成のデータを大量に公開し続けておくと、後から人力で描かれたイラストと非常に似たものも存在し、「先行公開していた」と主張することだってできるかもしれません。機械的な自動生成が簡単に使えるようになることで、いったい著作権って何だ、というような騒動が起き、仕組みの対応も迫られる近未来があるかも。

機械学習で3塁コーチの盗塁サインを見破る

実験工作系有名YouTuberのマーク・ローバーさんの新作は、実用的で面白く、機械学習がどんなものかを野球ファンに強く印象づけるような動画です。野球のコーチが出すブロックサインを、機械学習を使って当ててしまおうという企画。

まずは子供の野球を使って単純なサインを当てるのですが(02:00)、これはサインと盗塁したかどうかを3通り入力しただけで当てられるようになってしまいます。この時点では、帽子と左耳を連続で触った時だけが盗塁の指示でした。

動画は04:00 あたりから機械学習の簡単な紹介をし、06:00 からは、50人の草コーチに尋ねたブロックサインの作り方を説明します。

ほとんどのコーチが、あらかじめ決めておいた場所=インディケーターを触った後にどこを触るかで、盗塁を伝えていることから、機械学習を使うまでもなく、90%の盗塁サインは見破れるとなりました。

残りの10% を見破るものとして、ニューラルネットワークを適用します。

正しいデータの入力は、まだ泥臭い方法を使っています。3塁ベースコーチの様子をカメラを設置して撮影し(11:40)、学習結果を用意しておきます。

そして、スターバックスの空のカップに隠した GoPro で映したコーチをスマートフォンで見ながら、すべての動作をアプリ上で入力すると… アプリが盗塁か否かをたちどころに教えてくれます。

今は動画で撮影したコーチの膨大なサインから、一挙手ごとに正解データを入力しているのでたいへんでしょう

ローバー氏は動画の終わりに、「各リーグにはそれぞれ、こういった機械を使ったサイン破りを禁ずるルールがあるはず」「決してルール破りを奨励するものではありません」と(12:40)。

実際にプロの試合でこんなものを使ってしまっては、野球の面白さが無くなってしまいますからね。個人的にはもう、コーチもバッテリーもハンドサインじゃなくて無線で連絡しちゃってもいいのではと思いますが。試合時間短縮にもつながるでしょうし。

野球とサインという日常的でわかりやすい事例(北米と日本だけかもしれませんけど)で、機械学習の活用法やその仕組みをおもしろく解説しているよい動画だと思いました。

Speech2Face – 声からあなたの顔つきを当てる研究

声から、喋っている人がどんな顔なのかを推定する、という研究です。

上に並んでいるのが、短文の音声メッセージの話者です。これ左端はダニエル・クレイグ氏(007)ですよね。他はわかりませんが。

サイトで再生ボタンを押すと、推定に使われた音声データが聴けます。10秒も無いぐらいの短い文章です。

そして、下に並んでいるのが、その音声から深層ニューラルネットワークを利用して推定した話者の顔。

学習データとしては、インターネット/YouTube 上の数百万の人が喋っている動画を使ったそうです。「こんな風貌の人は、こんな風に話す」というデータを大量に食わせることで、「こんな風に話す人は、こんな見た目なことが多い」という変換を得たということですね。

推測結果には性別・ジェンダー・人種など繊細な問題が絡むことから、倫理的な注意書きが添えられています。学習データは全人類の平均的な喋り方を集めたのではなく、YouTube などから動画を集めたことから、データには当然バイアスがあります、と。YouTube に出ているような人の喋り方、に偏っているかもしれないし、喋っている言語のサンプルが少なかったりする言語の場合も偏りがあるかもしれない、などなど。

また、話者本人を特定したり、話者のファッション(髪の色やメガネ等)を特定したりは当然できません。(メガネをかけた人特有の話し方、とかない限り)

アプリやブラウザに対して喋ると顔写真を出してくれたり、というお遊びサービスは面白そうですが、その先にどのような実用的な応用がありうるのか。何か面白いことができそうな研究ではありますね。

via Futurism

GrandType – キータイプの間隔データを機械学習させ、ユーザーを特定するプロジェクト

GradTypeは、英文を入力する際のキータイピングの癖を使って、今誰がタイプしているのかを特定しようという実験プロジェクトです。

まず、GitHub で認証した状態で、出てくる英文を入力することを繰り返します。すべて小文字で良く、正しい文字とスペースキーを打った時しか先へは進みません。打ち間違えたとしても間違えた文字は入らないのでそのまま続けます。

この時、サービスの裏側ではキーと次のキーが打たれる間の時間を記録し、RNNで学習させているそうです。

文章のバリエーションはそれほど多くありません。数十回入力した後で、ログアウトし、ユーザーとして認識していない状態で同じように英文をタイプすると、

RNNでより「似ている」と判定されたユーザー5名が表示されます。

多数のユーザーが試しているためか、なかなか当ててくれませんでした。(一回は自分のユーザー名が当てられたのを見ましたが、スクリーンショットを撮っていませんでした)

実用的にはスペルを打ち間違えたり直したりするデータを使った方が、より個人の特定はしやすいだろうと思いますが、研究としてはキーとキーの間隔時間だけでどこまでやれるかというのを見ているようです。

匿名で入力できる、と思われているようなサイトにおいても、個人の癖を収集して人物の同定を行うなんてことも、より簡単にできるようになっていくかもしれませんね。

Hacker News では、それへの対策として、キータイプの癖を攪乱するというツールも紹介されていました。匿名個人の特定ではなく、認証にタイピングの癖を使うといった研究もあるようです。

ソースコードが公開されています。

via Hacker News

BugBug – 機械学習によるバグの自動トリアージ by Mozilla/Firefox

Mozilla Hacks で、2月から導入された BugBug というバグレポートの自動分類ツールの紹介が読めます。

Mozilla の様々な製品/コンポーネントに対して発行されたバグ報告を、とりあえずどの製品のどのコンポーネントに属するものかを分類して、そのコンポーネントの担当者に早く届くようにする、というのか今回のツール導入の目的だそうです。

大災害時などに負傷者の治療作業の順番をつける「トリアージ」と同様のことをバグに対して行う「バグトリアージ」というわけ。

“Teaching machines to triage Firefox bugs” より、概念図

これまではというと、ボランティアや開発者が人手でバグを分類し設定することで担当者に届けられていたのですが、ここの分類に日数が掛かっていて、バグが解消されるまでの期間が長くなっていた、と。

機械学習で分類させるには、どんなバグレポートがどのコンポーネントに対するものか、という過去の正しいデータが必要ですが、Mozilla でこれまで発行されたバグレポートは20年以上の期間での153万件を越えるそう。

これが人力でおおむね正しく分類されているので、これをXGBoostに食わせることで、新たに到着したバグレポートが属するコンポーネントの予測が自動的にできるのだそうです。

2月末に一部のプロダクトに対して導入運用を始め、350件のバグを自動分類し、そのチケットの解決までの日数の(外れ値を除いた)中央値は2日間と改善されたそう。ちなみに、今は60%の信頼度で分類して、80%以上の適合率を達成しているそうです。

今後の計画としては、重複チケットの検出、バグレポートに欠けている内容(たとえばバグの再現方法)を見つけて報告者に追加してもらう、リリース版での重要なバグを素早く発見する、などを検討しているということ。

大きな製品になるとバグレポートも膨大に届き、切り分けだけでたいへんな人的リソースを必要とするのでしょうけれど、その部分の自動化は開発側にも利用者側にも大きな恩恵を与えそうですね。

via VentureBeat

Gamedetect.io – ゲーム画面の画像からゲーム名を当てるサービス

GameDetect.io のフォームにビデオゲームの画面写真を与えると、JSON でそれがどのゲームに似ているかを返してくれます。

適当な画像をアップロードすると、以下のような形でゲームタイトルとそのゲームである確からしさを戻してきます。


{
"filename":"dragonquest5.jpg",
"predictions":[
{
"label":"stardew valley",
"probability":0.568226
},
{
"label":"the legend of zelda a link to the past",
"probability":0.15813187
},
{
"label":"super mario maker",
"probability":0.031073814
},
{
"label":"factorio",
"probability":0.027034273
},
{
"label":"don t starve together",
"probability":0.020903632
}
],
"speed_ms":1113
}

Tensorflow と Golang によって実装されており、学習データとしてはTwitch のゲーム配信画面をスクレイプしたものを使っています。ゲーム実況にはゲームのタイトル情報とゲーム画面があるので、これを正答として学習させ、モデルを作っているのですね。

そのような作りなので、回答で出てくる候補のゲームはTwitch で今最も多く中継されているゲームトップ100 からだけとなっています。(冒頭で試したドラクエ5 の画面では、Stardew Valley やゼルダなど画面の似ているものが出てしまっていますね。)