2018年3月16日金曜日

AIによって雇用が増える仕事では、どのようなスキルや経験が必要なのか

 メディアでは「AIが仕事を奪う」というシナリオが波紋を呼んでいるが、このシナリオは事実とは程遠い。われわれの認識では、一部の仕事は失われるものの、AIは人間の能力を拡張することを目的としている。AIはわれわれの生産性を高め、仕事をより迅速に、より正確に行うのを手助けしてくれる。これは、いわゆるブルーカラーだけでなく、ナレッジワーカーなど、あらゆるタイプの仕事に当てはまる。

 ダボスでの会話の多くは、このトピックについてだった。組織のリーダーたちが「技術の、とりわけAIのような破壊的な革新技術がもたらす人的な影響がどうなるのかを知りたい」と考えているからだ。幸いなことに、AIは雇用の創出を促す。2020年には、AIは180万人の雇用を減少させる一方、230万人の雇用を生み出す見通しだ。50万人の雇用純増となるわけだ。

 将来の仕事については、これからも仕事の主役は人間であることを念頭に置くことが重要だ。ただし「われわれが何をどのように行うか」という点では、将来は大きく変わるだろう。

 将来は、特定のAI技術に関する知識に加え、データサイエンスやデータ品質管理といった分野の専門ノウハウが要求されるようになる。今から10年後には、非定型的と分類される仕事が、全体の3分の2を占めるだろう。人々はより多くの頭脳労働を行わなければならなくなる一方、肉体労働は少なくなる。

 こうした仕事を担う人材を確保するために、既存従業員の再教育が必要になる場合もある。その責任は、CIOと人事部門のトップが負うことになる。両者は共同で必要な人材の育成、再教育のための明確な戦略を策定しなければならない。

 AIエンジニアの仕事について言えば、コーディングが自動化される作業になったらスキルアップが必要になる。スキルや経験を新しい役割や課題に効果的に応用するためだ。

2018年3月15日木曜日

「Googleマップ」を利用したリアルワールドゲームの制作が可能に

Googleは、「Googleマップ」で実装されている世界モデルのリアルタイムデータの提供と、それらのUnityゲームエンジンでの利用を発表した。

ゲーム開発者は、実際の建物や道路などのデータに、中世やファンタジーなどのテクスチャを合わせるというゲーム世界の構築を、より簡単にできるようになる。

現実世界とゲームを融合
Google Maps APIs Gaming

Google社内のスタートアップ企業としてスタートしたNianticによる『Pokémon GO』や『Ingress』など、その数と需要を増し続ける"リアルワールドゲーム"。

Googleのサイトでは、ドラマや映画をもとにした『The Walking Dead: Our World』や『Ghostbusters World』『Jurassic World Alive』などもパートナー企業による位置情報ゲーム作品として紹介されている。

The Walking Dead Game

今回の発表によると、「Googleマップ」に登録されている200以上の国、1億以上の3D建物、道路、ランドマーク、公園が利用可能になる上、地図はリアルタイムでアップデートされるという。

データ提供は有料であるものの(外部リンク)、ゼロから開発する必要なく没入感の高い世界を構築できるため利用の幅は広そうだ。

Google Maps API
You can now build real-world games using Google Maps APIs. Learn how #GameDevelopers can bring the richness of Google Maps to @unity3d—one of the most popular mobile game engines. http://goo.gl/XAWR4x #GameDev

上述した位置情報ゲームのほかにも、架空の都市を舞台に箱庭型の探索と過剰な暴力で絶大なヒットを飛ばした「Grand Theft Auto」シリーズや、実在の街を忠実に再現してゲーマー以外にもプレイ人口の多い「龍が如く」シリーズ。

よりファンタジー色は強いが『AKIBA'S TRIP』や『TOKYO JUNGLE』など、「街」を主眼とした作品は数多く、その需要は高い。

「Googleマップ」の提供により、今後どのような作品が生まれていくのか、楽しみだ。

2018年3月14日水曜日

What are the meanings of batch size, mini-batch, iterations and epoch in neural networks?

Gradient descent is an iterative algorithm which computes the gradient of a function and uses it to update the parameters of the function in order to find a maximum or minimum value of the function. In case of Neural Networks, the function to be optimized (minimized) is the loss function, and the parameters are the weights and biases in the network.

Number of iterations (n): The number of times the gradient is estimated and the parameters of the neural network are updated using a batch of training instances. The batch size B is the number of training instances used in one iteration.

When the total number of training instances (N) is large, a small number of training instances (B<<N) which constitute a mini-batch can be used in one iteration to estimate the gradient of the loss function and update the parameters of the neural network.

It takes n (=N/B) iterations to use the entire training data once. This constitutes an epoch. So, the total number of times the parameters get updated is (N/B)*E, where E is the number of epochs.

Three modes of gradient descent:

Batch mode: N=B, one epoch is same as one iteration.

Mini-batch mode: 1<B<N, one epoch consists of N/B iterations.

Stochastic mode: B=1, one epoch takes N iterations.

Note: The answer assumes N is a multiple of B. It would take int(n)+1 iterations otherwise.

2018年3月13日火曜日

AIをサポートする「Windows ML」APIと新しい「WebView」の登場

 2018年3月7日に「Windows Developer Day 2018 March」が開催された。このイベントでは、Edgeをベースとした新しいWebView、Windows 10を機械学習の実行プラットフォームとする「Windows ML」と呼ばれる新たなAPIなど、さまざまな発表があった。本稿ではそのキーノートスピーチから幾つかのトピックを見ていこう。

3つのポイント
 キーノートスピーチでは「Windows 10の新バージョンには数千もの新機能が搭載される」としながら、その中でも開発者に向けて次の3点が強調された。

デスクトップアプリのモダナイズ
WindowsへのAIの導入
Windows IoTによるインテリジェントエッジの拡張


デスクトップアプリのモダナイズ(モダン化)はこれまでもマイクロソフトが度々口にしていることだが、これをさらに推し進めるべく、次の3つが発表された。

Microsoft Edgeの描画エンジンを利用する新しいWebViewコントロール
MSIXと呼ばれる新たなアプリの「インストーラー/アップデーター」
さまざまなプラットフォームを通じて、カード形式でデータをやりとりできるAdaptive Card

 何より多くの人が驚いたのはWindowsへのAIの導入だろう。もちろん、これまでもWindowsにはAI機能(Cortanaなど)が搭載されていた。が、Windowsの次期アップデートでは、訓練済みの機械学習モデルをWindows上で動作する自分のアプリで使用できるようになる。そのために提供されるAPIが「Windows ML」だ。

 最後の「Windows IoTによるインテリジェントエッジの拡張」とは、インテリジェントエッジ*1を駆動するOSとしてWindows IoTを搭載することで、エッジデバイスの開発や運用において、セキュリティやコンポーネントの更新などはWindows任せにして、開発者はあくまでもエッジデバイスを使って「どんな有用なことを実現するか」に注力できるようにしようという考えだ。Windows IoTを使うことで、Visual Studioという手慣れたツールを使って開発を行えるというのもそのメリットの1つだ。

 デモではXogo Miniという小サイズのデジタルサイネージとWindows IoTを使用して、自転車販売店のデジタルサイネージを客層に合わせてリアルタイムに変化させていた。

WindowsへのAIの導入
 WindowsへのAIの導入とは、機械学習によって得られたトレーニング済みのモデルをWindows 10上で実行できるようにしようというものだ。そのためのランタイムやアプリから使用するAPIを整備したものがWindows MLとなる。

 ローカルのWindows上でAIを使用することのメリットは幾つかある。

ネットワークを介さないので、結果を即座に得られる
CPU、GPU、VPU(Vision Processing Unit。AIで画像処理を行うことに特化したマイクロプロセッサ)など、Windowsデバイスが持つリソースを直接使用できる
 以下はキーノートで紹介されたデモだ。これはカメラに映った映像をリアルタイムに変換するもの。

 このような場合、クラウドにいったんデータを送ることを考えると、とてもリアルタイムでの変換処理は実現できないだろう。カメラに映ったものをそのままGPUへと流し込むことで、ネットワーク帯域を使用することなく、高速に処理を行えるようになる。これはWindowsでローカルに機械学習モデルを利用できるようにすることの大きなメリットとなる。

 ただし、現状ではトレーニングを行ってモデルを作成するのはあくまでもクラウド側で行うことになるだろう。Windows側ではあくまでもその結果として得られたモデルを活用して、なるべく高速に、そして豊富なハードウェア資源があればそれを活用して、モデルと入力から迅速に推論した結果を得ようというのが目的だ。

 実際にWindows上でモデルを利用してアプリを作成しようという場合には、次のような流れになる。

 まずはAzureなどでトレーニングを行い、モデルを作成する。それをVisual Studioでアプリプロジェクトに追加する。アプリでは、モデルとそれに対する入力と出力を「バインド」し、さらに入力と出力をアプリのUI要素と結び付ける。アプリの実行時にはWindows MLによって、モデルが読み込まれ、それにユーザーが入力を与えるとモデルによって評価が行われ、出力が得られる。

 なお、Windows MLでは利用可能なハードウェア資源があれば、それを活用するようになっている。CPUしか使えないのであればCPUだけを、GPUやVPUを使用できるのであれば、それらを自動的に使ってくれる。開発者はモデルを得て、それに対する入力と、そこから得られる出力がどう扱うかを記述していくことに注力できるようになっているということだ。

 利用するモデルはONNX*2形式のデータであれば、Azureで作成しようが、他のプラットフォームで作成しようが構わない。以下はVisual StudioでONNX形式のデータを取り込んでいるところだ。

 モデルをプロジェクトに追加すると、モデルの内容を反映したクラスが自動的に作成される。モデルそのものを表すクラスと、そのモデルに対する入力と出力を抽象化したクラスがそうだ。これらは「バインド」と呼ばれる機構を用いて関連付けられる。

 追加したモデルをアプリに読み込んで、それに対する入力と出力をアプリのUI上の適切な要素とつなぎ合わせることも必要だ。デモではそのためのコードも示された。

 マイクロソフトはこれまでにもCognitive ServicesとしてAI機能を開発者に提供してきた。これらは機能がある程度定まったものを(例えば、画像認識、音声認識など)、アプリから使いやすくしようというものだが、今回のWindows MLの発表はより包括的な形でAI機能を(トレーニングはクラウド上でするものとしても)Windows自体、そしてWindows上で動作するアプリに組み込もうという意欲的なアプローチだ。モデルの作成そのものはWindowsアプリ開発者には荷が重いことだが、既にあるモデルを使って(あるいは、機械学習エンジニアと協働して)何か有用な機能をアプリに組み込んでみようという開発者にとっては大いに興味を引かれる発表だ。

仮想通貨は混迷が続く

サイバーセキュリティ月間と「SECCON 2017 決勝大会」
 毎年2月は恒例のサイバーセキュリティ月間です。2018年はSFテレビアニメ「BEATLESS」とのコラボイベントなど、たくさんのイベントが開催されました。ハッシュタグ「#サイバーセキュリティは全員参加」でたくさんツイートがあります。

 その中でいちばん大規模なものが「SECCON 2017 決勝大会」でしょう。2月17日には国内決勝大会、2月18〜19日には国際決勝大会が開催、これに関するたくさんのツイートがありました。

 国内決勝大会は国内の24チームが参加、チーム「TokyoWesterns」が優勝しました。

 国際決勝大会には、予選を通過した国内外15チームが参加、韓国のCTFチーム「CyKor」が連覇を果たしました。2位は米国の「PPP」でした。海外の強豪の中、国内勢では「dodododo」が3位に入りました。

 大会の会場では並行して多数の講演があり、セキリュティビジネスの注意点やGPSのハッキング、ゲームのチート対策などがテーマとなっていました。自動キー入力が可能なBadUSBの作成などのハンズオンも行われており、こちらもたくさんのツイートがありました。

投げ銭の代わりに「すしアイコン」を投げるサービスがスタート、大量の脆弱性により即日クローズ
 ネットで少額の投げ銭代わりに「すしアイコン」を送るサービスOsushiが2月1日に始まりました。

 これまでも似たようなサービスは幾つかあったため、早速使ってみたユーザーが、問題点をいろいろとツイート。即座にTwitterユーザーのおもちゃになってしまいます。

 ユーザーが見つけた危険な仕様は以下の通りです。

同じユーザー名で二重に登録できることから、前のユーザーの情報を後のユーザーが乗っ取り可能
セッションIDが予測可能なため、これを使ってユーザーの乗っ取りができる
ユーザー名に特殊文字を含めると動かなくなる
ユーザーの同意なしにクレジットカード情報を記憶する
sourcemapがアクセスできる場所にあり、クライアントのソースコードが漏れていた
退会できない
 さらに仮想のおすしとはいえ、クレジットカードを使って現金を送金できるサービスです。貸金業法など法律の面でも指摘が相次ぎました。資金移動業者としての登録が必要なサービス内容だったようです。

 このように多数の指摘があったことで、サービスを開始したその日のうちに閉鎖してしまいました。入金したお金はそのまま返還されたようです。

 突然大盛り上がりを見せたこのサービス、脆弱(ぜいじゃく)性がなければこれほどはやることはなかったという人や、以前Webサービスをたくさん立ち上げて炎上させることで有名になった「えがちゃん」を思い出している人もいました。

 その後、Osushiはサービス内容を一部変更し、3月7日にサービスを再開しました。

盗まれたXEM、どんどん売られていく
 仮想通貨取引所コインチェックから、不正アクセスによって約600億円分もの仮想通貨「NEM」(通貨単位XEM)が盗まれた事件が2018年1月末にありました。2月になっても仮想通貨のセキュリティ問題にはいろいろな動きがあり、多くのツイートが流れました。

 盗まれたXEMには追跡用のタグが付けられているため、換金できないという主張がありました。しかしダークウェブ上の暗号通貨交換サイトに売ったり、匿名性の高い仮想通貨に交換したり、自身で交換所を作ったりするなど、手を替え品を替え、さまざまな場所で少しずつ売られていく様子が報告されています。別のウォレットに送金されたXEMの総額は、盗まれた額の4分の1くらいで、徐々に資金洗浄が成功している様子がうかがえます。

 盗んだ犯人からダークウェブ上の暗号通貨交換サイトでXEMを買った日本人が、事情聴取を受けたという報道もありました。

 コインチェックは取引を停止していましたが、2月13日からまず日本円の出金を再開しました。その後、3月12日には「NEMの不正送金に係る補償」を当日中に実施すると発表しました。

 仮想通貨では他にも2つ事件が続いています。まず、イタリアの仮想通貨取引所BitGrailで約200億円分の仮想通貨NANOが盗難に遭ったことが明らかになっています。

 仮想通貨取引所のZaifでは、モナコインとビットコインを3分間だけ0円で購入できたことが話題となっていました。実際に7人の利用者が0円で仮想通貨を購入したようで、そのうちの1人は口座内の時価総額が2246兆円になっている動画を公開していました(後に取引を取り消される)。

 まだまだ銀行のサイトと比べるとセキュリティに甘い印象がある仮想通貨取引所、お金を預けるには慎重にサイトを選択する必要があるかもしれません。

2018年3月12日月曜日

Google Chrome、保存したパスワードをCSVファイルへエクスポート可能に

Google Chromeで保存したパスワードをCSVファイルにエクスポートする機能が利用可能になっている。

この機能を使用するには、chrome://flagsで「Password export (chrome://flags/#PasswordExport)」を「Enabled」にしてChromeを再起動すればいい。これにより、設定画面のパスワード管理ページ(Windows版では「パスワードを管理→保存したパスワード」の右側)にメニューボタンが追加され、メニューからエクスポートが実行可能になる。

エクスポートを実行する際、Windows版ではWindowsのログインパスワード、Android版では画面ロックの解除操作を要求された。エクスポートしたファイルはCSV形式なので、扱いには注意が必要だ。このCSVファイルは他のパスワードマネージャーにインポートできるほか、chrome://flagsで「Password import (chrome://flags/#PasswordImport)」を「Enabled」にすれば、Chromeにインポートすることも可能だ。

Chrome Devではこれらの機能がデフォルトで有効になっているようだ。安定版のChrome 64ではMac/Windows/Linux/Chrome OSでフラグ設定が可能になっており、Chrome 65ではAndroidでも設定できるようになっている。